void fn004010B0(word32 ebx, word32 esi, word32 edi, Eq_110 * fs, word32 dwArg04) { Eq_25 eax_18 = GetModuleHandleA(0x00000000); if ((dwArg04 & 0x0000FFFF) != 0x00000000) globals->dw407044 = 0x00000000; else globals->dw407044 = 0x00000001; if (dwArg04 == 0x00000000) globals->dw407044 = 0x00000000; if (globals->dw407044 != 0x00000000) globals->t407034 = dwArg04; fp->dwFFFFFF60 = 0x00406F8C; code * eax_42 = fn00401270(LoadLibraryA(0x00406F98), 0x00000000); fp->dwFFFFFF60 = &fp->dwFFFFFF60; eax_42(); if (eax_42 != null) return; else { up32 ecx_98 = globals->dw403000; word32 eax_101 = globals->dw403004; up32 dwLoc08_103 = 0x00000000; while (dwLoc08_103 <u ecx_98) { (dwLoc08_103 + 0x00403000)->dw0008 = (dwLoc08_103 + 0x00403000)->dw0008 ^ 0x000056CE; dwLoc08_103 = dwLoc08_103 + 0x00000008; } globals->dw407040 = fn00401830(eax_101); fn004019E0(0x00403008, globals->dw407040, ecx_98); globals->dw407030 = edi; globals->dw407028 = esi; globals->dw40703C = ebx; globals->ptr407048 = fs->ptr0018; globals->dw407038 = fp - 0x00000004; if (globals->dw407044 != 0x00000000) fn00401860(0x00401234 - dwArg04, dwArg04); else fn00401860(0x00401234 - eax_18, eax_18); word32 edx_151 = globals->dw407040; fn00401290(fp - 0x00000004, edx_151); Mem147[0x0040704C:word32](); return; } }
void fn00401020() { fn00401270(fp - 0x00000020); (fp + 0xFFFFFF1B)[dwLoc20] = (&((dwLoc20 << 0x0000000E) + 0x000BD020 & 0xFFFF0000)->aFFFE7E4C[0])[dwLoc20 * 0x00000080] - 0x00000028; }