// WARNING: This file's extension ('.MIP') indicates that it may not have been a C or C++ file. // It should contain Ghidra's best effort at decompiling the machine language to C, // but TDR does not currently attempt to handle assembly language or other non-C/C++ code differently, // so any decompiled code below may not reflect the original project source code for this file. // If the source file is from a library, you should replace it with the original library version of the file. // Otherwise, manual reconstruction of the code may be required, // Especially if the original source code was assembly language which used hardware features inaccessible to C. #include "THISDUST.H" #include "COMPRES.H" // decompiled code // original method signature: // void decomp_asm() /* decomp_asm method signature is not contained in the debug symbol data. This is likely either a library function or the game was compiled without debug symbols. Please refer to the TDR documentation for additional guidance. */ // line 24, offset 0x0002d298 /* begin block 1 */ // Start line: 49 /* end block 1 */ // End Line: 50 /* begin block 2 */ // Start line: 50 /* end block 2 */ // End Line: 51 char * decomp_asm(char *param_1,char *param_2) { bool bVar1; char cVar2; char *pcVar3; char *pcVar4; uint uVar5; pcVar4 = param_1 + 0x7fff; do { uVar5 = SEXT14(*param_2); pcVar3 = param_2 + 1; cVar2 = *pcVar3; if ((uVar5 & 0x80) == 0) { while( true ) { pcVar3 = pcVar3 + 1; *pcVar4 = cVar2; pcVar4 = pcVar4 + -1; bVar1 = uVar5 == 0; uVar5 = uVar5 - 1; if (bVar1) break; cVar2 = *pcVar3; } } else { pcVar3 = param_2 + 2; *pcVar4 = cVar2; pcVar4 = pcVar4 + -1; do { *pcVar4 = cVar2; pcVar4 = pcVar4 + -1; bVar1 = uVar5 != 0; uVar5 = uVar5 + 1; } while (bVar1); } param_2 = pcVar3; } while (param_1 <= pcVar4); return pcVar3; }