REDRIVER2/src_rebuild/GAME/ASM/COMPRES.MIP
Ilya Shurumov c40d40bd22 - added sources rebuilt with TDR and partially decompiled intro sequence
- moved necessary data to new sources
- running intro with TOMB5 HLE emulator
2020-03-28 03:25:35 +06:00

71 lines
2.0 KiB
Plaintext

// 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;
}