Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Trainer Asphalt 8 2.7.0n.c
- #include "Trainer Asphalt 8 2.7.0n.h"
- word32 fn00401000(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- fn00401000_entry:
- def fp
- def edi
- def esi
- def ebx
- def dwArg00
- def dwArg04
- def dwArg08
- def dwLoc04
- esp_2 = fp - 3252
- branch (fp - 3252 & fp - 3252) == 0x00 l0040102F
- goto l0040101C
- l00401000:
- l0040101C:
- call ADVAPI32.dll!ConvertStringSecurityDescriptorToSecurityDescriptorA (retsize: 4; depth: 3272)
- uses: al,C_8,cl,cx,CZ,dl,ds,dwLoc04,dwLoc0CAC_5,dwLoc0CB4_4,dwLoc0CB8_713,dwLoc0CBC_716,dwLoc0CC0_718,dwLoc0CC4_720,eax_3,ebp,ebx,ecx_714,edi,edx,es,esi,esp_719,SCZO,SZO_6,xmm0,Z_7
- defs: al_739,C_727,cl_731,cx_737,CZ_736,dl_738,ds_741,eax_725,ebp_735,ebx_732,ecx_729,edi_734,edx_730,es_740,esi_733,esp_723,SCZO_724,SZO_726,xmm0_742,Z_728
- l0040102F:
- edi_40 = PHI(edi, edi_734)
- esi_41 = PHI(esi, esi_733)
- ebx_42 = PHI(ebx, ebx_732)
- esp_43 = PHI(esp_2, esp_723)
- esp_45 = esp_43 - 0x04
- Mem46[esp_45 + 0x00:word32] = 0x0104
- edx_47 = esp_45 + 0x0488
- esp_48 = esp_45 - 0x04
- Mem49[esp_45 - 0x04 + 0x00:word32] = esp_45 + 0x0488
- esp_50 = esp_45 - 0x08
- Mem51[esp_45 - 0x08 + 0x00:word32] = 0x00
- GetModuleFileNameA(Mem51[esp_45 - 0x08 + 0x00:HMODULE], Mem51[esp_45 - 0x04 + 0x00:LPSTR], Mem51[esp_45 + 0x00:DWORD])
- esp_53 = esp_45 + 0x04
- eax_54 = 0x00
- l00401050:
- eax_58 = PHI(eax_54, eax_61)
- cl_59 = Mem51[esp_45 + 0x0488 + eax_58:byte]
- Mem60[esp_45 + 900 + eax_58:byte] = cl_59
- eax_61 = eax_58 + 0x01
- branch cl_59 != 0x00 l00401050
- l00401063:
- esp_66 = esp_45
- Mem67[esp_45 + 0x00:word32] = ebx_42
- esp_68 = esp_45 - 0x04
- Mem69[esp_45 - 0x04 + 0x00:word32] = esi_41
- esp_70 = esp_45 - 0x08
- Mem71[esp_45 - 0x08 + 0x00:word32] = edi_40
- eax_72 = esp_45 + 900
- esp_73 = esp_45 - 0x0C
- Mem74[esp_45 - 0x0C + 0x00:word32] = esp_45 + 900
- call SHLWAPI.dll!PathRemoveFileSpecA (retsize: 4; depth: 4)
- uses: al_62,C_65,cl_59,cx_34,CZ_35,dl_33,ds_31,dwLoc0CAC_5,dwLoc0CB4_4,dwLoc0CB8_26,dwLoc0CBC_27,dwLoc0CC0_28,dwLoc0CC4_29,eax_72,ebp_39,ebx_42,ecx_38,edi_40,edx_47,es_32,esi_41,esp_73,SCZO_44,SZO_63,xmm0_30,Z_64
- defs: al_91,C_79,cl_83,cx_89,CZ_88,dl_90,ds_93,eax_77,ebp_87,ebx_84,ecx_81,edi_86,edx_82,es_92,esi_85,esp_75,SCZO_76,SZO_78,xmm0_94,Z_80
- ecx_95 = esp_75 + 0x038C
- esp_96 = esp_75 - 0x04
- Mem97[esp_75 - 0x04 + 0x00:word32] = esp_75 + 0x038C
- call SHLWAPI.dll!PathAddBackslashA (retsize: 4; depth: 4)
- uses: al_91,C_79,cl_83,cx_89,CZ_88,dl_90,ds_93,dwLoc0CAC_5,dwLoc0CB4_4,dwLoc0CB8_26,dwLoc0CBC_27,dwLoc0CC0_28,dwLoc0CC4_29,eax_77,ebp_87,ebx_84,ecx_95,edi_86,edx_82,es_92,esi_85,esp_96,SCZO_76,SZO_78,xmm0_94,Z_80
- defs: al_114,C_102,cl_106,cx_112,CZ_111,dl_113,ds_116,eax_100,ebp_110,ebx_107,ecx_104,edi_109,edx_105,es_115,esi_108,esp_98,SCZO_99,SZO_101,xmm0_117,Z_103
- edx_118 = esp_98 + 0x038C
- esp_119 = esp_98 - 0x04
- Mem120[esp_98 - 0x04 + 0x00:word32] = esp_98 + 0x038C
- esp_121 = esp_98 - 0x08
- Mem122[esp_98 - 0x08 + 0x00:word32] = 0x0040B3B4
- eax_123 = esp_98 + 0x0594
- esp_124 = esp_98 - 0x0C
- Mem125[esp_98 - 0x0C + 0x00:word32] = 0x0114
- esp_126 = esp_98 - 0x10
- Mem127[esp_98 - 0x10 + 0x00:word32] = esp_98 + 0x0594
- eax_133 = fn00401426(esi_108, es_115, ds_116, dwArg00, dwArg04, dwArg08, out esi_131, out xmm0_132)
- esp_134 = esp_98
- ecx_136 = esp_98 + 0x0490
- esp_137 = esp_98 - 0x04
- Mem138[esp_98 - 0x04 + 0x00:word32] = esp_98 + 0x0490
- call SHLWAPI.dll!PathStripPathA (retsize: 4; depth: 4)
- uses: al_114,C_102,cl_106,cx_112,CZ_111,dl_113,ds_116,dwLoc0CAC_5,dwLoc0CB4_4,dwLoc0CB8_26,dwLoc0CBC_27,dwLoc0CC0_28,dwLoc0CC4_29,eax_133,ebp_110,ebx_107,ecx_136,edi_109,edx_118,es_115,esi_131,esp_137,SCZO_135,SZO_101,xmm0_132,Z_103
- defs: al_155,C_143,cl_147,cx_153,CZ_152,dl_154,ds_157,eax_141,ebp_151,ebx_148,ecx_145,edi_150,edx_146,es_156,esi_149,esp_139,SCZO_140,SZO_142,xmm0_158,Z_144
- esp_160 = esp_139 - 0x04
- Mem161[esp_139 - 0x04 + 0x00:word32] = 0x0A
- esp_162 = esp_139 - 0x08
- Mem163[esp_139 - 0x08 + 0x00:word32] = 4240324
- esp_164 = esp_139 - 0x0C
- Mem165[esp_139 - 0x0C + 0x00:word32] = 0x00
- eax_166 = GetModuleHandleA(Mem165[esp_139 - 0x0C + 0x00:LPCSTR])
- esp_167 = esp_139 - 0x08
- esp_169 = esp_139 - 0x0C
- Mem170[esp_139 - 0x0C + 0x00:word32] = eax_166
- eax_171 = FindResourceA(Mem170[esp_139 - 0x0C + 0x00:HMODULE], Mem170[esp_139 - 0x08 + 0x00:LPCSTR], Mem170[esp_139 - 0x04 + 0x00:LPCSTR])
- esp_172 = esp_139
- esp_173 = esp_139 - 0x04
- Mem174[esp_139 - 0x04 + 0x00:word32] = 0x0A
- esp_175 = esp_139 - 0x08
- Mem176[esp_139 - 0x08 + 0x00:word32] = 4240340
- esp_177 = esp_139 - 0x0C
- Mem178[esp_139 - 0x0C + 0x00:word32] = 0x00
- edi_179 = eax_171
- eax_180 = GetModuleHandleA(Mem178[esp_139 - 0x0C + 0x00:LPCSTR])
- esp_181 = esp_139 - 0x08
- esp_182 = esp_139 - 0x0C
- Mem183[esp_139 - 0x0C + 0x00:word32] = eax_180
- eax_184 = FindResourceA(Mem183[esp_139 - 0x0C + 0x00:HMODULE], Mem183[esp_139 - 0x08 + 0x00:LPCSTR], Mem183[esp_139 - 0x04 + 0x00:LPCSTR])
- esp_185 = esp_139
- ebx_186 = eax_184
- branch eax_171 == 0x00 l00401412
- l004010E6:
- esp_235 = esp_139 - 0x04
- Mem236[esp_139 - 0x04 + 0x00:word32] = ebp_151
- esp_237 = esp_139 - 0x08
- Mem238[esp_139 - 0x08 + 0x00:word32] = eax_171
- esp_239 = esp_139 - 0x0C
- Mem240[esp_139 - 0x0C + 0x00:word32] = 0x00
- eax_241 = GetModuleHandleA(Mem240[esp_139 - 0x0C + 0x00:LPCSTR])
- esp_242 = esp_139 - 0x08
- esp_244 = esp_139 - 0x0C
- Mem245[esp_139 - 0x0C + 0x00:word32] = eax_241
- eax_246 = SizeofResource(Mem245[esp_139 - 0x0C + 0x00:HMODULE], Mem245[esp_139 - 0x08 + 0x00:HRSRC])
- esp_247 = esp_139 - 0x04
- esp_248 = esp_139 - 0x08
- Mem249[esp_139 - 0x08 + 0x00:word32] = eax_184
- esp_250 = esp_139 - 0x0C
- Mem251[esp_139 - 0x0C + 0x00:word32] = 0x00
- Mem252[esp_139 + 0x18:word32] = eax_246
- eax_253 = GetModuleHandleA(Mem252[esp_139 - 0x0C + 0x00:LPCSTR])
- esp_254 = esp_139 - 0x08
- esp_255 = esp_139 - 0x0C
- Mem256[esp_139 - 0x0C + 0x00:word32] = eax_253
- eax_257 = SizeofResource(Mem256[esp_139 - 0x0C + 0x00:HMODULE], Mem256[esp_139 - 0x08 + 0x00:HRSRC])
- esp_258 = esp_139 - 0x04
- esp_259 = esp_139 - 0x08
- Mem260[esp_139 - 0x08 + 0x00:word32] = eax_171
- esp_261 = esp_139 - 0x0C
- Mem262[esp_139 - 0x0C + 0x00:word32] = 0x00
- Mem263[esp_139 + 0x28:word32] = eax_257
- eax_264 = GetModuleHandleA(Mem263[esp_139 - 0x0C + 0x00:LPCSTR])
- esp_265 = esp_139 - 0x08
- esp_267 = esp_139 - 0x0C
- Mem268[esp_139 - 0x0C + 0x00:word32] = eax_264
- eax_269 = LoadResource(Mem268[esp_139 - 0x0C + 0x00:HMODULE], Mem268[esp_139 - 0x08 + 0x00:HRSRC])
- esp_270 = esp_139 - 0x04
- esp_271 = esp_139 - 0x08
- Mem272[esp_139 - 0x08 + 0x00:word32] = eax_184
- esp_273 = esp_139 - 0x0C
- Mem274[esp_139 - 0x0C + 0x00:word32] = 0x00
- Mem275[esp_139 + 0x1C:word32] = eax_269
- eax_276 = GetModuleHandleA(Mem275[esp_139 - 0x0C + 0x00:LPCSTR])
- esp_277 = esp_139 - 0x08
- esp_278 = esp_139 - 0x0C
- Mem279[esp_139 - 0x0C + 0x00:word32] = eax_276
- eax_280 = LoadResource(Mem279[esp_139 - 0x0C + 0x00:HMODULE], Mem279[esp_139 - 0x08 + 0x00:HRSRC])
- esp_281 = esp_139 - 0x04
- edx_282 = esp_139 + 0x0288
- esp_283 = esp_139 - 0x08
- Mem284[esp_139 - 0x08 + 0x00:word32] = esp_139 + 0x0288
- esp_285 = esp_139 - 0x0C
- Mem286[esp_139 - 0x0C + 0x00:word32] = 0x0104
- Mem287[esp_139 + 0x24:word32] = eax_280
- GetTempPathA(Mem287[esp_139 - 0x0C + 0x00:DWORD], Mem287[esp_139 - 0x08 + 0x00:LPSTR])
- esp_289 = esp_139 - 0x04
- C_291 = false
- CZ_292 = false (alias)
- branch false l004013FD
- l0040113E:
- eax_311 = esp_139 + 0x0288
- eax_312 = esp_139 + 0x0287
- l00401146:
- eax_315 = PHI(eax_312, eax_317)
- cl_316 = Mem287[eax_315 + 0x01:byte]
- eax_317 = eax_315 + 0x01
- branch cl_316 != 0x00 l00401146
- l0040114E:
- ecx_322 = Mem287[4240348:word32]
- edx_323 = Mem287[0x0040B3E0:word32]
- Mem325[eax_317 + 0x00:word32] = ecx_322
- cx_326 = Mem325[0x0040B3E4:word16]
- Mem327[eax_317 + 0x04:word32] = edx_323
- dl_328 = Mem327[0x0040B3E6:byte]
- Mem329[eax_317 + 0x08:word16] = cx_326
- Mem330[eax_317 + 0x0A:byte] = dl_328
- eax_331 = esp_139 + 0x0C
- esp_332 = esp_139 - 0x08
- Mem333[esp_139 - 0x08 + 0x00:word32] = esp_139 + 0x0C
- ecx_334 = esp_139 + 0x0288
- esp_335 = esp_139 - 0x0C
- Mem336[esp_139 - 0x0C + 0x00:word32] = esp_139 + 0x0288
- CreateDirectoryA(Mem336[esp_139 - 0x0C + 0x00:LPCSTR], Mem336[esp_139 - 0x08 + 0x00:LPSECURITY_ATTRIBUTES])
- esp_338 = esp_139 - 0x04
- edx_339 = esp_139 + 0x80
- esp_340 = esp_139 - 0x08
- Mem341[esp_139 - 0x08 + 0x00:word32] = esp_139 + 0x80
- esp_342 = esp_139 - 0x0C
- Mem343[esp_139 - 0x0C + 0x00:word32] = 0x00
- esp_344 = esp_139 - 0x10
- Mem345[esp_139 - 0x10 + 0x00:word32] = 4240360
- eax_346 = esp_139 + 0x0288
- esp_347 = esp_139 - 0x14
- Mem348[esp_139 - 0x14 + 0x00:word32] = esp_139 + 0x0288
- GetTempFileNameA(Mem348[esp_139 - 0x14 + 0x00:LPCSTR], Mem348[esp_139 - 0x10 + 0x00:LPCSTR], Mem348[esp_139 - 0x0C + 0x00:UINT], Mem348[esp_139 - 0x08 + 0x00:LPSTR])
- esp_350 = esp_139 - 0x04
- C_352 = false
- CZ_353 = false (alias)
- branch false l004013EF
- l004011AD:
- ecx_354 = esp_139 + 0x80
- esp_355 = esp_139 - 0x08
- Mem356[esp_139 - 0x08 + 0x00:word32] = esp_139 + 0x80
- DeleteFileA(Mem356[esp_139 - 0x08 + 0x00:LPCSTR])
- esp_358 = esp_139 - 0x04
- edx_359 = esp_139 + 0x0C
- esp_360 = esp_139 - 0x08
- Mem361[esp_139 - 0x08 + 0x00:word32] = esp_139 + 0x0C
- eax_362 = esp_139 + 0x80
- esp_363 = esp_139 - 0x0C
- Mem364[esp_139 - 0x0C + 0x00:word32] = esp_139 + 0x80
- eax_365 = CreateDirectoryA(Mem364[esp_139 - 0x0C + 0x00:LPCSTR], Mem364[esp_139 - 0x08 + 0x00:LPSECURITY_ATTRIBUTES])
- esp_366 = esp_139 - 0x04
- branch eax_365 == 0x00 l004013E1
- l004011D2:
- eax_370 = 0x00
- l004011E0:
- eax_374 = PHI(eax_370, eax_377)
- cl_375 = Mem364[esp_139 + 0x80 + eax_374:byte]
- Mem376[esp_139 + 0x06A8 + eax_374:byte] = cl_375
- eax_377 = eax_374 + 0x01
- branch cl_375 != 0x00 l004011E0
- l004011F3:
- edi_382 = esp_139 + 0x06A8
- edi_383 = esp_139 + 0x06A7
- l00401200:
- edi_385 = PHI(edi_383, edi_387)
- al_386 = Mem376[edi_385 + 0x01:byte]
- edi_387 = edi_385 + 0x01
- branch al_386 != 0x00 l00401200
- l00401208:
- cx_391 = Mem376[4240364:word16]
- eax_392 = esp_139 + 0x06A8
- Mem393[edi_387 + 0x00:word16] = cx_391
- eax_394 = esp_139 + 0x06A7
- l00401220:
- eax_398 = PHI(eax_394, eax_400)
- cl_399 = Mem393[eax_398 + 0x01:byte]
- eax_400 = eax_398 + 0x01
- branch cl_399 != 0x00 l00401220
- l00401228:
- edx_405 = Mem393[0x0040B3F0:word32]
- ecx_406 = Mem393[0x0040B3F4:word32]
- edi_407 = CreateFileA
- Mem408[eax_400 + 0x00:word32] = edx_405
- edx_409 = Mem408[0x0040B3F8:word32]
- esp_410 = esp_139 - 0x08
- Mem411[esp_139 - 0x08 + 0x00:word32] = 0x00
- esp_412 = esp_139 - 0x0C
- Mem413[esp_139 - 0x0C + 0x00:word32] = 0x80
- Mem414[eax_400 + 0x04:word32] = ecx_406
- ecx_415 = Mem414[4240380:word32]
- Mem416[eax_400 + 0x08:word32] = edx_409
- esp_417 = esp_139 - 0x10
- Mem418[esp_139 - 0x10 + 0x00:word32] = 0x02
- edx_419 = esp_139 + 0x0C
- esp_420 = esp_139 - 0x14
- Mem421[esp_139 - 0x14 + 0x00:word32] = esp_139 + 0x0C
- esp_422 = esp_139 - 0x18
- Mem423[esp_139 - 0x18 + 0x00:word32] = 0x03
- Mem424[eax_400 + 0x0C:word32] = ecx_415
- esp_425 = esp_139 - 0x1C
- Mem426[esp_139 - 0x1C + 0x00:word32] = 0x40000000
- eax_427 = esp_139 + 0x06A8
- esp_428 = esp_139 - 0x20
- Mem429[esp_139 - 0x20 + 0x00:word32] = esp_139 + 0x06A8
- eax_430 = CreateFileA(Mem429[esp_139 - 0x20 + 0x00:LPCSTR], Mem429[esp_139 - 0x1C + 0x00:DWORD], Mem429[esp_139 - 0x18 + 0x00:DWORD], Mem429[esp_139 - 0x14 + 0x00:LPSECURITY_ATTRIBUTES], Mem429[esp_139 - 0x10 + 0x00:DWORD], Mem429[esp_139 - 0x0C + 0x00:DWORD], Mem429[esp_139 - 0x08 + 0x00:HANDLE])
- esp_431 = esp_139 - 0x04
- esi_434 = eax_430
- branch eax_430 == 0x00 l00401299
- l00401282:
- edx_675 = Mem429[esp_139 + 0x28:word32]
- eax_676 = Mem429[esp_139 + 0x24:word32]
- esp_677 = esp_139 - 0x08
- Mem678[esp_139 - 0x08 + 0x00:word32] = 0x00
- ecx_679 = esp_139 + 0x20
- esp_680 = esp_139 - 0x0C
- Mem681[esp_139 - 0x0C + 0x00:word32] = esp_139 + 0x20
- esp_682 = esp_139 - 0x10
- Mem683[esp_139 - 0x10 + 0x00:word32] = edx_675
- esp_684 = esp_139 - 0x14
- Mem685[esp_139 - 0x14 + 0x00:word32] = eax_676
- esp_686 = esp_139 - 0x18
- Mem687[esp_139 - 0x18 + 0x00:word32] = eax_430
- WriteFile(Mem687[esp_139 - 0x18 + 0x00:HANDLE], Mem687[esp_139 - 0x14 + 0x00:LPCVOID], Mem687[esp_139 - 0x10 + 0x00:DWORD], Mem687[esp_139 - 0x0C + 0x00:LPDWORD], Mem687[esp_139 - 0x08 + 0x00:LPOVERLAPPED])
- esp_689 = esp_139 - 0x04
- esp_690 = esp_139 - 0x08
- Mem691[esp_139 - 0x08 + 0x00:word32] = eax_430
- CloseHandle(Mem691[esp_139 - 0x08 + 0x00:HANDLE])
- esp_693 = esp_139 - 0x04
- l00401299:
- esp_438 = PHI(esp_431, esp_693)
- ecx_439 = esp_438 + 0x0494
- esp_440 = esp_438 - 0x04
- Mem441[esp_440 + 0x00:word32] = ecx_439
- edx_442 = esp_440 + 0x88
- esp_443 = esp_440 - 0x04
- Mem444[esp_440 - 0x04 + 0x00:word32] = esp_440 + 0x88
- esp_445 = esp_440 - 0x08
- Mem446[esp_440 - 0x08 + 0x00:word32] = 0x0040B400
- eax_447 = esp_440 + 0x018C
- esp_448 = esp_440 - 0x0C
- Mem449[esp_440 - 0x0C + 0x00:word32] = 0x0104
- esp_450 = esp_440 - 0x10
- Mem451[esp_440 - 0x10 + 0x00:word32] = esp_440 + 0x018C
- fn00401426(eax_430, es_156, ds_157, dwArg00, dwArg04, dwArg08, out esi_452, out xmm0_453)
- ecx_455 = esp_440 + 0x059C
- esp_456 = esp_440 - 0x14
- Mem457[esp_440 - 0x14 + 0x00:word32] = esp_440 + 0x059C
- edx_458 = esp_440 + 0x018C
- esp_459 = esp_440 - 0x18
- Mem460[esp_440 - 0x18 + 0x00:word32] = esp_440 + 0x018C
- esp_461 = esp_440 - 0x1C
- Mem462[esp_440 - 0x1C + 0x00:word32] = 0x0040B408
- eax_463 = esp_440 + 0x0AB0
- esp_464 = esp_440 - 0x20
- Mem465[esp_440 - 0x20 + 0x00:word32] = 0x0218
- esp_466 = esp_440 - 0x24
- Mem467[esp_440 - 0x24 + 0x00:word32] = esp_440 + 0x0AB0
- eax_470 = fn00401426(esi_452, es_156, ds_157, dwArg00, dwArg04, dwArg08, out esi_468, out xmm0_469)
- esp_471 = esp_440 + 0x04
- esp_473 = esp_440
- Mem474[esp_440 + 0x00:word32] = 0x00
- esp_475 = esp_440 - 0x04
- Mem476[esp_440 - 0x04 + 0x00:word32] = 0x80
- esp_477 = esp_440 - 0x08
- Mem478[esp_440 - 0x08 + 0x00:word32] = 0x02
- ecx_479 = esp_440 + 0x14
- esp_480 = esp_440 - 0x0C
- Mem481[esp_440 - 0x0C + 0x00:word32] = esp_440 + 0x14
- esp_482 = esp_440 - 0x10
- Mem483[esp_440 - 0x10 + 0x00:word32] = 0x03
- esp_484 = esp_440 - 0x14
- Mem485[esp_440 - 0x14 + 0x00:word32] = 0x40000000
- edx_486 = esp_440 + 0x018C
- esp_487 = esp_440 - 0x18
- Mem488[esp_440 - 0x18 + 0x00:word32] = esp_440 + 0x018C
- eax_491 = CreateFileA(Mem0[esp + 0x00:LPCSTR], Mem0[esp + 0x04:DWORD], Mem0[esp + 0x08:DWORD], Mem0[esp + 0x0C:LPSECURITY_ATTRIBUTES], Mem0[esp + 0x0010:DWORD], Mem0[esp + 0x0014:DWORD], Mem0[esp + 0x0018:HANDLE])
- esi_509 = eax_491
- branch eax_491 == 0x00 l00401326
- l0040130F:
- ecx_620 = Mem488[esp_489 + 0x1C:word32]
- edx_621 = Mem488[esp_489 + 0x20:word32]
- esp_622 = esp_489 - 0x04
- Mem623[esp_489 - 0x04 + 0x00:word32] = 0x00
- eax_624 = esp_489 + 0x24
- esp_625 = esp_489 - 0x08
- Mem626[esp_489 - 0x08 + 0x00:word32] = esp_489 + 0x24
- esp_627 = esp_489 - 0x0C
- Mem628[esp_489 - 0x0C + 0x00:word32] = ecx_620
- esp_629 = esp_489 - 0x10
- Mem630[esp_489 - 0x10 + 0x00:word32] = edx_621
- esp_631 = esp_489 - 0x14
- Mem632[esp_489 - 0x14 + 0x00:word32] = eax_491
- call ebx_498 (retsize: 4; depth: 4)
- uses: al_505,C_512,cl_497,cx_503,CZ_502,dl_504,ds_507,dwLoc04,dwLoc0CAC_5,dwLoc0CB4_4,dwLoc0CB8_26,dwLoc0CBC_27,dwLoc0CC0_28,dwLoc0CC4_29,eax_624,ebp_501,ebx_498,ecx_620,edi_500,edx_621,es_506,esi_509,esp_631,SCZO_490,SZO_510,xmm0_508,Z_511
- defs: al_649,C_637,cl_641,cx_647,CZ_646,dl_648,ds_651,eax_635,ebp_645,ebx_642,ecx_639,edi_644,edx_640,es_650,esi_643,esp_633,SCZO_634,SZO_636,xmm0_652,Z_638
- esp_653 = esp_633 - 0x04
- Mem654[esp_633 - 0x04 + 0x00:word32] = esi_643
- call ebp_645 (retsize: 4; depth: 4)
- uses: al_649,C_637,cl_641,cx_647,CZ_646,dl_648,ds_651,dwLoc04,dwLoc0CAC_5,dwLoc0CB4_4,dwLoc0CB8_26,dwLoc0CBC_27,dwLoc0CC0_28,dwLoc0CC4_29,eax_635,ebp_645,ebx_642,ecx_639,edi_644,edx_640,es_650,esi_643,esp_653,SCZO_634,SZO_636,xmm0_652,Z_638
- defs: al_671,C_659,cl_663,cx_669,CZ_668,dl_670,ds_673,eax_657,ebp_667,ebx_664,ecx_661,edi_666,edx_662,es_672,esi_665,esp_655,SCZO_656,SZO_658,xmm0_674,Z_660
- l00401326:
- xmm0_513 = PHI(xmm0_508, xmm0_674)
- esp_524 = PHI(esp_489, esp_655)
- esp_526 = esp_524 - 0x04
- Mem527[esp_526 + 0x00:word32] = 0x44
- eax_528 = esp_526 + 0x44
- esp_529 = esp_526 - 0x04
- Mem530[esp_526 - 0x04 + 0x00:word32] = 0x00
- esp_531 = esp_526 - 0x08
- Mem532[esp_526 - 0x08 + 0x00:word32] = esp_526 + 0x44
- fn00404CA0(xmm0_513, dwLoc04, dwArg00, dwArg04, dwArg08, out edx_534, out edi_535)
- esp_537 = esp_526 + 0x04
- ecx_539 = esp_526 + 0x34
- esp_540 = esp_526
- Mem541[esp_526 + 0x00:word32] = esp_526 + 0x34
- edx_542 = esp_526 + 0x44
- esp_543 = esp_526 - 0x04
- Mem544[esp_526 - 0x04 + 0x00:word32] = esp_526 + 0x44
- Mem545[esp_526 + 0x34:word32] = 0x00
- Mem546[esp_526 + 0x38:word32] = 0x00
- Mem547[esp_526 + 0x3C:word32] = 0x00
- Mem548[esp_526 + 0x40:word32] = 0x00
- eax_549 = esp_526 + 0x88
- esp_550 = esp_526 - 0x08
- Mem551[esp_526 - 0x08 + 0x00:word32] = esp_526 + 0x88
- esp_552 = esp_526 - 0x0C
- Mem553[esp_526 - 0x0C + 0x00:word32] = 0x00
- esp_554 = esp_526 - 0x10
- Mem555[esp_526 - 0x10 + 0x00:word32] = 0x00
- esp_556 = esp_526 - 0x14
- Mem557[esp_526 - 0x14 + 0x00:word32] = 0x00
- esp_558 = esp_526 - 0x18
- Mem559[esp_526 - 0x18 + 0x00:word32] = 0x00
- esp_560 = esp_526 - 0x1C
- Mem561[esp_526 - 0x1C + 0x00:word32] = 0x00
- ecx_562 = esp_526 + 0x0AB0
- esp_563 = esp_526 - 0x20
- Mem564[esp_526 - 0x20 + 0x00:word32] = esp_526 + 0x0AB0
- edx_565 = esp_526 + 0x018C
- esp_566 = esp_526 - 0x24
- Mem567[esp_526 - 0x24 + 0x00:word32] = esp_526 + 0x018C
- Mem568[esp_526 + 0x44:word32] = 0x44
- eax_569 = CreateProcessA(Mem568[esp_526 - 0x24 + 0x00:LPCSTR], Mem568[esp_526 - 0x20 + 0x00:LPSTR], Mem568[esp_526 - 0x1C + 0x00:LPSECURITY_ATTRIBUTES], Mem568[esp_526 - 0x18 + 0x00:LPSECURITY_ATTRIBUTES], Mem568[esp_526 - 0x14 + 0x00:BOOL], Mem568[esp_526 - 0x10 + 0x00:DWORD], Mem568[esp_526 - 0x0C + 0x00:LPVOID], Mem568[esp_526 - 0x08 + 0x00:LPCSTR], Mem568[esp_526 - 0x04 + 0x00:LPSTARTUPINFOA], Mem568[esp_526 + 0x00:LPPROCESS_INFORMATION])
- esp_570 = esp_526 + 0x04
- branch eax_569 == 0x00 l00401396
- l00401387:
- eax_603 = Mem568[esp_526 + 0x34:word32]
- esp_604 = esp_526
- Mem605[esp_526 + 0x00:word32] = ~0x00
- esp_606 = esp_526 - 0x04
- Mem607[esp_526 - 0x04 + 0x00:word32] = eax_603
- WaitForSingleObject(Mem607[esp_526 - 0x04 + 0x00:HANDLE], Mem607[esp_526 + 0x00:DWORD])
- esp_609 = esp_526 + 0x04
- goto l004013AA
- l00401396:
- esp_610 = esp_526
- Mem611[esp_526 + 0x00:word32] = 0x10
- esp_612 = esp_526 - 0x04
- Mem613[esp_526 - 0x04 + 0x00:word32] = 4240400
- esp_614 = esp_526 - 0x08
- Mem615[esp_526 - 0x08 + 0x00:word32] = 0x0040B420
- esp_616 = esp_526 - 0x0C
- Mem617[esp_526 - 0x0C + 0x00:word32] = 0x00
- MessageBoxA(Mem617[esp_526 - 0x0C + 0x00:HWND], Mem617[esp_526 - 0x08 + 0x00:LPCSTR], Mem617[esp_526 - 0x04 + 0x00:LPCSTR], Mem617[esp_526 + 0x00:UINT])
- esp_619 = esp_526 + 0x04
- l004013AA:
- esp_574 = PHI(esp_609, esp_619)
- ecx_576 = esp_574 + 0x0188
- esp_577 = esp_574 - 0x04
- Mem578[esp_577 + 0x00:word32] = ecx_576
- DeleteFileA(Mem578[esp_577 + 0x00:LPCSTR])
- esp_580 = esp_577 + 0x04
- edx_581 = esp_577 + 0x06B0
- esp_582 = esp_577
- Mem583[esp_577 + 0x00:word32] = esp_577 + 0x06B0
- DeleteFileA(Mem583[esp_577 + 0x00:LPCSTR])
- esp_585 = esp_577 + 0x04
- eax_586 = esp_577 + 0x88
- esp_587 = esp_577
- Mem588[esp_577 + 0x00:word32] = esp_577 + 0x88
- RemoveDirectoryA(Mem588[esp_577 + 0x00:LPCSTR])
- esp_590 = esp_577 + 0x04
- ebp_591 = Mem588[esp_577 + 0x04:word32]
- esp_592 = esp_577 + 0x08
- edi_593 = Mem588[esp_577 + 0x08:word32]
- esp_594 = esp_577 + 0x0C
- esi_595 = Mem588[esp_577 + 0x0C:word32]
- esp_596 = esp_577 + 0x10
- eax_597 = 0x00
- ebx_599 = Mem588[esp_577 + 0x10:word32]
- return 0x00
- l004013E1:
- esp_694 = esp_139 - 0x08
- Mem695[esp_139 - 0x08 + 0x00:word32] = 0x10
- esp_696 = esp_139 - 0x0C
- Mem697[esp_139 - 0x0C + 0x00:word32] = 0x0040B47C
- esp_698 = esp_139 - 0x10
- Mem699[esp_139 - 0x10 + 0x00:word32] = 4240524
- goto l00401409
- l004013EF:
- esp_700 = esp_139 - 0x08
- Mem701[esp_139 - 0x08 + 0x00:word32] = 0x10
- esp_702 = esp_139 - 0x0C
- Mem703[esp_139 - 0x0C + 0x00:word32] = 0x0040B47C
- esp_704 = esp_139 - 0x10
- Mem705[esp_139 - 0x10 + 0x00:word32] = 0x0040B4B0
- goto l00401409
- l004013FD:
- esp_706 = esp_139 - 0x08
- Mem707[esp_139 - 0x08 + 0x00:word32] = 0x10
- esp_708 = esp_139 - 0x0C
- Mem709[esp_139 - 0x0C + 0x00:word32] = 0x0040B47C
- esp_710 = esp_139 - 0x10
- Mem711[esp_139 - 0x10 + 0x00:word32] = 0x0040B4D4
- l00401409:
- esp_304 = PHI(esp_710, esp_704, esp_698)
- esp_305 = esp_304 - 0x04
- Mem306[esp_305 + 0x00:word32] = 0x00
- MessageBoxA(Mem306[esp_305 + 0x00:HWND], Mem306[esp_305 + 0x04:LPCSTR], Mem306[esp_305 + 0x08:LPCSTR], Mem306[esp_305 + 0x0C:UINT])
- esp_308 = esp_305 + 0x10
- ebp_309 = Mem306[esp_305 + 0x10:word32]
- esp_310 = esp_305 + 0x14
- l00401412:
- ebp_223 = PHI(ebp_151, ebp_309)
- esp_224 = PHI(esp_185, esp_310)
- edi_225 = Mem183[esp_224 + 0x00:word32]
- esp_226 = esp_224 + 0x04
- esi_227 = Mem183[esp_226 + 0x00:word32]
- esp_228 = esp_226 + 0x04
- eax_229 = 0x00
- ebx_231 = Mem183[esp_226 + 0x04:word32]
- return 0x00
- fn00401000_exit:
- ebp_202 = PHI(ebp_223, ebp_591)
- edi_203 = PHI(edi_225, edi_593)
- esi_204 = PHI(esi_227, esi_595)
- ebx_207 = PHI(ebx_231, ebx_599)
- use ebx_207 (=> ebxOut)
- use ebp_202 (=> ebpOut)
- use esi_204 (=> esiOut)
- use edi_203 (=> ediOut)
- }
- word32 fn00401426(word32 esi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *esiOut = esi;
- word128 xmm0_25;
- return fn00401A94(esi, es, ds, dwArg04, dwArg08, dwArg0C, 0x00, fp + 0x10, out xmm0_25);
- }
- void fn00401444(word32 ebx, word32 ebp, selector es, selector ds)
- {
- word32 ebp_11 = fp - 0x04;
- if (Mem0[0x0040DF08:word32] == 0x01)
- ebp_11 = fn0040204F(ebx, es, ds);
- Mem13[fp - 0x08 + 0x00:word32] = Mem0[ebp_11 + 0x08:word32];
- word32 edx_17;
- byte bl_18;
- word128 xmm0_19;
- fn00401EA4(ebp_11, es, ds, dwArg00, out edx_17, out bl_18, out xmm0_19);
- Mem22[fp - 0x0C + 0x00:word32] = 0xFF;
- fn00401BF0(dwArg00);
- return;
- }
- DWORD Win32CrtStartup()
- {
- fn0040310C();
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B570, 88, out ebp_10);
- Mem13[ebp_10 - 0x04 + 0x00:word32] = 0x00;
- Mem16[fp - 0x0C + 0x00:word32] = ebp_10 - 0x68;
- GetStartupInfoA(Mem16[fp - 0x0C + 0x00:LPSTARTUPINFOA]);
- Mem19[fp - 0x0C + 0x00:word32] = ~0x01;
- Mem22[ebp_10 - 0x04 + 0x00:word32] = Mem19[fp - 0x0C + 0x00:word32];
- if (Mem22[0x00400000:word16] == 23117)
- {
- word32 eax_244 = Mem22[0x0040003C:word32];
- if (Mem22[eax_244 + 0x00400000:word32] == 0x4550 && (Mem22[eax_244 + 0x00400018:word16] == 0x010B && Mem22[eax_244 + 0x00400074:word32] >u 0x0E))
- {
- Mem259[ebp_10 - 0x1C + 0x00:word32] = (word32) (Mem22[eax_244 + 0x004000E8:word32] != 0x00);
- l004014D7:
- Mem41[fp - 0x0C + 0x00:word32] = 0x01;
- word32 esp_106 = fp - 0x08;
- if (fn00402EEF(dwArg00) == 0x00)
- {
- Mem232[fp - 0x0C + 0x00:word32] = 0x1C;
- fn00401444(0x01, ebp_10, es, ds);
- esp_106 = fp - 0x08;
- }
- word32 ebx_53;
- word32 ebp_54;
- if (fn00402D62(0x01, ebp_10, 0x00, es, ds, out ebx_53, out ebp_54) == 0x00)
- {
- word32 esp_227 = esp_106 - 0x04;
- Mem228[esp_227 + 0x00:word32] = 0x10;
- fn00401444(ebx_53, ebp_54, es, ds);
- esp_106 = esp_227 + 0x04;
- }
- word32 edi_61;
- word32 esi_107 = fn00402906(88, dwArg00, out edi_61);
- Mem63[ebp_54 - 0x04 + 0x00:word32] = ebx_53;
- word32 ebp_65;
- word32 ebx_211;
- if (fn004026B2(ebx_53, esi_107, edi_61, es, ds, out ebx_211, out ebp_65) < 0x00)
- {
- word32 esp_217 = esp_106 - 0x04;
- Mem218[esp_217 + 0x00:word32] = 0x1B;
- word32 eax_219;
- word32 edx_220;
- word128 xmm0_223;
- fn00401B9C(ebx_211, ebp_65, es, ds, out eax_219, out edx_220, out ebx_211, out esi_107, out xmm0_223);
- esp_106 = esp_217 + 0x04;
- }
- Mem81[4258520:word32] = GetCommandLineA();
- Mem83[0x0040DF00:word32] = fn0040257B(ebp_65, es, ds);
- word32 eax_209 = fn004024C0(ebp_65, esi_107, edi_61, es, ds);
- if (eax_209 < 0x00)
- {
- word32 esp_207 = esp_106 - 0x04;
- Mem208[esp_207 + 0x00:word32] = 0x08;
- word32 edx_210;
- word128 xmm0_213;
- fn00401B9C(ebx_211, ebp_65, es, ds, out eax_209, out edx_210, out ebx_211, out esi_107, out xmm0_213);
- esp_106 = esp_207 + 0x04;
- }
- word32 ebp_98;
- word32 ebx_108;
- if (fn00402248(eax_209, ebx_211, esi_107, edi_61, es, ds, out ebx_108, out ebp_98) < 0x00)
- {
- word32 esp_197 = esp_106 - 0x04;
- Mem198[esp_197 + 0x00:word32] = 0x09;
- word32 eax_199;
- word32 edx_200;
- word128 xmm0_203;
- fn00401B9C(ebx_108, ebp_98, es, ds, out eax_199, out edx_200, out ebx_108, out esi_107, out xmm0_203);
- esp_106 = esp_197 + 0x04;
- }
- word32 esp_109 = esp_106 - 0x04;
- Mem110[esp_109 + 0x00:word32] = ebx_108;
- word32 esi_112;
- word32 ebx_111;
- word32 eax_113 = fn00401C5B(ebx_108, ebp_98, esi_107, es, ds, dwArg00, out ebx_111, out esi_112);
- word32 esp_116 = esp_109 + 0x04;
- if (eax_113 != esi_112)
- {
- Mem188[esp_109 + 0x00:word32] = eax_113;
- word32 eax_189;
- word32 edx_190;
- word128 xmm0_193;
- fn00401B9C(ebx_111, ebp_98, es, ds, out eax_189, out edx_190, out ebx_111, out esi_112, out xmm0_193);
- esp_116 = esp_109 + 0x04;
- }
- word32 ecx_135;
- word32 ebx_126;
- word32 ebp_127;
- word32 esi_128;
- word32 edi_129;
- word32 eax_130 = fn004021E9(ebx_111, esi_112, es, ds, out ebx_126, out ebp_127, out esi_128, out edi_129);
- if ((Mem110[ebp_127 - 0x3C + 0x00:byte] & 0x01) != 0x00)
- ecx_135 = (word32) Mem110[ebp_127 - 0x38 + 0x00:word16];
- else
- {
- word32 esp_181 = esp_116 - 0x04;
- Mem182[esp_181 + 0x00:word32] = 0x0A;
- ecx_135 = Mem182[esp_181 + 0x00:word32];
- esp_116 = esp_181 + 0x04;
- }
- word32 esp_139 = esp_116 - 0x04;
- Mem140[esp_139 + 0x00:word32] = ecx_135;
- Mem142[esp_139 - 0x04 + 0x00:word32] = eax_130;
- Mem144[esp_139 - 0x08 + 0x00:word32] = esi_128;
- Mem146[esp_139 - 0x0C + 0x00:word32] = 0x00400000;
- word32 ebp_148;
- word32 edi_150;
- word32 esi_149;
- word32 ebx_147;
- word32 eax_151 = fn00401000(ebx_126, esi_128, edi_129, es, ds, out ebx_147, out ebp_148, out esi_149, out edi_150);
- Mem154[ebp_148 - 0x20 + 0x00:word32] = eax_151;
- if (Mem154[ebp_148 - 0x1C + 0x00:word32] == esi_149)
- {
- Mem174[esp_139 + 0x00:word32] = eax_151;
- ebx_147 = fn00401E0C(ebx_147, esi_149, edi_150, es, ds, dwArg00, out esi_149);
- }
- word32 edi_161;
- word32 ebp_162 = fn00401E38(ebx_147, esi_149, edi_150, es, ds, out edi_161);
- Mem163[ebp_162 - 0x04 + 0x00:word32] = edi_161;
- word32 eax_164 = Mem163[ebp_162 - 0x20 + 0x00:word32];
- word32 ebp_169;
- word32 esi_170;
- word32 edi_171;
- fn00402F65(ebp_162, 88, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_169, out esi_170, out edi_171);
- return eax_164;
- }
- }
- Mem242[ebp_10 - 0x1C + 0x00:word32] = 0x00;
- goto l004014D7;
- }
- word32 fn004015F5(word32 ebx, word32 ebp, selector es, selector ds, word32 dwArg08, ptr32 & blOut, ptr32 & xmm0Out)
- {
- *blOut = bl;
- word32 eax_108;
- word32 esi_61;
- word32 eax_60;
- word32 ebx_21;
- word128 xmm0_22;
- Mem24[fp + 0x08:word32] = fn00403DB1(ebx, es, ds, dwArg08, out ebx_21, out xmm0_22);
- word32 eax_25 = Mem24[dwArg08 + 0x0C:word32];
- word32 ebp_187 = fp - 0x04;
- word32 esi_137 = dwArg08;
- byte al_26 = (byte) eax_25;
- if ((al_26 & 0x82) == 0x00)
- {
- word32 edx_74;
- word32 ebx_75;
- word32 ebp_76;
- word32 edi_78;
- word128 xmm0_79;
- fn0040197F(ebx_21, fp - 0x04, dwArg08, es, ds, out eax_60, out edx_74, out ebx_75, out ebp_76, out esi_61, out edi_78, out xmm0_79);
- Mem81[eax_60 + 0x00:word32] = 0x09;
- goto l0040161B;
- }
- if ((al_26 & 0x40) != 0x00)
- {
- word32 edx_86;
- word32 ebx_87;
- word32 ebp_88;
- word32 edi_90;
- word128 xmm0_91;
- fn0040197F(ebx_21, fp - 0x04, dwArg08, es, ds, out eax_60, out edx_86, out ebx_87, out ebp_88, out esi_61, out edi_90, out xmm0_91);
- Mem93[eax_60 + 0x00:word32] = 0x22;
- l0040161B:
- Mem64[esi_61 + 0x0C:word32] = Mem24[esi_61 + 0x0C:word32] | 0x20;
- eax_108 = eax_60 | ~0x00;
- return eax_108;
- }
- Mem95[fp - 0x10 + 0x00:word32] = ebx_21;
- word32 esp_114 = fp - 0x10;
- word32 ebx_134 = 0x00;
- if ((al_26 & 0x01) != 0x00)
- {
- Mem338[dwArg08 + 0x04:word32] = 0x00;
- if ((al_26 & 0x10) == 0x00)
- {
- Mem349[dwArg08 + 0x0C:word32] = eax_25 | 0x20;
- eax_108 = eax_25 | 0x20 | ~0x00;
- goto l00401755;
- }
- Mem346[dwArg08 + 0x00:word32] = Mem338[dwArg08 + 0x08:word32];
- Mem347[dwArg08 + 0x0C:word32] = eax_25 & ~0x01;
- }
- word32 eax_122 = Mem95[dwArg08 + 0x0C:word32] & ~0x10 | 0x02;
- Mem123[dwArg08 + 0x0C:word32] = eax_122;
- Mem124[dwArg08 + 0x04:word32] = 0x00;
- Mem125[fp - 0x08 + 0x00:word32] = 0x00;
- if ((eax_122 & 0x010C) != 0x00)
- {
- l0040169A:
- word32 edi_180;
- word32 eax_166;
- word32 esp_142 = esp_114 - 0x04;
- Mem143[esp_142 + 0x00:word32] = edi;
- if ((Mem125[esi_137 + 0x0C:word32] & 0x0108) != 0x00)
- {
- word32 eax_196 = Mem143[esi_137 + 0x08:word32];
- word32 edi_198 = Mem143[esi_137 + 0x00:word32];
- Mem200[esi_137 + 0x00:word32] = eax_196 + 0x01;
- Mem206[esi_137 + 0x04:word32] = Mem200[esi_137 + 0x18:word32] - 0x01;
- edi_180 = edi_198 - eax_196;
- if (edi_180 > ebx_134)
- {
- Mem226[esp_142 - 0x04 + 0x00:word32] = edi_180;
- Mem228[esp_142 - 0x08 + 0x00:word32] = eax_196;
- Mem230[esp_142 - 0x0C + 0x00:word32] = Mem228[fp + 0x08:word32];
- word128 xmm0_234;
- word32 eax_235 = fn00403A73(ebx_134, esi_137, edi_180, es, ds, out ebp_187, out esi_137, out edi_180, out xmm0_234);
- Mem238[ebp_187 - 0x04 + 0x00:word32] = eax_235;
- }
- else
- {
- word32 eax_245;
- word32 ecx_239 = Mem206[fp + 0x08:word32];
- if (ecx_239 != ~0x00 && ecx_239 != ~0x01)
- eax_245 = ((ecx_239 & 0x1F) << 0x06) + 0x0040F9C0[(ecx_239 >> 0x05) * 0x04];
- else
- eax_245 = 4248144;
- if ((Mem206[eax_245 + 0x04:byte] & 0x20) != 0x00)
- {
- Mem251[esp_142 - 0x04 + 0x00:word32] = 0x02;
- Mem253[esp_142 - 0x08 + 0x00:word32] = ebx_134;
- Mem255[esp_142 - 0x0C + 0x00:word32] = ebx_134;
- Mem257[esp_142 - 0x10 + 0x00:word32] = ecx_239;
- word32 edx_258;
- word128 xmm0_262;
- word32 eax_263 = fn00403227(ebx_134, esi_137, edi_180, es, ds, out edx_258, out ebp_187, out esi_137, out edi_180, out xmm0_262);
- eax_166 = eax_263 & edx_258;
- if (eax_166 == ~0x00)
- {
- l00401743:
- Mem171[esi_137 + 0x0C:word32] = Mem143[esi_137 + 0x0C:word32] | 0x20;
- eax_108 = eax_166 | ~0x00;
- goto l00401754;
- }
- }
- }
- Mem220[Mem206[esi_137 + 0x08:word32] + 0x00:byte] = Mem206[ebp_187 + 0x08:byte];
- eax_166 = Mem220[esi_137 + 0x08:word32];
- Mem224[eax_166 + 0x00:byte] = Mem220[ebp_187 + 0x08:byte];
- }
- else
- {
- Mem288[esp_142 - 0x04 + 0x00:word32] = 0x01;
- Mem291[esp_142 - 0x08 + 0x00:word32] = fp + 0x04;
- Mem293[esp_142 - 0x0C + 0x00:word32] = Mem291[fp + 0x08:word32];
- word128 xmm0_297;
- eax_166 = fn00403A73(ebx_134, esi_137, 0x01, es, ds, out ebp_187, out esi_137, out edi_180, out xmm0_297);
- Mem302[ebp_187 - 0x04 + 0x00:word32] = eax_166;
- }
- if (Mem143[ebp_187 - 0x04 + 0x00:word32] == edi_180)
- {
- eax_108 = Mem143[ebp_187 + 0x08:word32] & 0xFF;
- l00401754:
- esp_114 = esp_142 + 0x04;
- l00401755:
- byte bl_116;
- *blOut = (byte) Mem95[esp_114 + 0x00:word32];
- return eax_108;
- }
- goto l00401743;
- }
- fn00403BFC();
- if (dwArg08 != 0x0040D2C0)
- {
- fn00403BFC();
- if (dwArg08 != 4248288)
- {
- l00401693:
- word32 esp_314 = esp_114 - 0x04;
- Mem315[esp_314 + 0x00:word32] = dwArg08;
- word128 xmm0_317;
- ebx_134 = fn00403B4F(ebx_134, es, ds, out esi_137, out xmm0_317);
- esp_114 = esp_314 + 0x04;
- goto l0040169A;
- }
- }
- Mem324[fp - 0x14 + 0x00:word32] = Mem125[fp + 0x08:word32];
- esp_114 = fp - 0x10;
- word32 edx_326;
- word128 xmm0_328;
- if (fn00403B98(0x00, dwArg08, es, ds, dwArg00, out edx_326, out ebx_134, out xmm0_328) != 0x00)
- goto l0040169A;
- goto l00401693;
- }
- word32 fn00401759(word32 ecx, word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *xmm0Out = xmm0;
- Mem15[ecx + 0x0C:byte] = 0x00;
- word32 edi_3 = edi;
- word32 esi_14 = ecx;
- if (dwArg04 == 0x00)
- {
- word32 ebp_40;
- word128 xmm0_41;
- word32 ebx_39;
- edx = fn00402C19(ebx, fp - 0x04, ecx, es, ds, out ebx_39, out ebp_40, out xmm0_41);
- Mem43[ecx + 0x08:word32] = dwArg04;
- Mem45[ecx + 0x00:word32] = Mem43[dwArg04 + 0x6C:word32];
- Mem47[ecx + 0x04:word32] = Mem45[dwArg04 + 0x68:word32];
- if (Mem47[ecx + 0x00:word32] != Mem47[4250408:word32] && (Mem47[dwArg04 + 0x70:word32] & Mem47[0x0040DA44:word32]) == 0x00)
- {
- word128 xmm0_99;
- word32 eax_100 = fn00404775(ebx_39, ecx, edi, es, ds, out edx, out ebx_39, out esi_14, out edi_3, out xmm0_99);
- Mem101[esi_14 + 0x00:word32] = eax_100;
- }
- if (Mem47[esi_14 + 0x04:word32] != Mem47[4249928:word32] && (Mem47[Mem47[esi_14 + 0x08:word32] + 0x70:word32] & Mem47[0x0040DA44:word32]) == 0x00)
- {
- word32 ebx_84;
- word32 ebp_85;
- word32 edi_87;
- word128 xmm0_88;
- word32 eax_89 = fn00404009(ebx_39, esi_14, edi_3, es, ds, out edx, out ebx_84, out ebp_85, out esi_14, out edi_87, out xmm0_88);
- Mem90[esi_14 + 0x04:word32] = eax_89;
- }
- word32 eax_69 = Mem47[esi_14 + 0x08:word32];
- if ((Mem47[eax_69 + 0x70:byte] & 0x02) == 0x00)
- {
- Mem74[eax_69 + 0x70:word32] = Mem47[eax_69 + 0x70:word32] | 0x02;
- Mem77[esi_14 + 0x0C:byte] = 0x01;
- }
- }
- else
- {
- Mem103[ecx + 0x00:word32] = Mem15[dwArg04 + 0x00:word32];
- Mem105[ecx + 0x04:word32] = Mem103[dwArg04 + 0x04:word32];
- }
- return edx;
- }
- void fn004017E0(word32 dwArg04)
- {
- Mem10[0x0040DF0C:word32] = dwArg04;
- return;
- }
- word32 fn004017EF(word32 esi, selector es, selector ds, word128 xmm0, word32 dwArg00, ptr32 & edxOut, ptr32 & blOut)
- {
- word32 eax_11 = Mem0[0x0040DB60:word32] ^ fp - 0x04;
- word32 edx_30;
- word32 edi_31;
- fn00404CA0(xmm0, dwLoc0340, fp + ~0x0327, 0x00, 0x4C, out edx_30, out edi_31);
- Mem61[fp - 0x0334 + 0x00:word32] = cond(fp - 0x0330);
- word32 eax_75 = IsDebuggerPresent();
- Mem77[fp - 0x0334 + 0x00:word32] = 0x00;
- SetUnhandledExceptionFilter(Mem77[fp - 0x0334 + 0x00:LPTOP_LEVEL_EXCEPTION_FILTER]);
- Mem84[fp - 0x0334 + 0x00:word32] = fp + ~0x02DB;
- word32 esp_124 = fp - 0x0330;
- if (UnhandledExceptionFilter(Mem84[fp - 0x0334 + 0x00:(ptr (struct "_EXCEPTION_POINTERS"))]) == 0x00 && eax_75 == 0x00)
- {
- Mem122[fp - 0x0334 + 0x00:word32] = 0x02;
- fn00404C95();
- esp_124 = fp - 0x0330;
- }
- word32 esp_93 = esp_124 - 0x04;
- Mem94[esp_93 + 0x00:word32] = 0xC0000417;
- Mem97[esp_93 - 0x04 + 0x00:word32] = GetCurrentProcess();
- word32 eax_98 = TerminateProcess(Mem97[esp_93 - 0x04 + 0x00:HANDLE], Mem97[esp_93 + 0x00:UINT]);
- word32 ebx_107 = Mem97[esp_93 + 0x04:word32];
- byte bl_108;
- *blOut = (byte) ebx_107;
- return fn00404BEF(eax_98, eax_11 ^ fp - 0x04, edx_30, ebx_107, fp - 0x04, esi, edi_31, es, ds);
- }
- word32 fn00401917(selector es, selector ds, word128 xmm0, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut)
- {
- *esiOut = esi;
- *ebxOut = ebx;
- word32 dwLoc08_10 = Mem0[0x0040DF0C:word32];
- word32 eax_11 = fn004029CD(fp - 0x04, dwLoc08_10);
- if (eax_11 == 0x00)
- {
- Mem78[fp - 0x08 + 0x00:word32] = 0x02;
- fn00404C95();
- word32 edx_84;
- byte bl_85;
- return fn004017EF(esi, es, ds, xmm0, dwArg00, out edx_84, out bl_85);
- }
- else
- {
- word32 esp_56;
- word32 edi_57;
- word32 ebp_58;
- word32 ecx_59;
- word32 eax_60;
- byte SZO_61;
- byte C_62;
- byte Z_63;
- byte SCZO_64;
- word32 ebx_65;
- word32 edx_66;
- word32 esi_67;
- selector ss_68;
- selector cs_69;
- selector ds_70;
- selector es_71;
- selector fs_72;
- selector gs_73;
- byte SCZDOP_74;
- word128 xmm0_75;
- byte bl_76;
- eax_11();
- return eax_60;
- }
- }
- word32 fn0040193D(word32 dwArg04)
- {
- word32 ecx_10 = 0x00;
- if (dwArg04 == 0x0040D010[ecx_10 * 0x08])
- return 0x0040D014[ecx_10 * 0x08];
- else
- {
- ecx_10 = ecx_10 + 0x01;
- if (ecx_10 <u 0x2D)
- goto l00401947;
- if (dwArg04 >u 0x24)
- return (0x00 - (0x0E <u dwArg04 + ~0xBB) & 0x0E) + 0x08;
- else
- return 0x0D;
- }
- }
- bool fn0040197F(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 eax_7;
- word32 edx_8;
- word32 ebx_9;
- word32 ebp_10;
- word32 esi_11;
- word32 edi_12;
- word128 xmm0_13;
- bool D_14 = fn00402BA0(ebx, ebp, esi, es, ds, out eax_7, out edx_8, out ebx_9, out ebp_10, out esi_11, out edi_12, out xmm0_13);
- if (eax_7 != 0x00)
- {
- word32 eax_29;
- *eaxOut = eax_7 + 0x08;
- return D_14;
- }
- else
- {
- word32 eax_27;
- *eaxOut = 4247928;
- return D_14;
- }
- }
- word32 fn00401992(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 eax_7;
- word32 edx_8;
- word32 ebx_9;
- word32 ebp_10;
- word32 esi_11;
- word32 edi_12;
- word128 xmm0_13;
- fn00402BA0(ebx, ebp, esi, es, ds, out eax_7, out edx_8, out ebx_9, out ebp_10, out esi_11, out edi_12, out xmm0_13);
- if (eax_7 != 0x00)
- return eax_7 + 0x0C;
- else
- return 4247932;
- }
- word32 fn004019A5(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- word32 edx_14;
- word32 ebx_15;
- word32 ebp_16;
- word32 esi_17;
- word32 edi_18;
- word128 xmm0_19;
- word32 eax_20 = fn00401992(ebx, fp - 0x04, esi, es, ds, out edx_14, out ebx_15, out ebp_16, out esi_17, out edi_18, out xmm0_19);
- word32 ecx_22 = Mem0[ebp_16 + 0x08:word32];
- Mem24[fp - 0x0C + 0x00:word32] = ecx_22;
- Mem25[eax_20 + 0x00:word32] = ecx_22;
- word32 eax_31;
- word32 edx_32;
- word32 ebx_33;
- word32 ebp_34;
- word32 esi_35;
- word32 edi_36;
- word128 xmm0_37;
- fn0040197F(ebx_15, ebp_16, fn0040193D(dwArg00), es, ds, out eax_31, out edx_32, out ebx_33, out ebp_34, out esi_35, out edi_36, out xmm0_37);
- Mem39[eax_31 + 0x00:word32] = esi_35;
- return eax_31;
- }
- word32 fn004019C8(word32 esi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, word32 dwArg10, word32 dwArg14, word32 dwArg18, ptr32 & blOut, ptr32 & xmm0Out)
- {
- word32 eax_130;
- word32 esp_141;
- if (dwArg10 == 0x00)
- {
- word32 eax_58;
- word32 edx_59;
- word32 ebx_60;
- word32 ebp_61;
- word32 esi_62;
- word32 edi_63;
- word128 xmm0_64;
- fn0040197F(0x00, fp - 0x04, esi, es, ds, out eax_58, out edx_59, out ebx_60, out ebp_61, out esi_62, out edi_63, out xmm0_64);
- Mem67[fp - 44 + 0x00:word32] = ebx_60;
- Mem69[fp - 0x30 + 0x00:word32] = ebx_60;
- Mem71[fp - 0x34 + 0x00:word32] = ebx_60;
- Mem73[fp - 0x38 + 0x00:word32] = ebx_60;
- Mem75[fp - 0x3C + 0x00:word32] = ebx_60;
- Mem76[eax_58 + 0x00:word32] = 22;
- esp_141 = fp - 0x28;
- word32 edx_77;
- word32 ebx_78;
- word32 esi_79;
- eax_130 = fn00401917(es, ds, xmm0_64, out edx_77, out ebx_78, out esi_79) | ~0x00;
- goto l00401A91;
- }
- word32 esp_137;
- if (dwArg0C != 0x00 && dwArg08 == 0x00)
- {
- word32 eax_249;
- word32 edx_250;
- word32 ebx_251;
- word32 ebp_252;
- word32 esi_253;
- word32 edi_254;
- word128 xmm0_255;
- fn0040197F(0x00, fp - 0x04, dwArg08, es, ds, out eax_249, out edx_250, out ebx_251, out ebp_252, out esi_253, out edi_254, out xmm0_255);
- Mem258[fp - 0x34 + 0x00:word32] = ebx_251;
- Mem260[fp - 0x38 + 0x00:word32] = ebx_251;
- Mem262[fp - 0x3C + 0x00:word32] = ebx_251;
- Mem264[fp - 0x40 + 0x00:word32] = ebx_251;
- Mem266[fp - 0x44 + 0x00:word32] = ebx_251;
- Mem267[eax_249 + 0x00:word32] = 22;
- esp_137 = fp - 0x30;
- word32 edx_268;
- word32 ebx_269;
- word32 esi_270;
- eax_130 = fn00401917(es, ds, xmm0_255, out edx_268, out ebx_269, out esi_270) | ~0x00;
- goto l00401A8F;
- }
- word32 dwLoc20_144 = 0x7FFFFFFF;
- if (dwArg0C <=u 0x7FFFFFFF)
- dwLoc20_144 = dwArg0C;
- word32 esp_169;
- word32 edi_170;
- word32 ebp_171;
- byte SCZO_172;
- word32 ebx_173;
- byte SZO_174;
- byte C_175;
- byte Z_176;
- word32 esi_178;
- byte CZ_179;
- byte SO_180;
- byte S_181;
- word32 ecx_183;
- byte al_184;
- selector es_185;
- selector ds_186;
- word128 xmm0_187;
- bool D_188;
- word32 edx_189;
- byte bl_182;
- dwArg04();
- esp_137 = fp - 0x30;
- if (esi_178 == 0x00)
- {
- l00401A8F:
- esp_141 = esp_137 + 0x08;
- l00401A91:
- byte bl_49;
- *blOut = (byte) Mem0[esp_141 + 0x00:word32];
- return eax_130;
- }
- if (fp >= 0x24)
- {
- if (dwLoc20_144 >= 0x01)
- {
- Mem231[dwArg08 + 0x00:byte] = bl_182;
- l00401A7C:
- eax_130 = Mem0[ebp_171 + 0x14:word32];
- goto l00401A8F;
- }
- esp_137 = fp - 0x30;
- word128 xmm0_238;
- if (fn004015F5(ebx_173, ebp_171, es_185, ds_186, fp - 0x24, out bl_182, out xmm0_238) != ~0x00)
- goto l00401A7C;
- }
- Mem208[esi_178 - 0x01 + edi_170:byte] = bl_182;
- word32 eax_210 = (word32) (Mem0[ebp_171 - 0x1C + 0x00:word32] >= ebx_173);
- eax_130 = eax_210 - 0x02;
- goto l00401A8F;
- }
- word32 fn00401A94(word32 esi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, word32 dwArg10, word32 dwArg14, ptr32 & xmm0Out)
- {
- word32 eax_103;
- if (dwArg0C == 0x00)
- {
- word32 eax_46;
- word32 edx_47;
- word32 ebx_48;
- word32 ebp_49;
- word32 esi_50;
- word32 edi_51;
- word128 xmm0_52;
- fn0040197F(0x00, fp - 0x04, esi, es, ds, out eax_46, out edx_47, out ebx_48, out ebp_49, out esi_50, out edi_51, out xmm0_52);
- Mem55[fp - 0x0C + 0x00:word32] = ebx_48;
- Mem57[fp - 0x10 + 0x00:word32] = ebx_48;
- Mem59[fp - 0x14 + 0x00:word32] = ebx_48;
- Mem61[fp - 0x18 + 0x00:word32] = ebx_48;
- Mem63[fp - 0x1C + 0x00:word32] = ebx_48;
- Mem64[eax_46 + 0x00:word32] = 22;
- word32 edx_65;
- word32 ebx_66;
- word32 esi_67;
- eax_103 = fn00401917(es, ds, xmm0_52, out edx_65, out ebx_66, out esi_67) | ~0x00;
- return eax_103;
- }
- word32 ebx_125;
- word128 xmm0_123;
- word32 esp_127 = fp - 0x0C;
- if (dwArg04 != 0x00 && dwArg08 >u 0x00)
- {
- byte bl_174;
- word128 xmm0_175;
- eax_103 = fn004019C8(dwArg04, es, ds, 0x00404DC0, dwArg04, dwArg08, dwArg0C, dwArg10, dwArg14, out bl_174, out xmm0_175);
- esp_127 = fp - 0x0C;
- if (eax_103 < 0x00)
- Mem195[dwArg04 + 0x00:byte] = bl_174;
- if (eax_103 != ~0x01)
- return eax_103;
- word32 eax_186;
- word32 edx_187;
- word32 ebp_189;
- word32 esi_190;
- word32 edi_191;
- fn0040197F(0x00, fp - 0x04, dwArg04, es, ds, out eax_186, out edx_187, out ebx_125, out ebp_189, out esi_190, out edi_191, out xmm0_123);
- Mem194[eax_186 + 0x00:word32] = 0x22;
- }
- else
- {
- word32 eax_148;
- word32 edx_149;
- word32 ebp_151;
- word32 esi_152;
- word32 edi_153;
- fn0040197F(0x00, fp - 0x04, dwArg04, es, ds, out eax_148, out edx_149, out ebx_125, out ebp_151, out esi_152, out edi_153, out xmm0_123);
- Mem156[eax_148 + 0x00:word32] = 22;
- }
- word32 esp_128 = esp_127 - 0x04;
- Mem129[esp_128 + 0x00:word32] = ebx_125;
- Mem131[esp_128 - 0x04 + 0x00:word32] = ebx_125;
- Mem133[esp_128 - 0x08 + 0x00:word32] = ebx_125;
- Mem135[esp_128 - 0x0C + 0x00:word32] = ebx_125;
- Mem137[esp_128 - 0x10 + 0x00:word32] = ebx_125;
- word32 edx_138;
- word32 ebx_139;
- word32 esi_140;
- eax_103 = fn00401917(es, ds, xmm0_123, out edx_138, out ebx_139, out esi_140) | ~0x00;
- return eax_103;
- }
- word32 fn00401B6C(word32 dwArg04)
- {
- word32 edi_10 = 1000;
- do
- {
- Sleep(edi_10);
- word32 eax_24 = GetModuleHandleW(dwArg04);
- edi_10 = edi_10 + 1000;
- } while (edi_10 >u 60000 || eax_24 != 0x00);
- return eax_24;
- }
- bool fn00401B9C(word32 ebx, word32 ebp, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- word32 ebp_11 = fn0040204F(ebx, es, ds);
- Mem14[fp - 0x08 + 0x00:word32] = Mem0[ebp_11 + 0x08:word32];
- word32 edx_16;
- byte bl_17;
- word128 xmm0_18;
- bool D_19 = fn00401EA4(ebp_11, es, ds, dwArg00, out edx_16, out bl_17, out xmm0_18);
- Mem21[fp - 0x0C + 0x00:word32] = Mem14[0x0040D180:word32];
- word32 eax_22 = fn004029CD(ebp_11, dwArg00);
- Mem24[fp - 0x10 + 0x00:word32] = 0xFF;
- word32 esp_25;
- word32 edi_26;
- word32 ebp_27;
- word32 eax_28;
- byte SCZO_29;
- bool D_30;
- word32 ebx_31;
- selector es_32;
- selector ds_33;
- word32 edx_34;
- word32 esi_35;
- word128 xmm0_36;
- byte bl_37;
- eax_22();
- return D_30;
- }
- void fn00401BC5(word32 dwArg04)
- {
- word32 eax_10 = GetModuleHandleW(0x0040A21C);
- if (eax_10 != 0x00)
- {
- word32 eax_31 = GetProcAddress(eax_10, 0x0040A20C);
- if (eax_31 != 0x00)
- {
- word32 esp_39;
- word32 edi_40;
- word32 ebp_41;
- word32 eax_42;
- byte SZO_43;
- byte C_44;
- byte Z_45;
- eax_31();
- }
- }
- return;
- }
- void fn00401BF0(word32 dwArg04)
- {
- fn00401BC5(dwArg04);
- Mem15[fp - 0x08 + 0x00:word32] = Mem0[fp + 0x04:word32];
- ExitProcess(Mem15[fp - 0x08 + 0x00:UINT]);
- }
- word32 fn00401C08(word32 ebx, word32 edi, selector es, selector ds)
- {
- word32 edx_8;
- word32 ebx_9;
- word128 xmm0_10;
- fn00405B56(ebx, edi, es, ds, 0x08, out edx_8, out ebx_9, out xmm0_10);
- return ebp;
- }
- void fn00401C11()
- {
- fn00405A7C(0x08);
- return;
- }
- void fn00401C1A(word32 eax, word32 dwArg04)
- {
- word32 esi_12 = eax;
- while (esi_12 <u dwArg04)
- {
- word32 eax_30 = Mem0[esi_12 + 0x00:word32];
- if (eax_30 != 0x00)
- {
- word32 esp_44;
- word32 edi_45;
- word32 ebp_46;
- word32 eax_48;
- byte SCZO_49;
- byte C_50;
- byte SZO_51;
- byte Z_52;
- eax_30();
- }
- esi_12 = esi_12 + 0x04;
- }
- return;
- }
- word32 fn00401C37(word32 dwArg04, word32 dwArg08)
- {
- word32 esi_12 = dwArg04;
- word32 eax_13 = 0x00;
- while (esi_12 <u dwArg08 && true)
- {
- word32 ecx_40 = Mem0[esi_12 + 0x00:word32];
- if (ecx_40 != 0x00)
- {
- word32 esp_55;
- word32 edi_56;
- word32 ebp_57;
- byte SZO_60;
- byte C_61;
- byte SCZO_62;
- byte Z_63;
- word32 ecx_64;
- ecx_40();
- }
- esi_12 = esi_12 + 0x04;
- }
- return eax_13;
- }
- word32 fn00401C5B(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & esiOut)
- {
- *esiOut = esi;
- *ebxOut = ebx;
- word32 edi_116 = edi;
- word32 esp_109 = fp - 0x04;
- word32 ebp_117 = fp - 0x04;
- if (Mem0[0x0040FAD0:word32] != 0x00)
- {
- word32 eax_107 = fn00405D60(0x0040FAD0);
- esp_109 = fp - 0x04;
- if (eax_107 != 0x00)
- {
- word32 esp_115;
- byte SCZO_118;
- byte Z_119;
- word32 ecx_120;
- word32 eax_121;
- byte SZO_122;
- byte C_123;
- Mem0[0x0040FAD0:word32]();
- esp_109 = fp - 0x04;
- }
- }
- fn00404879(ebp_117, esi);
- word32 esp_25 = esp_109 - 0x04;
- Mem26[esp_25 + 0x00:word32] = 4235644;
- Mem28[esp_25 - 0x04 + 0x00:word32] = 0x0040A164;
- word32 eax_31 = fn00401C37(dwArg00, dwArg04);
- if (true)
- {
- Mem56[esp_25 + 0x00:word32] = 4204844;
- word32 esi_57;
- word32 ebx_58 = fn00405CB0(ebx, esi, edi_116, es, ds, dwArg00, out esi_57);
- *ebxOut = ebx_58;
- Mem60[esp_25 + 0x00:word32] = 0x0040A160;
- fn00401C1A(0x0040A15C, dwArg00);
- if (Mem60[0x0040FAD4:word32] != 0x00)
- {
- Mem79[esp_25 + 0x00:word32] = 0x0040FAD4;
- word32 eax_80 = fn00405D60(dwArg00);
- if (eax_80 != 0x00)
- {
- Mem87[esp_25 + 0x00:word32] = 0x00;
- Mem89[esp_25 - 0x04 + 0x00:word32] = 0x02;
- Mem91[esp_25 - 0x08 + 0x00:word32] = 0x00;
- word32 esp_92;
- word32 edi_93;
- word32 ebp_94;
- byte SCZO_95;
- byte Z_96;
- word32 ecx_97;
- word32 eax_98;
- byte SZO_99;
- byte C_100;
- word32 ebx_101;
- word32 esi_102;
- selector es_103;
- selector ds_104;
- Mem91[0x0040FAD4:word32]();
- }
- }
- eax_31 = 0x00;
- }
- return eax_31;
- }
- word32 fn00401CE0(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- *esiOut = esi;
- *ediOut = edi;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4240792, 0x18, out ebp_10);
- Mem13[fp - 0x0C + 0x00:word32] = 0x08;
- word32 edx_17;
- word32 ebx_18;
- word128 xmm0_19;
- fn00405B56(ebx, edi, es, ds, dwArg00, out edx_17, out ebx_18, out xmm0_19);
- Mem24[ebp_10 - 0x04 + 0x00:word32] = Mem13[ebp_10 - 0x04 + 0x00:word32] & 0x00;
- word32 esp_105 = fp - 0x08;
- word32 ebx_121 = 0x01;
- if (Mem24[0x0040DF40:word32] != 0x01)
- {
- Mem81[4251452:word32] = 0x01;
- Mem83[4251448:byte] = Mem81[ebp_10 + 0x10:byte];
- if (Mem83[ebp_10 + 0x0C:word32] == 0x00)
- {
- Mem107[fp - 0x0C + 0x00:word32] = Mem83[4258504:word32];
- word32 eax_108 = fn004029CD(ebp_10, dwArg00);
- Mem112[ebp_10 - 0x28 + 0x00:word32] = eax_108;
- word32 esp_110 = fp - 0x08;
- word32 edi_111 = eax_108;
- *ediOut = edi_111;
- if (eax_108 != 0x00)
- {
- Mem137[fp - 0x0C + 0x00:word32] = Mem112[0x0040FAC4:word32];
- word32 eax_138 = fn004029CD(ebp_10, dwArg00);
- Mem142[ebp_10 - 0x24 + 0x00:word32] = eax_138;
- Mem143[ebp_10 - 0x1C + 0x00:word32] = eax_108;
- Mem144[ebp_10 - 0x20 + 0x00:word32] = eax_138;
- esp_110 = fp - 0x08;
- word32 esi_141 = eax_138;
- while (true)
- {
- word32 esi_160 = esi_141 - 0x04;
- *esiOut = esi_160;
- Mem161[ebp_10 - 0x24 + 0x00:word32] = esi_160;
- if (esi_160 <u edi_111)
- break;
- word32 eax_166 = fn004029C4(ebp_10, out ebp_10, out esi_141);
- if (Mem161[esi_141 + 0x00:word32] == eax_166)
- continue;
- if (esi_141 <u edi_111)
- break;
- word32 esp_171 = esp_110 - 0x04;
- Mem172[esp_171 + 0x00:word32] = Mem161[esi_141 + 0x00:word32];
- word32 eax_173 = fn004029CD(ebp_10, dwArg00);
- word32 ebp_175;
- word32 esi_176;
- word32 eax_177 = fn004029C4(ebp_10, out ebp_175, out esi_176);
- Mem178[esi_176 + 0x00:word32] = eax_177;
- word32 esp_179;
- word32 ecx_180;
- byte SZO_182;
- byte C_183;
- byte SCZO_185;
- byte Z_186;
- byte al_187;
- word32 edi_188;
- word32 eax_189;
- selector es_191;
- selector ds_192;
- bool D_193;
- word32 edx_194;
- word128 xmm0_195;
- eax_173();
- Mem197[esp_179 - 0x04 + 0x00:word32] = Mem178[4258504:word32];
- word32 eax_198 = fn004029CD(ebp_10, dwArg00);
- Mem201[esp_179 - 0x08 + 0x00:word32] = Mem197[0x0040FAC4:word32];
- word32 eax_202 = fn004029CD(ebp_10, dwArg00);
- esp_110 = esp_179 + 0x04;
- if (Mem201[ebp_10 - 0x1C + 0x00:word32] != eax_198 || Mem201[(ebp_10 - 0x20) + 0x00:word32] != eax_202)
- {
- Mem213[ebp_10 - 0x1C + 0x00:word32] = eax_198;
- Mem214[ebp_10 - 0x28 + 0x00:word32] = eax_198;
- Mem215[ebp_10 - 0x20 + 0x00:word32] = eax_202;
- Mem217[ebp_10 - 0x24 + 0x00:word32] = eax_202;
- esi_141 = eax_202;
- }
- *ediOut = Mem201[ebp_10 - 0x28 + 0x00:word32];
- }
- }
- word32 esp_131 = esp_110 - 0x04;
- Mem132[esp_131 + 0x00:word32] = 0x0040A18C;
- fn00401C1A(0x0040A180, dwArg00);
- esp_105 = esp_131 + 0x04;
- }
- word32 esp_101 = esp_105 - 0x04;
- Mem102[esp_101 + 0x00:word32] = 0x0040A194;
- fn00401C1A(0x0040A190, dwArg00);
- esp_105 = esp_101 + 0x04;
- }
- Mem47[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn00401DF7(ebp_10);
- if (Mem47[ebp_10 + 0x10:word32] != 0x00)
- {
- word32 ebp_77;
- word32 esi_78;
- word32 edi_79;
- return fn00402F65(ebp_10, 0x18, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_77, out esi_78, out edi_79);
- }
- else
- {
- Mem62[0x0040DF40:word32] = ebx_121;
- word32 esp_63 = esp_105 - 0x04;
- Mem64[esp_63 + 0x00:word32] = 0x08;
- fn00405A7C(dwArg00);
- Mem69[esp_63 + 0x00:word32] = Mem64[ebp_10 + 0x08:word32];
- fn00401BF0(dwArg00);
- fn00401DF7(ebp_10);
- return 0x01;
- }
- }
- void fn00401DF7(word32 ebp)
- {
- if (Mem0[ebp + 0x10:word32] != 0x00)
- fn00405A7C(0x08);
- return;
- }
- word32 fn00401E0C(word32 ebx, word32 esi, word32 edi, selector es, selector ds, word32 dwArg04, ptr32 & esiOut)
- {
- word32 ebp_19;
- word32 esi_20;
- word32 edi_21;
- return fn00401CE0(ebx, esi, edi, es, ds, out ebp_19, out esi_20, out edi_21);
- }
- word32 fn00401E38(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ediOut)
- {
- word32 ebp_13;
- word32 esi_14;
- word32 edi_15;
- fn00401CE0(ebx, esi, edi, es, ds, out ebp_13, out esi_14, out edi_15);
- return ebp_13;
- }
- word32 fn00401E56(word32 ebp, word32 esi)
- {
- word32 ebp_8;
- word32 esi_9;
- word32 eax_10 = fn004029C4(ebp, out ebp_8, out esi_9);
- Mem13[fp - 0x08 + 0x00:word32] = eax_10;
- fn004060BC(dwArg00);
- Mem16[fp - 0x0C + 0x00:word32] = eax_10;
- fn0040604D(dwArg00);
- Mem18[fp - 0x10 + 0x00:word32] = eax_10;
- fn004017E0(dwArg00);
- Mem20[fp - 0x14 + 0x00:word32] = eax_10;
- fn0040603E(dwArg00);
- Mem22[fp - 0x18 + 0x00:word32] = eax_10;
- fn0040602F(dwArg00);
- Mem24[fp - 0x1C + 0x00:word32] = eax_10;
- fn00405E1D(dwArg00);
- Mem26[fp - 0x20 + 0x00:word32] = eax_10;
- fn00402088();
- Mem28[fp - 0x24 + 0x00:word32] = eax_10;
- word32 ebp_29 = fn004059C9(ebp_8);
- Mem31[fp - 0x28 + 0x00:word32] = 0x00401E22;
- Mem35[0x0040D180:word32] = fn00402952(ebp_29, dwArg00);
- return ebp_29;
- }
- bool fn00401EA4(word32 ebp, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & blOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- *edxOut = edx;
- word32 esp_119 = fp - 0x18;
- word32 edi_25 = 0x00;
- if (dwArg04 != 4247944[edi_25 * 0x08])
- {
- edi_25 = edi_25 + 0x01;
- if (edi_25 <u 0x17)
- goto l00401EB8;
- }
- if (edi_25 <u 0x17)
- {
- word32 eax_73;
- word32 edx_74;
- word32 ebx_75;
- word128 xmm0_76;
- D = fn004063ED(dwArg04, es, ds, 0x03, out eax_73, out edx_74, out ebx_75, out xmm0_76);
- esp_119 = fp - 0x18;
- if (eax_73 == 0x01)
- {
- l00402018:
- word32 esp_89 = esp_119 - 0x04;
- Mem90[esp_89 + 0x00:word32] = ~0x0B;
- word32 eax_91 = GetStdHandle(Mem90[esp_89 + 0x00:DWORD]);
- esp_119 = esp_89 + 0x04;
- if (eax_91 != 0x00 && eax_91 != ~0x00)
- {
- Mem100[esp_89 + 0x00:word32] = 0x00;
- Mem103[esp_89 - 0x04 + 0x00:word32] = fp - 0x0C;
- word32 esi_104 = edi_25 * 0x08 + 4247948;
- Mem106[esp_89 - 0x08 + 0x00:word32] = Mem103[esi_104 + 0x00:word32];
- word32 edx_108;
- Mem113[esp_89 - 0x08 + 0x00:word32] = fn00404990(dwArg00, out edx_108);
- Mem115[esp_89 - 0x0C + 0x00:word32] = Mem113[esi_104 + 0x00:word32];
- Mem117[esp_89 - 0x10 + 0x00:word32] = eax_91;
- WriteFile(Mem117[esp_89 - 0x10 + 0x00:HANDLE], Mem117[esp_89 - 0x0C + 0x00:LPCVOID], Mem117[esp_89 - 0x08 + 0x00:DWORD], Mem117[esp_89 - 0x04 + 0x00:LPDWORD], Mem117[esp_89 + 0x00:LPOVERLAPPED]);
- esp_119 = esp_89 + 0x04;
- }
- goto l0040204A;
- }
- Mem121[fp - 0x1C + 0x00:word32] = 0x03;
- word32 eax_122;
- word32 edx_123;
- word32 ebx_124;
- word128 xmm0_125;
- D = fn004063ED(ebx_75, es, ds, dwArg00, out eax_122, out edx_123, out ebx_124, out xmm0_125);
- esp_119 = fp - 0x18;
- if (eax_122 == 0x00 && Mem121[0x0040D000:word32] == 0x01)
- goto l00402018;
- if (ebx_124 != 252)
- {
- Mem135[fp - 0x1C + 0x00:word32] = 4237272;
- Mem139[fp - 0x20 + 0x00:word32] = 788;
- Mem142[fp - 0x24 + 0x00:word32] = 4251464;
- word32 eax_144;
- word128 xmm0_145;
- fn00406385(0x00, es, ds, dwArg00, dwArg04, dwArg08, out eax_144, out xmm0_145);
- word32 esp_147 = fp - 0x18;
- if (eax_144 != 0x00)
- {
- Mem353[fp - 0x1C + 0x00:word32] = 0x00;
- Mem355[fp - 0x20 + 0x00:word32] = 0x00;
- Mem357[fp - 0x24 + 0x00:word32] = 0x00;
- Mem359[fp - 0x28 + 0x00:word32] = 0x00;
- Mem361[fp - 44 + 0x00:word32] = 0x00;
- word32 edx_362;
- byte bl_363;
- fn004017EF(0x00, es, ds, xmm0_145, ebp, out edx_362, out bl_363);
- esp_147 = fp - 0x14;
- }
- word32 esp_155 = esp_147 - 0x04;
- Mem156[esp_155 + 0x00:word32] = 0x0104;
- Mem159[esp_155 - 0x04 + 0x00:word32] = 0x0040DF61;
- Mem161[esp_155 - 0x08 + 0x00:word32] = 0x00;
- Mem162[0x0040E065:byte] = 0x00;
- word32 esp_164 = esp_155 + 0x04;
- if (GetModuleFileNameA(Mem162[esp_155 - 0x08 + 0x00:HMODULE], Mem162[esp_155 - 0x04 + 0x00:LPSTR], Mem162[esp_155 + 0x00:DWORD]) == 0x00)
- {
- Mem321[esp_155 + 0x00:word32] = 0x0040A7C0;
- Mem323[esp_155 - 0x04 + 0x00:word32] = 0x02FB;
- Mem325[esp_155 - 0x08 + 0x00:word32] = 0x0040DF61;
- word32 eax_326;
- word128 xmm0_327;
- fn00406385(0x0040DF61, es, ds, dwArg00, dwArg04, dwArg08, out eax_326, out xmm0_327);
- esp_164 = esp_155 + 0x04;
- if (eax_326 != 0x00)
- {
- Mem337[esp_155 + 0x00:word32] = 0x00;
- Mem339[esp_155 - 0x04 + 0x00:word32] = 0x00;
- Mem341[esp_155 - 0x08 + 0x00:word32] = 0x00;
- Mem343[esp_155 - 0x0C + 0x00:word32] = 0x00;
- Mem345[esp_155 - 0x10 + 0x00:word32] = 0x00;
- word32 edx_346;
- byte bl_347;
- fn004017EF(0x0040DF61, es, ds, xmm0_327, ebp, out edx_346, out bl_347);
- esp_164 = esp_155 + 0x08;
- }
- }
- word32 esi_186;
- word32 esp_175 = esp_164 - 0x04;
- Mem176[esp_175 + 0x00:word32] = 0x0040DF61;
- word32 esp_181 = esp_175 + 0x04;
- word32 edx_177;
- if (fn00404990(dwArg00, out edx_177) >u ~0x3A)
- {
- Mem277[esp_175 + 0x00:word32] = 0x0040DF61;
- word32 edx_278;
- word32 eax_279 = fn00404990(dwArg00, out edx_278);
- Mem283[esp_175 - 0x04 + 0x00:word32] = 0x03;
- Mem286[esp_175 - 0x08 + 0x00:word32] = 4237244;
- Mem290[esp_175 - 0x0C + 0x00:word32] = 4252252 - (eax_279 + 0x0040DF26);
- Mem292[esp_175 - 0x10 + 0x00:word32] = eax_279 + 0x0040DF26;
- word32 eax_294;
- word128 xmm0_295;
- fn004062D0(es, ds, dwArg00, dwArg04, dwArg08, dwArg0C, out eax_294, out xmm0_295);
- esp_181 = esp_175 + 0x04;
- if (eax_294 != 0x00)
- {
- Mem305[esp_175 + 0x00:word32] = 0x00;
- Mem307[esp_175 - 0x04 + 0x00:word32] = 0x00;
- Mem309[esp_175 - 0x08 + 0x00:word32] = 0x00;
- Mem311[esp_175 - 0x0C + 0x00:word32] = 0x00;
- Mem313[esp_175 - 0x10 + 0x00:word32] = 0x00;
- word32 edx_314;
- byte bl_315;
- fn004017EF(0x00, es, ds, xmm0_295, ebp, out edx_314, out bl_315);
- esi_186 = 0x00;
- esp_181 = esp_175 + 0x08;
- l00401FBE:
- word32 esp_189 = esp_181 - 0x04;
- Mem190[esp_189 + 0x00:word32] = 4237240;
- Mem192[esp_189 - 0x04 + 0x00:word32] = 788;
- Mem194[esp_189 - 0x08 + 0x00:word32] = 4251464;
- word32 eax_195;
- word32 edx_196;
- word128 xmm0_197;
- fn0040625C(esi_186, es, ds, dwArg00, dwArg04, dwArg08, out eax_195, out edx_196, out xmm0_197);
- word32 esp_199 = esp_189 + 0x04;
- if (eax_195 != 0x00)
- {
- Mem250[esp_189 + 0x00:word32] = esi_186;
- Mem252[esp_189 - 0x04 + 0x00:word32] = esi_186;
- Mem254[esp_189 - 0x08 + 0x00:word32] = esi_186;
- Mem256[esp_189 - 0x0C + 0x00:word32] = esi_186;
- Mem258[esp_189 - 0x10 + 0x00:word32] = esi_186;
- word32 edx_259;
- byte bl_260;
- fn004017EF(esi_186, es, ds, xmm0_197, ebp, out edx_259, out bl_260);
- esp_199 = esp_189 + 0x08;
- }
- word32 esp_207 = esp_199 - 0x04;
- Mem208[esp_207 + 0x00:word32] = 4247948[Mem194[fp - 0x08 + 0x00:word32] * 0x08];
- Mem210[esp_207 - 0x04 + 0x00:word32] = 788;
- Mem212[esp_207 - 0x08 + 0x00:word32] = 4251464;
- word32 eax_213;
- word32 edx_214;
- word128 xmm0_215;
- D = fn0040625C(esi_186, es, ds, dwArg00, dwArg04, dwArg08, out eax_213, out edx_214, out xmm0_215);
- word32 esp_217 = esp_207 + 0x04;
- if (eax_213 != 0x00)
- {
- Mem234[esp_207 + 0x00:word32] = esi_186;
- Mem236[esp_207 - 0x04 + 0x00:word32] = esi_186;
- Mem238[esp_207 - 0x08 + 0x00:word32] = esi_186;
- Mem240[esp_207 - 0x0C + 0x00:word32] = esi_186;
- Mem242[esp_207 - 0x10 + 0x00:word32] = esi_186;
- word32 edx_243;
- byte bl_244;
- fn004017EF(esi_186, es, ds, xmm0_215, ebp, out edx_243, out bl_244);
- esp_217 = esp_207 + 0x08;
- }
- word32 esp_225 = esp_217 - 0x04;
- Mem226[esp_225 + 0x00:word32] = 0x00012010;
- Mem228[esp_225 - 0x04 + 0x00:word32] = 0x0040A790;
- Mem230[esp_225 - 0x08 + 0x00:word32] = 4251464;
- fn004060F3(fp - 0x04);
- esp_119 = esp_225 + 0x04;
- goto l0040204A;
- }
- }
- esi_186 = 0x00;
- goto l00401FBE;
- }
- }
- l0040204A:
- byte bl_62;
- *blOut = (byte) Mem0[esp_119 + 0x08:word32];
- return D;
- }
- word32 fn0040204F(word32 ebx, selector es, selector ds)
- {
- word32 eax_7;
- word32 edx_8;
- word32 ebx_9;
- word128 xmm0_10;
- fn004063ED(ebx, es, ds, 0x03, out eax_7, out edx_8, out ebx_9, out xmm0_10);
- word32 esp_14 = fp;
- if (eax_7 != 0x01)
- {
- Mem57[fp - 0x04 + 0x00:word32] = 0x03;
- word32 eax_58;
- word32 edx_59;
- word32 ebx_60;
- word128 xmm0_61;
- fn004063ED(ebx_9, es, ds, dwArg00, out eax_58, out edx_59, out ebx_60, out xmm0_61);
- esp_14 = fp;
- if (eax_58 != 0x00 || Mem57[0x0040D000:word32] != 0x01)
- return ebp;
- }
- word32 esp_39 = esp_14 - 0x04;
- Mem40[esp_39 + 0x00:word32] = 252;
- word32 edx_42;
- byte bl_43;
- word128 xmm0_44;
- fn00401EA4(ebp, es, ds, dwArg00, out edx_42, out bl_43, out xmm0_44);
- Mem47[esp_39 - 0x04 + 0x00:word32] = 0xFF;
- word32 edx_48;
- byte bl_49;
- word128 xmm0_50;
- fn00401EA4(ebp, es, ds, dwArg00, out edx_48, out bl_49, out xmm0_50);
- return ebp;
- }
- void fn00402088()
- {
- return;
- }
- word32 fn004021E9(word32 ebx, word32 esi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- fn004021E9_entry:
- *ebpOut = ebp
- *ebxOut = ebx
- word32 esp_31 = fp - 0x08
- word32 edi_115 = 0x00
- branch Mem0[0x0040FACC:word32] != 0x00 l004021FC
- goto l004021F7
- l004021E9:
- l004021F7:
- word32 ebp_113
- word32 esi_114
- eax = fn004044A8(ebx, esi, 0x00, es, ds, out ebx, out ebp_113, out esi_114, out edi_115)
- l004021FC:
- word32 esi_101 = Mem0[4258520:word32]
- branch esi_101 != 0x00 l0040220B
- l00402206:
- esi_101 = 4237424
- l0040220B:
- byte al_36 = Mem0[esi_101 + 0x00:byte]
- word32 eax_100 = DPB(eax, al_36, 0)
- branch al_36 >u 0x20 l00402219
- l00402211:
- branch al_36 == 0x00 l00402243
- l00402215:
- branch edi_115 == 0x00 l0040223D
- l00402219:
- branch al_36 != 0x22 l00402226
- l0040221D:
- edi_115 = (word32) (edi_115 == 0x00)
- l00402226:
- word32 esp_47 = esp_31 - 0x04
- Mem48[esp_47 + 0x00:word32] = (word32) al_36
- word32 esi_53
- eax = fn0040648B(ebx, es, ds, dwArg00, out ebx, out esi_53)
- esp_31 = esp_47 + 0x04
- branch eax == 0x00 l00402235
- l00402234:
- esi_53 = esi_53 + 0x01
- l00402235:
- esi_101 = esi_53 + 0x01
- goto l0040220B
- l00402238:
- l0040223C:
- esi_101 = esi_101 + 0x01
- l0040223D:
- byte al_102 = Mem0[esi_101 + 0x00:byte]
- eax_100 = DPB(eax_100, al_102, 0) (alias)
- branch al_102 != 0x00 && al_102 <=u 0x20 l00402238
- l00402243:
- word32 esp_82 = esp_31 + 0x04
- word32 esi_83 = Mem0[esp_82 + 0x00:word32]
- return eax_100
- word32 edi_85
- *ediOut = Mem0[esp_82 + 0x04:word32]
- word32 esi_89
- *esiOut = Mem0[esp_82 + 0x08:word32]
- return esi_83
- fn004021E9_exit:
- }
- word32 fn00402248(word32 eax, word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut)
- {
- *ebpOut = ebp;
- *ebxOut = ebx;
- if (Mem0[0x0040FACC:word32] == 0x00)
- {
- word32 ebp_283;
- eax = fn004044A8(ebx, esi, edi, es, ds, out ebx, out ebp_283, out esi, out edi);
- }
- word32 eax_128;
- Mem18[fp - 0x04 + 0x00:word32] = esi;
- word32 esi_19 = Mem18[0x0040DF00:word32];
- Mem21[fp - 0x08 + 0x00:word32] = edi;
- word32 esp_20 = fp - 0x08;
- word32 edi_22 = 0x00;
- if (esi_19 != 0x00)
- {
- while (true)
- {
- byte al_74 = Mem21[esi_19 + 0x00:byte];
- if (al_74 == 0x00)
- break;
- if (al_74 != 0x3D)
- edi_22 = edi_22 + 0x01;
- word32 esp_273 = esp_20 - 0x04;
- Mem274[esp_273 + 0x00:word32] = esi_19;
- esp_20 = esp_273 + 0x04;
- word32 edx_275;
- esi_19 = esi_19 + 0x01 + fn00404990(dwArg00, out edx_275);
- }
- word32 esp_79 = esp_20 - 0x04;
- Mem80[esp_79 + 0x00:word32] = 0x04;
- word32 edi_81 = edi_22 + 0x01;
- Mem84[esp_79 - 0x04 + 0x00:word32] = edi_81;
- word32 edx_88;
- word32 ebp_90;
- word32 esi_91;
- word32 edi_92;
- word128 xmm0_93;
- word32 ebx_112;
- fn004048DF(ebx, edi_81, es, ds, out eax, out edx_88, out ebx_112, out ebp_90, out esi_91, out edi_92, out xmm0_93);
- Mem100[4251424:word32] = eax;
- word32 edi_117 = eax;
- if (eax != 0x00)
- {
- word32 esi_104 = Mem100[0x0040DF00:word32];
- Mem106[esp_79 + 0x00:word32] = ebx_112;
- word32 esp_105 = esp_79;
- while (true)
- {
- word32 esp_134;
- if (Mem106[esi_104 + 0x00:byte] == 0x00)
- break;
- word32 esp_161 = esp_105 - 0x04;
- Mem162[esp_161 + 0x00:word32] = esi_104;
- word32 edx_164;
- word32 eax_165 = fn00404990(dwArg00, out edx_164);
- ebx_112 = eax_165 + 0x01;
- esp_105 = esp_161 + 0x04;
- if (Mem162[esi_104 + 0x00:byte] != 0x3D)
- {
- Mem190[esp_161 + 0x00:word32] = 0x01;
- Mem192[esp_161 - 0x04 + 0x00:word32] = eax_165 + 0x01;
- word32 eax_193;
- word32 edx_194;
- word32 ebp_196;
- word32 edi_198;
- word128 xmm0_199;
- fn004048DF(eax_165 + 0x01, edi_117, es, ds, out eax_193, out edx_194, out ebx_112, out ebp_196, out esi_104, out edi_198, out xmm0_199);
- Mem205[edi_198 + 0x00:word32] = eax_193;
- if (eax_193 == 0x00)
- {
- Mem253[esp_161 + 0x00:word32] = Mem205[4251424:word32];
- word32 eax_254;
- word32 edx_255;
- word32 ebx_256;
- word32 ebp_257;
- word32 esi_258;
- word32 edi_259;
- word128 xmm0_260;
- fn004047EB(ebx_112, esi_104, edi_198, es, ds, out eax_254, out edx_255, out ebx_256, out ebp_257, out esi_258, out edi_259, out xmm0_260);
- Mem263[4251424:word32] = Mem253[4251424:word32] & 0x00;
- esp_134 = esp_161;
- eax_128 = eax_254 | ~0x00;
- goto l0040230A;
- }
- Mem210[esp_161 + 0x00:word32] = esi_104;
- Mem212[esp_161 - 0x04 + 0x00:word32] = ebx_112;
- Mem214[esp_161 - 0x08 + 0x00:word32] = eax_193;
- word32 eax_217;
- word128 xmm0_218;
- fn00406385(esi_104, es, ds, dwArg00, dwArg04, dwArg08, out eax_217, out xmm0_218);
- esp_105 = esp_161 + 0x04;
- if (eax_217 != 0x00)
- {
- Mem236[esp_161 + 0x00:word32] = 0x00;
- Mem238[esp_161 - 0x04 + 0x00:word32] = 0x00;
- Mem240[esp_161 - 0x08 + 0x00:word32] = 0x00;
- Mem242[esp_161 - 0x0C + 0x00:word32] = 0x00;
- Mem244[esp_161 - 0x10 + 0x00:word32] = 0x00;
- word32 edx_246;
- byte bl_247;
- fn004017EF(esi_104, es, ds, xmm0_218, dwLoc04, out edx_246, out bl_247);
- esp_105 = esp_161 + 0x08;
- }
- edi_117 = edi_198 + 0x04;
- }
- esi_104 = esi_104 + ebx_112;
- }
- esp_134 = esp_105 - 0x04;
- Mem141[esp_134 + 0x00:word32] = Mem106[0x0040DF00:word32];
- word32 eax_142;
- word32 edx_143;
- word32 ebx_144;
- word32 ebp_145;
- word32 esi_146;
- word32 edi_147;
- word128 xmm0_148;
- fn004047EB(ebx_112, esi_104, edi_117, es, ds, out eax_142, out edx_143, out ebx_144, out ebp_145, out esi_146, out edi_147, out xmm0_148);
- Mem151[0x0040DF00:word32] = Mem141[0x0040DF00:word32] & 0x00;
- Mem154[edi_147 + 0x00:word32] = Mem151[edi_147 + 0x00:word32] & 0x00;
- Mem156[0x0040FAC0:word32] = 0x01;
- eax_128 = 0x00;
- l0040230A:
- word32 ebx_137;
- *ebxOut = Mem106[esp_134 + 0x04:word32];
- return eax_128;
- }
- }
- eax_128 = eax | ~0x00;
- return eax_128;
- }
- void fn00402326(word32 edx, word32 ebp, word32 edi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C)
- {
- fn00402326_entry:
- Mem21[edi + 0x00:word32] = 0x00
- Mem26[dwArg0C + 0x00:word32] = 0x01
- word32 ecx_12 = dwArg0C
- word32 esp_124 = fp - 0x10
- word32 esi_101 = edx
- word32 edx_127 = dwArg08
- branch dwArg04 == 0x00 l0040234E
- goto l00402345
- l00402326:
- l00402345:
- Mem405[dwArg04 + 0x00:word32] = dwArg08
- ebx = dwArg04
- l0040234E:
- l00402351:
- byte bl_308
- branch Mem26[esi_101 + 0x00:byte] != 0x22 l00402366
- l00402356:
- Mem348[fp - 0x08 + 0x00:word32] = (word32) (Mem26[fp - 0x08 + 0x00:word32] == 0x00)
- bl_308 = 0x22
- ebx = DPB(ebx, 0x22, 0) (alias)
- esi_101 = esi_101 + 0x01
- goto l004023A2
- l00402366:
- Mem350[edi + 0x00:word32] = Mem26[edi + 0x00:word32] + 0x01
- branch edx_127 == 0x00 l00402374
- l0040236C:
- Mem397[edx_127 + 0x00:byte] = Mem350[esi_101 + 0x00:byte]
- Mem400[fp + 0x08:word32] = edx_127 + 0x01
- l00402374:
- bl_308 = Mem350[esi_101 + 0x00:byte]
- word32 esp_359 = esp_124 - 0x04
- Mem360[esp_359 + 0x00:word32] = (word32) bl_308
- esp_124 = esp_359 + 0x04
- branch fn0040648B(DPB(ebx, bl_308, 0), es, ds, dwArg00, out ebx, out esi_101) == 0x00 l00402398
- l00402385:
- Mem383[edi + 0x00:word32] = Mem360[edi + 0x00:word32] + 0x01
- branch Mem383[fp + 0x08:word32] == 0x00 l00402397
- l0040238D:
- word32 ecx_390 = Mem383[fp + 0x08:word32]
- byte al_391 = Mem383[esi_101 + 0x00:byte]
- Mem393[fp + 0x08:word32] = Mem383[fp + 0x08:word32] + 0x01
- Mem395[ecx_390 + 0x00:byte] = al_391
- l00402397:
- esi_101 = esi_101 + 0x01
- l00402398:
- edx_127 = Mem360[fp + 0x08:word32]
- ecx_12 = Mem360[fp + 0x0C:word32]
- branch bl_308 == 0x00 l004023D4
- l004023A2:
- branch Mem26[fp - 0x08 + 0x00:word32] != 0x00 l00402351
- branch Mem26[fp - 0x08 + 0x00:word32] != 0x00 l00402351
- l004023A8:
- branch bl_308 == 0x20 l004023B2
- branch bl_308 == 0x20 l004023B2
- l004023AD:
- branch bl_308 != 0x09 l00402351
- branch bl_308 != 0x09 l00402351
- l004023B2:
- branch edx_127 == 0x00 l004023BA
- branch edx_127 == 0x00 l004023BA
- l004023B6:
- Mem333[edx_127 - 0x01 + 0x00:byte] = 0x00
- Mem334[edx_127 - 0x01 + 0x00:byte] = 0x00
- l004023BA:
- Mem63[fp - 0x08 + 0x00:word32] = Mem26[fp - 0x08 + 0x00:word32] & 0x00
- l004023BE:
- branch Mem63[esi_101 + 0x00:byte] == 0x00 l004024B0
- l004023C7:
- byte al_103 = Mem63[esi_101 + 0x00:byte]
- branch al_103 == 0x20 || al_103 == 0x09 l004023D1
- goto l004023D7
- l004023CD:
- l004023D1:
- esi_101 = esi_101 + 0x01
- goto l004023C7
- l004023D4:
- esi_101 = esi_101 - 0x01
- goto l004023BA
- l004023D7:
- branch Mem63[esi_101 + 0x00:byte] == 0x00 l004024B0
- l004023E0:
- branch Mem63[fp + 0x04:word32] == 0x00 l004023EF
- l004023E6:
- word32 eax_303 = Mem63[fp + 0x04:word32]
- Mem305[fp + 0x04:word32] = Mem63[fp + 0x04:word32] + 0x04
- Mem307[eax_303 + 0x00:word32] = edx_127
- l004023EF:
- Mem120[ecx_12 + 0x00:word32] = Mem63[ecx_12 + 0x00:word32] + 0x01
- l004023F1:
- word32 ebx_130 = 0x01
- word32 ecx_132 = 0x00
- byte cl_133 = 0x00
- goto l004023FA
- l004023F8:
- ecx_132 = ecx_132 + 0x01
- esi_101 = esi_101 + 0x01
- cl_133 = (byte) ecx_132 (alias)
- l004023FA:
- branch Mem120[esi_101 + 0x00:byte] == 0x5C l004023F8
- l004023FF:
- branch Mem120[esi_101 + 0x00:byte] != 0x22 l0040242A
- l00402404:
- branch (cl_133 & 0x01) != 0x00 l00402428
- l00402409:
- branch Mem120[fp - 0x08 + 0x00:word32] == 0x00 l0040241B
- l0040240F:
- word32 eax_294 = esi_101 + 0x01
- branch Mem120[eax_294 + 0x00:byte] != 0x22 l0040241B
- l00402417:
- esi_101 = eax_294
- goto l00402428
- l0040241B:
- Mem293[fp - 0x08 + 0x00:word32] = (word32) (Mem120[fp - 0x08 + 0x00:word32] == 0x00)
- ebx_130 = 0x00
- l00402428:
- ecx_132 = ecx_132 >>u 0x01
- l0040242A:
- branch ecx_132 == 0x00 l00402440
- l0040242E:
- ecx_132 = ecx_132 - 0x01
- branch edx_127 == 0x00 l00402437
- l00402433:
- Mem269[edx_127 + 0x00:byte] = 0x5C
- edx_127 = edx_127 + 0x01
- l00402437:
- Mem264[edi + 0x00:word32] = Mem120[edi + 0x00:word32] + 0x01
- branch ecx_132 != 0x00 l0040242E
- l0040243D:
- Mem268[fp + 0x08:word32] = edx_127
- l00402440:
- byte al_158 = Mem120[esi_101 + 0x00:byte]
- branch al_158 == 0x00 || Mem120[(fp - 0x08) + 0x00:word32] == 0x00 && (al_158 == 0x20 || al_158 == 0x09) l0040249B
- goto l00402454
- l00402446:
- l0040244C:
- l00402450:
- l00402454:
- branch ebx_130 == 0x00 l00402495
- l00402458:
- word32 esp_195 = esp_124 - 0x04
- Mem196[esp_195 + 0x00:word32] = (int32) al_158
- branch edx_127 == 0x00 l00402483
- l00402460:
- esp_124 = esp_195 + 0x04
- word32 ebx_215
- branch fn0040648B(ebx_130, es, ds, dwArg00, out ebx_215, out esi_101) == 0x00 l00402477
- l0040246A:
- byte al_230 = Mem196[esi_101 + 0x00:byte]
- word32 ecx_231 = Mem196[fp + 0x08:word32]
- Mem233[fp + 0x08:word32] = Mem196[fp + 0x08:word32] + 0x01
- Mem234[ecx_231 + 0x00:byte] = al_230
- Mem237[edi + 0x00:word32] = Mem234[edi + 0x00:word32] + 0x01
- esi_101 = esi_101 + 0x01
- l00402477:
- word32 ecx_224 = Mem196[fp + 0x08:word32]
- byte al_225 = Mem196[esi_101 + 0x00:byte]
- Mem227[fp + 0x08:word32] = Mem196[fp + 0x08:word32] + 0x01
- Mem229[ecx_224 + 0x00:byte] = al_225
- goto l00402490
- l00402483:
- esp_124 = esp_195 + 0x04
- word32 ebx_239
- branch fn0040648B(ebx_130, es, ds, dwArg00, out ebx_239, out esi_101) == 0x00 l00402490
- l0040248D:
- Mem249[edi + 0x00:word32] = Mem196[edi + 0x00:word32] + 0x01
- esi_101 = esi_101 + 0x01
- l00402490:
- Mem209[edi + 0x00:word32] = Mem196[edi + 0x00:word32] + 0x01
- edx_127 = Mem209[fp + 0x08:word32]
- l00402495:
- esi_101 = esi_101 + 0x01
- goto l004023F1
- l0040249B:
- branch edx_127 == 0x00 l004024A6
- l0040249F:
- Mem173[edx_127 + 0x00:byte] = 0x00
- edx_127 = edx_127 + 0x01
- Mem176[fp + 0x08:word32] = edx_127
- l004024A6:
- Mem169[edi + 0x00:word32] = Mem120[edi + 0x00:word32] + 0x01
- ecx_12 = Mem169[fp + 0x0C:word32]
- goto l004023BE
- l004024B0:
- word32 eax_80 = Mem63[fp + 0x04:word32]
- branch eax_80 == 0x00 l004024BC
- l004024B9:
- Mem97[eax_80 + 0x00:word32] = Mem63[eax_80 + 0x00:word32] & 0x00
- l004024BC:
- Mem91[ecx_12 + 0x00:word32] = Mem63[ecx_12 + 0x00:word32] + 0x01
- return
- fn00402326_exit:
- }
- word32 fn004024C0(word32 ebp, word32 esi, word32 edi, selector es, selector ds)
- {
- word32 ebp_138 = fp - 0x04;
- word32 ebx_12 = 0x00;
- if (Mem0[0x0040FACC:word32] == 0x00)
- {
- word32 esi_139;
- word32 edi_140;
- fn004044A8(0x00, esi, edi, es, ds, out ebx_12, out ebp_138, out esi_139, out edi_140);
- }
- Mem26[fp - 0x20 + 0x00:word32] = 0x0104;
- Mem29[fp - 0x24 + 0x00:word32] = 4252256;
- Mem31[fp - 0x28 + 0x00:word32] = ebx_12;
- Mem32[0x0040E364:byte] = 0x00;
- GetModuleFileNameA(Mem32[fp - 0x28 + 0x00:HMODULE], Mem32[fp - 0x24 + 0x00:LPSTR], Mem32[fp - 0x20 + 0x00:DWORD]);
- word32 eax_35 = Mem32[4258520:word32];
- Mem36[0x0040DF30:word32] = 4252256;
- if (eax_35 != ebx_12)
- {
- Mem134[ebp_138 - 0x04 + 0x00:word32] = eax_35;
- if (Mem134[eax_35 + 0x00:byte] != 0x00)
- {
- l0040250B:
- word32 eax_128;
- word32 edx_40 = Mem36[ebp_138 - 0x04 + 0x00:word32];
- Mem43[fp - 0x20 + 0x00:word32] = ebp_138 - 0x08;
- Mem45[fp - 0x24 + 0x00:word32] = ebx_12;
- Mem47[fp - 0x28 + 0x00:word32] = ebx_12;
- fn00402326(edx_40, ebp_138, ebp_138 - 0x0C, es, ds, dwArg00, dwArg04, dwArg08);
- word32 eax_106 = Mem47[ebp_138 - 0x08 + 0x00:word32];
- if (eax_106 <u 0x3FFFFFFF)
- {
- word32 ecx_91 = Mem47[ebp_138 - 0x0C + 0x00:word32];
- if (ecx_91 <u ~0x00)
- {
- eax_106 = (eax_106 << 0x02) + ecx_91;
- if (eax_106 >=u ecx_91)
- {
- Mem100[fp - 0x20 + 0x00:word32] = eax_106;
- word32 ebx_101;
- word32 ebp_102;
- word32 esi_103;
- word32 edi_104;
- word128 xmm0_105;
- eax_106 = fn0040489A(ebx_12, ebp_138, es, ds, out ebx_101, out ebp_102, out esi_103, out edi_104, out xmm0_105);
- if (eax_106 != ebx_101)
- {
- word32 edx_112 = Mem100[ebp_102 - 0x04 + 0x00:word32];
- Mem115[fp - 0x20 + 0x00:word32] = ebp_102 - 0x08;
- Mem119[fp - 0x24 + 0x00:word32] = edi_104 + eax_106;
- Mem121[fp - 0x28 + 0x00:word32] = eax_106;
- fn00402326(edx_112, ebp_102, ebp_102 - 0x0C, es, ds, dwArg00, dwArg04, dwArg08);
- Mem126[4251412:word32] = Mem121[ebp_102 - 0x08 + 0x00:word32] - 0x01;
- Mem127[4251416:word32] = eax_106;
- eax_128 = 0x00;
- return eax_128;
- }
- }
- }
- }
- eax_128 = eax_106 | ~0x00;
- return eax_128;
- }
- }
- Mem133[ebp_138 - 0x04 + 0x00:word32] = 4252256;
- goto l0040250B;
- }
- word32 fn0040257B(word32 ebp, selector es, selector ds)
- {
- word32 eax_167;
- word32 ebp_115 = fp - 0x04;
- word32 eax_259 = Mem0[4252520:word32];
- word32 ebx_114 = 0x00;
- word16 bx_108 = 0x00;
- word32 edi_112 = 0x00;
- if (eax_259 == 0x00)
- {
- word32 eax_323 = GetEnvironmentStringsW();
- edi_112 = eax_323;
- if (eax_323 != 0x00)
- {
- Mem327[4252520:word32] = 0x01;
- l004025D0:
- if (edi_112 == 0x00)
- {
- word32 eax_240 = GetEnvironmentStringsW();
- edi_112 = eax_240;
- if (eax_240 == 0x00)
- goto l004025DC;
- }
- word32 eax_117 = edi_112;
- if (Mem0[edi_112 + 0x00:word16] != bx_108)
- do
- {
- do
- {
- word32 eax_228 = eax_117 + 0x01;
- eax_117 = eax_228 + 0x01;
- } while (Mem0[eax_228 + 0x01:word16] != bx_108);
- eax_117 = eax_228 + 0x03;
- } while (Mem0[eax_228 + 0x03:word16] != bx_108);
- word32 esp_143 = fp - 0x1C;
- if (WideCharToMultiByte(0x00, 0x00, edi_112, (eax_117 - edi_112 >> 0x01) + 0x01, 0x00, 0x00, 0x00, 0x00) != 0x00)
- {
- word32 esi_172;
- word128 xmm0_174;
- word32 ebp_171;
- word32 eax_175 = fn0040489A(ebx_114, ebp_115, es, ds, out ebx_114, out ebp_171, out esi_172, out edi_112, out xmm0_174);
- Mem178[ebp_171 - 0x04 + 0x00:word32] = eax_175;
- esp_143 = fp - 0x1C;
- if (eax_175 != ebx_114)
- {
- Mem182[fp - 0x20 + 0x00:word32] = ebx_114;
- Mem184[fp - 0x24 + 0x00:word32] = ebx_114;
- Mem186[fp - 0x28 + 0x00:word32] = Mem184[ebp_171 - 0x08 + 0x00:word32];
- Mem188[fp - 44 + 0x00:word32] = eax_175;
- Mem190[fp - 0x30 + 0x00:word32] = Mem188[ebp_171 - 0x0C + 0x00:word32];
- Mem192[fp - 0x34 + 0x00:word32] = edi_112;
- Mem194[fp - 0x38 + 0x00:word32] = ebx_114;
- Mem196[fp - 0x3C + 0x00:word32] = ebx_114;
- esp_143 = fp - 0x1C;
- if (WideCharToMultiByte(Mem196[fp - 0x3C + 0x00:UINT], Mem196[fp - 0x38 + 0x00:DWORD], Mem196[fp - 0x34 + 0x00:LPCWSTR], Mem196[fp - 0x30 + 0x00:int32], Mem196[fp - 44 + 0x00:LPSTR], Mem196[fp - 0x28 + 0x00:int32], Mem196[fp - 0x24 + 0x00:LPCSTR], Mem196[fp - 0x20 + 0x00:LPBOOL]) == 0x00)
- {
- Mem215[fp - 0x20 + 0x00:word32] = Mem196[ebp_171 - 0x04 + 0x00:word32];
- word32 eax_216;
- word32 edx_217;
- word32 ebx_218;
- word32 esi_220;
- word128 xmm0_222;
- fn004047EB(ebx_114, esi_172, edi_112, es, ds, out eax_216, out edx_217, out ebx_218, out ebp_171, out esi_220, out edi_112, out xmm0_222);
- Mem226[ebp_171 - 0x04 + 0x00:word32] = ebx_218;
- esp_143 = fp - 0x1C;
- }
- ebx_114 = Mem196[ebp_171 - 0x04 + 0x00:word32];
- }
- }
- word32 esp_163 = esp_143 - 0x04;
- Mem164[esp_163 + 0x00:word32] = edi_112;
- FreeEnvironmentStringsW(Mem164[esp_163 + 0x00:LPWCH]);
- eax_167 = ebx_114;
- return eax_167;
- }
- if (GetLastError() == 0x78)
- {
- Mem335[4252520:word32] = 0x02;
- eax_259 = 0x02;
- }
- else
- eax_259 = Mem0[4252520:word32];
- }
- if (eax_259 != 0x01)
- {
- if (eax_259 != 0x02 && eax_259 != 0x00)
- goto l004025DC;
- word32 eax_266 = GetEnvironmentStrings();
- if (eax_266 != 0x00)
- {
- if (Mem0[eax_266 + 0x00:byte] != 0x00)
- do
- {
- do
- eax_266 = eax_266 + 0x01;
- while (Mem0[eax_266 + 0x00:byte] != 0x00);
- eax_266 = eax_266 + 0x01;
- } while (Mem0[eax_266 + 0x01:byte] != 0x00);
- word32 ebx_280;
- word32 ebp_281;
- word32 esi_282;
- word32 edi_283;
- word128 xmm0_284;
- word32 eax_285 = fn0040489A(0x00, fp - 0x04, es, ds, out ebx_280, out ebp_281, out esi_282, out edi_283, out xmm0_284);
- if (eax_285 != ebx_280)
- {
- Mem296[fp - 0x20 + 0x00:word32] = Mem0[ebp_281 - 0x08 + 0x00:word32];
- Mem298[fp - 0x24 + 0x00:word32] = esi_282;
- Mem300[fp - 0x28 + 0x00:word32] = eax_285;
- word32 esi_304;
- word32 edi_305;
- fn004064B0(ebp_281, dwArg00, dwArg04, dwArg08, out esi_304, out edi_305);
- Mem310[fp - 0x20 + 0x00:word32] = esi_304;
- FreeEnvironmentStringsA(Mem310[fp - 0x20 + 0x00:LPCH]);
- eax_167 = edi_305;
- return eax_167;
- }
- Mem292[fp - 0x20 + 0x00:word32] = esi_282;
- FreeEnvironmentStringsA(Mem292[fp - 0x20 + 0x00:LPCH]);
- }
- l004025DC:
- eax_167 = 0x00;
- return eax_167;
- }
- goto l004025D0;
- }
- word32 fn004026B2(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut)
- {
- word32 eax_154;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4240824, 0x54, out ebp_10);
- Mem16[ebp_10 - 0x04 + 0x00:word32] = 0x00;
- Mem20[fp - 0x0C + 0x00:word32] = ebp_10 - 100;
- GetStartupInfoA(Mem20[fp - 0x0C + 0x00:LPSTARTUPINFOA]);
- Mem22[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- Mem24[fp - 0x0C + 0x00:word32] = 0x40;
- Mem26[fp - 0x10 + 0x00:word32] = 0x20;
- Mem30[fp - 0x10 + 0x00:word32] = Mem26[fp - 0x10 + 0x00:word32];
- word32 edx_34;
- word32 ebx_35;
- word32 esi_37;
- word32 edi_38;
- word128 xmm0_39;
- word32 eax_210;
- word32 ebp_112;
- fn004048DF(ebx, 0x00, es, ds, out eax_210, out edx_34, out ebx_35, out ebp_112, out esi_37, out edi_38, out xmm0_39);
- word32 esp_109 = fp - 0x08;
- if (eax_210 == edi_38)
- {
- l004028FD:
- eax_154 = eax_210 | ~0x00;
- goto l00402900;
- }
- Mem90[0x0040F9C0:word32] = eax_210;
- Mem91[4258220:word32] = esi_37;
- word32 ecx_456 = eax_210 + 0x0800;
- while (eax_210 <u ecx_456)
- {
- Mem442[eax_210 + 0x04:byte] = 0x00;
- Mem444[eax_210 + 0x00:word32] = Mem442[eax_210 + 0x00:word32] | ~0x00;
- Mem446[eax_210 + 0x05:byte] = 0x0A;
- Mem447[eax_210 + 0x08:word32] = edi_38;
- Mem448[eax_210 + 0x24:byte] = 0x00;
- Mem449[eax_210 + 0x25:byte] = 0x0A;
- Mem450[eax_210 + 0x26:byte] = 0x0A;
- Mem451[eax_210 + 0x38:word32] = edi_38;
- Mem452[eax_210 + 0x34:byte] = 0x00;
- eax_210 = eax_210 + 0x40;
- ecx_456 = Mem452[0x0040F9C0:word32] + 0x0800;
- }
- if (Mem91[ebp_112 - 0x32 + 0x00:word16] != 0x00)
- {
- word32 eax_251 = Mem91[ebp_112 - 0x30 + 0x00:word32];
- if (eax_251 == edi_38)
- goto l00402844;
- word32 edi_255 = Mem91[eax_251 + 0x00:word32];
- Mem259[ebp_112 - 0x1C + 0x00:word32] = eax_251 + 0x04 + edi_255;
- word32 ebx_257 = eax_251 + 0x04;
- if (edi_255 >= 0x0800)
- edi_255 = 0x0800;
- Mem265[ebp_112 - 0x20 + 0x00:word32] = 0x01;
- while (Mem265[4258220:word32] < edi_255)
- {
- word32 esp_381 = esp_109 - 0x04;
- Mem382[esp_381 + 0x00:word32] = 0x40;
- Mem384[esp_381 - 0x04 + 0x00:word32] = 0x20;
- word32 edx_386;
- word32 esi_389;
- word128 xmm0_391;
- word32 eax_385;
- fn004048DF(ebx_257, edi_255, es, ds, out eax_385, out edx_386, out ebx_257, out ebp_112, out esi_389, out edi_255, out xmm0_391);
- esp_109 = esp_381 + 0x04;
- if (eax_385 == 0x00)
- {
- edi_255 = Mem384[4258220:word32];
- break;
- }
- word32 ecx_401 = Mem384[ebp_112 - 0x20 + 0x00:word32] * 0x04 + 0x0040F9C0;
- Mem402[ecx_401 + 0x00:word32] = eax_385;
- Mem404[4258220:word32] = Mem402[4258220:word32] + 0x20;
- word32 edx_406 = eax_385 + 0x0800;
- while (eax_385 <u edx_406)
- {
- Mem416[eax_385 + 0x04:byte] = 0x00;
- Mem418[eax_385 + 0x00:word32] = Mem416[eax_385 + 0x00:word32] | ~0x00;
- Mem420[eax_385 + 0x05:byte] = 0x0A;
- Mem422[eax_385 + 0x08:word32] = Mem420[eax_385 + 0x08:word32] & 0x00;
- Mem425[eax_385 + 0x24:byte] = Mem422[eax_385 + 0x24:byte] & 0x80;
- Mem427[eax_385 + 0x25:byte] = 0x0A;
- Mem428[eax_385 + 0x26:byte] = 0x0A;
- Mem430[eax_385 + 0x38:word32] = Mem428[eax_385 + 0x38:word32] & 0x00;
- Mem432[eax_385 + 0x34:byte] = 0x00;
- eax_385 = eax_385 + 0x40;
- edx_406 = Mem432[ecx_401 + 0x00:word32] + esi_389;
- }
- Mem414[ebp_112 - 0x20 + 0x00:word32] = Mem404[ebp_112 - 0x20 + 0x00:word32] + 0x01;
- }
- Mem295[ebp_112 - 0x20 + 0x00:word32] = Mem265[ebp_112 - 0x20 + 0x00:word32] & 0x00;
- if (edi_255 > 0x00)
- {
- l004027D7:
- word32 ecx_309 = Mem295[Mem295[ebp_112 - 0x1C + 0x00:word32] + 0x00:word32];
- if (ecx_309 != ~0x00 && ecx_309 != ~0x01)
- {
- byte al_332 = Mem295[ebx_257 + 0x00:byte];
- if ((al_332 & 0x01) == 0x00)
- goto l00402837;
- if ((al_332 & 0x08) == 0x00)
- {
- word32 esp_374 = esp_109 - 0x04;
- Mem375[esp_374 + 0x00:word32] = ecx_309;
- esp_109 = esp_374 + 0x04;
- if (GetFileType(Mem375[esp_374 + 0x00:HANDLE]) == 0x00)
- goto l00402837;
- }
- word32 esi_341 = Mem295[ebp_112 - 0x20 + 0x00:word32];
- word32 esi_346 = ((esi_341 & 0x1F) << 0x06) + 0x0040F9C0[(esi_341 >> 0x05) * 0x04];
- Mem350[esi_346 + 0x00:word32] = Mem295[Mem295[ebp_112 - 0x1C + 0x00:word32] + 0x00:word32];
- Mem352[esi_346 + 0x04:byte] = Mem350[ebx_257 + 0x00:byte];
- word32 esp_353 = esp_109 - 0x04;
- Mem354[esp_353 + 0x00:word32] = 4000;
- Mem357[esp_353 - 0x04 + 0x00:word32] = esi_346 + 0x0C;
- word32 esi_360;
- eax_210 = fn0040605C(ebx_257, esi_346, edi_255, out ebx_257, out ebp_112, out esi_360, out edi_255);
- esp_109 = esp_353 + 0x04;
- if (eax_210 == 0x00)
- goto l004028FD;
- Mem372[esi_360 + 0x08:word32] = Mem357[esi_360 + 0x08:word32] + 0x01;
- }
- l00402837:
- Mem324[ebp_112 - 0x20 + 0x00:word32] = Mem295[ebp_112 - 0x20 + 0x00:word32] + 0x01;
- Mem327[ebp_112 - 0x1C + 0x00:word32] = Mem324[ebp_112 - 0x1C + 0x00:word32] + 0x04;
- ebx_257 = ebx_257 + 0x01;
- if (Mem327[ebp_112 - 0x20 + 0x00:word32] < edi_255)
- goto l004027D7;
- goto l00402844;
- }
- }
- l00402844:
- word32 ebx_116 = 0x00;
- l00402846:
- word32 esi_130 = (ebx_116 << 0x06) + Mem91[0x0040F9C0:word32];
- word32 eax_131 = Mem91[esi_130 + 0x00:word32];
- if (eax_131 != ~0x00 && eax_131 != ~0x01)
- {
- Mem248[esi_130 + 0x04:byte] = Mem91[esi_130 + 0x04:byte] | 0x80;
- goto l004028D5;
- }
- word32 eax_164;
- Mem159[esi_130 + 0x04:byte] = 0x81;
- if (ebx_116 == 0x00)
- {
- word32 esp_232 = esp_109 - 0x04;
- Mem233[esp_232 + 0x00:word32] = ~0x09;
- eax_164 = Mem233[esp_232 + 0x00:word32];
- esp_109 = esp_232 + 0x04;
- }
- else
- eax_164 = 0x00 - (0x01 - ebx_116 == 0x00) + ~0x0A;
- word32 esp_167 = esp_109 - 0x04;
- Mem168[esp_167 + 0x00:word32] = eax_164;
- word32 eax_169 = GetStdHandle(Mem168[esp_167 + 0x00:DWORD]);
- esp_109 = esp_167 + 0x04;
- if (eax_169 != ~0x00 && eax_169 != 0x00)
- {
- Mem188[esp_167 + 0x00:word32] = eax_169;
- word32 eax_189 = GetFileType(Mem188[esp_167 + 0x00:HANDLE]);
- esp_109 = esp_167 + 0x04;
- if (eax_189 != 0x00)
- {
- Mem195[esi_130 + 0x00:word32] = eax_169;
- if ((eax_189 & 0xFF) == 0x02)
- Mem223[esi_130 + 0x04:byte] = Mem195[esi_130 + 0x04:byte] | 0x40;
- else if ((eax_189 & 0xFF) == 0x03)
- Mem229[esi_130 + 0x04:byte] = Mem195[esi_130 + 0x04:byte] | 0x08;
- Mem202[esp_167 + 0x00:word32] = 4000;
- Mem205[esp_167 - 0x04 + 0x00:word32] = esi_130 + 0x0C;
- word32 esi_208;
- word32 edi_209;
- eax_210 = fn0040605C(ebx_116, esi_130, eax_169, out ebx_116, out ebp_112, out esi_208, out edi_209);
- esp_109 = esp_167 + 0x04;
- if (eax_210 == 0x00)
- goto l004028FD;
- Mem220[esi_208 + 0x08:word32] = Mem205[esi_208 + 0x08:word32] + 0x01;
- l004028D5:
- ebx_116 = ebx_116 + 0x01;
- if (ebx_116 < 0x03)
- goto l00402846;
- word32 esp_150 = esp_109 - 0x04;
- Mem151[esp_150 + 0x00:word32] = Mem91[4258220:word32];
- SetHandleCount(Mem151[esp_150 + 0x00:UINT]);
- eax_154 = 0x00;
- l00402900:
- word32 ebp_66;
- word32 esi_67;
- word32 edi_68;
- word32 ebx_69;
- *ebxOut = fn00402F65(ebp_112, 0x54, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_66, out esi_67, out edi_68);
- return eax_154;
- }
- }
- Mem180[esi_130 + 0x04:byte] = Mem168[esi_130 + 0x04:byte] | 0x40;
- Mem183[esi_130 + 0x00:word32] = ~0x01;
- goto l004028D5;
- }
- word32 fn00402906(word32 dwArg00, word32 dwArg04, ptr32 & ediOut)
- {
- word32 edi_11 = 0x0040B560;
- if (false)
- do
- {
- word32 eax_37 = Mem0[edi_11 + 0x00:word32];
- if (eax_37 != 0x00)
- {
- word32 esp_50;
- word32 esi_52;
- word32 eax_53;
- byte SCZO_54;
- byte C_55;
- byte SZO_56;
- byte Z_57;
- eax_37();
- }
- edi_11 = edi_11 + 0x04;
- } while (edi_11 <u 0x0040B560);
- return esi;
- word32 edi_26;
- *ediOut = dwArg00;
- return dwArg04;
- }
- word32 fn00402952(word32 ebp, word32 dwArg04)
- {
- word32 eax_122;
- word32 esp_109 = fp - 0x08;
- if (TlsGetValue(Mem0[4248212:word32]) != 0x00 && Mem0[4248208:word32] != ~0x00)
- {
- word32 dwLoc10_106 = Mem0[4248212:word32];
- word32 eax_107 = TlsGetValue(dwLoc10_106);
- word32 edi_110;
- word32 ebp_111;
- word32 esi_112;
- word32 eax_113;
- byte SZO_114;
- byte C_115;
- byte Z_116;
- byte SCZO_117;
- word32 ecx_118;
- eax_107();
- if (eax_113 != 0x00)
- {
- eax_122 = Mem0[eax_113 + 0x01F8:word32];
- goto l004029B2;
- }
- }
- word32 esp_72 = esp_109 - 0x04;
- Mem73[esp_72 + 0x00:word32] = 4237444;
- word32 eax_74 = GetModuleHandleW(Mem73[esp_72 + 0x00:LPCWSTR]);
- word32 esp_75 = esp_72 + 0x04;
- if (eax_74 == 0x00)
- {
- Mem92[esp_72 + 0x00:word32] = 4237444;
- eax_74 = fn00401B6C(dwArg00);
- esp_75 = esp_72 + 0x04;
- if (eax_74 == 0x00)
- return dwArg04;
- }
- word32 esp_85 = esp_75 - 0x04;
- Mem86[esp_85 + 0x00:word32] = 0x0040A874;
- Mem88[esp_85 - 0x04 + 0x00:word32] = eax_74;
- eax_122 = GetProcAddress(Mem88[esp_85 - 0x04 + 0x00:HMODULE], Mem88[esp_85 + 0x00:LPCSTR]);
- esp_109 = esp_85 + 0x04;
- l004029B2:
- if (eax_122 != 0x00)
- {
- word32 esp_51 = esp_109 - 0x04;
- Mem52[esp_51 + 0x00:word32] = dwArg04;
- word32 esp_53;
- word32 edi_54;
- word32 ebp_55;
- word32 esi_56;
- word32 eax_57;
- byte SZO_58;
- byte C_59;
- byte Z_60;
- byte SCZO_61;
- word32 ecx_62;
- eax_122();
- dwArg04 = eax_57;
- }
- return dwArg04;
- }
- word32 fn004029C4(word32 ebp, ptr32 & ebpOut, ptr32 & esiOut)
- {
- *ebpOut = ebp;
- *esiOut = esi;
- return fn00402952(ebp, 0x00);
- }
- word32 fn004029CD(word32 ebp, word32 dwArg04)
- {
- word32 eax_122;
- word32 esp_109 = fp - 0x08;
- if (TlsGetValue(Mem0[4248212:word32]) != 0x00 && Mem0[4248208:word32] != ~0x00)
- {
- word32 dwLoc10_106 = Mem0[4248212:word32];
- word32 eax_107 = TlsGetValue(dwLoc10_106);
- word32 edi_110;
- word32 ebp_111;
- word32 esi_112;
- word32 eax_113;
- byte SZO_114;
- byte C_115;
- byte Z_116;
- byte SCZO_117;
- word32 ecx_118;
- eax_107();
- if (eax_113 != 0x00)
- {
- eax_122 = Mem0[eax_113 + 0x01FC:word32];
- goto l00402A2D;
- }
- }
- word32 esp_72 = esp_109 - 0x04;
- Mem73[esp_72 + 0x00:word32] = 4237444;
- word32 eax_74 = GetModuleHandleW(Mem73[esp_72 + 0x00:LPCWSTR]);
- word32 esp_75 = esp_72 + 0x04;
- if (eax_74 == 0x00)
- {
- Mem92[esp_72 + 0x00:word32] = 4237444;
- eax_74 = fn00401B6C(dwArg00);
- esp_75 = esp_72 + 0x04;
- if (eax_74 == 0x00)
- return dwArg04;
- }
- word32 esp_85 = esp_75 - 0x04;
- Mem86[esp_85 + 0x00:word32] = 0x0040A8A0;
- Mem88[esp_85 - 0x04 + 0x00:word32] = eax_74;
- eax_122 = GetProcAddress(Mem88[esp_85 - 0x04 + 0x00:HMODULE], Mem88[esp_85 + 0x00:LPCSTR]);
- esp_109 = esp_85 + 0x04;
- l00402A2D:
- if (eax_122 != 0x00)
- {
- word32 esp_51 = esp_109 - 0x04;
- Mem52[esp_51 + 0x00:word32] = dwArg04;
- word32 esp_53;
- word32 edi_54;
- word32 ebp_55;
- word32 esi_56;
- word32 eax_57;
- byte SZO_58;
- byte C_59;
- byte Z_60;
- byte SCZO_61;
- word32 ecx_62;
- eax_122();
- dwArg04 = eax_57;
- }
- return dwArg04;
- }
- word32 fn00402A48(word32 ebp, ptr32 & ebpOut)
- {
- *ebpOut = ebp;
- word32 eax_10 = TlsGetValue(Mem0[4248212:word32]);
- word32 esi_12 = eax_10;
- if (eax_10 == 0x00)
- {
- word32 eax_28 = fn004029CD(ebp, Mem0[4252528:word32]);
- Mem33[fp - 0x08 + 0x00:word32] = eax_28;
- Mem35[fp - 0x0C + 0x00:word32] = Mem33[4248212:word32];
- TlsSetValue(Mem35[fp - 0x0C + 0x00:DWORD], Mem35[fp - 0x08 + 0x00:LPVOID]);
- esi_12 = eax_28;
- }
- return esi_12;
- }
- word32 fn00402A7C(word32 ebx, word32 ebp, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebpOut)
- {
- *ebpOut = ebp;
- word32 esp_1 = fp;
- if (Mem0[4248208:word32] != ~0x00)
- {
- word32 dwLoc08_180 = Mem0[4252536:word32];
- word32 eax_181 = fn004029CD(ebp, dwLoc08_180);
- word32 eax_185;
- byte SCZO_186;
- byte Z_187;
- word32 ecx_188;
- byte SZO_189;
- byte C_190;
- byte SO_194;
- word32 ebp_195;
- bool D_198;
- word32 edx_199;
- word128 xmm0_200;
- eax_181();
- Mem202[4248208:word32] = Mem0[4248208:word32] | ~0x00;
- }
- word32 eax_37 = Mem0[4248212:word32];
- if (eax_37 != ~0x00)
- {
- word32 esp_169 = esp_1 - 0x04;
- Mem170[esp_169 + 0x00:word32] = eax_37;
- TlsFree(Mem170[esp_169 + 0x00:DWORD]);
- Mem174[4248212:word32] = Mem170[4248212:word32] | ~0x00;
- esp_1 = esp_169 + 0x04;
- }
- word32 esp_45 = esp_1 - 0x04;
- Mem46[esp_45 + 0x00:word32] = ebx;
- Mem49[esp_45 - 0x04 + 0x00:word32] = esi;
- Mem52[esp_45 - 0x08 + 0x00:word32] = edi;
- word32 ebx_117 = DeleteCriticalSection;
- word32 esi_159 = 0x0040DB70;
- word32 esp_168 = esp_45 - 0x08;
- do
- {
- word32 edi_64 = Mem52[esi_159 + 0x00:word32];
- if (edi_64 != 0x00 && Mem52[esi_159 + 0x04:word32] != 0x01)
- {
- word32 esp_150 = esp_168 - 0x04;
- Mem151[esp_150 + 0x00:word32] = edi_64;
- DeleteCriticalSection(Mem151[esp_150 + 0x00:LPCRITICAL_SECTION]);
- Mem154[esp_150 + 0x00:word32] = edi_64;
- word32 eax_155;
- word32 edx_156;
- word32 ebp_158;
- word32 edi_160;
- word128 xmm0_161;
- fn004047EB(ebx_117, esi_159, edi_64, es, ds, out eax_155, out edx_156, out ebx_117, out ebp_158, out esi_159, out edi_160, out xmm0_161);
- Mem164[esi_159 + 0x00:word32] = Mem154[esi_159 + 0x00:word32] & 0x00;
- esp_168 = esp_150 + 0x04;
- }
- esi_159 = esi_159 + 0x08;
- } while (esi_159 < 0x0040DC90);
- word32 esi_116 = 0x0040DB70;
- word32 esp_118 = esp_168 + 0x04;
- do
- {
- word32 eax_100 = Mem52[esi_116 + 0x00:word32];
- if (eax_100 != 0x00 && Mem52[esi_116 + 0x04:word32] == 0x01)
- {
- word32 esp_129 = esp_118 - 0x04;
- Mem130[esp_129 + 0x00:word32] = eax_100;
- word32 eax_132;
- byte SCZO_133;
- byte Z_134;
- word32 ecx_135;
- byte SZO_136;
- byte C_137;
- word32 edi_138;
- byte SO_141;
- word32 ebp_142;
- selector es_143;
- selector ds_144;
- bool D_145;
- word32 edx_146;
- word128 xmm0_147;
- ebx_117();
- }
- esi_116 = esi_116 + 0x08;
- } while (esi_116 < 0x0040DC90);
- return Mem52[esp_118 + 0x04:word32];
- }
- bool fn00402AB9(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B5D8, 0x0C, out ebp_10);
- Mem14[fp - 0x0C + 0x00:word32] = 4237444;
- word32 eax_115 = GetModuleHandleW(Mem14[fp - 0x0C + 0x00:LPCWSTR]);
- word32 esp_111 = fp - 0x08;
- if (eax_115 == 0x00)
- {
- Mem114[fp - 0x0C + 0x00:word32] = 4237444;
- eax_115 = fn00401B6C(dwArg00);
- esp_111 = fp - 0x08;
- }
- Mem24[ebp_10 - 0x1C + 0x00:word32] = eax_115;
- word32 esi_25 = Mem24[ebp_10 + 0x08:word32];
- Mem26[esi_25 + 0x5C:word32] = 4237304;
- Mem29[esi_25 + 0x14:word32] = 0x01;
- if (eax_115 != 0x00)
- {
- word32 esp_98 = esp_111 - 0x04;
- Mem99[esp_98 + 0x00:word32] = 0x0040A874;
- Mem101[esp_98 - 0x04 + 0x00:word32] = eax_115;
- Mem105[esi_25 + 0x01F8:word32] = GetProcAddress(Mem101[esp_98 - 0x04 + 0x00:HMODULE], Mem101[esp_98 + 0x00:LPCSTR]);
- Mem107[esp_98 + 0x00:word32] = 0x0040A8A0;
- Mem109[esp_98 - 0x04 + 0x00:word32] = Mem107[ebp_10 - 0x1C + 0x00:word32];
- Mem112[esi_25 + 0x01FC:word32] = GetProcAddress(Mem109[esp_98 - 0x04 + 0x00:HMODULE], Mem109[esp_98 + 0x00:LPCSTR]);
- ebx = GetProcAddress;
- esp_111 = esp_98 + 0x04;
- }
- Mem35[esi_25 + 0x70:word32] = 0x01;
- Mem36[esi_25 + 200:byte] = 0x43;
- Mem37[esi_25 + 331:byte] = 0x43;
- Mem38[esi_25 + 0x68:word32] = 4248864;
- word32 esp_39 = esp_111 - 0x04;
- Mem40[esp_39 + 0x00:word32] = 0x0D;
- word32 edx_44;
- word32 ebx_45;
- word128 xmm0_46;
- fn00405B56(ebx, 0x01, es, ds, dwArg00, out edx_44, out ebx_45, out xmm0_46);
- Mem51[ebp_10 - 0x04 + 0x00:word32] = Mem40[ebp_10 - 0x04 + 0x00:word32] & 0x00;
- Mem55[esp_39 + 0x00:word32] = Mem51[esi_25 + 0x68:word32];
- InterlockedIncrement(Mem55[esp_39 + 0x00:(ptr LONG)]);
- Mem58[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn00402B8E();
- Mem60[esp_39 + 0x00:word32] = 0x0C;
- word32 edx_61;
- word32 ebx_62;
- word128 xmm0_63;
- bool D_64 = fn00405B56(ebx_45, 0x01, es, ds, dwArg00, out edx_61, out ebx_62, out xmm0_63);
- Mem67[ebp_10 - 0x04 + 0x00:word32] = 0x01;
- word32 eax_68 = Mem67[ebp_10 + 0x0C:word32];
- Mem69[esi_25 + 0x6C:word32] = eax_68;
- if (eax_68 == 0x00)
- Mem97[esi_25 + 0x6C:word32] = Mem69[4250408:word32];
- Mem75[esp_39 + 0x00:word32] = Mem69[esi_25 + 0x6C:word32];
- word32 ebp_76;
- word32 esi_77;
- word32 edi_78;
- fn0040460F(dwArg00, out ebp_76, out esi_77, out edi_78);
- Mem82[ebp_76 - 0x04 + 0x00:word32] = ~0x01;
- fn00402B97();
- word32 ebp_86;
- word32 esi_87;
- word32 edi_88;
- word32 ebx_89;
- *ebxOut = fn00402F65(ebp_76, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_86, out esi_87, out edi_88);
- return D_64;
- }
- void fn00402B8E()
- {
- fn00405A7C(0x0D);
- return;
- }
- void fn00402B97()
- {
- fn00405A7C(0x0C);
- return;
- }
- bool fn00402BA0(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- GetLastError();
- word32 ebp_15;
- word32 eax_16 = fn00402A48(ebp, out ebp_15);
- word32 esi_19;
- word32 eax_20;
- byte SZO_21;
- byte C_22;
- byte Z_23;
- word32 ecx_24;
- word32 ebx_26;
- word32 ebp_27;
- selector es_28;
- selector ds_29;
- word32 edx_30;
- word128 xmm0_31;
- bool D_123;
- word32 edi_121;
- word32 esp_127;
- eax_16();
- word32 esi_120 = eax_20;
- if (eax_20 == 0x00)
- {
- Mem66[esp_127 - 0x04 + 0x00:word32] = 0x0214;
- Mem68[esp_127 - 0x08 + 0x00:word32] = 0x01;
- word32 eax_69;
- word32 edx_70;
- word32 ebx_71;
- word32 ebp_72;
- word32 esi_73;
- word128 xmm0_75;
- D_123 = fn004048DF(ebx_26, edi_121, es_28, ds_29, out eax_69, out edx_70, out ebx_71, out ebp_72, out esi_73, out edi_121, out xmm0_75);
- esi_120 = eax_69;
- if (eax_69 != 0x00)
- {
- Mem86[esp_127 - 0x04 + 0x00:word32] = eax_69;
- Mem88[esp_127 - 0x08 + 0x00:word32] = Mem86[4248208:word32];
- Mem90[esp_127 - 0x0C + 0x00:word32] = Mem88[4252532:word32];
- word32 eax_92 = fn004029CD(ebp_72, dwArg00);
- word32 esp_95;
- word32 edi_96;
- word32 esi_97;
- word32 eax_98;
- byte SZO_99;
- byte C_100;
- byte Z_101;
- word32 ecx_102;
- bool D_103;
- word32 ebx_104;
- word32 ebp_105;
- selector es_106;
- selector ds_107;
- word32 edx_108;
- word128 xmm0_109;
- eax_92();
- if (eax_98 != 0x00)
- {
- Mem114[esp_95 - 0x04 + 0x00:word32] = 0x00;
- Mem116[esp_95 - 0x08 + 0x00:word32] = esi_97;
- word32 edx_117;
- word32 ebx_118;
- word32 ebp_119;
- word128 xmm0_122;
- D_123 = fn00402AB9(ebx_104, esi_97, edi_96, es_106, ds_107, out edx_117, out ebx_118, out ebp_119, out esi_120, out edi_121, out xmm0_122);
- word32 eax_128 = GetCurrentThreadId();
- Mem130[esi_120 + 0x04:word32] = Mem116[esi_120 + 0x04:word32] | ~0x00;
- Mem133[esi_120 + 0x00:word32] = eax_128;
- esp_127 = esp_95;
- }
- else
- {
- Mem135[esp_95 - 0x04 + 0x00:word32] = esi_97;
- word32 eax_136;
- word32 edx_137;
- word32 ebx_138;
- word32 ebp_139;
- word32 esi_140;
- word128 xmm0_142;
- D_123 = fn004047EB(ebx_104, esi_97, edi_96, es_106, ds_107, out eax_136, out edx_137, out ebx_138, out ebp_139, out esi_140, out edi_121, out xmm0_142);
- esp_127 = esp_95;
- esi_120 = 0x00;
- }
- }
- }
- word32 esp_50 = esp_127 - 0x04;
- Mem51[esp_50 + 0x00:word32] = edi_121;
- SetLastError(Mem51[esp_50 + 0x00:DWORD]);
- word32 edi_53;
- *ediOut = Mem51[esp_50 + 0x04:word32];
- word32 eax_55;
- *eaxOut = esi_120;
- word32 esi_56;
- *esiOut = Mem51[esp_50 + 0x08:word32];
- return D_123;
- }
- word32 fn00402C19(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & xmm0Out)
- {
- word32 eax_11;
- word32 ebx_13;
- word32 ebp_14;
- word32 esi_15;
- word32 edi_16;
- word128 xmm0_17;
- word32 edx_12;
- fn00402BA0(ebx, ebp, esi, es, ds, out eax_11, out edx_12, out ebx_13, out ebp_14, out esi_15, out edi_16, out xmm0_17);
- if (eax_11 == 0x00)
- {
- Mem39[fp - 0x08 + 0x00:word32] = 0x10;
- word32 eax_40;
- word32 ebx_42;
- word32 esi_43;
- word128 xmm0_44;
- fn00401B9C(ebx_13, ebp_14, es, ds, out eax_40, out edx_12, out ebx_42, out esi_43, out xmm0_44);
- }
- return edx_12;
- }
- word32 fn00402D62(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut)
- {
- fn00402D62_entry:
- def ds
- def es
- def ebx
- def ebp
- def dwArg00
- esi_9 = 4237444
- eax_12 = GetModuleHandleW(4237444)
- branch eax_12 != 0x00 l00402D7D
- goto l00402D76
- l00402D62:
- l00402D76:
- dwLoc0C_299 = 4237444
- eax_300 = fn00401B6C(4237444)
- l00402D7D:
- eax_20 = PHI(eax_12, eax_300)
- edi_22 = eax_20
- branch eax_20 == 0x00 l00402EE5
- l00402D87:
- dwLoc10_100 = eax_20
- eax_101 = GetProcAddress(eax_20, 0x0040A8D0)
- dwLoc10_106 = eax_20
- Mem107[4252524:word32] = eax_101
- eax_108 = GetProcAddress(eax_20, 0x0040A8C4)
- dwLoc10_113 = eax_20
- Mem114[4252528:word32] = eax_108
- eax_115 = GetProcAddress(eax_20, 0x0040A8B8)
- dwLoc10_120 = eax_20
- Mem121[4252532:word32] = eax_115
- eax_122 = GetProcAddress(eax_20, 0x0040A8B0)
- esi_126 = TlsSetValue
- Mem127[4252536:word32] = eax_122
- branch Mem121[4252524:word32] == 0x00 || (Mem127[4252528:word32] == 0x00 || (Mem127[4252532:word32] == 0x00 || eax_122 == 0x00)) l00402DE6
- goto l00402E0A
- l00402DD0:
- l00402DD9:
- l00402DE2:
- l00402DE6:
- eax_285 = TlsGetValue
- Mem286[4252528:word32] = TlsGetValue
- eax_287 = TlsFree
- Mem288[4252524:word32] = 0x00402A3F
- Mem289[4252532:word32] = TlsSetValue
- Mem290[4252536:word32] = TlsFree
- l00402E0A:
- eax_130 = TlsAlloc()
- Mem131[4248212:word32] = eax_130
- branch eax_130 == ~0x00 l00402EEA
- l00402E1E:
- eax_141 = TlsSetValue(Mem0[esp + 0x00:DWORD], Mem0[esp + 0x04:LPVOID])
- branch eax_141 == 0x00 l00402EEA
- l00402E2F:
- ebp_157 = fn00401E56(ebp_148, esi_140)
- esp_158 = esp_138 - 0x04
- Mem159[esp_138 - 0x04 + 0x00:word32] = Mem131[4252524:word32]
- eax_161 = fn00402952(ebp_157, dwArg00)
- esp_162 = esp_138 - 0x08
- Mem163[esp_138 - 0x08 + 0x00:word32] = Mem159[4252528:word32]
- Mem164[4252524:word32] = eax_161
- eax_165 = fn00402952(ebp_157, dwArg00)
- esp_166 = esp_138 - 0x0C
- Mem167[esp_138 - 0x0C + 0x00:word32] = Mem164[4252532:word32]
- Mem168[4252528:word32] = eax_165
- eax_169 = fn00402952(ebp_157, dwArg00)
- esp_170 = esp_138 - 0x10
- Mem171[esp_138 - 0x10 + 0x00:word32] = Mem168[4252536:word32]
- Mem172[4252532:word32] = eax_169
- eax_173 = fn00402952(ebp_157, dwArg00)
- esp_174 = esp_138
- Mem176[4252536:word32] = eax_173
- eax_179 = fn004059DA(ebx_147, out ebx_177, out ebp_178)
- branch eax_179 == 0x00 l00402EE5
- l00402E80:
- esp_183 = esp_138 - 0x04
- Mem184[esp_138 - 0x04 + 0x00:word32] = 0x00402C33
- esp_185 = esp_138 - 0x08
- Mem186[esp_138 - 0x08 + 0x00:word32] = Mem184[4252524:word32]
- eax_187 = fn004029CD(ebp_178, dwArg00)
- call eax_187 (retsize: 4; depth: 4)
- uses: C_182,D_151,ds_150,dwLoc04_6,dwLoc08_8,dwLoc0C_135,dwLoc10_137,eax_187,ebp_178,ebx_177,ecx_188,edi_139,edx_152,es_149,esi_140,esp_189,SCZO_175,SZO_180,xmm0_153,Z_181
- defs: C_195,D_203,ds_202,eax_193,ebp_200,ebx_199,ecx_197,edi_191,edx_204,es_201,esi_192,esp_190,SCZO_198,SZO_194,xmm0_205,Z_196
- Mem206[4248208:word32] = eax_193
- branch eax_193 == ~0x00 l00402EE5
- l00402E9D:
- esp_209 = esp_190 - 0x04
- Mem210[esp_190 - 0x04 + 0x00:word32] = 0x0214
- esp_211 = esp_190 - 0x08
- Mem212[esp_190 - 0x08 + 0x00:word32] = 0x01
- D_220 = fn004048DF(ebx_199, edi_191, es_201, ds_202, out eax_213, out edx_214, out ebx_215, out ebp_216, out esi_217, out edi_218, out xmm0_219)
- esi_221 = eax_213
- esp_223 = esp_190 - 0x04
- esp_225 = esp_190
- branch eax_213 == 0x00 l00402EE5
- l00402EB1:
- esp_229 = esp_190 - 0x04
- Mem230[esp_190 - 0x04 + 0x00:word32] = eax_213
- esp_231 = esp_190 - 0x08
- Mem232[esp_190 - 0x08 + 0x00:word32] = Mem230[4248208:word32]
- esp_233 = esp_190 - 0x0C
- Mem234[esp_190 - 0x0C + 0x00:word32] = Mem232[4252532:word32]
- eax_235 = fn004029CD(ebp_216, dwArg00)
- call eax_235 (retsize: 4; depth: 4)
- uses: C_228,D_220,ds_202,dwLoc04_6,dwLoc08_8,dwLoc0C_135,dwLoc10_137,eax_235,ebp_216,ebx_215,ecx_236,edi_218,edx_214,es_201,esi_221,esp_237,SCZO_207,SZO_226,xmm0_219,Z_227
- defs: C_243,D_251,ds_250,eax_241,ebp_248,ebx_247,ecx_245,edi_239,edx_252,es_249,esi_240,esp_238,SCZO_246,SZO_242,xmm0_253,Z_244
- branch eax_241 == 0x00 l00402EE5
- l00402ECA:
- esp_257 = esp_238 - 0x04
- Mem258[esp_238 - 0x04 + 0x00:word32] = 0x00
- esp_259 = esp_238 - 0x08
- Mem260[esp_238 - 0x08 + 0x00:word32] = esi_240
- fn00402AB9(ebx_247, esi_240, edi_239, es_249, ds_250, out edx_261, out ebx_262, out ebp_263, out esi_264, out edi_265, out xmm0_266)
- eax_272 = GetCurrentThreadId()
- v11_273 = Mem260[esi_264 + 0x04:word32] | ~0x00
- Mem274[esi_264 + 0x04:word32] = v11_273
- Mem276[esi_264 + 0x00:word32] = eax_272
- eax_279 = 0x01
- goto l00402EEC
- l00402EE5:
- ds_78 = PHI(ds, ds_150, ds_202, ds_202, ds_250)
- es_79 = PHI(es, es_149, es_201, es_201, es_249)
- ebx_83 = PHI(ebx, ebx_177, ebx_199, ebx_215, ebx_247)
- ebp_84 = PHI(ebp, ebp_178, ebp_200, ebp_216, ebp_248)
- edi_91 = PHI(edi_22, edi_139, edi_191, edi_218, edi_239)
- esi_92 = PHI(esi_9, esi_140, esi_192, esi_221, esi_240)
- ebx_95 = fn00402A7C(ebx_83, ebp_84, esi_92, edi_91, es_79, ds_78, out ebp_94)
- l00402EEA:
- ebx_65 = PHI(ebx_95, ebx, ebx_147)
- ebp_66 = PHI(ebp_94, ebp, ebp_148)
- eax_73 = 0x00
- l00402EEC:
- ebx_42 = PHI(ebx_65, ebx_262)
- ebp_43 = PHI(ebp_66, ebp_263)
- eax_48 = PHI(eax_73, eax_279)
- return eax_48
- fn00402D62_exit:
- use ebx_42 (=> ebxOut)
- use ebp_43 (=> ebpOut)
- }
- word32 fn00402EEF(word32 dwArg04)
- {
- word32 eax_20 = HeapCreate((word32) (dwArg04 == 0x00), 0x1000, 0x00);
- Mem23[4252540:word32] = eax_20;
- if (eax_20 != 0x00)
- {
- Mem40[0x0040F9A8:word32] = 0x01;
- return 0x01;
- }
- else
- return eax_20;
- }
- word32 fn00402F20(word32 ebx, word32 esi, word32 edi, word32 dwArg00, word32 dwArg04, word32 dwArg08, ptr32 & ebpOut)
- {
- word32 esp_13 = fp - 0x08 - dwArg08;
- Mem16[esp_13 - 0x04 + 0x00:word32] = ebx;
- Mem19[esp_13 - 0x08 + 0x00:word32] = esi;
- Mem22[esp_13 - 0x0C + 0x00:word32] = edi;
- Mem32[esp_13 - 0x10 + 0x00:word32] = Mem22[0x0040DB60:word32] ^ fp + 0x08;
- Mem36[esp_13 - 0x14 + 0x00:word32] = dwArg00;
- Mem41[fs:0x00:word32] = fp - 0x08;
- word32 ebp_12;
- *ebpOut = fp + 0x08;
- return fp - 0x08;
- }
- word32 fn00402F65(word32 ebp, word32 dwArg00, word32 dwArg04, word32 dwArg08, word32 dwArg0C, word32 dwArg10, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- Mem5[fs:0x00:word32] = Mem0[ebp - 0x10 + 0x00:word32];
- word32 ebp_22;
- *ebpOut = Mem5[ebp + 0x00:word32];
- Mem25[ebp + 0x00:word32] = dwArg00;
- word32 edi_14;
- *ediOut = dwArg08;
- word32 esi_17;
- *esiOut = dwArg0C;
- return dwArg10;
- }
- void fn0040310C()
- {
- word32 eax_10 = Mem0[0x0040DB60:word32];
- if (eax_10 != 0xBB40E64E && (eax_10 & 0xFFFF0000) != 0x00)
- Mem95[0x0040DB64:word32] = ~eax_10;
- else
- {
- GetSystemTimeAsFileTime(fp - 0x0C);
- word32 esi_59 = dwLoc08 & 0x00 ^ dwLoc0C & 0x00 ^ GetCurrentProcessId() ^ GetCurrentThreadId() ^ GetTickCount();
- QueryPerformanceCounter(fp - 0x14);
- word32 esi_69 = esi_59 ^ (dwLoc10 ^ dwLoc14);
- if (esi_69 == 0xBB40E64E)
- esi_69 = ~0x44BF19B0;
- else if ((esi_69 & 0xFFFF0000) == 0x00)
- esi_69 = esi_69 | esi_69 << 0x10;
- Mem77[0x0040DB60:word32] = esi_69;
- Mem79[0x0040DB64:word32] = ~esi_69;
- }
- return;
- }
- word32 fn004031A2(word32 ebx, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- word32 eax_111;
- word32 ebx_31;
- word128 xmm0_32;
- word32 eax_33 = fn004074B5(ebx, dwArg04, es, ds, dwArg04, out ebx_31, out xmm0_32);
- word32 edi_34 = edi | ~0x00;
- if (eax_33 != (edi | ~0x00))
- {
- Mem87[fp - 0x18 + 0x00:word32] = Mem0[fp + 0x10:word32];
- Mem90[fp - 0x1C + 0x00:word32] = fp - 0x08;
- Mem92[fp - 0x20 + 0x00:word32] = Mem90[fp - 0x0C + 0x00:word32];
- Mem94[fp - 0x24 + 0x00:word32] = eax_33;
- word32 eax_95 = SetFilePointer(Mem94[fp - 0x24 + 0x00:HANDLE], Mem94[fp - 0x20 + 0x00:LONG], Mem94[fp - 0x1C + 0x00:PLONG], Mem94[fp - 0x18 + 0x00:DWORD]);
- Mem97[fp - 0x0C + 0x00:word32] = eax_95;
- if (eax_95 == (edi | ~0x00))
- {
- word32 eax_114 = GetLastError();
- if (eax_114 != 0x00)
- {
- Mem119[fp - 0x18 + 0x00:word32] = eax_114;
- word32 edx_120;
- word32 ebx_121;
- word128 xmm0_122;
- fn004019A5(ebx_31, fp - 0x04, dwArg04, es, ds, out edx_120, out ebx_121, out xmm0_122);
- l004031D3:
- eax_111 = edi_34;
- word32 edx_74;
- *edxOut = edi_34;
- return eax_111;
- }
- }
- word32 eax_106 = 0x0040F9C0[(dwArg04 >> 0x05) * 0x04] + 0x04 + ((dwArg04 & 0x1F) << 0x06);
- Mem108[eax_106 + 0x00:byte] = Mem97[eax_106 + 0x00:byte] & ~0x02;
- eax_111 = Mem108[fp - 0x0C + 0x00:word32];
- word32 edx_112;
- *edxOut = Mem108[fp - 0x08 + 0x00:word32];
- return eax_111;
- }
- else
- {
- word32 eax_75;
- word32 edx_76;
- word32 ebx_77;
- word32 ebp_78;
- word32 esi_79;
- word128 xmm0_81;
- fn0040197F(ebx_31, fp - 0x04, dwArg04, es, ds, out eax_75, out edx_76, out ebx_77, out ebp_78, out esi_79, out edi_34, out xmm0_81);
- Mem83[eax_75 + 0x00:word32] = 0x09;
- goto l004031D3;
- }
- }
- word32 fn00403227(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 ebp_144;
- word32 esi_114;
- word32 eax_168;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B628, 0x14, out ebp_10);
- Mem13[ebp_10 - 0x24 + 0x00:word32] = esi | ~0x00;
- Mem14[ebp_10 - 0x20 + 0x00:word32] = esi | ~0x00;
- word32 eax_15 = Mem14[ebp_10 + 0x08:word32];
- if (eax_15 == ~0x01)
- {
- word32 edx_59;
- word32 ebx_60;
- word32 ebp_61;
- word32 esi_62;
- word32 edi_63;
- word128 xmm0_64;
- word32 eax_65 = fn00401992(ebx, ebp_10, esi | ~0x00, es, ds, out edx_59, out ebx_60, out ebp_61, out esi_62, out edi_63, out xmm0_64);
- Mem67[eax_65 + 0x00:word32] = Mem14[eax_65 + 0x00:word32] & 0x00;
- word32 eax_70;
- word32 edx_71;
- word32 ebx_72;
- word32 edi_75;
- word128 xmm0_76;
- fn0040197F(ebx_60, ebp_61, esi_62, es, ds, out eax_70, out edx_71, out ebx_72, out ebp_144, out esi_114, out edi_75, out xmm0_76);
- Mem78[eax_70 + 0x00:word32] = 0x09;
- }
- else
- {
- if (eax_15 >= 0x00 && eax_15 <u Mem14[4258220:word32])
- {
- word32 ebx_123 = (eax_15 >> 0x05) * 0x04 + 0x0040F9C0;
- word32 esi_126 = (eax_15 & 0x1F) << 0x06;
- if (((int32) Mem14[Mem14[ebx_123 + 0x00:word32] + 0x04 + esi_126:byte] & 0x01) == 0x00)
- {
- word32 edx_133;
- word32 ebx_134;
- word32 ebp_135;
- word32 esi_136;
- word32 edi_137;
- word128 xmm0_138;
- word32 eax_139 = fn00401992(ebx_123, ebp_10, esi_126, es, ds, out edx_133, out ebx_134, out ebp_135, out esi_136, out edi_137, out xmm0_138);
- Mem140[eax_139 + 0x00:word32] = edi_137;
- word32 eax_141;
- word32 edx_142;
- word32 ebx_143;
- word32 esi_145;
- word32 edi_146;
- word128 xmm0_147;
- fn0040197F(ebx_134, ebp_135, esi_136, es, ds, out eax_141, out edx_142, out ebx_143, out ebp_144, out esi_145, out edi_146, out xmm0_147);
- Mem149[eax_141 + 0x00:word32] = 0x09;
- Mem151[fp - 0x0C + 0x00:word32] = edi_146;
- Mem153[fp - 0x10 + 0x00:word32] = edi_146;
- Mem155[fp - 0x14 + 0x00:word32] = edi_146;
- Mem157[fp - 0x18 + 0x00:word32] = edi_146;
- Mem159[fp - 0x1C + 0x00:word32] = edi_146;
- word32 edx_160;
- word32 ebx_161;
- word32 esi_162;
- fn00401917(es, ds, xmm0_147, out edx_160, out ebx_161, out esi_162);
- word32 edx_165;
- *edxOut = edx_160 | ~0x00;
- eax_168 = edx_160 | ~0x00;
- }
- else
- {
- Mem170[fp - 0x0C + 0x00:word32] = eax_15;
- word32 ebx_171;
- word32 esi_173;
- word32 edi_174;
- fn0040752C(ebx_123, esi_126, 0x00, es, ds, out ebx_171, out ebp_144, out esi_173, out edi_174);
- Mem178[ebp_144 - 0x04 + 0x00:word32] = edi_174;
- if ((Mem178[Mem178[ebx_171 + 0x00:word32] + 0x04 + esi_173:byte] & 0x01) != 0x00)
- {
- Mem197[fp - 0x0C + 0x00:word32] = Mem178[ebp_144 + 0x14:word32];
- Mem199[fp - 0x10 + 0x00:word32] = Mem197[ebp_144 + 0x10:word32];
- Mem201[fp - 0x14 + 0x00:word32] = Mem199[ebp_144 + 0x0C:word32];
- Mem203[fp - 0x18 + 0x00:word32] = Mem201[ebp_144 + 0x08:word32];
- word32 edx_204;
- word32 ebx_205;
- word128 xmm0_206;
- Mem210[ebp_144 - 0x24 + 0x00:word32] = fn004031A2(ebx_171, es, ds, dwArg00, dwArg04, dwArg08, out edx_204, out ebx_205, out xmm0_206);
- Mem211[ebp_144 - 0x20 + 0x00:word32] = edx_204;
- }
- else
- {
- word32 eax_213;
- word32 edx_214;
- word32 ebx_215;
- word32 ebp_216;
- word32 esi_217;
- word32 edi_218;
- word128 xmm0_219;
- fn0040197F(ebx_171, ebp_144, esi_173, es, ds, out eax_213, out edx_214, out ebx_215, out ebp_216, out esi_217, out edi_218, out xmm0_219);
- Mem221[eax_213 + 0x00:word32] = 0x09;
- word32 edx_222;
- word32 ebx_223;
- word32 esi_225;
- word32 edi_226;
- word128 xmm0_227;
- word32 eax_228 = fn00401992(ebx_215, ebp_216, esi_217, es, ds, out edx_222, out ebx_223, out ebp_144, out esi_225, out edi_226, out xmm0_227);
- Mem229[eax_228 + 0x00:word32] = edi_226;
- Mem231[ebp_144 - 0x24 + 0x00:word32] = Mem229[ebp_144 - 0x24 + 0x00:word32] | ~0x00;
- Mem234[ebp_144 - 0x20 + 0x00:word32] = Mem231[ebp_144 - 0x20 + 0x00:word32] | ~0x00;
- }
- Mem193[ebp_144 - 0x04 + 0x00:word32] = ~0x01;
- fn00403336(ebp_144);
- eax_168 = Mem193[ebp_144 - 0x24 + 0x00:word32];
- word32 edx_195;
- *edxOut = Mem193[ebp_144 - 0x20 + 0x00:word32];
- }
- l00403330:
- word32 ebp_34;
- word32 esi_35;
- word32 edi_36;
- fn00402F65(ebp_144, 0x14, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_34, out esi_35, out edi_36);
- return eax_168;
- }
- word32 edx_85;
- word32 ebx_86;
- word32 ebp_87;
- word32 esi_88;
- word32 edi_89;
- word128 xmm0_90;
- word32 eax_91 = fn00401992(ebx, ebp_10, esi | ~0x00, es, ds, out edx_85, out ebx_86, out ebp_87, out esi_88, out edi_89, out xmm0_90);
- Mem92[eax_91 + 0x00:word32] = edi_89;
- word32 eax_93;
- word32 edx_94;
- word32 ebx_95;
- word32 esi_97;
- word32 edi_98;
- word128 xmm0_99;
- fn0040197F(ebx_86, ebp_87, esi_88, es, ds, out eax_93, out edx_94, out ebx_95, out ebp_144, out esi_97, out edi_98, out xmm0_99);
- Mem101[eax_93 + 0x00:word32] = 0x09;
- Mem103[fp - 0x0C + 0x00:word32] = edi_98;
- Mem105[fp - 0x10 + 0x00:word32] = edi_98;
- Mem107[fp - 0x14 + 0x00:word32] = edi_98;
- Mem109[fp - 0x18 + 0x00:word32] = edi_98;
- Mem111[fp - 0x1C + 0x00:word32] = edi_98;
- word32 edx_112;
- word32 ebx_113;
- fn00401917(es, ds, xmm0_99, out edx_112, out ebx_113, out esi_114);
- }
- eax_168 = esi_114;
- word32 edx_55;
- *edxOut = esi_114;
- goto l00403330;
- }
- void fn00403336(word32 ebp)
- {
- fn004075CC(Mem0[ebp + 0x08:word32]);
- return;
- }
- word32 fn00403340(word32 edx, word32 ebx, word32 ebp, word32 esi, word32 edi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & ebpOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- word32 eax_121;
- fn004077F0(6884, dwLoc08);
- Mem23[fp - 0x04 + 0x00:word32] = esi;
- word32 edi_102 = edi;
- word32 ebp_100 = fp - 0x04;
- word32 esp_120 = fp - 0x04;
- if (dwArg0C == 0x00)
- {
- eax_121 = 0x00;
- goto l00403A66;
- }
- if (dwArg08 == 0x00)
- {
- word32 edx_89;
- word32 ebx_90;
- word32 ebp_91;
- word32 esi_92;
- word32 edi_93;
- word128 xmm0_94;
- word32 eax_95 = fn00401992(ebx, fp - 0x04, 0x00, es, ds, out edx_89, out ebx_90, out ebp_91, out esi_92, out edi_93, out xmm0_94);
- Mem96[eax_95 + 0x00:word32] = esi_92;
- word32 eax_97;
- word32 edx_98;
- word32 ebx_99;
- word32 esi_101;
- word128 xmm0_103;
- fn0040197F(ebx_90, ebp_91, esi_92, es, ds, out eax_97, out edx_98, out ebx_99, out ebp_100, out esi_101, out edi_102, out xmm0_103);
- Mem106[fp - 0x08 + 0x00:word32] = esi_101;
- Mem108[fp - 0x0C + 0x00:word32] = esi_101;
- Mem110[fp - 0x10 + 0x00:word32] = esi_101;
- Mem112[fp - 0x14 + 0x00:word32] = esi_101;
- Mem114[fp - 0x18 + 0x00:word32] = esi_101;
- Mem115[eax_97 + 0x00:word32] = 22;
- esp_120 = fp - 0x04;
- word32 esi_118;
- eax_121 = fn00401917(es, ds, xmm0_103, out edx, out ebx, out esi_118) | ~0x00;
- goto l00403A66;
- }
- word32 esp_1004;
- word32 eax_1358;
- Mem128[fp - 0x08 + 0x00:word32] = ebx;
- Mem130[fp - 0x0C + 0x00:word32] = edi;
- word32 esi_1025 = (dwArg04 >> 0x05) * 0x04 + 0x0040F9C0;
- word32 edi_139 = (dwArg04 & 0x1F) << 0x06;
- word32 eax_140 = Mem130[esi_1025 + 0x00:word32] + edi_139;
- byte bl_146 = Mem130[eax_140 + 0x24:byte] * 0x02 >> 0x01;
- word32 esp_129 = fp - 0x0C;
- word32 ebx_1313 = DPB(ebx, bl_146, 0);
- if ((bl_146 == 0x02 || bl_146 == 0x01) && ((byte) (~dwArg0C) & 0x01) == 0x00)
- {
- word32 edx_1325;
- word32 ebx_1326;
- word32 ebp_1327;
- word32 esi_1328;
- word32 edi_1329;
- word128 xmm0_1330;
- Mem1335[fn00401992(ebx_1313, fp - 0x04, esi_1025, es, ds, out edx_1325, out ebx_1326, out ebp_1327, out esi_1328, out edi_1329, out xmm0_1330) + 0x00:word32] = 0x00;
- word32 eax_1336;
- word32 edx_1337;
- word32 ebx_1338;
- word32 esi_1340;
- word32 edi_1341;
- word128 xmm0_1342;
- fn0040197F(ebx_1326, ebp_1327, 0x00, es, ds, out eax_1336, out edx_1337, out ebx_1338, out ebp_100, out esi_1340, out edi_1341, out xmm0_1342);
- Mem1345[fp - 0x10 + 0x00:word32] = esi_1340;
- Mem1347[fp - 0x14 + 0x00:word32] = esi_1340;
- Mem1349[fp - 0x18 + 0x00:word32] = esi_1340;
- Mem1351[fp - 0x1C + 0x00:word32] = esi_1340;
- Mem1353[fp - 0x20 + 0x00:word32] = esi_1340;
- Mem1354[eax_1336 + 0x00:word32] = 22;
- word32 ebx_1356;
- word32 esi_1357;
- eax_1358 = fn00401917(es, ds, xmm0_1342, out edx, out ebx_1356, out esi_1357);
- esp_1004 = fp - 0x0C;
- goto l00403A53;
- }
- if ((Mem130[eax_140 + 0x04:byte] & 0x20) != 0x00)
- {
- Mem1305[fp - 0x10 + 0x00:word32] = 0x02;
- Mem1307[fp - 0x14 + 0x00:word32] = 0x00;
- Mem1309[fp - 0x18 + 0x00:word32] = 0x00;
- Mem1311[fp - 0x1C + 0x00:word32] = dwArg04;
- word32 edx_1312;
- word128 xmm0_1314;
- fn004031A2(ebx_1313, es, ds, dwArg00, dwArg04, dwArg08, out edx_1312, out ebx_1313, out xmm0_1314);
- esp_129 = fp - 0x0C;
- }
- word32 ecx_409;
- word32 esp_215 = esp_129 - 0x04;
- Mem216[esp_215 + 0x00:word32] = Mem130[fp + 0x04:word32];
- esp_1004 = esp_215 + 0x04;
- word128 xmm0_220;
- word32 ebx_1022;
- if (fn00403B98(ebx_1313, esi_1025, es, ds, dwArg00, out edx, out ebx_1022, out xmm0_220) != 0x00)
- {
- word32 eax_937 = Mem216[esi_1025 + 0x00:word32];
- if ((Mem216[edi_139 + 0x04 + eax_937:byte] & 0x80) != 0x00)
- {
- word128 xmm0_944;
- edx = fn00402C19(ebx_1022, fp - 0x04, esi_1025, es, ds, out ebx_1022, out ebp_100, out xmm0_944);
- word32 ecx_954 = (word32) (Mem216[Mem216[eax_937 + 0x6C:word32] + 0x14:word32] == 0x00);
- Mem956[esp_215 + 0x00:word32] = ebp_100 + ~0x1AE3;
- Mem959[esp_215 - 0x04 + 0x00:word32] = Mem956[edi_139 + Mem956[esi_1025 + 0x00:word32]:word32];
- Mem960[ebp_100 + ~0x1ADF:word32] = ecx_954;
- esp_1004 = esp_215 + 0x04;
- if (GetConsoleMode(Mem960[esp_215 - 0x04 + 0x00:HANDLE], Mem960[esp_215 + 0x00:LPDWORD]) != 0x00)
- {
- ecx_409 = 0x00;
- if (Mem960[ebp_100 + ~0x1ADF:word32] != 0x00 && bl_146 == 0x00)
- {
- l004036D7:
- word32 eax_413 = Mem216[esi_1025 + 0x00:word32] + edi_139;
- if ((Mem216[eax_413 + 0x04:byte] & 0x80) != 0x00)
- {
- word32 eax_420 = Mem216[ebp_100 + ~0x1ACB:word32];
- Mem424[ebp_100 + ~0x1ABF:word32] = ecx_409;
- if (bl_146 == 0x00)
- {
- Mem428[ebp_100 + 4294960444:word32] = eax_420;
- if (Mem428[ebp_100 + 0x10:word32] <=u ecx_409)
- goto l00403A28;
- while (true)
- {
- word32 ecx_443 = Mem428[ebp_100 + 4294960444:word32];
- Mem445[ebp_100 + ~0x1ABB:word32] = Mem428[ebp_100 + ~0x1ABB:word32] & 0x00;
- word32 ecx_447 = ecx_443 - Mem445[ebp_100 + ~0x1ACB:word32];
- word32 eax_450 = ebp_100 + ~0x1AB7;
- if (ecx_447 <u Mem445[ebp_100 + 0x10:word32])
- {
- word32 edx_513 = Mem445[ebp_100 + 4294960444:word32];
- Mem515[ebp_100 + 4294960444:word32] = Mem445[ebp_100 + 4294960444:word32] + 0x01;
- byte dl_516 = Mem515[edx_513 + 0x00:byte];
- edx = DPB(edx_513, dl_516, 0);
- ecx_447 = ecx_447 + 0x01;
- if (dl_516 == 0x0A)
- {
- Mem536[ebp_100 + ~0x1ACF:word32] = Mem515[ebp_100 + ~0x1ACF:word32] + 0x01;
- Mem537[eax_450 + 0x00:byte] = 0x0D;
- Mem543[ebp_100 + ~0x1ABB:word32] = Mem537[ebp_100 + ~0x1ABB:word32] + 0x01;
- eax_450 = eax_450 + 0x01;
- }
- Mem526[eax_450 + 0x00:byte] = dl_516;
- Mem532[ebp_100 + ~0x1ABB:word32] = Mem526[ebp_100 + ~0x1ABB:word32] + 0x01;
- eax_450 = eax_450 + 0x01;
- if (Mem532[ebp_100 + ~0x1ABB:word32] <u 0x13FF)
- goto l00403729;
- }
- word32 esp_481 = esp_1004 - 0x04;
- Mem482[esp_481 + 0x00:word32] = 0x00;
- Mem485[esp_481 - 0x04 + 0x00:word32] = ebp_100 + ~0x1AD3;
- ebx_1022 = eax_450 - (ebp_100 + ~0x1AB7);
- Mem487[esp_481 - 0x08 + 0x00:word32] = ebx_1022;
- Mem490[esp_481 - 0x0C + 0x00:word32] = ebp_100 + ~0x1AB7;
- Mem493[esp_481 - 0x10 + 0x00:word32] = Mem490[edi_139 + Mem490[esi_1025 + 0x00:word32]:word32];
- esp_1004 = esp_481 + 0x04;
- if (WriteFile(Mem493[esp_481 - 0x10 + 0x00:HANDLE], Mem493[esp_481 - 0x0C + 0x00:LPCVOID], Mem493[esp_481 - 0x08 + 0x00:DWORD], Mem493[esp_481 - 0x04 + 0x00:LPDWORD], Mem493[esp_481 + 0x00:LPOVERLAPPED]) == 0x00)
- break;
- word32 eax_500 = Mem493[ebp_100 + ~0x1AD3:word32];
- Mem503[ebp_100 + 4294960440:word32] = Mem493[ebp_100 + 4294960440:word32] + eax_500;
- if (eax_500 < ebx_1022)
- goto l004039E3;
- if (Mem503[ebp_100 + 4294960444:word32] - Mem503[ebp_100 + ~0x1ACB:word32] >=u Mem503[ebp_100 + 0x10:word32])
- goto l004039E3;
- esi_1025 = Mem503[ebp_100 + 4294960424:word32];
- }
- goto l004039D7;
- }
- Mem545[ebp_100 + ~0x1ABB:word32] = eax_420;
- if (bl_146 == 0x02)
- {
- if (Mem545[ebp_100 + 0x10:word32] <=u ecx_409)
- goto l00403A28;
- while (true)
- {
- word32 ecx_562 = Mem545[ebp_100 + ~0x1ABB:word32];
- Mem564[ebp_100 + 4294960444:word32] = Mem545[ebp_100 + 4294960444:word32] & 0x00;
- word32 ecx_566 = ecx_562 - Mem564[ebp_100 + ~0x1ACB:word32];
- word32 eax_569 = ebp_100 + ~0x1AB7;
- if (ecx_566 <u Mem564[ebp_100 + 0x10:word32])
- {
- word32 edx_635 = Mem564[ebp_100 + ~0x1ABB:word32];
- Mem637[ebp_100 + ~0x1ABB:word32] = Mem564[ebp_100 + ~0x1ABB:word32] + 0x02;
- edx = (word32) Mem637[edx_635 + 0x00:word16];
- word16 dx_641 = (word16) edx;
- ecx_566 = ecx_566 + 0x02;
- if (dx_641 == 0x0A)
- {
- Mem662[ebp_100 + ~0x1ACF:word32] = Mem637[ebp_100 + ~0x1ACF:word32] + 0x02;
- word32 esp_663 = esp_1004 - 0x04;
- Mem664[esp_663 + 0x00:word32] = 0x0D;
- Mem668[eax_569 + 0x00:word16] = (word16) Mem664[esp_663 + 0x00:word32];
- Mem675[ebp_100 + 4294960444:word32] = Mem668[ebp_100 + 4294960444:word32] + 0x02;
- esp_1004 = esp_663 + 0x04;
- eax_569 = eax_569 + 0x02;
- }
- Mem652[ebp_100 + 4294960444:word32] = Mem637[ebp_100 + 4294960444:word32] + 0x02;
- Mem653[eax_569 + 0x00:word16] = dx_641;
- eax_569 = eax_569 + 0x02;
- if (Mem653[ebp_100 + 4294960444:word32] <u 5118)
- goto l004037FC;
- }
- word32 esp_603 = esp_1004 - 0x04;
- Mem604[esp_603 + 0x00:word32] = 0x00;
- Mem607[esp_603 - 0x04 + 0x00:word32] = ebp_100 + ~0x1AD3;
- ebx_1022 = eax_569 - (ebp_100 + ~0x1AB7);
- Mem609[esp_603 - 0x08 + 0x00:word32] = ebx_1022;
- Mem612[esp_603 - 0x0C + 0x00:word32] = ebp_100 + ~0x1AB7;
- Mem615[esp_603 - 0x10 + 0x00:word32] = Mem612[edi_139 + Mem612[esi_1025 + 0x00:word32]:word32];
- esp_1004 = esp_603 + 0x04;
- if (WriteFile(Mem615[esp_603 - 0x10 + 0x00:HANDLE], Mem615[esp_603 - 0x0C + 0x00:LPCVOID], Mem615[esp_603 - 0x08 + 0x00:DWORD], Mem615[esp_603 - 0x04 + 0x00:LPDWORD], Mem615[esp_603 + 0x00:LPOVERLAPPED]) == 0x00)
- break;
- word32 eax_622 = Mem615[ebp_100 + ~0x1AD3:word32];
- Mem625[ebp_100 + 4294960440:word32] = Mem615[ebp_100 + 4294960440:word32] + eax_622;
- if (eax_622 < ebx_1022)
- goto l004039E3;
- if (Mem625[ebp_100 + ~0x1ABB:word32] - Mem625[ebp_100 + ~0x1ACB:word32] >=u Mem625[ebp_100 + 0x10:word32])
- goto l004039E3;
- esi_1025 = Mem625[ebp_100 + 4294960424:word32];
- }
- l004039D7:
- Mem401[ebp_100 + ~0x1ABF:word32] = GetLastError();
- goto l004039E3;
- }
- if (Mem545[ebp_100 + 0x10:word32] <=u ecx_409)
- goto l00403A28;
- do
- {
- word32 ecx_688 = Mem545[ebp_100 + ~0x1ABB:word32];
- Mem690[ebp_100 + 4294960444:word32] = Mem545[ebp_100 + 4294960444:word32] & 0x00;
- word32 ecx_692 = ecx_688 - Mem690[ebp_100 + ~0x1ACB:word32];
- word32 esp_695 = esp_1004 - 0x04;
- Mem696[esp_695 + 0x00:word32] = 0x02;
- word32 eax_697 = ebp_100 + ~0x06B7;
- word32 esi_701 = Mem696[esp_695 + 0x00:word32];
- word32 esp_703 = esp_695 + 0x04;
- if (ecx_692 <u Mem696[ebp_100 + 0x10:word32])
- {
- word16 dx_865 = (word16) (word32) Mem696[Mem696[ebp_100 + ~0x1ABB:word32] + 0x00:word16];
- Mem867[ebp_100 + ~0x1ABB:word32] = Mem696[ebp_100 + ~0x1ABB:word32] + esi_701;
- ecx_692 = ecx_692 + esi_701;
- if (dx_865 == 0x0A)
- {
- word32 esp_885 = esp_703 - 0x04;
- Mem886[esp_885 + 0x00:word32] = 0x0D;
- Mem890[eax_697 + 0x00:word16] = (word16) Mem886[esp_885 + 0x00:word32];
- Mem896[ebp_100 + 4294960444:word32] = Mem890[ebp_100 + 4294960444:word32] + esi_701;
- esp_703 = esp_885 + 0x04;
- eax_697 = eax_697 + esi_701;
- }
- Mem877[ebp_100 + 4294960444:word32] = Mem867[ebp_100 + 4294960444:word32] + esi_701;
- Mem878[eax_697 + 0x00:word16] = dx_865;
- eax_697 = eax_697 + esi_701;
- if (Mem878[ebp_100 + 4294960444:word32] <u 0x06A8)
- goto l004038C8;
- }
- word32 esp_726 = esp_703 - 0x04;
- Mem727[esp_726 + 0x00:word32] = 0x00;
- Mem729[esp_726 - 0x04 + 0x00:word32] = 0x00;
- Mem731[esp_726 - 0x08 + 0x00:word32] = 0x0D55;
- Mem734[esp_726 - 0x0C + 0x00:word32] = ebp_100 + ~0x140F;
- word32 ecx_735 = ebp_100 + ~0x06B7;
- int64 edx_eax_737 = (int64) (eax_697 - ecx_735);
- Mem743[esp_726 - 0x10 + 0x00:word32] = (word32) edx_eax_737 - SLICE(edx_eax_737, word32, 32) >> 0x01;
- Mem746[esp_726 - 0x14 + 0x00:word32] = ecx_735;
- Mem748[esp_726 - 0x18 + 0x00:word32] = 0x00;
- Mem750[esp_726 - 0x1C + 0x00:word32] = 65001;
- word32 eax_751 = WideCharToMultiByte(Mem750[esp_726 - 0x1C + 0x00:UINT], Mem750[esp_726 - 0x18 + 0x00:DWORD], Mem750[esp_726 - 0x14 + 0x00:LPCWSTR], Mem750[esp_726 - 0x10 + 0x00:int32], Mem750[esp_726 - 0x0C + 0x00:LPSTR], Mem750[esp_726 - 0x08 + 0x00:int32], Mem750[esp_726 - 0x04 + 0x00:LPCSTR], Mem750[esp_726 + 0x00:LPBOOL]);
- Mem759[esp_726 + 0x00:word32] = 0x00;
- Mem761[esp_726 - 0x04 + 0x00:word32] = 0x00;
- Mem763[esp_726 - 0x08 + 0x00:word32] = 0x0D55;
- Mem766[esp_726 - 0x0C + 0x00:word32] = ebp_100 + ~0x140F;
- word32 ecx_767 = ebp_100 + ~0x06B7;
- int64 edx_eax_769 = (int64) (eax_751 - ecx_767);
- edx = SLICE(edx_eax_769, word32, 32);
- Mem777[esp_726 - 0x10 + 0x00:word32] = (word32) edx_eax_769 - edx >> 0x01;
- Mem780[esp_726 - 0x14 + 0x00:word32] = ecx_767;
- Mem782[esp_726 - 0x18 + 0x00:word32] = 0x00;
- Mem784[esp_726 - 0x1C + 0x00:word32] = 65001;
- word32 eax_785 = WideCharToMultiByte(Mem784[esp_726 - 0x1C + 0x00:UINT], Mem784[esp_726 - 0x18 + 0x00:DWORD], Mem784[esp_726 - 0x14 + 0x00:LPCWSTR], Mem784[esp_726 - 0x10 + 0x00:int32], Mem784[esp_726 - 0x0C + 0x00:LPSTR], Mem784[esp_726 - 0x08 + 0x00:int32], Mem784[esp_726 - 0x04 + 0x00:LPCSTR], Mem784[esp_726 + 0x00:LPBOOL]);
- word32 esi_756 = 0x00;
- esp_1004 = esp_726 + 0x04;
- ebx_1022 = eax_785;
- if (eax_785 == 0x00)
- goto l004039D7;
- do
- {
- word32 esp_797 = esp_1004 - 0x04;
- Mem798[esp_797 + 0x00:word32] = 0x00;
- Mem801[esp_797 - 0x04 + 0x00:word32] = ebp_100 + ~0x1AD3;
- Mem805[esp_797 - 0x08 + 0x00:word32] = eax_785 - esi_756;
- Mem808[esp_797 - 0x0C + 0x00:word32] = ebp_100 + ~0x140F + esi_756;
- Mem812[esp_797 - 0x10 + 0x00:word32] = Mem808[edi_139 + Mem808[Mem808[ebp_100 + 4294960424:word32] + 0x00:word32]:word32];
- Mem818[esp_797 + 0x00:word32] = 0x00;
- Mem821[esp_797 - 0x04 + 0x00:word32] = ebp_100 + ~0x1AD3;
- Mem825[esp_797 - 0x08 + 0x00:word32] = eax_785 - esi_756;
- Mem828[esp_797 - 0x0C + 0x00:word32] = ebp_100 + ~0x140F + esi_756;
- Mem832[esp_797 - 0x10 + 0x00:word32] = Mem828[edi_139 + Mem828[Mem828[ebp_100 + 4294960424:word32] + 0x00:word32]:word32];
- esp_1004 = esp_797 + 0x04;
- if (WriteFile(Mem832[esp_797 - 0x10 + 0x00:HANDLE], Mem832[esp_797 - 0x0C + 0x00:LPCVOID], Mem832[esp_797 - 0x08 + 0x00:DWORD], Mem832[esp_797 - 0x04 + 0x00:LPDWORD], Mem832[esp_797 + 0x00:LPOVERLAPPED]) == 0x00)
- {
- Mem860[ebp_100 + ~0x1ABF:word32] = GetLastError();
- break;
- }
- word32 esi_851 = esi_756 + Mem832[ebp_100 + ~0x1AD3:word32];
- esi_756 = esi_851 + Mem832[ebp_100 + ~0x1AD3:word32];
- } while (eax_785 > esi_756);
- if (eax_785 > esi_756)
- break;
- word32 eax_846 = Mem832[ebp_100 + ~0x1ABB:word32] - Mem832[ebp_100 + ~0x1ACB:word32];
- Mem848[ebp_100 + 4294960440:word32] = eax_846;
- } while (eax_846 <u Mem848[ebp_100 + 0x10:word32]);
- }
- else
- {
- word32 esp_898 = esp_1004 - 0x04;
- Mem899[esp_898 + 0x00:word32] = 0x00;
- Mem902[esp_898 - 0x04 + 0x00:word32] = ebp_100 + ~0x1AD3;
- Mem904[esp_898 - 0x08 + 0x00:word32] = Mem902[ebp_100 + 0x10:word32];
- Mem906[esp_898 - 0x0C + 0x00:word32] = Mem904[ebp_100 + ~0x1ACB:word32];
- Mem908[esp_898 - 0x10 + 0x00:word32] = Mem906[eax_413 + 0x00:word32];
- esp_1004 = esp_898 + 0x04;
- if (WriteFile(Mem908[esp_898 - 0x10 + 0x00:HANDLE], Mem908[esp_898 - 0x0C + 0x00:LPCVOID], Mem908[esp_898 - 0x08 + 0x00:DWORD], Mem908[esp_898 - 0x04 + 0x00:LPDWORD], Mem908[esp_898 + 0x00:LPOVERLAPPED]) == 0x00)
- goto l004039D7;
- word32 eax_915 = Mem908[ebp_100 + ~0x1AD3:word32];
- Mem918[ebp_100 + ~0x1ABF:word32] = Mem908[ebp_100 + ~0x1ABF:word32] & 0x00;
- Mem921[ebp_100 + 4294960440:word32] = eax_915;
- }
- l004039E3:
- if (Mem216[ebp_100 + 4294960440:word32] != 0x00)
- {
- eax_121 = Mem216[ebp_100 + 4294960440:word32] - Mem216[ebp_100 + ~0x1ACF:word32];
- goto l00403A64;
- }
- l004039EC:
- if (Mem216[ebp_100 + ~0x1ABF:word32] != 0x00)
- {
- word32 esp_309 = esp_1004 - 0x04;
- Mem310[esp_309 + 0x00:word32] = 0x05;
- word32 esi_311 = Mem310[esp_309 + 0x00:word32];
- esp_1004 = esp_309 + 0x04;
- if (Mem310[ebp_100 + ~0x1ABF:word32] == esi_311)
- {
- word32 eax_316;
- word32 edx_317;
- word32 ebx_318;
- word32 ebp_319;
- word32 esi_320;
- word32 edi_321;
- word128 xmm0_322;
- fn0040197F(ebx_1022, ebp_100, esi_311, es, ds, out eax_316, out edx_317, out ebx_318, out ebp_319, out esi_320, out edi_321, out xmm0_322);
- Mem324[eax_316 + 0x00:word32] = 0x09;
- word32 ebx_326;
- word32 esi_328;
- word32 edi_329;
- word128 xmm0_330;
- eax_1358 = fn00401992(ebx_318, ebp_319, esi_320, es, ds, out edx, out ebx_326, out ebp_100, out esi_328, out edi_329, out xmm0_330);
- Mem335[eax_1358 + 0x00:word32] = esi_328;
- }
- else
- {
- Mem337[esp_309 + 0x00:word32] = Mem310[ebp_100 + ~0x1ABF:word32];
- word32 ebx_339;
- word128 xmm0_340;
- eax_1358 = fn004019A5(ebx_1022, ebp_100, esi_311, es, ds, out edx, out ebx_339, out xmm0_340);
- esp_1004 = esp_309 + 0x04;
- }
- l00403A53:
- eax_121 = eax_1358 | ~0x00;
- goto l00403A64;
- }
- esi_1025 = Mem216[ebp_100 + 4294960424:word32];
- l00403A28:
- if ((Mem216[edi_139 + 0x04 + Mem216[esi_1025 + 0x00:word32]:byte] & 0x40) == 0x00 || Mem216[Mem216[ebp_100 + ~0x1ACB:word32] + 0x00:byte] != 0x1A)
- {
- word32 eax_253;
- word32 edx_254;
- word32 ebx_255;
- word32 ebp_256;
- word32 esi_257;
- word32 edi_258;
- word128 xmm0_259;
- fn0040197F(ebx_1022, ebp_100, esi_1025, es, ds, out eax_253, out edx_254, out ebx_255, out ebp_256, out esi_257, out edi_258, out xmm0_259);
- Mem261[eax_253 + 0x00:word32] = 0x1C;
- word32 ebx_263;
- word32 esi_265;
- word32 edi_266;
- word128 xmm0_267;
- eax_1358 = fn00401992(ebx_255, ebp_256, esi_257, es, ds, out edx, out ebx_263, out ebp_100, out esi_265, out edi_266, out xmm0_267);
- Mem273[eax_1358 + 0x00:word32] = Mem261[eax_1358 + 0x00:word32] & 0x00;
- goto l00403A53;
- }
- eax_121 = 0x00;
- l00403A64:
- word32 esp_175 = esp_1004 + 0x04;
- edi_102 = Mem130[esp_1004 + 0x00:word32];
- ebx = Mem130[esp_175 + 0x00:word32];
- esp_120 = esp_175 + 0x04;
- l00403A66:
- word32 eax_60 = fn00404BEF(eax_121, Mem23[ebp_100 - 0x04 + 0x00:word32] ^ ebp_100, edx, ebx, ebp_100, Mem23[esp_120 + 0x00:word32], edi_102, es, ds);
- word32 ebp_65;
- *ebpOut = Mem23[ebp_100 + 0x00:word32];
- return eax_60;
- }
- word32 eax_974 = GetConsoleCP();
- ebx_1022 = Mem960[ebp_100 + ~0x1ACB:word32];
- Mem978[ebp_100 + ~0x1AE3:word32] = eax_974;
- Mem983[ebp_100 + 4294960444:word32] = 0x00;
- if (Mem983[ebp_100 + 0x10:word32] <=u 0x00)
- goto l004039EC;
- Mem986[ebp_100 + ~0x1ABB:word32] = 0x00;
- l004034B0:
- byte al_1005 = Mem986[ebp_100 + ~0x1AD8:byte];
- if (al_1005 != 0x00)
- {
- if (al_1005 == 0x01 || al_1005 == 0x02)
- {
- esi_1025 = (word32) Mem986[ebx_1022 + 0x00:word16];
- Mem1295[ebp_100 + ~0x1ABB:word32] = Mem986[ebp_100 + ~0x1ABB:word32] + 0x02;
- Mem1297[ebp_100 + ~0x1ABF:word32] = esi_1025;
- Mem1298[ebp_100 + ~0x1ADF:word32] = (word32) ((word16) esi_1025 == 0x0A);
- ebx_1022 = ebx_1022 + 0x02;
- }
- if (al_1005 == 0x01 || al_1005 == 0x02)
- {
- word32 esp_1246 = esp_1004 - 0x04;
- Mem1247[esp_1246 + 0x00:word32] = Mem986[ebp_100 + ~0x1ABF:word32];
- word16 ax_1251 = fn004075F3(edx, ebx_1022, esi_1025, edi_139, es, ds, wArg00, out ebp_100, out esi_1025);
- esp_1004 = esp_1246 + 0x04;
- if (ax_1251 != Mem1247[ebp_100 + ~0x1ABF:word16])
- goto l004039D7;
- Mem1258[ebp_100 + 4294960440:word32] = Mem1247[ebp_100 + 4294960440:word32] + 0x02;
- if (Mem1258[ebp_100 + ~0x1ADF:word32] != 0x00)
- {
- Mem1262[esp_1246 + 0x00:word32] = 0x0D;
- word32 eax_1263 = Mem1262[esp_1246 + 0x00:word32];
- Mem1266[esp_1246 + 0x00:word32] = eax_1263;
- Mem1267[ebp_100 + ~0x1ABF:word32] = eax_1263;
- word16 ax_1270 = fn004075F3(edx, ebx_1022, esi_1025, edi_139, es, ds, wArg00, out ebp_100, out esi_1025);
- esp_1004 = esp_1246 + 0x04;
- if (ax_1270 != Mem1267[ebp_100 + ~0x1ABF:word16])
- goto l004039D7;
- Mem1277[ebp_100 + 4294960440:word32] = Mem1267[ebp_100 + 4294960440:word32] + 0x01;
- Mem1279[ebp_100 + ~0x1ACF:word32] = Mem1277[ebp_100 + ~0x1ACF:word32] + 0x01;
- }
- }
- goto l004036A8;
- }
- word32 esp_1153;
- byte cl_1034 = Mem986[ebx_1022 + 0x00:byte];
- word32 esi_1036 = Mem986[ebp_100 + 4294960424:word32];
- Mem1042[ebp_100 + ~0x1ADF:word32] = (word32) (cl_1034 == 0x0A);
- word32 eax_1044 = Mem1042[esi_1036 + 0x00:word32] + edi_139;
- if (Mem1042[eax_1044 + 0x38:word32] != 0x00)
- {
- Mem1166[ebp_100 - 0x0C + 0x00:byte] = Mem1042[eax_1044 + 0x34:byte];
- Mem1167[ebp_100 - 11 + 0x00:byte] = cl_1034;
- Mem1169[eax_1044 + 0x38:word32] = Mem1167[eax_1044 + 0x38:word32] & 0x00;
- word32 esp_1172 = esp_1004 - 0x04;
- Mem1173[esp_1172 + 0x00:word32] = 0x02;
- Mem1176[esp_1172 - 0x04 + 0x00:word32] = ebp_100 - 0x0C;
- esp_1153 = esp_1172 - 0x04;
- }
- else
- {
- word32 esp_1178 = esp_1004 - 0x04;
- Mem1179[esp_1178 + 0x00:word32] = (int32) cl_1034;
- esp_1004 = esp_1178 + 0x04;
- word32 esi_1181;
- word128 xmm0_1182;
- if (fn00404BDC(ebx_1022, es, ds, dwArg00, out ebx_1022, out esi_1181, out xmm0_1182) != 0x00)
- {
- if (Mem1179[ebp_100 + ~0x1ACB:word32] - ebx_1022 + Mem1179[ebp_100 + 0x10:word32] <=u 0x01)
- {
- byte dl_1221 = Mem1179[ebx_1022 + 0x00:byte];
- word32 ecx_1220 = Mem1179[esi_1181 + 0x00:word32];
- Mem1226[ebp_100 + 4294960440:word32] = Mem1179[ebp_100 + 4294960440:word32] + 0x01;
- Mem1228[edi_139 + 0x34 + ecx_1220:byte] = dl_1221;
- Mem1230[edi_139 + 0x38 + Mem1228[esi_1181 + 0x00:word32]:word32] = 0x01;
- edx = DPB(edx, dl_1221, 0);
- break;
- }
- Mem1200[esp_1178 + 0x00:word32] = 0x02;
- Mem1203[esp_1178 - 0x04 + 0x00:word32] = ebx_1022;
- Mem1205[esp_1178 - 0x08 + 0x00:word32] = ebp_100 + ~0x1ABF;
- esp_1004 = esp_1178 + 0x04;
- word128 xmm0_1208;
- if (fn004077CF(es, ds, dwArg00, dwArg04, dwArg08, out edx, out ebx_1022, out xmm0_1208) == ~0x00)
- break;
- Mem1218[ebp_100 + ~0x1ABB:word32] = Mem1205[ebp_100 + ~0x1ABB:word32] + 0x01;
- ebx_1022 = ebx_1022 + 0x01;
- l00403556:
- word32 esp_1060 = esp_1004 - 0x04;
- Mem1061[esp_1060 + 0x00:word32] = 0x00;
- Mem1063[esp_1060 - 0x04 + 0x00:word32] = 0x00;
- Mem1065[esp_1060 - 0x08 + 0x00:word32] = 0x05;
- Mem1068[esp_1060 - 0x0C + 0x00:word32] = ebp_100 - 0x0C;
- Mem1070[esp_1060 - 0x10 + 0x00:word32] = 0x01;
- Mem1073[esp_1060 - 0x14 + 0x00:word32] = ebp_100 + ~0x1ABF;
- Mem1075[esp_1060 - 0x18 + 0x00:word32] = 0x00;
- Mem1077[esp_1060 - 0x1C + 0x00:word32] = Mem1075[ebp_100 + ~0x1AE3:word32];
- Mem1082[ebp_100 + ~0x1ABB:word32] = Mem1077[ebp_100 + ~0x1ABB:word32] + 0x01;
- word32 eax_1083 = WideCharToMultiByte(Mem1082[esp_1060 - 0x1C + 0x00:UINT], Mem1082[esp_1060 - 0x18 + 0x00:DWORD], Mem1082[esp_1060 - 0x14 + 0x00:LPCWSTR], Mem1082[esp_1060 - 0x10 + 0x00:int32], Mem1082[esp_1060 - 0x0C + 0x00:LPSTR], Mem1082[esp_1060 - 0x08 + 0x00:int32], Mem1082[esp_1060 - 0x04 + 0x00:LPCSTR], Mem1082[esp_1060 + 0x00:LPBOOL]);
- ebx_1022 = ebx_1022 + 0x01;
- esp_1004 = esp_1060 + 0x04;
- esi_1025 = eax_1083;
- if (eax_1083 == 0x00)
- break;
- Mem1092[esp_1060 + 0x00:word32] = 0x00;
- Mem1095[esp_1060 - 0x04 + 0x00:word32] = ebp_100 + 4294960444;
- Mem1097[esp_1060 - 0x08 + 0x00:word32] = eax_1083;
- Mem1100[esp_1060 - 0x0C + 0x00:word32] = ebp_100 - 0x0C;
- Mem1104[esp_1060 - 0x10 + 0x00:word32] = Mem1100[edi_139 + Mem1100[Mem1100[ebp_100 + 4294960424:word32] + 0x00:word32]:word32];
- esp_1004 = esp_1060 + 0x04;
- if (WriteFile(Mem1104[esp_1060 - 0x10 + 0x00:HANDLE], Mem1104[esp_1060 - 0x0C + 0x00:LPCVOID], Mem1104[esp_1060 - 0x08 + 0x00:DWORD], Mem1104[esp_1060 - 0x04 + 0x00:LPDWORD], Mem1104[esp_1060 + 0x00:LPOVERLAPPED]) == 0x00)
- goto l004039D7;
- Mem1117[ebp_100 + 4294960440:word32] = Mem1104[ebp_100 + ~0x1ABB:word32] + Mem1104[ebp_100 + ~0x1ACF:word32];
- if (Mem1104[ebp_100 + 4294960444:word32] < eax_1083)
- break;
- if (Mem1117[ebp_100 + ~0x1ADF:word32] != 0x00)
- {
- Mem1121[esp_1060 + 0x00:word32] = 0x00;
- Mem1124[esp_1060 - 0x04 + 0x00:word32] = ebp_100 + 4294960444;
- Mem1126[esp_1060 - 0x08 + 0x00:word32] = 0x01;
- Mem1129[esp_1060 - 0x0C + 0x00:word32] = ebp_100 - 0x0C;
- word32 eax_1131 = Mem1129[Mem1129[ebp_100 + 4294960424:word32] + 0x00:word32];
- Mem1132[ebp_100 - 0x0C + 0x00:byte] = 0x0D;
- Mem1134[esp_1060 - 0x10 + 0x00:word32] = Mem1132[edi_139 + eax_1131:word32];
- esp_1004 = esp_1060 + 0x04;
- if (WriteFile(Mem1134[esp_1060 - 0x10 + 0x00:HANDLE], Mem1134[esp_1060 - 0x0C + 0x00:LPCVOID], Mem1134[esp_1060 - 0x08 + 0x00:DWORD], Mem1134[esp_1060 - 0x04 + 0x00:LPDWORD], Mem1134[esp_1060 + 0x00:LPOVERLAPPED]) == 0x00)
- goto l004039D7;
- if (Mem1134[ebp_100 + 4294960444:word32] < 0x01)
- break;
- Mem1144[ebp_100 + ~0x1ACF:word32] = Mem1134[ebp_100 + ~0x1ACF:word32] + 0x01;
- Mem1146[ebp_100 + 4294960440:word32] = Mem1144[ebp_100 + 4294960440:word32] + 0x01;
- }
- l004036A8:
- if (Mem986[ebp_100 + ~0x1ABB:word32] <u Mem986[ebp_100 + 0x10:word32])
- goto l004034B0;
- goto l004039E3;
- }
- Mem1232[esp_1178 + 0x00:word32] = 0x01;
- Mem1234[esp_1178 - 0x04 + 0x00:word32] = ebx_1022;
- esp_1153 = esp_1178 - 0x04;
- }
- word32 esp_1155 = esp_1153 - 0x04;
- Mem1156[esp_1155 + 0x00:word32] = ebp_100 + ~0x1ABF;
- esp_1004 = esp_1155 + 0x0C;
- word128 xmm0_1159;
- if (fn004077CF(es, ds, dwArg00, dwArg04, dwArg08, out edx, out ebx_1022, out xmm0_1159) == ~0x00)
- break;
- goto l00403556;
- }
- }
- }
- ecx_409 = 0x00;
- goto l004036D7;
- }
- word32 fn00403A73(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 ebp_102;
- word32 eax_121;
- word32 eax_164;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B648, 0x10, out ebp_10);
- word32 eax_13 = Mem0[ebp_10 + 0x08:word32];
- if (eax_13 == ~0x01)
- {
- word32 edx_58;
- word32 ebx_59;
- word32 ebp_60;
- word32 esi_61;
- word32 edi_62;
- word128 xmm0_63;
- word32 eax_64 = fn00401992(ebx, ebp_10, esi, es, ds, out edx_58, out ebx_59, out ebp_60, out esi_61, out edi_62, out xmm0_63);
- Mem66[eax_64 + 0x00:word32] = Mem0[eax_64 + 0x00:word32] & 0x00;
- word32 edx_70;
- word32 ebx_71;
- word32 esi_73;
- word32 edi_74;
- word128 xmm0_75;
- fn0040197F(ebx_59, ebp_60, esi_61, es, ds, out eax_121, out edx_70, out ebx_71, out ebp_102, out esi_73, out edi_74, out xmm0_75);
- Mem77[eax_121 + 0x00:word32] = 0x09;
- }
- else
- {
- if (eax_13 >= 0x00 && eax_13 <u Mem0[4258220:word32])
- {
- ebx = (eax_13 >> 0x05) * 0x04 + 0x0040F9C0;
- esi = (eax_13 & 0x1F) << 0x06;
- if (((int32) Mem0[Mem0[ebx + 0x00:word32] + 0x04 + esi:byte] & 0x01) != 0x00)
- {
- Mem139[fp - 0x0C + 0x00:word32] = eax_13;
- word32 ebx_140;
- word32 ebp_141;
- word32 esi_142;
- word32 edi_143;
- word32 edx_144 = fn0040752C(ebx, esi, 0x00, es, ds, out ebx_140, out ebp_141, out esi_142, out edi_143);
- Mem147[ebp_141 - 0x04 + 0x00:word32] = edi_143;
- if ((Mem147[Mem147[ebx_140 + 0x00:word32] + 0x04 + esi_142:byte] & 0x01) != 0x00)
- {
- Mem166[fp - 0x0C + 0x00:word32] = Mem147[ebp_141 + 0x10:word32];
- Mem168[fp - 0x10 + 0x00:word32] = Mem166[ebp_141 + 0x0C:word32];
- Mem170[fp - 0x14 + 0x00:word32] = Mem168[ebp_141 + 0x08:word32];
- word128 xmm0_172;
- word32 eax_173 = fn00403340(edx_144, ebx_140, ebp_141, esi_142, edi_143, es, ds, dwArg00, dwArg04, dwArg08, out ebp_102, out xmm0_172);
- Mem176[ebp_102 - 0x1C + 0x00:word32] = eax_173;
- }
- else
- {
- word32 eax_178;
- word32 edx_179;
- word32 ebx_180;
- word32 ebp_181;
- word32 esi_182;
- word32 edi_183;
- word128 xmm0_184;
- fn0040197F(ebx_140, ebp_141, esi_142, es, ds, out eax_178, out edx_179, out ebx_180, out ebp_181, out esi_182, out edi_183, out xmm0_184);
- Mem186[eax_178 + 0x00:word32] = 0x09;
- word32 edx_187;
- word32 ebx_188;
- word32 esi_190;
- word32 edi_191;
- word128 xmm0_192;
- word32 eax_193 = fn00401992(ebx_180, ebp_181, esi_182, es, ds, out edx_187, out ebx_188, out ebp_102, out esi_190, out edi_191, out xmm0_192);
- Mem194[eax_193 + 0x00:word32] = edi_191;
- Mem196[ebp_102 - 0x1C + 0x00:word32] = Mem194[ebp_102 - 0x1C + 0x00:word32] | ~0x00;
- }
- Mem163[ebp_102 - 0x04 + 0x00:word32] = ~0x01;
- fn00403B45(ebp_102);
- eax_164 = Mem163[ebp_102 - 0x1C + 0x00:word32];
- l00403B3F:
- word32 ebp_32;
- word32 esi_33;
- word32 edi_34;
- fn00402F65(ebp_102, 0x10, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_32, out esi_33, out edi_34);
- return eax_164;
- }
- }
- word32 edx_91;
- word32 ebx_92;
- word32 ebp_93;
- word32 esi_94;
- word32 edi_95;
- word128 xmm0_96;
- word32 eax_97 = fn00401992(ebx, ebp_10, esi, es, ds, out edx_91, out ebx_92, out ebp_93, out esi_94, out edi_95, out xmm0_96);
- Mem98[eax_97 + 0x00:word32] = edi_95;
- word32 eax_99;
- word32 edx_100;
- word32 ebx_101;
- word32 esi_103;
- word32 edi_104;
- word128 xmm0_105;
- fn0040197F(ebx_92, ebp_93, esi_94, es, ds, out eax_99, out edx_100, out ebx_101, out ebp_102, out esi_103, out edi_104, out xmm0_105);
- Mem107[eax_99 + 0x00:word32] = 0x09;
- Mem109[fp - 0x0C + 0x00:word32] = edi_104;
- Mem111[fp - 0x10 + 0x00:word32] = edi_104;
- Mem113[fp - 0x14 + 0x00:word32] = edi_104;
- Mem115[fp - 0x18 + 0x00:word32] = edi_104;
- Mem117[fp - 0x1C + 0x00:word32] = edi_104;
- word32 edx_118;
- word32 ebx_119;
- word32 esi_120;
- eax_121 = fn00401917(es, ds, xmm0_105, out edx_118, out ebx_119, out esi_120);
- }
- eax_164 = eax_121 | ~0x00;
- goto l00403B3F;
- }
- void fn00403B45(word32 ebp)
- {
- fn004075CC(Mem0[ebp + 0x08:word32]);
- return;
- }
- word32 fn00403B4F(word32 ebx, selector es, selector ds, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- Mem10[4252544:word32] = Mem0[4252544:word32] + 0x01;
- word32 ebx_17;
- word32 ebp_18;
- word32 esi_19;
- word32 edi_20;
- word128 xmm0_21;
- word32 eax_22 = fn0040489A(ebx, fp - 0x04, es, ds, out ebx_17, out ebp_18, out esi_19, out edi_20, out xmm0_21);
- word32 ecx_25 = Mem10[ebp_18 + 0x08:word32];
- Mem26[ecx_25 + 0x08:word32] = eax_22;
- if (eax_22 != 0x00)
- {
- Mem41[ecx_25 + 0x0C:word32] = Mem26[ecx_25 + 0x0C:word32] | 0x08;
- Mem44[ecx_25 + 0x18:word32] = 0x1000;
- }
- else
- {
- Mem46[ecx_25 + 0x0C:word32] = Mem26[ecx_25 + 0x0C:word32] | 0x04;
- Mem50[ecx_25 + 0x08:word32] = ecx_25 + 0x14;
- Mem51[ecx_25 + 0x18:word32] = 0x02;
- }
- word32 eax_30 = Mem26[ecx_25 + 0x08:word32];
- Mem32[ecx_25 + 0x04:word32] = Mem26[ecx_25 + 0x04:word32] & 0x00;
- Mem35[ecx_25 + 0x00:word32] = eax_30;
- return ebx_17;
- }
- word32 fn00403B98(word32 ebx, word32 esi, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *edxOut = edx;
- *xmm0Out = xmm0;
- if (dwArg04 != ~0x01)
- {
- word32 eax_108;
- if (dwArg04 >= 0x00 && dwArg04 <u Mem0[4258220:word32])
- eax_108 = (int32) (0x0040F9C0[(dwArg04 >> 0x05) * 0x04] + 0x04)[(dwArg04 & 0x1F) * 0x40] & 0x40;
- else
- {
- word32 eax_73;
- word32 edx_74;
- word32 ebx_75;
- word32 ebp_76;
- word32 esi_77;
- word32 edi_78;
- word128 xmm0_79;
- fn0040197F(ebx, fp - 0x04, 0x00, es, ds, out eax_73, out edx_74, out ebx_75, out ebp_76, out esi_77, out edi_78, out xmm0_79);
- Mem82[fp - 0x0C + 0x00:word32] = esi_77;
- Mem84[fp - 0x10 + 0x00:word32] = esi_77;
- Mem86[fp - 0x14 + 0x00:word32] = esi_77;
- Mem88[fp - 0x18 + 0x00:word32] = esi_77;
- Mem90[fp - 0x1C + 0x00:word32] = esi_77;
- Mem91[eax_73 + 0x00:word32] = 0x09;
- word32 edx_92;
- word32 ebx_93;
- word32 esi_94;
- fn00401917(es, ds, xmm0_79, out edx_92, out ebx_93, out esi_94);
- eax_108 = 0x00;
- }
- return eax_108;
- }
- else
- {
- word32 eax_34;
- word32 edx_35;
- word32 ebx_36;
- word32 ebp_37;
- word32 esi_38;
- word32 edi_39;
- word128 xmm0_40;
- fn0040197F(ebx, fp - 0x04, esi, es, ds, out eax_34, out edx_35, out ebx_36, out ebp_37, out esi_38, out edi_39, out xmm0_40);
- Mem42[eax_34 + 0x00:word32] = 0x09;
- return 0x00;
- }
- }
- void fn00403BFC()
- {
- return;
- }
- word32 fn00403DB1(word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *xmm0Out = xmm0;
- word32 eax_21;
- if (dwArg04 == 0x00)
- {
- word32 eax_35;
- word32 edx_36;
- word32 ebx_37;
- word32 ebp_38;
- word32 esi_39;
- word32 edi_40;
- word128 xmm0_41;
- fn0040197F(ebx, fp - 0x04, 0x00, es, ds, out eax_35, out edx_36, out ebx_37, out ebp_38, out esi_39, out edi_40, out xmm0_41);
- Mem44[fp - 0x0C + 0x00:word32] = esi_39;
- Mem46[fp - 0x10 + 0x00:word32] = esi_39;
- Mem48[fp - 0x14 + 0x00:word32] = esi_39;
- Mem50[fp - 0x18 + 0x00:word32] = esi_39;
- Mem52[fp - 0x1C + 0x00:word32] = esi_39;
- Mem53[eax_35 + 0x00:word32] = 22;
- word32 edx_54;
- word32 ebx_55;
- word32 esi_56;
- eax_21 = fn00401917(es, ds, xmm0_41, out edx_54, out ebx_55, out esi_56) | ~0x00;
- }
- else
- eax_21 = Mem0[dwArg04 + 0x10:word32];
- return eax_21;
- }
- word32 fn00403DE3(word32 eax)
- {
- if (eax == 0x03A4)
- return 0x0411;
- else if (eax == 0x03A8)
- return 0x0804;
- else if (eax == 949)
- return 0x0412;
- else if (eax == 0x03B6)
- return 0x0404;
- else
- return 0x00;
- }
- word32 fn00403E12(word32 eax, word128 xmm0)
- {
- word32 edi_24;
- word32 edx_23;
- fn00404CA0(xmm0, dwLoc18, eax + 0x1C, 0x00, 0x0101, out edx_23, out edi_24);
- Mem29[eax + 0x04:word32] = edi_24;
- Mem30[eax + 0x08:word32] = edi_24;
- Mem31[eax + 0x0C:word32] = edi_24;
- Mem35[eax + 0x10:word32] = 0x00;
- Mem37[eax + 0x14:word32] = 0x00;
- Mem39[eax + 0x18:word32] = 0x00;
- word32 eax_42 = eax + 0x1C;
- word32 ecx_44 = 4248864 - eax;
- word32 edi_46 = 0x0101;
- do
- {
- Mem50[eax_42 + 0x00:byte] = Mem39[ecx_44 + eax_42:byte];
- eax_42 = eax_42 + 0x01;
- edi_46 = edi_46 - 0x01;
- } while (edi_46 != 0x00);
- word32 eax_56 = eax + 0x011D;
- word32 esi_58 = 0x0100;
- do
- {
- byte dl_62 = Mem50[eax_56 + ecx_44:byte];
- Mem64[eax_56 + 0x00:byte] = dl_62;
- edx_23 = DPB(edx_23, dl_62, 0);
- eax_56 = eax_56 + 0x01;
- esi_58 = esi_58 - 0x01;
- } while (esi_58 != 0x00);
- return edx_23;
- }
- word32 fn00403E76(word32 ebx, word32 ebp, word32 esi, selector es, selector ds, word128 xmm0, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- word32 edx_161;
- word32 eax_164;
- word32 esp_163 = fp - 0x0528;
- word32 edi_212 = 0x0100;
- if (GetCPInfo(Mem0[esi + 0x04:word32], fp + ~0x051B) != 0x00)
- {
- word32 eax_58 = 0x00;
- byte al_59 = 0x00;
- do
- {
- Mem64[fp + ~0x0107 + eax_58:byte] = al_59;
- eax_58 = eax_58 + 0x01;
- al_59 = (byte) eax_58;
- } while (eax_58 <u 0x0100);
- byte al_211 = bLoc0516;
- if (bLoc0516 != 0x00)
- {
- ebx = fp + ~0x0514;
- do
- {
- word32 ecx_217 = (word32) al_211;
- word32 eax_219 = (word32) Mem64[ebx + 0x00:byte];
- if (ecx_217 <=u eax_219)
- {
- word32 esp_239 = esp_163 - 0x04;
- Mem240[esp_239 + 0x00:word32] = eax_219 - ecx_217 + 0x01;
- Mem243[esp_239 - 0x04 + 0x00:word32] = 0x20;
- Mem245[esp_239 - 0x08 + 0x00:word32] = fp + ~0x0107 + ecx_217;
- word32 edx_249;
- fn00404CA0(xmm0, ebp, dwArg00, dwArg04, dwArg08, out edx_249, out edi_212);
- esp_163 = esp_239 + 0x04;
- }
- word32 ebx_228 = ebx + 0x01;
- al_211 = Mem64[ebx_228 + 0x00:byte];
- ebx = ebx_228 + 0x01;
- } while (al_211 != 0x00);
- }
- word32 esp_86 = esp_163 - 0x04;
- Mem87[esp_86 + 0x00:word32] = 0x00;
- Mem89[esp_86 - 0x04 + 0x00:word32] = Mem87[esi + 0x0C:word32];
- Mem92[esp_86 - 0x08 + 0x00:word32] = Mem89[esi + 0x04:word32];
- Mem94[esp_86 - 0x0C + 0x00:word32] = fp + ~0x0507;
- Mem96[esp_86 - 0x10 + 0x00:word32] = edi_212;
- Mem99[esp_86 - 0x14 + 0x00:word32] = fp + ~0x0107;
- Mem101[esp_86 - 0x18 + 0x00:word32] = 0x01;
- Mem103[esp_86 - 0x1C + 0x00:word32] = 0x00;
- word32 edx_105;
- word32 esi_106;
- word128 xmm0_107;
- fn00408011(ebx, fp - 0x04, es, ds, dwArg00, out edx_105, out esi_106, out xmm0_107);
- Mem113[esp_86 - 0x20 + 0x00:word32] = 0x00;
- Mem115[esp_86 - 0x24 + 0x00:word32] = Mem113[esi_106 + 0x04:word32];
- Mem118[esp_86 - 0x28 + 0x00:word32] = edi_212;
- Mem120[esp_86 - 44 + 0x00:word32] = fp + ~0x0207;
- Mem122[esp_86 - 0x30 + 0x00:word32] = edi_212;
- Mem125[esp_86 - 0x34 + 0x00:word32] = fp + ~0x0107;
- Mem127[esp_86 - 0x38 + 0x00:word32] = edi_212;
- Mem129[esp_86 - 0x3C + 0x00:word32] = Mem127[esi_106 + 0x0C:word32];
- Mem131[esp_86 - 0x40 + 0x00:word32] = 0x00;
- word32 ebx_132;
- word32 esi_133;
- word128 xmm0_134;
- fn00407E12(0x00, fp - 0x04, es, ds, dwArg00, out ebx_132, out esi_133, out xmm0_134);
- Mem139[esp_86 + 0x00:word32] = ebx_132;
- Mem141[esp_86 - 0x04 + 0x00:word32] = Mem139[esi_133 + 0x04:word32];
- Mem144[esp_86 - 0x08 + 0x00:word32] = edi_212;
- Mem146[esp_86 - 0x0C + 0x00:word32] = fp + ~0x0307;
- Mem148[esp_86 - 0x10 + 0x00:word32] = edi_212;
- Mem151[esp_86 - 0x14 + 0x00:word32] = fp + ~0x0107;
- Mem153[esp_86 - 0x18 + 0x00:word32] = 0x0200;
- Mem155[esp_86 - 0x1C + 0x00:word32] = Mem153[esi_133 + 0x0C:word32];
- Mem157[esp_86 - 0x20 + 0x00:word32] = ebx_132;
- word32 ebx_158;
- word128 xmm0_160;
- edx_161 = fn00407E12(ebx_132, fp - 0x04, es, ds, dwArg00, out ebx_158, out esi, out xmm0_160);
- esp_163 = esp_86 + 0x04;
- eax_164 = 0x00;
- l00403F61:
- byte cl_186;
- byte cl_172 = (byte) (word32) (fp + ~0x0507)[eax_164 * 0x02];
- if ((cl_172 & 0x01) != 0x00)
- {
- Mem192[esi + 0x1D + eax_164:byte] = Mem157[esi + 0x1D + eax_164:byte] | 0x10;
- cl_186 = Mem192[fp + ~0x0207 + eax_164:byte];
- }
- else
- {
- if ((cl_172 & 0x02) == 0x00)
- {
- Mem206[esi + 0x011D + eax_164:byte] = 0x00;
- l00403F9E:
- eax_164 = eax_164 + 0x01;
- if (eax_164 <u edi_212)
- goto l00403F61;
- l00403FFB:
- fn00404BEF(eax_164, Mem0[fp - 0x08 + 0x00:word32] ^ fp - 0x04, edx_161, Mem0[esp_163 + 0x04:word32], fp - 0x04, esi, Mem0[esp_163 + 0x00:word32], es, ds);
- return edx_161;
- }
- Mem201[esi + 0x1D + eax_164:byte] = Mem157[esi + 0x1D + eax_164:byte] | 0x20;
- cl_186 = Mem201[fp + ~0x0307 + eax_164:byte];
- }
- Mem190[esi + 0x011D + eax_164:byte] = cl_186;
- goto l00403F9E;
- }
- word32 ecx_256 = 0x00;
- byte cl_257 = 0x00;
- word32 v16_258 = ~0x60 - (esi + 0x011D);
- l00403FBD:
- byte dl_284;
- eax_164 = esi + 0x011D + ecx_256;
- edx_161 = v16_258 + eax_164;
- if (edx_161 <=u 0x07)
- {
- Mem289[esi + 0x1D + ecx_256:byte] = Mem0[esi + 0x1D + ecx_256:byte] | 0x10;
- dl_284 = cl_257 + 0x20;
- edx_161 = DPB(edx_161, dl_284, 0);
- }
- else
- {
- if (edx_161 >u 0x19)
- {
- Mem304[eax_164 + 0x00:byte] = 0x00;
- l00403FF6:
- ecx_256 = ecx_256 + 0x01;
- cl_257 = (byte) ecx_256;
- if (ecx_256 <u 0x0100)
- goto l00403FBD;
- goto l00403FFB;
- }
- Mem298[esi + 0x1D + ecx_256:byte] = Mem0[esi + 0x1D + ecx_256:byte] | 0x20;
- dl_284 = cl_257 - 0x20;
- edx_161 = DPB(edx_161, dl_284, 0);
- }
- Mem287[eax_164 + 0x00:byte] = dl_284;
- goto l00403FF6;
- }
- word32 fn00404009(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 esi_116;
- word32 ebp_10;
- word32 eax_11 = fn00402F20(ebx, esi, edi, dwLoc0C, 4241000, 0x0C, out ebp_10);
- word128 xmm0_16;
- word32 edx_17;
- word32 ebp_111;
- word32 ebx_113;
- *edxOut = fn00402C19(ebx, ebp_10, esi, es, ds, out ebx_113, out ebp_111, out xmm0_16);
- word32 esp_110 = fp - 0x08;
- word32 edi_112 = eax_11;
- if ((Mem0[eax_11 + 0x70:word32] & Mem0[0x0040DA44:word32]) != 0x00 && Mem0[eax_11 + 0x6C:word32] != 0x00)
- esi_116 = Mem0[eax_11 + 0x68:word32];
- else
- {
- Mem70[fp - 0x0C + 0x00:word32] = 0x0D;
- word32 edx_71;
- word128 xmm0_73;
- fn00405B56(ebx_113, eax_11, es, ds, dwArg00, out edx_71, out ebx_113, out xmm0_73);
- Mem78[ebp_111 - 0x04 + 0x00:word32] = Mem70[ebp_111 - 0x04 + 0x00:word32] & 0x00;
- esi_116 = Mem78[eax_11 + 0x68:word32];
- Mem81[ebp_111 - 0x1C + 0x00:word32] = esi_116;
- esp_110 = fp - 0x08;
- if (esi_116 != Mem81[4249928:word32])
- {
- if (esi_116 != 0x00)
- {
- Mem123[fp - 0x0C + 0x00:word32] = esi_116;
- esp_110 = fp - 0x08;
- if (InterlockedDecrement(Mem123[fp - 0x0C + 0x00:(ptr LONG)]) == 0x00 && esi_116 != 4248864)
- {
- Mem132[fp - 0x0C + 0x00:word32] = esi_116;
- word32 eax_133;
- word32 edx_134;
- word32 esi_137;
- word128 xmm0_139;
- fn004047EB(ebx_113, esi_116, eax_11, es, ds, out eax_133, out edx_134, out ebx_113, out ebp_111, out esi_137, out edi_112, out xmm0_139);
- esp_110 = fp - 0x08;
- }
- }
- Mem115[edi_112 + 0x68:word32] = Mem81[4249928:word32];
- esi_116 = Mem115[4249928:word32];
- Mem117[ebp_111 - 0x1C + 0x00:word32] = esi_116;
- word32 esp_118 = esp_110 - 0x04;
- Mem119[esp_118 + 0x00:word32] = esi_116;
- InterlockedIncrement(Mem119[esp_118 + 0x00:(ptr LONG)]);
- esp_110 = esp_118 + 0x04;
- }
- Mem98[ebp_111 - 0x04 + 0x00:word32] = ~0x01;
- fn004040A4();
- }
- if (esi_116 == 0x00)
- {
- Mem60[esp_110 - 0x04 + 0x00:word32] = 0x20;
- word32 eax_61;
- word32 edx_62;
- word32 ebx_63;
- word128 xmm0_65;
- fn00401B9C(ebx_113, ebp_111, es, ds, out eax_61, out edx_62, out ebx_63, out esi_116, out xmm0_65);
- }
- word32 ebp_49;
- word32 esi_50;
- word32 edi_51;
- word32 ebx_52;
- *ebxOut = fn00402F65(ebp_111, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_49, out esi_50, out edi_51);
- return esi_116;
- }
- void fn004040A4()
- {
- fn00405A7C(0x0D);
- return;
- }
- word32 fn004040AD(selector es, selector ds, ptr32 & edxOut, ptr32 & xmm0Out)
- {
- word32 eax_29;
- word32 ebx_21;
- word128 xmm0_22;
- word32 edx_23;
- *edxOut = fn00401759(fp - 0x14, 0x00, es, ds, 0x00, out ebx_21, out xmm0_22);
- Mem25[4252548:word32] = ebx_21;
- if (esi == ~0x01)
- {
- Mem49[4252548:word32] = 0x01;
- eax_29 = GetOEMCP();
- }
- else if (esi == ~0x02)
- {
- Mem53[4252548:word32] = 0x01;
- eax_29 = GetACP();
- }
- else
- {
- if (esi != ~0x03)
- {
- if (Mem25[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 eax_65 = Mem25[fp - 0x0C + 0x00:word32];
- Mem67[eax_65 + 0x70:word32] = Mem25[eax_65 + 0x70:word32] & ~0x02;
- }
- eax_29 = esi;
- return eax_29;
- }
- eax_29 = Mem25[Mem25[fp - 0x14 + 0x00:word32] + 0x04:word32];
- Mem59[4252548:word32] = 0x01;
- }
- if (Mem25[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 ecx_44 = Mem25[fp - 0x0C + 0x00:word32];
- Mem46[ecx_44 + 0x70:word32] = Mem25[ecx_44 + 0x70:word32] & ~0x02;
- }
- return eax_29;
- }
- word32 fn00404129(word32 ebp, selector es, selector ds, word32 dwArg04, word32 dwArg08)
- {
- word32 eax_141;
- word128 xmm0_30;
- word32 edx_127;
- word32 eax_31 = fn004040AD(es, ds, out edx_127, out xmm0_30);
- Mem36[fp + 0x04:word32] = eax_31;
- word32 esp_121 = fp - 0x30;
- word16 di_33 = (word16) eax_31;
- if (eax_31 != 0x00)
- {
- Mem96[fp - 0x20 + 0x00:word32] = 0x00;
- word32 eax_103 = 0x0040D950;
- do
- {
- if (Mem96[eax_103 + 0x00:word32] == eax_31)
- {
- Mem285[fp - 0x34 + 0x00:word32] = 0x0101;
- Mem288[fp - 0x38 + 0x00:word32] = 0x00;
- Mem290[fp - 0x3C + 0x00:word32] = dwArg08 + 0x1C;
- word32 edx_291;
- word32 edi_292;
- fn00404CA0(xmm0_30, ebp, dwArg00, dwArg04, dwArg08, out edx_291, out edi_292);
- word32 ecx_294 = Mem290[fp - 0x20 + 0x00:word32];
- Mem299[fp - 0x24 + 0x00:word32] = 0x00;
- word32 esi_300 = ecx_294 *s 0x30 + 4249952;
- Mem302[fp - 0x20 + 0x00:word32] = esi_300;
- do
- {
- if (Mem302[esi_300 + 0x00:byte] != 0x00)
- {
- byte al_357 = Mem302[esi_300 + 0x01:byte];
- if (al_357 != 0x00)
- {
- word32 edi_363 = (word32) Mem302[esi_300 + 0x00:byte];
- word32 eax_365 = (word32) al_357;
- while (edi_363 <=u eax_365)
- {
- Mem386[dwArg08 + 0x1D + edi_363:byte] = Mem302[dwArg08 + 0x1D + edi_363:byte] | Mem302[Mem302[(fp - 0x24) + 0x00:word32] + 4249932:byte];
- eax_365 = (word32) Mem386[esi_300 + 0x01:byte];
- edi_363 = edi_363 + 0x01;
- }
- edi_292 = Mem302[fp + 0x04:word32];
- esi_300 = esi_300 + 0x02;
- continue;
- }
- }
- word32 esi_320 = Mem302[fp - 0x20 + 0x00:word32];
- Mem322[fp - 0x24 + 0x00:word32] = Mem302[fp - 0x24 + 0x00:word32] + 0x01;
- Mem327[fp - 0x20 + 0x00:word32] = esi_320 + 0x08;
- esi_300 = esi_320 + 0x08;
- } while (Mem322[fp - 0x24 + 0x00:word32] <u 0x04);
- Mem329[dwArg08 + 0x04:word32] = edi_292;
- Mem330[dwArg08 + 0x08:word32] = 0x01;
- word32 eax_331 = fn00403DE3(edi_292);
- Mem333[fp - 0x34 + 0x00:word32] = 0x06;
- Mem334[dwArg08 + 0x0C:word32] = eax_331;
- word32 eax_335 = dwArg08 + 0x10;
- word32 ecx_338 = ecx_294 *s 0x30 + 4249940;
- word32 edx_340 = Mem334[fp - 0x34 + 0x00:word32];
- esp_121 = fp - 0x30;
- do
- {
- Mem347[eax_335 + 0x00:word16] = Mem334[ecx_338 + 0x00:word16];
- ecx_338 = ecx_338 + 0x02;
- eax_335 = eax_335 + 0x02;
- edx_340 = edx_340 - 0x01;
- } while (edx_340 != 0x00);
- goto l00404298;
- }
- Mem129[fp - 0x20 + 0x00:word32] = Mem96[fp - 0x20 + 0x00:word32] + 0x01;
- eax_103 = eax_103 + 0x30;
- } while (eax_103 <u ~0x0040D85F);
- if (eax_31 != 65000 && eax_31 != 65001)
- {
- Mem150[fp - 0x34 + 0x00:word32] = (word32) di_33;
- eax_103 = IsValidCodePage(Mem150[fp - 0x34 + 0x00:UINT]);
- esp_121 = fp - 0x30;
- if (eax_103 != 0x00)
- {
- Mem160[fp - 0x34 + 0x00:word32] = fp - 0x1C;
- Mem162[fp - 0x38 + 0x00:word32] = eax_31;
- eax_103 = GetCPInfo(Mem162[fp - 0x38 + 0x00:UINT], Mem162[fp - 0x34 + 0x00:LPCPINFO]);
- esp_121 = fp - 0x30;
- if (eax_103 != 0x00)
- {
- Mem171[fp - 0x34 + 0x00:word32] = 0x0101;
- Mem174[fp - 0x38 + 0x00:word32] = 0x00;
- Mem176[fp - 0x3C + 0x00:word32] = dwArg08 + 0x1C;
- word32 edx_178;
- word32 edi_179;
- fn00404CA0(xmm0_30, ebp, dwArg00, dwArg04, dwArg08, out edx_178, out edi_179);
- Mem184[dwArg08 + 0x04:word32] = edi_179;
- Mem185[dwArg08 + 0x0C:word32] = 0x00;
- esp_121 = fp - 0x30;
- if (Mem185[fp - 0x1C + 0x00:word32] >u 0x01)
- {
- if (Mem185[fp - 22 + 0x00:byte] != 0x00)
- {
- word32 esi_241 = fp - 0x15;
- do
- {
- byte cl_251 = Mem185[esi_241 + 0x00:byte];
- if (cl_251 == 0x00)
- goto l004042BA;
- word32 eax_256 = (word32) Mem185[esi_241 - 0x01 + 0x00:byte];
- word32 ecx_259 = (word32) cl_251;
- while (eax_256 <=u ecx_259)
- {
- Mem274[dwArg08 + 0x1D + eax_256:byte] = Mem185[dwArg08 + 0x1D + eax_256:byte] | 0x04;
- eax_256 = eax_256 + 0x01;
- }
- word32 esi_268 = esi_241 + 0x01;
- esi_241 = esi_268 + 0x01;
- } while (Mem185[esi_268 + 0x00:byte] != 0x00);
- }
- l004042BA:
- word32 eax_219 = dwArg08 + 0x1E;
- word32 ecx_222 = 0xFE;
- do
- {
- Mem227[eax_219 + 0x00:byte] = Mem185[eax_219 + 0x00:byte] | 0x08;
- eax_219 = eax_219 + 0x01;
- ecx_222 = ecx_222 - 0x01;
- } while (ecx_222 != 0x00);
- Mem239[dwArg08 + 0x0C:word32] = fn00403DE3(Mem227[dwArg08 + 0x04:word32]);
- Mem240[dwArg08 + 0x08:word32] = 0x01;
- }
- else
- Mem281[dwArg08 + 0x08:word32] = 0x00;
- Mem204[dwArg08 + 0x10:word32] = 0x00;
- Mem206[dwArg08 + 0x14:word32] = 0x00;
- Mem208[dwArg08 + 0x18:word32] = 0x00;
- l00404298:
- word128 xmm0_123;
- fn00403E76(dwArg08, fp - 0x04, dwArg08, es, ds, xmm0_30, out xmm0_123);
- word128 xmm0_126;
- edx_127 = fn00403E76(dwArg08, fp - 0x04, dwArg08, es, ds, xmm0_123, out xmm0_126);
- l0040415B:
- eax_141 = 0x00;
- l004042FF:
- word32 esp_53 = esp_121 + 0x04;
- return fn00404BEF(eax_141, Mem36[fp - 0x08 + 0x00:word32] ^ fp - 0x04, edx_127, Mem36[esp_53 + 0x04:word32], fp - 0x04, Mem36[esp_53 + 0x00:word32], Mem36[esp_121 + 0x00:word32], es, ds);
- }
- if (Mem162[4252548:word32] != 0x00)
- goto l00404154;
- }
- }
- eax_141 = eax_103 | ~0x00;
- goto l004042FF;
- }
- else
- {
- l00404154:
- edx_127 = fn00403E12(dwArg08, xmm0_30);
- goto l0040415B;
- }
- }
- word32 fn0040430E(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- fn0040430E_entry:
- def fp
- def ebx
- def esi
- def edi
- def dwLoc0C
- def Mem0
- def es
- def ds
- def dwArg00
- def dwArg04
- def dwArg08
- def dwArg0C
- dwLoc04_3 = 0x14
- esp_4 = fp - 0x08
- dwLoc08_5 = 0x0040B688
- eax_11 = fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B688, 0x14, out ebp_10)
- v4_13 = Mem0[ebp_10 - 0x20 + 0x00:word32] | ~0x00
- Mem14[ebp_10 - 0x20 + 0x00:word32] = v4_13
- fn00402C19(ebx, ebp_10, esi, es, ds, out ebx_19, out ebp_20, out xmm0_21)
- edi_23 = eax_11
- Mem24[ebp_20 - 0x24 + 0x00:word32] = eax_11
- fn00404009(ebx_19, esi, eax_11, es, ds, out edx_25, out ebx_26, out ebp_27, out esi_28, out edi_29, out xmm0_30)
- ebx_32 = Mem24[edi_29 + 0x68:word32]
- eax_36 = fn004040AD(es, ds, out edx_34, out xmm0_35)
- Mem37[ebp_27 + 0x08:word32] = eax_36
- branch eax_36 == Mem37[ebx_32 + 0x04:word32] l0040449B
- goto l00404344
- l0040430E:
- l00404344:
- esp_67 = fp - 0x0C
- Mem68[fp - 0x0C + 0x00:word32] = 0x0220
- eax_74 = fn0040489A(ebx_32, ebp_27, es, ds, out ebx_69, out ebp_70, out esi_71, out edi_72, out xmm0_73)
- esp_76 = fp - 0x08
- ebx_77 = eax_74
- branch eax_74 == 0x00 l0040449F
- l00404359:
- ecx_85 = 0x88
- esi_88 = Mem68[edi_72 + 0x68:word32]
- edi_89 = eax_74
- l00404363:
- esi_90 = PHI(esi_88, esi_97)
- edi_91 = PHI(edi_89, edi_98)
- ecx_92 = PHI(ecx_85, ecx_99)
- branch ecx_92 == 0x00 l00404365
- l00404363_1:
- v14_95 = Mem68[esi_90 + 0x00:word32]
- Mem96[edi_91 + 0x00:word32] = v14_95
- esi_97 = esi_90 + 0x04
- edi_98 = edi_91 + 0x04
- ecx_99 = ecx_92 - 0x01
- goto l00404363
- l00404365:
- v16_102 = Mem68[eax_74 + 0x00:word32] & 0x00
- Mem103[eax_74 + 0x00:word32] = v16_102
- esp_106 = fp - 0x0C
- Mem107[fp - 0x0C + 0x00:word32] = eax_74
- esp_108 = fp - 0x10
- Mem109[fp - 0x10 + 0x00:word32] = Mem107[ebp_70 + 0x08:word32]
- eax_110 = fn00404129(ebp_70, es, ds, dwArg00, dwArg04)
- esp_112 = fp - 0x0C
- esp_114 = fp - 0x08
- Mem115[ebp_70 - 0x20 + 0x00:word32] = eax_110
- branch eax_110 != 0x00 l0040447A
- l0040437E:
- esi_119 = Mem115[ebp_70 - 0x24 + 0x00:word32]
- esp_120 = fp - 0x0C
- Mem121[fp - 0x0C + 0x00:word32] = Mem115[esi_119 + 0x68:word32]
- eax_122 = InterlockedDecrement(Mem121[fp - 0x0C + 0x00:(ptr LONG)])
- esp_123 = fp - 0x08
- branch eax_122 != 0x00 l0040439F
- l0040438E:
- eax_251 = Mem121[esi_119 + 0x68:word32]
- branch eax_251 == 4248864 l0040439F
- l00404398:
- esp_254 = fp - 0x0C
- Mem255[fp - 0x0C + 0x00:word32] = eax_251
- fn004047EB(eax_74, esi_119, edi_91, es, ds, out eax_256, out edx_257, out ebx_258, out ebp_259, out esi_260, out edi_261, out xmm0_262)
- esp_265 = fp - 0x08
- l0040439F:
- esp_131 = PHI(esp_123, esp_123, esp_265)
- ebp_132 = PHI(ebp_70, ebp_70, ebp_259)
- ebx_133 = PHI(ebx_77, ebx_77, ebx_258)
- esi_134 = PHI(esi_119, esi_119, esi_260)
- Mem136[esi_134 + 0x68:word32] = ebx_133
- esp_137 = esp_131 - 0x04
- Mem138[esp_137 + 0x00:word32] = ebx_133
- edi_139 = InterlockedIncrement
- InterlockedIncrement(Mem138[esp_137 + 0x00:(ptr LONG)])
- esp_141 = esp_137 + 0x04
- branch (Mem138[esi_134 + 0x70:byte] & 0x02) != 0x00 || (Mem138[0x0040DA44:byte] & 0x01) != 0x00 l0040449F
- goto l004043C2
- l004043B5:
- l004043C2:
- esp_148 = esp_137
- Mem149[esp_137 + 0x00:word32] = 0x0D
- D_153 = fn00405B56(ebx_133, InterlockedIncrement, es, ds, dwArg00, out edx_150, out ebx_151, out xmm0_152)
- esp_155 = esp_137 + 0x04
- v17_156 = Mem149[ebp_132 - 0x04 + 0x00:word32] & 0x00
- Mem157[ebp_132 - 0x04 + 0x00:word32] = v17_156
- eax_159 = Mem157[ebx_151 + 0x04:word32]
- Mem160[4252564:word32] = eax_159
- eax_161 = Mem160[ebx_151 + 0x08:word32]
- Mem162[4252568:word32] = eax_161
- eax_163 = Mem162[ebx_151 + 0x0C:word32]
- Mem164[4252572:word32] = eax_163
- eax_165 = 0x00
- l004043E8:
- eax_168 = PHI(eax_165, eax_176)
- Mem171[ebp_132 - 0x1C + 0x00:word32] = eax_168
- branch eax_168 >= 0x05 l00404400
- l004043F0:
- cx_174 = (ebx_151 + 0x10)[eax_168 * 0x02]
- 4252552[eax_168 * 0x02] = cx_174
- eax_176 = eax_168 + 0x01
- goto l004043E8
- l00404400:
- eax_178 = 0x00
- l00404402:
- eax_181 = PHI(eax_178, eax_189)
- Mem184[ebp_132 - 0x1C + 0x00:word32] = eax_181
- branch eax_181 >= 0x0101 l00404419
- l0040440C:
- cl_187 = Mem184[eax_181 + 0x1C + ebx_151:byte]
- Mem188[eax_181 + 0x0040D740:byte] = cl_187
- eax_189 = eax_181 + 0x01
- goto l00404402
- l00404419:
- eax_191 = 0x00
- l0040441B:
- eax_194 = PHI(eax_191, eax_202)
- Mem197[ebp_132 - 0x1C + 0x00:word32] = eax_194
- branch eax_194 >= 0x0100 l00404435
- l00404425:
- cl_200 = Mem197[eax_194 + 0x011D + ebx_151:byte]
- Mem201[eax_194 + 0x0040D848:byte] = cl_200
- eax_202 = eax_194 + 0x01
- goto l0040441B
- l00404435:
- esp_204 = esp_137
- Mem205[esp_137 + 0x00:word32] = Mem197[4249928:word32]
- eax_206 = InterlockedDecrement(Mem205[esp_137 + 0x00:(ptr LONG)])
- esp_207 = esp_137 + 0x04
- branch eax_206 != 0x00 l00404458
- l00404445:
- eax_236 = Mem205[4249928:word32]
- branch eax_236 == 4248864 l00404458
- l00404451:
- esp_239 = esp_137
- Mem240[esp_137 + 0x00:word32] = eax_236
- fn004047EB(ebx_151, esi_134, InterlockedIncrement, es, ds, out eax_241, out edx_242, out ebx_243, out ebp_244, out esi_245, out edi_246, out xmm0_247)
- esp_250 = esp_137 + 0x04
- l00404458:
- esp_211 = PHI(esp_207, esp_207, esp_250)
- ebx_212 = PHI(ebx_151, ebx_151, ebx_243)
- Mem213[4249928:word32] = ebx_212
- esp_214 = esp_211 - 0x04
- Mem215[esp_214 + 0x00:word32] = ebx_212
- eax_221 = InterlockedIncrement(Mem0[esp + 0x00:(ptr LONG)])
- Mem235[ebp_217 - 0x04 + 0x00:word32] = ~0x01
- fn0040446F()
- goto l0040449F
- l0040447A:
- branch eax_110 != ~0x00 l0040449F
- l0040447F:
- branch eax_74 == 4248864 l0040448E
- l00404487:
- esp_284 = fp - 0x0C
- Mem285[fp - 0x0C + 0x00:word32] = eax_74
- fn004047EB(eax_74, esi_90, edi_91, es, ds, out eax_286, out edx_287, out ebx_288, out ebp_289, out esi_290, out edi_291, out xmm0_292)
- l0040448E:
- ebp_271 = PHI(ebp_70, ebp_289)
- ebx_272 = PHI(ebx_77, ebx_288)
- esi_273 = PHI(esi_90, esi_290)
- fn0040197F(ebx_272, ebp_271, esi_273, es, ds, out eax_275, out edx_276, out ebx_277, out ebp_278, out esi_279, out edi_280, out xmm0_281)
- Mem283[eax_275 + 0x00:word32] = 22
- goto l0040449F
- l0040449B:
- v15_296 = Mem37[ebp_27 - 0x20 + 0x00:word32] & 0x00
- Mem297[ebp_27 - 0x20 + 0x00:word32] = v15_296
- l0040449F:
- ebp_50 = PHI(ebp_70, ebp_27, ebp_70, ebp_132, ebp_132, ebp_278, ebp_217)
- ebx_63 = fn00402F65(ebp_50, 0x14, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_60, out esi_61, out edi_62)
- return ebx_63
- fn0040430E_exit:
- use ebp_60 (=> ebpOut)
- use esi_61 (=> esiOut)
- use edi_62 (=> ediOut)
- }
- void fn0040446F()
- {
- fn00405A7C(0x0D);
- return;
- }
- word32 fn004044A8(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- *ebpOut = ebp;
- *esiOut = esi;
- *ediOut = edi;
- *ebxOut = ebx;
- if (Mem0[0x0040FACC:word32] == 0x00)
- {
- word32 ebp_29;
- word32 esi_30;
- word32 edi_31;
- word32 ebx_32;
- *ebxOut = fn0040430E(ebx, esi, edi, es, ds, out ebp_29, out esi_30, out edi_31);
- Mem35[0x0040FACC:word32] = 0x01;
- }
- return 0x00;
- }
- word32 fn004044C6(word32 ebp, word32 edi, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 edi_256 = edi;
- word32 ebp_143 = fp - 0x04;
- word32 esi_144 = dwArg04;
- word32 eax_17 = Mem0[dwArg04 + 188:word32];
- word32 ebx_142 = 0x00;
- word32 esp_100 = fp - 0x10;
- if (eax_17 != 0x00 && eax_17 != 0x0040DD68)
- {
- word32 eax_243 = Mem0[dwArg04 + 0xB0:word32];
- if (eax_243 != 0x00 && Mem0[eax_243 + 0x00:word32] == 0x00)
- {
- word32 eax_248 = Mem0[dwArg04 + 0xB8:word32];
- if (eax_248 != 0x00 && Mem0[eax_248 + 0x00:word32] == 0x00)
- {
- word32 eax_317;
- word32 edx_318;
- word32 ebx_319;
- word32 ebp_320;
- word128 xmm0_323;
- fn004047EB(0x00, dwArg04, edi, es, ds, out eax_317, out edx_318, out ebx_319, out ebp_320, out esi_144, out edi_256, out xmm0_323);
- Mem326[fp - 0x18 + 0x00:word32] = Mem0[esi_144 + 188:word32];
- ebx_142 = fn0040822D(ebx_319, edi_256, es, ds, dwArg00);
- esp_100 = fp - 0x10;
- }
- word32 eax_261 = Mem0[esi_144 + 0xB4:word32];
- if (eax_261 != ebx_142 && Mem0[eax_261 + 0x00:word32] == ebx_142)
- {
- word32 esp_296 = esp_100 - 0x04;
- Mem297[esp_296 + 0x00:word32] = eax_261;
- word32 eax_298;
- word32 edx_299;
- word32 ebx_300;
- word32 ebp_301;
- word128 xmm0_304;
- fn004047EB(ebx_142, esi_144, edi_256, es, ds, out eax_298, out edx_299, out ebx_300, out ebp_301, out esi_144, out edi_256, out xmm0_304);
- Mem307[esp_296 - 0x04 + 0x00:word32] = Mem297[esi_144 + 188:word32];
- ebx_142 = fn004081E8(ebx_300, edi_256, es, ds, dwArg00);
- esp_100 = esp_296 + 0x04;
- }
- word32 esp_270 = esp_100 - 0x04;
- Mem271[esp_270 + 0x00:word32] = Mem0[esi_144 + 0xB0:word32];
- word32 eax_272;
- word32 edx_273;
- word32 ebx_274;
- word32 ebp_275;
- word32 esi_276;
- word32 edi_277;
- word128 xmm0_278;
- fn004047EB(ebx_142, esi_144, edi_256, es, ds, out eax_272, out edx_273, out ebx_274, out ebp_275, out esi_276, out edi_277, out xmm0_278);
- Mem281[esp_270 - 0x04 + 0x00:word32] = Mem271[esi_276 + 188:word32];
- word32 eax_282;
- word32 edx_283;
- word128 xmm0_288;
- fn004047EB(ebx_274, esi_276, edi_277, es, ds, out eax_282, out edx_283, out ebx_142, out ebp_143, out esi_144, out edi_256, out xmm0_288);
- esp_100 = esp_270 + 0x04;
- }
- }
- word32 eax_38 = Mem0[esi_144 + 0xC0:word32];
- if (eax_38 != ebx_142 && Mem0[eax_38 + 0x00:word32] == ebx_142)
- {
- word32 esp_192 = esp_100 - 0x04;
- Mem193[esp_192 + 0x00:word32] = Mem0[esi_144 + 0xC4:word32] - 0xFE;
- word32 eax_194;
- word32 edx_195;
- word32 ebx_196;
- word32 ebp_197;
- word32 esi_198;
- word32 edi_199;
- word128 xmm0_200;
- fn004047EB(ebx_142, esi_144, edi_256, es, ds, out eax_194, out edx_195, out ebx_196, out ebp_197, out esi_198, out edi_199, out xmm0_200);
- Mem207[esp_192 - 0x04 + 0x00:word32] = Mem193[esi_198 + 0xCC:word32] - 0x80;
- word32 eax_208;
- word32 edx_209;
- word32 ebx_210;
- word32 ebp_211;
- word32 esi_212;
- word32 edi_213;
- word128 xmm0_214;
- fn004047EB(ebx_196, esi_198, 0x80, es, ds, out eax_208, out edx_209, out ebx_210, out ebp_211, out esi_212, out edi_213, out xmm0_214);
- Mem220[esp_192 - 0x08 + 0x00:word32] = Mem207[esi_212 + 0xD0:word32] - edi_213;
- word32 eax_221;
- word32 edx_222;
- word32 ebx_223;
- word32 ebp_224;
- word32 esi_225;
- word32 edi_226;
- word128 xmm0_227;
- fn004047EB(ebx_210, esi_212, edi_213, es, ds, out eax_221, out edx_222, out ebx_223, out ebp_224, out esi_225, out edi_226, out xmm0_227);
- Mem230[esp_192 - 0x0C + 0x00:word32] = Mem220[esi_225 + 0xC0:word32];
- word32 eax_231;
- word32 edx_232;
- word32 edi_236;
- word128 xmm0_237;
- fn004047EB(ebx_223, esi_225, edi_226, es, ds, out eax_231, out edx_232, out ebx_142, out ebp_143, out esi_144, out edi_236, out xmm0_237);
- esp_100 = esp_192 + 0x04;
- }
- word32 edi_48 = esi_144 + 212;
- word32 eax_49 = Mem0[edi_48 + 0x00:word32];
- if (eax_49 != 0x0040DCA8 && Mem0[eax_49 + 0xB4:word32] == ebx_142)
- {
- word32 esp_169 = esp_100 - 0x04;
- Mem170[esp_169 + 0x00:word32] = eax_49;
- word32 ebx_172 = fn00408053(ebx_142, edi_48, es, ds, dwArg00);
- Mem174[esp_169 - 0x04 + 0x00:word32] = Mem170[edi_48 + 0x00:word32];
- word32 eax_175;
- word32 edx_176;
- word32 edi_180;
- word128 xmm0_181;
- fn004047EB(ebx_172, esi_144, edi_48, es, ds, out eax_175, out edx_176, out ebx_142, out ebp_143, out esi_144, out edi_180, out xmm0_181);
- esp_100 = esp_169 + 0x04;
- }
- Mem64[ebp_143 + 0x08:word32] = 0x06;
- word32 edi_101 = esi_144 + 0x50;
- do
- {
- if (Mem64[edi_101 - 0x08 + 0x00:word32] != 0x0040DA48)
- {
- word32 eax_150 = Mem64[edi_101 + 0x00:word32];
- if (eax_150 != ebx_142 && Mem64[eax_150 + 0x00:word32] == ebx_142)
- {
- word32 esp_155 = esp_100 - 0x04;
- Mem156[esp_155 + 0x00:word32] = eax_150;
- word32 eax_157;
- word32 edx_158;
- word128 xmm0_163;
- fn004047EB(ebx_142, esi_144, edi_101, es, ds, out eax_157, out edx_158, out ebx_142, out ebp_143, out esi_144, out edi_101, out xmm0_163);
- esp_100 = esp_155 + 0x04;
- }
- }
- if (Mem64[edi_101 - 0x04 + 0x00:word32] != ebx_142)
- {
- word32 eax_133 = Mem64[edi_101 + 0x04:word32];
- if (eax_133 != ebx_142 && Mem64[eax_133 + 0x00:word32] == ebx_142)
- {
- word32 esp_138 = esp_100 - 0x04;
- Mem139[esp_138 + 0x00:word32] = eax_133;
- word32 eax_140;
- word32 edx_141;
- word128 xmm0_146;
- fn004047EB(ebx_142, esi_144, edi_101, es, ds, out eax_140, out edx_141, out ebx_142, out ebp_143, out esi_144, out edi_101, out xmm0_146);
- esp_100 = esp_138 + 0x04;
- }
- }
- word32 v13_103 = Mem64[ebp_143 + 0x08:word32] - 0x01;
- Mem104[ebp_143 + 0x08:word32] = v13_103;
- edi_101 = edi_101 + 0x10;
- } while (v13_103 != 0x00);
- word32 esp_107 = esp_100 - 0x04;
- Mem108[esp_107 + 0x00:word32] = esi_144;
- word32 eax_111;
- word32 edx_112;
- word32 ebx_113;
- word32 ebp_114;
- word32 esi_115;
- word32 edi_116;
- word128 xmm0_117;
- fn004047EB(ebx_142, esi_144, edi_101, es, ds, out eax_111, out edx_112, out ebx_113, out ebp_114, out esi_115, out edi_116, out xmm0_117);
- word32 edi_121;
- *ediOut = Mem108[esp_107 + 0x04:word32];
- word32 ebx_125;
- *ebxOut = Mem108[esp_107 + 0x0C:word32];
- word32 ebp_127;
- *ebpOut = Mem108[esp_107 + 0x10:word32];
- return edx_112;
- }
- word32 fn0040460F(word32 dwArg04, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- fn0040460F_entry:
- def fp
- def dwArg04
- def Mem0
- esi_14 = InterlockedIncrement
- edi_18 = dwArg04
- dwLoc14_20 = dwArg04
- InterlockedIncrement(dwArg04)
- esp_22 = fp - 0x10
- eax_24 = Mem0[dwArg04 + 0xB0:word32]
- branch eax_24 == 0x00 l00404630
- goto l0040462D
- l0040460F:
- l0040462D:
- dwLoc14_196 = eax_24
- InterlockedIncrement(eax_24)
- esp_198 = fp - 0x10
- l00404630:
- esp_29 = PHI(esp_22, esp_198)
- eax_30 = Mem0[dwArg04 + 0xB8:word32]
- branch eax_30 == 0x00 l0040463D
- l0040463A:
- eax_190 = InterlockedIncrement(Mem0[esp + 0x00:(ptr LONG)])
- l0040463D:
- edi_37 = PHI(edi_18, edi_186)
- esi_38 = PHI(esi_14, esi_189)
- esp_41 = PHI(esp_29, esp_185)
- eax_42 = Mem0[edi_37 + 0xB4:word32]
- branch eax_42 == 0x00 l0040464A
- l00404647:
- esp_171 = esp_41 - 0x04
- Mem172[esp_171 + 0x00:word32] = eax_42
- call esi_38 (retsize: 4; depth: 4)
- uses: C_45,dwLoc04_6,dwLoc08_10,dwLoc0C_13,dwLoc10_16,dwLoc14_35,eax_42,ebp_40,ebx_39,edi_37,esi_38,esp_171,SCZO_36,SZO_43,Z_44
- defs: C_180,eax_178,ebp_175,ebx_176,edi_174,esi_177,esp_173,SCZO_182,SZO_179,Z_181
- l0040464A:
- edi_47 = PHI(edi_37, edi_174)
- esi_48 = PHI(esi_38, esi_177)
- esp_51 = PHI(esp_41, esp_173)
- eax_52 = Mem0[edi_47 + 0xC0:word32]
- branch eax_52 == 0x00 l00404657
- l00404654:
- esp_159 = esp_51 - 0x04
- Mem160[esp_159 + 0x00:word32] = eax_52
- call esi_48 (retsize: 4; depth: 4)
- uses: C_55,dwLoc04_6,dwLoc08_10,dwLoc0C_13,dwLoc10_16,dwLoc14_35,eax_52,ebp_50,ebx_49,edi_47,esi_48,esp_159,SCZO_46,SZO_53,Z_54
- defs: C_168,eax_166,ebp_163,ebx_164,edi_162,esi_165,esp_161,SCZO_170,SZO_167,Z_169
- l00404657:
- edi_61 = PHI(edi_47, edi_162)
- esi_62 = PHI(esi_48, esi_165)
- esp_64 = PHI(esp_51, esp_161)
- ebx_65 = edi_61 + 0x50
- dwArg04_66 = 0x06
- l00404661:
- dwArg04_67 = PHI(dwArg04_66, dwArg04_98)
- edi_71 = PHI(edi_61, edi_90)
- esi_72 = PHI(esi_62, esi_91)
- ebx_73 = PHI(ebx_65, ebx_95)
- esp_75 = PHI(esp_64, esp_94)
- branch Mem0[ebx_73 - 0x08 + 0x00:word32] == 0x0040DA48 l00404673
- l0040466A:
- eax_143 = Mem0[ebx_73 + 0x00:word32]
- branch eax_143 == 0x00 l00404673
- l00404670:
- esp_147 = esp_75 - 0x04
- Mem148[esp_147 + 0x00:word32] = eax_143
- call esi_72 (retsize: 4; depth: 4)
- uses: C_146,dwLoc04_6,dwLoc08_10,dwLoc0C_13,dwLoc10_16,dwLoc14_35,eax_143,ebp_74,ebx_73,edi_71,esi_72,esp_147,SCZO_76,SZO_144,Z_145
- defs: C_156,eax_154,ebp_151,ebx_152,edi_150,esi_153,esp_149,SCZO_158,SZO_155,Z_157
- l00404673:
- edi_81 = PHI(edi_71, edi_150, edi_71)
- esi_82 = PHI(esi_72, esi_153, esi_72)
- ebx_83 = PHI(ebx_73, ebx_152, ebx_73)
- esp_85 = PHI(esp_75, esp_149, esp_75)
- branch Mem0[ebx_83 - 0x04 + 0x00:word32] == 0x00 l00404683
- l00404679:
- eax_127 = Mem0[ebx_83 + 0x04:word32]
- branch eax_127 == 0x00 l00404683
- l00404680:
- esp_131 = esp_85 - 0x04
- Mem132[esp_131 + 0x00:word32] = eax_127
- call esi_82 (retsize: 4; depth: 4)
- uses: C_130,dwLoc04_6,dwLoc08_10,dwLoc0C_13,dwLoc10_16,dwLoc14_35,eax_127,ebp_84,ebx_83,edi_81,esi_82,esp_131,SCZO_86,SZO_128,Z_129
- defs: C_140,eax_138,ebp_135,ebx_136,edi_134,esi_137,esp_133,SCZO_142,SZO_139,Z_141
- l00404683:
- edi_90 = PHI(edi_81, edi_81, edi_134)
- esi_91 = PHI(esi_82, esi_82, esi_137)
- ebx_92 = PHI(ebx_83, ebx_83, ebx_136)
- esp_94 = PHI(esp_85, esp_85, esp_133)
- ebx_95 = ebx_92 + 0x10
- v12_97 = dwArg04_67 - 0x01
- dwArg04_98 = v12_97
- branch v12_97 != 0x00 l00404661
- l0040468B:
- eax_101 = Mem0[edi_90 + 212:word32]
- eax_102 = eax_101 + 0xB4
- esp_104 = esp_94 - 0x04
- Mem105[esp_104 + 0x00:word32] = eax_101 + 0xB4
- call esi_91 (retsize: 4; depth: 4)
- uses: C_88,dwLoc04_6,dwLoc08_10,dwLoc0C_13,dwLoc10_16,dwLoc14_35,eax_102,ebp_93,ebx_95,edi_90,esi_91,esp_104,SCZO_103,SZO_99,Z_100
- defs: C_113,eax_111,ebp_108,ebx_109,edi_107,esi_110,esp_106,SCZO_115,SZO_112,Z_114
- edi_116 = Mem105[esp_106 + 0x00:word32]
- esp_117 = esp_106 + 0x04
- esi_118 = Mem105[esp_106 + 0x04:word32]
- esp_119 = esp_106 + 0x08
- ebx_120 = Mem105[esp_106 + 0x08:word32]
- esp_121 = esp_106 + 0x0C
- ebp_122 = Mem105[esp_106 + 0x0C:word32]
- return ebx_120
- fn0040460F_exit:
- use ebp_122 (=> ebpOut)
- use esi_118 (=> esiOut)
- use edi_116 (=> ediOut)
- }
- word32 fn0040469E(word32 dwArg04, ptr32 & esiOut)
- {
- fn0040469E_entry:
- def fp
- def dwArg04
- def esi
- def ebx
- def Mem0
- edi_11 = dwArg04
- branch dwArg04 == 0x00 l00404732
- goto l004046AF
- l0040469E:
- l004046AF:
- esi_44 = InterlockedDecrement
- dwLoc14_46 = dwArg04
- InterlockedDecrement(dwArg04)
- esp_48 = fp - 0x10
- eax_49 = Mem0[dwArg04 + 0xB0:word32]
- branch eax_49 == 0x00 l004046C7
- l004046C4:
- dwLoc14_213 = eax_49
- InterlockedDecrement(eax_49)
- esp_215 = fp - 0x10
- l004046C7:
- esp_54 = PHI(esp_48, esp_215)
- eax_55 = Mem0[dwArg04 + 0xB8:word32]
- branch eax_55 == 0x00 l004046D4
- l004046D1:
- eax_210 = InterlockedDecrement(Mem0[esp + 0x00:(ptr LONG)])
- l004046D4:
- esi_61 = PHI(esi_44, esi_209)
- edi_63 = PHI(edi_11, edi_203)
- esp_65 = PHI(esp_54, esp_202)
- eax_66 = Mem0[edi_63 + 0xB4:word32]
- branch eax_66 == 0x00 l004046E1
- l004046DE:
- esp_188 = esp_65 - 0x04
- Mem189[esp_188 + 0x00:word32] = eax_66
- call esi_61 (retsize: 4; depth: 4)
- uses: C_69,dwLoc04_6,dwLoc08_9,dwLoc0C_41,dwLoc10_43,dwLoc14_59,eax_66,ebp_64,ebx_62,edi_63,esi_61,esp_188,SCZO_60,SZO_67,Z_68
- defs: C_194,eax_198,ebp_192,ebx_196,edi_191,esi_197,esp_190,SCZO_199,SZO_193,Z_195
- l004046E1:
- esi_71 = PHI(esi_61, esi_197)
- edi_73 = PHI(edi_63, edi_191)
- esp_75 = PHI(esp_65, esp_190)
- eax_76 = Mem0[edi_73 + 0xC0:word32]
- branch eax_76 == 0x00 l004046EE
- l004046EB:
- esp_176 = esp_75 - 0x04
- Mem177[esp_176 + 0x00:word32] = eax_76
- call esi_71 (retsize: 4; depth: 4)
- uses: C_79,dwLoc04_6,dwLoc08_9,dwLoc0C_41,dwLoc10_43,dwLoc14_59,eax_76,ebp_74,ebx_72,edi_73,esi_71,esp_176,SCZO_70,SZO_77,Z_78
- defs: C_182,eax_186,ebp_180,ebx_184,edi_179,esi_185,esp_178,SCZO_187,SZO_181,Z_183
- l004046EE:
- esi_84 = PHI(esi_71, esi_185)
- edi_86 = PHI(edi_73, edi_179)
- esp_88 = PHI(esp_75, esp_178)
- ebx_89 = edi_86 + 0x50
- dwArg04_90 = 0x06
- l004046F8:
- dwArg04_91 = PHI(dwArg04_90, dwArg04_122)
- esi_94 = PHI(esi_84, esi_113)
- ebx_95 = PHI(ebx_89, ebx_119)
- edi_97 = PHI(edi_86, edi_116)
- esp_99 = PHI(esp_88, esp_118)
- branch Mem0[ebx_95 - 0x08 + 0x00:word32] == 0x0040DA48 l0040470A
- l00404701:
- eax_160 = Mem0[ebx_95 + 0x00:word32]
- branch eax_160 == 0x00 l0040470A
- l00404707:
- esp_164 = esp_99 - 0x04
- Mem165[esp_164 + 0x00:word32] = eax_160
- call esi_94 (retsize: 4; depth: 4)
- uses: C_163,dwLoc04_6,dwLoc08_9,dwLoc0C_41,dwLoc10_43,dwLoc14_59,eax_160,ebp_98,ebx_95,edi_97,esi_94,esp_164,SCZO_100,SZO_161,Z_162
- defs: C_170,eax_174,ebp_168,ebx_172,edi_167,esi_173,esp_166,SCZO_175,SZO_169,Z_171
- l0040470A:
- esi_104 = PHI(esi_94, esi_173, esi_94)
- ebx_105 = PHI(ebx_95, ebx_172, ebx_95)
- edi_107 = PHI(edi_97, edi_167, edi_97)
- esp_109 = PHI(esp_99, esp_166, esp_99)
- branch Mem0[ebx_105 - 0x04 + 0x00:word32] == 0x00 l0040471A
- l00404710:
- eax_144 = Mem0[ebx_105 + 0x04:word32]
- branch eax_144 == 0x00 l0040471A
- l00404717:
- esp_148 = esp_109 - 0x04
- Mem149[esp_148 + 0x00:word32] = eax_144
- call esi_104 (retsize: 4; depth: 4)
- uses: C_147,dwLoc04_6,dwLoc08_9,dwLoc0C_41,dwLoc10_43,dwLoc14_59,eax_144,ebp_108,ebx_105,edi_107,esi_104,esp_148,SCZO_110,SZO_145,Z_146
- defs: C_154,eax_158,ebp_152,ebx_156,edi_151,esi_157,esp_150,SCZO_159,SZO_153,Z_155
- l0040471A:
- esi_113 = PHI(esi_104, esi_104, esi_157)
- ebx_114 = PHI(ebx_105, ebx_105, ebx_156)
- edi_116 = PHI(edi_107, edi_107, edi_151)
- esp_118 = PHI(esp_109, esp_109, esp_150)
- ebx_119 = ebx_114 + 0x10
- v12_121 = dwArg04_91 - 0x01
- dwArg04_122 = v12_121
- branch v12_121 != 0x00 l004046F8
- l00404722:
- eax_125 = Mem0[edi_116 + 212:word32]
- eax_126 = eax_125 + 0xB4
- esp_128 = esp_118 - 0x04
- Mem129[esp_128 + 0x00:word32] = eax_125 + 0xB4
- call esi_113 (retsize: 4; depth: 4)
- uses: C_112,dwLoc04_6,dwLoc08_9,dwLoc0C_41,dwLoc10_43,dwLoc14_59,eax_126,ebp_117,ebx_119,edi_116,esi_113,esp_128,SCZO_127,SZO_123,Z_124
- defs: C_134,eax_138,ebp_132,ebx_136,edi_131,esi_137,esp_130,SCZO_139,SZO_133,Z_135
- esi_140 = Mem129[esp_130 + 0x00:word32]
- esp_141 = esp_130 + 0x04
- ebx_142 = Mem129[esp_130 + 0x04:word32]
- l00404732:
- esi_29 = PHI(esi, esi_140)
- ebx_30 = PHI(ebx, ebx_142)
- return ebx_30
- fn0040469E_exit:
- use esi_29 (=> esiOut)
- }
- word32 fn00404737(word32 eax, word32 esi, word32 edi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *ebpOut = ebp;
- *xmm0Out = xmm0;
- *edxOut = edx;
- if (edi == 0x00 || eax == 0x00)
- return 0x00;
- else
- {
- if (Mem0[eax + 0x00:word32] != edi)
- {
- Mem65[eax + 0x00:word32] = edi;
- word32 ebp_66;
- word32 esi_67;
- word32 ebx_69;
- *ebxOut = fn0040460F(edi, out ebp_66, out esi_67, out edi);
- if (esi_67 != 0x00)
- {
- Mem76[fp - 0x08 + 0x00:word32] = esi_67;
- word32 esi_78;
- word32 ebx_79;
- *ebxOut = fn0040469E(dwArg00, out esi_78);
- if (Mem76[esi_78 + 0x00:word32] == 0x00 && esi_78 != 0x0040DA50)
- {
- Mem87[fp - 0x08 + 0x00:word32] = esi_78;
- word32 ebx_90;
- word32 ebp_91;
- word128 xmm0_93;
- word32 edx_94;
- *edxOut = fn004044C6(ebp_66, edi, es, ds, dwArg00, out ebx_90, out ebp_91, out edi, out xmm0_93);
- }
- }
- }
- return edi;
- }
- }
- word32 fn00404775(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 esi_33;
- word32 ebx_35;
- word32 ebp_32;
- word32 ebp_10;
- word32 eax_11 = fn00402F20(ebx, esi, edi, dwLoc0C, 4241064, 0x0C, out ebp_10);
- word32 ebx_14;
- word32 ebp_15;
- word128 xmm0_16;
- fn00402C19(ebx, ebp_10, esi, es, ds, out ebx_14, out ebp_15, out xmm0_16);
- word32 esp_30 = fp - 0x08;
- word32 eax_20 = Mem0[0x0040DA44:word32];
- if ((Mem0[eax_11 + 0x70:word32] & eax_20) != 0x00 && Mem0[eax_11 + 0x6C:word32] != 0x00)
- {
- word128 xmm0_97;
- word32 edx_98;
- *edxOut = fn00402C19(ebx_14, ebp_15, eax_11, es, ds, out ebx_35, out ebp_32, out xmm0_97);
- esi_33 = Mem0[eax_20 + 0x6C:word32];
- }
- else
- {
- Mem72[fp - 0x0C + 0x00:word32] = 0x0C;
- word32 edx_73;
- word32 ebx_74;
- word128 xmm0_75;
- fn00405B56(ebx_14, edi, es, ds, dwArg00, out edx_73, out ebx_74, out xmm0_75);
- Mem80[ebp_15 - 0x04 + 0x00:word32] = Mem72[ebp_15 - 0x04 + 0x00:word32] & 0x00;
- word32 edx_85;
- word128 xmm0_88;
- word32 eax_89 = fn00404737(eax_11 + 0x6C, eax_11, Mem80[4250408:word32], es, ds, out edx_85, out ebx_35, out ebp_32, out xmm0_88);
- Mem90[ebp_32 - 0x1C + 0x00:word32] = eax_89;
- Mem91[ebp_32 - 0x04 + 0x00:word32] = ~0x01;
- esp_30 = fp - 0x08;
- esi_33 = fn004047DF(ebp_32);
- }
- if (esi_33 == 0x00)
- {
- Mem60[esp_30 - 0x04 + 0x00:word32] = 0x20;
- word32 eax_61;
- word32 edx_62;
- word32 ebx_63;
- word128 xmm0_65;
- fn00401B9C(ebx_35, ebp_32, es, ds, out eax_61, out edx_62, out ebx_63, out esi_33, out xmm0_65);
- }
- word32 ebp_50;
- word32 esi_51;
- word32 edi_52;
- word32 ebx_53;
- *ebxOut = fn00402F65(ebp_32, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_50, out esi_51, out edi_52);
- return esi_33;
- }
- word32 fn004047DF(word32 ebp)
- {
- fn00405A7C(0x0C);
- return Mem0[ebp - 0x1C + 0x00:word32];
- }
- bool fn004047EB(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- *edxOut = edx;
- *xmm0Out = xmm0;
- word32 eax_11;
- word32 ebp_10;
- *eaxOut = fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B6C8, 0x0C, out ebp_10);
- word32 esi_13 = Mem0[ebp_10 + 0x08:word32];
- if (esi_13 != 0x00)
- {
- word32 esp_115;
- if (Mem0[0x0040F9A8:word32] != 0x03)
- {
- Mem130[fp - 0x0C + 0x00:word32] = esi_13;
- esp_115 = fp - 0x0C;
- goto l0040484B;
- }
- Mem85[fp - 0x0C + 0x00:word32] = 0x04;
- word32 edx_86;
- word128 xmm0_88;
- D = fn00405B56(ebx, edi, es, ds, dwArg00, out edx_86, out ebx, out xmm0_88);
- Mem93[ebp_10 - 0x04 + 0x00:word32] = Mem85[ebp_10 - 0x04 + 0x00:word32] & 0x00;
- Mem97[fp - 0x0C + 0x00:word32] = esi_13;
- word32 edx_98;
- word32 eax_99 = fn00406815(dwArg00, out edx_98);
- Mem102[ebp_10 - 0x1C + 0x00:word32] = eax_99;
- word32 esp_101 = fp - 0x08;
- if (eax_99 != 0x00)
- {
- Mem118[fp - 0x0C + 0x00:word32] = esi_13;
- Mem120[fp - 0x10 + 0x00:word32] = eax_99;
- word32 edx_122;
- word128 xmm0_123;
- D = fn00406845(dwArg00, dwArg04, bArg07, out edx_122, out xmm0_123);
- esp_101 = fp - 0x08;
- }
- Mem111[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- word32 eax_112;
- *eaxOut = fn00404841();
- if (Mem111[ebp_10 - 0x1C + 0x00:word32] == 0x00)
- {
- esp_115 = esp_101 - 0x04;
- Mem116[esp_115 + 0x00:word32] = Mem111[ebp_10 + 0x08:word32];
- l0040484B:
- word32 esp_57 = esp_115 - 0x04;
- Mem58[esp_57 + 0x00:word32] = 0x00;
- Mem60[esp_57 - 0x04 + 0x00:word32] = Mem58[4252540:word32];
- word32 eax_61 = HeapFree(Mem60[esp_57 - 0x04 + 0x00:HANDLE], Mem60[esp_57 + 0x00:DWORD], Mem60[esp_57 + 0x04:LPVOID]);
- *eaxOut = eax_61;
- if (eax_61 == 0x00)
- {
- word32 eax_68;
- word32 edx_69;
- word32 ebx_70;
- word32 esi_72;
- word32 edi_73;
- word128 xmm0_74;
- D = fn0040197F(ebx, ebp_10, esi_13, es, ds, out eax_68, out edx_69, out ebx_70, out ebp_10, out esi_72, out edi_73, out xmm0_74);
- Mem79[esp_57 + 0x04:word32] = GetLastError();
- word32 eax_80 = fn0040193D(dwArg00);
- *eaxOut = eax_80;
- Mem81[eax_68 + 0x00:word32] = eax_80;
- }
- goto l00404873;
- }
- }
- l00404873:
- word32 ebp_37;
- word32 esi_38;
- word32 edi_39;
- word32 ebx_40;
- *ebxOut = fn00402F65(ebp_10, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_37, out esi_38, out edi_39);
- return D;
- }
- word32 fn00404841()
- {
- return fn00405A7C(0x04);
- }
- void fn00404879(word32 ebp, word32 esi)
- {
- word32 esp_13 = fp - 0x08;
- word32 edi_12 = 4250424;
- do
- {
- word32 esi_14 = edi_12 + 0x00;
- word32 esp_15 = esp_13 - 0x04;
- Mem17[esp_15 + 0x00:word32] = Mem0[esi_14 + 0x00:word32];
- Mem24[esi_14 + 0x00:word32] = fn00402952(ebp, dwArg00);
- edi_12 = edi_12 + 0x04;
- esp_13 = esp_15 + 0x04;
- } while (edi_12 <u ~0x0040DB0F);
- return;
- }
- word32 fn0040489A(word32 ebx, word32 ebp, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 esp_11 = fp - 0x0C;
- word32 esi_13 = 0x00;
- l004048A3:
- word32 esp_24 = esp_11 - 0x04;
- Mem26[esp_24 + 0x00:word32] = Mem0[fp + 0x04:word32];
- word32 edx_30;
- word128 xmm0_32;
- word32 eax_33 = fn00408438(ebx, fp - 0x04, es, ds, dwArg00, out edx_30, out ebx, out xmm0_32);
- esp_11 = esp_24 + 0x04;
- if (eax_33 == 0x00 && Mem26[4252612:word32] >u eax_33)
- {
- Mem68[esp_24 + 0x00:word32] = esi_13;
- Sleep(Mem68[esp_24 + 0x00:DWORD]);
- esp_11 = esp_24 + 0x04;
- eax_33 = esi_13 + 1000;
- if (eax_33 >u Mem68[4252612:word32])
- eax_33 = eax_33 | ~0x00;
- esi_13 = eax_33;
- if (eax_33 != ~0x00)
- goto l004048A3;
- }
- word32 edi_47 = Mem26[esp_11 + 0x00:word32];
- word32 esp_48 = esp_11 + 0x04;
- return eax_33;
- word32 edi_54;
- *ediOut = Mem26[esp_48 + 0x08:word32];
- word32 esi_56;
- *esiOut = Mem26[esp_48 + 0x0C:word32];
- word32 ebp_58;
- *ebpOut = Mem26[esp_48 + 0x10:word32];
- return edi_47;
- }
- bool fn004048DF(word32 ebx, word32 edi, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- word32 edi_22 = edi;
- word32 ebp_24 = fp - 0x04;
- word32 esp_11 = fp - 0x0C;
- word32 esi_13 = 0x00;
- l004048E8:
- word32 esp_26 = esp_11 - 0x04;
- Mem27[esp_26 + 0x00:word32] = 0x00;
- Mem29[esp_26 - 0x04 + 0x00:word32] = Mem27[ebp_24 + 0x0C:word32];
- Mem31[esp_26 - 0x08 + 0x00:word32] = Mem29[ebp_24 + 0x08:word32];
- word32 eax_34;
- word32 edx_35;
- word32 esi_38;
- word128 xmm0_39;
- bool D_40 = fn00408502(ebx, esi_13, edi_22, es, ds, out eax_34, out edx_35, out ebx, out ebp_24, out esi_38, out xmm0_39);
- edi_22 = eax_34;
- esp_11 = esp_26 + 0x04;
- if (eax_34 == 0x00 && Mem31[4252612:word32] >u eax_34)
- {
- Mem75[esp_26 + 0x00:word32] = esi_38;
- Sleep(Mem75[esp_26 + 0x00:DWORD]);
- esp_11 = esp_26 + 0x04;
- word32 eax_77 = esi_38 + 1000;
- if (esi_38 + 1000 >u Mem75[4252612:word32])
- eax_77 = esi_38 + 1000 | ~0x00;
- esi_13 = eax_77;
- if (eax_77 != ~0x00)
- goto l004048E8;
- }
- word32 edi_52 = Mem31[esp_11 + 0x00:word32];
- word32 esp_53 = esp_11 + 0x04;
- return D_40;
- word32 eax_58;
- *eaxOut = edi_52;
- word32 edi_59;
- *ediOut = Mem31[esp_53 + 0x08:word32];
- word32 esi_61;
- *esiOut = Mem31[esp_53 + 0x0C:word32];
- word32 ebp_63;
- *ebpOut = Mem31[esp_53 + 0x10:word32];
- return D_40;
- }
- word32 fn0040492B(word32 ebx, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & ediOut)
- {
- word32 edi_22 = edi;
- word32 ebp_24 = fp - 0x04;
- word32 esp_11 = fp - 0x0C;
- word32 esi_13 = 0x00;
- l00404934:
- word32 esp_26 = esp_11 - 0x04;
- Mem28[esp_26 + 0x00:word32] = Mem0[ebp_24 + 0x0C:word32];
- Mem30[esp_26 - 0x04 + 0x00:word32] = Mem28[ebp_24 + 0x08:word32];
- word32 esi_35;
- word32 eax_36 = fn00408620(ebx, esi_13, edi_22, es, ds, out ebx, out ebp_24, out esi_35);
- edi_22 = eax_36;
- esp_11 = esp_26 + 0x04;
- if (eax_36 == 0x00 && (Mem30[ebp_24 + 0x0C:word32] != eax_36 && Mem30[4252612:word32] >u eax_36))
- {
- Mem73[esp_26 + 0x00:word32] = esi_35;
- Sleep(Mem73[esp_26 + 0x00:DWORD]);
- esp_11 = esp_26 + 0x04;
- eax_36 = esi_35 + 1000;
- if (esi_35 + 1000 >u Mem73[4252612:word32])
- eax_36 = esi_35 + 1000 | ~0x00;
- esi_13 = eax_36;
- if (eax_36 != ~0x00)
- goto l00404934;
- }
- word32 edi_52 = Mem30[esp_11 + 0x00:word32];
- word32 esp_53 = esp_11 + 0x04;
- return eax_36;
- word32 edi_59;
- *ediOut = Mem30[esp_53 + 0x08:word32];
- word32 ebp_63;
- *ebpOut = Mem30[esp_53 + 0x10:word32];
- return edi_52;
- }
- word32 fn00404990(word32 dwArg04, ptr32 & edxOut)
- {
- *edxOut = edx;
- word32 ecx_27 = dwArg04;
- if ((dwArg04 & 0x03) != 0x00)
- while (true)
- {
- ecx_27 = ecx_27 + 0x01;
- if (Mem0[ecx_27 + 0x00:byte] == 0x00)
- break;
- if ((ecx_27 & 0x03) == 0x00)
- goto l004049C0;
- }
- else
- {
- l004049C0:
- do
- {
- word32 eax_40 = Mem0[ecx_27 + 0x00:word32];
- word32 edx_42 = eax_40 + 0x7EFEFEFF;
- *edxOut = edx_42;
- ecx_27 = ecx_27 + 0x04;
- } while (((eax_40 ^ ~0x00 ^ eax_40 + 0x7EFEFEFF) & 0x81010100) == 0x00);
- word32 eax_49 = Mem0[ecx_27 - 0x04 + 0x00:word32];
- byte ah_51 = SLICE(eax_49, byte, 8);
- if ((byte) eax_49 == 0x00)
- return ecx_27 - 0x04 - dwArg04;
- if (ah_51 == 0x00)
- return ecx_27 - 0x03 - dwArg04;
- if ((eax_49 & 0x00FF0000) == 0x00)
- return ecx_27 - 0x02 - dwArg04;
- if ((eax_49 & 0xFF000000) != 0x00)
- goto l004049C0;
- }
- return ecx_27 - 0x01 - dwArg04;
- }
- word32 fn00404BA4(word32 ebx, selector es, selector ds, word32 dwArg08, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *esiOut = esi;
- word32 ebx_17;
- word128 xmm0_18;
- word32 edx_19;
- *edxOut = fn00401759(fp - 0x14, ebx, es, ds, dwArg08, out ebx_17, out xmm0_18);
- word32 eax_25 = (word32) Mem0[Mem0[fp - 0x14 + 0x00:word32] + 200:word32][(word32) Mem0[fp + 0x04:byte] * 0x02];
- if (Mem0[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 ecx_42 = Mem0[fp - 0x0C + 0x00:word32];
- Mem44[ecx_42 + 0x70:word32] = Mem0[ecx_42 + 0x70:word32] & ~0x02;
- }
- return eax_25 & 0x8000;
- }
- word32 fn00404BDC(word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- word32 edx_16;
- word32 ebx_17;
- word32 esi_18;
- word128 xmm0_19;
- return fn00404BA4(ebx, es, ds, 0x00, out edx_16, out ebx_17, out esi_18, out xmm0_19);
- }
- word32 fn00404BEF(word32 eax, word32 ecx, word32 edx, word32 ebx, word32 ebp, word32 esi, word32 edi, selector es, selector ds)
- {
- if (ecx != Mem0[0x0040DB60:word32])
- return fn0040883B(eax, ecx, edx, ebx, ebp, esi, edi, es, ds, dwLoc04);
- else
- return eax;
- }
- void fn00404C95()
- {
- Mem4[0x0040E97C:word32] = Mem0[0x0040E97C:word32] & 0x00;
- return;
- }
- word32 fn00404CA0(word128 xmm0, word32 dwArg00, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & edxOut, ptr32 & ediOut)
- {
- fn00404CA0_entry:
- def fp
- def dwArg0C
- def dwArg04
- def edxOut
- def ediOut
- def bArg08
- def edi
- def dwArg08
- def dwArg00
- def Mem0
- def xmm0
- def dwLoc04
- def SCZO
- esp_1 = fp
- edx_3 = dwArg0C
- ecx_5 = dwArg04
- SZO_6 = cond(edx_3 & edx_3)
- Z_7 = SZO_6 (alias)
- C_8 = false
- branch (edx_3 & edx_3) == 0x00 l00404D15
- goto l00404CAC
- l00404CA0:
- l00404CAC:
- eax_22 = 0x00
- al_24 = bArg08
- eax_25 = DPB(eax_22, al_24, 0) (alias)
- SZO_26 = cond(al_24 & al_24)
- Z_27 = SZO_26 (alias)
- C_28 = false
- branch (al_24 & al_24) != 0x00 l00404CCC
- l00404CB6:
- SCZO_104 = cond(edx_3 - 0x0100)
- C_105 = SCZO_104 (alias)
- branch edx_3 <u 0x0100 l00404CCC
- l00404CBE:
- SCZO_107 = cond(Mem0[0x0040E960:word32] - 0x00)
- Z_108 = SCZO_107 (alias)
- branch Mem0[0x0040E960:word32] == 0x00 l00404CCC
- l00404CC7:
- l00404CC7_thunk_fn00408998:
- fn00408998(xmm0, dwArg00, dwArg08)
- return eax_25
- l00404CC7_thunk_fn00408998:
- fn00408998(xmm0, dwArg00, dwArg08)
- return eax_25
- l00404CCC:
- Z_29 = PHI(Z_27, Z_27, Z_108)
- esp_30 = fp - 0x04
- dwLoc04_32 = edi
- edi_33 = ecx_5
- SCZO_34 = cond(edx_3 - 0x04)
- C_35 = SCZO_34 (alias)
- branch edx_3 <u 0x04 l00404D05
- l00404CD4:
- ecx_68 = -ecx_5
- ecx_69 = ecx_68 & 0x03
- SZO_70 = cond(ecx_69)
- Z_71 = SZO_70 (alias)
- C_72 = false
- branch ecx_69 == 0x00 l00404CE7
- l00404CDB:
- edx_95 = edx_3 - ecx_69
- SCZO_96 = cond(edx_95)
- l00404CDD:
- edi_97 = PHI(edi_33, edi_100)
- ecx_98 = PHI(ecx_69, ecx_101)
- Mem99[edi_97 + 0x00:byte] = al_24
- edi_100 = edi_97 + 0x01
- ecx_101 = ecx_98 - 0x01
- SCZO_102 = cond(ecx_101)
- Z_103 = SCZO_102 (alias)
- branch ecx_101 != 0x00 l00404CDD
- l00404CE7:
- edx_73 = PHI(edx_3, edx_95)
- edi_74 = PHI(edi_33, edi_100)
- ecx_75 = eax_25
- eax_76 = eax_25 << 0x08
- eax_77 = eax_76 + ecx_75
- ecx_78 = eax_77
- eax_79 = eax_77 << 0x10
- eax_80 = eax_79 + ecx_78
- al_81 = (byte) eax_80 (alias)
- ecx_82 = edx_73
- edx_83 = edx_73 & 0x03
- ecx_84 = ecx_82 >>u 0x02
- SCZO_85 = cond(ecx_84)
- Z_86 = SCZO_85 (alias)
- branch ecx_84 == 0x00 l00404D05
- l00404CFF:
- edi_87 = PHI(edi_74, edi_90)
- ecx_88 = PHI(ecx_84, ecx_91)
- branch ecx_88 == 0x00 l00404D01
- l00404CFF_1:
- Mem89[edi_87 + 0x00:word32] = eax_80
- edi_90 = edi_87 + 0x04
- ecx_91 = ecx_88 - 0x01
- goto l00404CFF
- l00404D01:
- SZO_92 = cond(edx_83 & edx_83)
- Z_93 = SZO_92 (alias)
- C_94 = false
- branch (edx_83 & edx_83) == 0x00 l00404D0F
- l00404D05:
- SZO_51 = PHI(SZO_26, SZO_70, SZO_51, SZO_92)
- C_52 = PHI(C_35, C_72, C_52, C_94)
- edx_53 = PHI(edx_3, edx_83, edx_65, edx_83)
- eax_54 = PHI(eax_25, eax_80, eax_54, eax_80)
- al_55 = PHI(al_24, al_81, al_55, al_81)
- edi_56 = PHI(edi_33, edi_74, edi_64, edi_87)
- ecx_57 = PHI(ecx_5, ecx_84, ecx_57, ecx_88)
- Mem58[edi_56 + 0x00:byte] = al_55
- edi_59 = edi_56 + 0x01
- edx_60 = edx_53 - 0x01
- SCZO_61 = cond(edx_60)
- Z_62 = SCZO_61 (alias)
- branch edx_60 != 0x00 l00404D05
- Mem63[edi_59 + 0x00:byte] = al_55
- edi_64 = edi_59 + 0x01
- edx_65 = edx_60 - 0x01
- SCZO_66 = cond(edx_65)
- Z_67 = SCZO_66 (alias)
- branch edx_65 != 0x00 l00404D05
- l00404D0F:
- SZO_36 = PHI(SZO_51, SZO_92)
- C_37 = PHI(C_52, C_94)
- edx_38 = PHI(edx_65, edx_83)
- SCZO_39 = PHI(SCZO_66, SCZO_85)
- Z_40 = PHI(Z_67, Z_93)
- ecx_41 = PHI(ecx_57, ecx_88)
- eax_42 = dwArg04
- edi_43 = dwLoc04_32
- esp_44 = fp
- return eax_42
- eax_46 = dwArg08
- al_47 = (byte) eax_46 (alias)
- edi_49 = dwArg00
- esp_50 = fp + 0x04
- return eax_46
- l00404D15:
- eax_111 = dwArg04
- al_112 = (byte) eax_111 (alias)
- return eax_111
- fn00404CA0_exit:
- dwLoc04_9 = PHI(dwLoc04, dwLoc04, dwLoc04, dwLoc04_32, dwLoc04)
- SZO_10 = PHI(SZO_26, SZO_6, SZO_26, SZO_36, SZO)
- C_11 = PHI(C_105, C_8, C_105, C_37, C)
- edx_12 = PHI(edx_3, edx_3, edx_3, edx_38, edx)
- SCZO_13 = PHI(SCZO_107, SCZO, SCZO_107, SCZO_39, SCZO)
- Z_14 = PHI(Z_108, Z_7, Z_108, Z_40, Z)
- eax_15 = PHI(eax_25, eax_111, eax_25, eax_46, eax)
- al_16 = PHI(al_24, al_112, al_24, al_47, al)
- esp_17 = PHI(esp_1, esp_1, esp_1, esp_50, esp)
- edi_18 = PHI(edi, edi, edi, edi_49, edi)
- ecx_19 = PHI(ecx_5, ecx_5, ecx_5, ecx_41, ecx)
- use edx_12 (=> edxOut)
- use edi_18 (=> ediOut)
- }
- word32 fn004059C9(word32 ebp)
- {
- Mem9[4252620:word32] = fn00402952(ebp, 0x00405990);
- return ebp;
- }
- word32 fn004059DA(word32 ebx, ptr32 & ebxOut, ptr32 & ebpOut)
- {
- *ebxOut = ebx;
- *ebpOut = ebp;
- word32 esp_27 = fp - 0x08;
- word32 esi_26 = 0x00;
- word32 edi_12 = 4252624;
- do
- {
- word32 eax_38;
- if (4250484[esi_26 * 0x08] == 0x01)
- {
- word32 eax_64 = esi_26 * 0x08 + 0x0040DB70;
- Mem65[eax_64 + 0x00:word32] = edi_12;
- word32 esp_66 = esp_27 - 0x04;
- Mem67[esp_66 + 0x00:word32] = 4000;
- Mem69[esp_66 - 0x04 + 0x00:word32] = Mem67[eax_64 + 0x00:word32];
- esp_27 = esp_66 + 0x04;
- word32 ebp_73;
- if (fn0040605C(ebx, esi_26, edi_12 + 0x18, out ebx, out ebp_73, out esi_26, out edi_12) == 0x00)
- {
- 0x0040DB70[esi_26 * 0x08] = 0x0040DB70[esi_26 * 0x08] & 0x00;
- eax_38 = 0x00;
- return eax_38;
- }
- }
- esi_26 = esi_26 + 0x01;
- } while (esi_26 < 0x24);
- eax_38 = 0x01;
- return eax_38;
- }
- word32 fn00405A7C(word32 dwArg04)
- {
- LeaveCriticalSection(0x0040DB70[dwArg04 * 0x08]);
- return dwArg04;
- }
- bool fn00405A93(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *edxOut = edx;
- *xmm0Out = xmm0;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B708, 0x0C, out ebp_10);
- Mem14[ebp_10 - 0x1C + 0x00:word32] = 0x01;
- word32 esp_178 = fp - 0x08;
- if (Mem14[4252540:word32] == 0x00)
- {
- ebp_10 = fn0040204F(0x00, es, ds);
- Mem168[fp - 0x0C + 0x00:word32] = 0x1E;
- word32 edx_169;
- byte bl_170;
- word128 xmm0_171;
- D = fn00401EA4(ebp_10, es, ds, dwArg00, out edx_169, out bl_170, out xmm0_171);
- Mem174[fp - 0x10 + 0x00:word32] = 0xFF;
- fn00401BF0(dwArg00);
- esp_178 = fp - 0x08;
- }
- if (0x0040DB70[Mem14[ebp_10 + 0x08:word32] * 0x08] != 0x00)
- {
- word32 eax_60;
- *eaxOut = 0x01;
- }
- else
- {
- word32 esp_63 = esp_178 - 0x04;
- Mem64[esp_63 + 0x00:word32] = 0x18;
- word32 ebx_67;
- word32 ebp_68;
- word32 esi_69;
- word32 edi_70;
- word128 xmm0_71;
- word32 eax_72 = fn0040489A(0x00, ebp_10, es, ds, out ebx_67, out ebp_68, out esi_69, out edi_70, out xmm0_71);
- if (eax_72 == ebx_67)
- {
- word32 eax_78;
- word32 edx_79;
- word32 ebx_80;
- word32 esi_82;
- word32 edi_83;
- word128 xmm0_84;
- D = fn0040197F(ebx_67, ebp_68, esi_69, es, ds, out eax_78, out edx_79, out ebx_80, out ebp_10, out esi_82, out edi_83, out xmm0_84);
- Mem86[eax_78 + 0x00:word32] = 0x0C;
- word32 eax_87;
- *eaxOut = 0x00;
- }
- else
- {
- Mem91[esp_63 + 0x00:word32] = 0x0A;
- word32 edx_92;
- word32 ebx_93;
- word128 xmm0_94;
- D = fn00405B56(ebx_67, eax_72, es, ds, dwArg00, out edx_92, out ebx_93, out xmm0_94);
- Mem98[ebp_68 - 0x04 + 0x00:word32] = ebx_93;
- if (Mem98[esi_69 + 0x00:word32] == ebx_93)
- {
- Mem116[esp_63 + 0x00:word32] = 4000;
- Mem118[esp_63 - 0x04 + 0x00:word32] = eax_72;
- word32 ebx_119;
- word32 esi_121;
- word32 edi_122;
- if (fn0040605C(ebx_93, esi_69, eax_72, out ebx_119, out ebp_10, out esi_121, out edi_122) == 0x00)
- {
- Mem132[esp_63 + 0x00:word32] = edi_122;
- word32 eax_133;
- word32 edx_134;
- word32 ebx_135;
- word32 ebp_136;
- word32 esi_137;
- word32 edi_138;
- word128 xmm0_139;
- fn004047EB(ebx_119, esi_121, edi_122, es, ds, out eax_133, out edx_134, out ebx_135, out ebp_136, out esi_137, out edi_138, out xmm0_139);
- word32 eax_143;
- word32 edx_144;
- word32 ebx_145;
- word32 esi_147;
- word32 edi_148;
- word128 xmm0_149;
- D = fn0040197F(ebx_135, ebp_136, esi_137, es, ds, out eax_143, out edx_144, out ebx_145, out ebp_10, out esi_147, out edi_148, out xmm0_149);
- Mem151[eax_143 + 0x00:word32] = 0x0C;
- Mem152[ebp_10 - 0x1C + 0x00:word32] = ebx_145;
- }
- else
- Mem153[esi_121 + 0x00:word32] = edi_122;
- }
- else
- {
- Mem155[esp_63 + 0x00:word32] = eax_72;
- word32 eax_156;
- word32 edx_157;
- word32 ebx_158;
- word32 esi_160;
- word32 edi_161;
- word128 xmm0_162;
- D = fn004047EB(ebx_93, esi_69, eax_72, es, ds, out eax_156, out edx_157, out ebx_158, out ebp_10, out esi_160, out edi_161, out xmm0_162);
- }
- Mem113[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn00405B4D();
- word32 eax_114;
- *eaxOut = Mem113[ebp_10 - 0x1C + 0x00:word32];
- }
- }
- word32 ebp_49;
- word32 esi_50;
- word32 edi_51;
- word32 ebx_52;
- *ebxOut = fn00402F65(ebp_10, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_49, out esi_50, out edi_51);
- return D;
- }
- void fn00405B4D()
- {
- fn00405A7C(0x0A);
- return;
- }
- bool fn00405B56(word32 ebx, word32 edi, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *edxOut = edx;
- *ebxOut = ebx;
- *xmm0Out = xmm0;
- word32 esp_10 = fp - 0x08;
- word32 esi_13 = dwArg04 * 0x08 + 0x0040DB70;
- if (Mem0[esi_13 + 0x00:word32] == 0x00)
- {
- word32 eax_51;
- word32 edx_52;
- word32 ebx_53;
- word32 ebp_54;
- word128 xmm0_56;
- D = fn00405A93(ebx, esi_13, edi, es, ds, out eax_51, out edx_52, out ebx_53, out ebp_54, out esi_13, out xmm0_56);
- esp_10 = fp - 0x08;
- if (eax_51 == 0x00)
- {
- Mem64[fp - 0x0C + 0x00:word32] = 0x11;
- word32 eax_65;
- word32 edx_66;
- word32 ebx_67;
- word128 xmm0_69;
- D = fn00401B9C(ebx_53, ebp_54, es, ds, out eax_65, out edx_66, out ebx_67, out esi_13, out xmm0_69);
- esp_10 = fp - 0x08;
- }
- }
- word32 esp_37 = esp_10 - 0x04;
- Mem38[esp_37 + 0x00:word32] = Mem0[esi_13 + 0x00:word32];
- EnterCriticalSection(Mem38[esp_37 + 0x00:LPCRITICAL_SECTION]);
- return D;
- }
- word32 fn00405B89(word32 ebp, selector es, selector ds)
- {
- word32 eax_102;
- word32 eax_22 = fn004029CD(fp - 0x04, Mem0[4258504:word32]);
- Mem24[fp - 0x1C + 0x00:word32] = Mem0[0x0040FAC4:word32];
- Mem26[fp - 0x08 + 0x00:word32] = eax_22;
- word32 eax_28 = fn004029CD(fp - 0x04, dwArg00);
- word32 esi_124 = eax_28;
- if (eax_28 >=u eax_22)
- {
- word32 ebx_64 = eax_28 - eax_22;
- if (ebx_64 >=u 0x00)
- {
- Mem69[fp - 0x18 + 0x00:word32] = eax_22;
- word32 ebx_117;
- word32 ebp_118;
- word32 eax_74 = fn00408E57(ebx_64, eax_28, eax_22, es, ds, out ebx_117, out ebp_118);
- word32 edi_132 = eax_74;
- word32 esp_119 = fp - 0x14;
- if (eax_74 >=u ebx_117 + 0x04)
- {
- l00405C1D:
- word32 esp_90 = esp_119 - 0x04;
- Mem91[esp_90 + 0x00:word32] = Mem69[ebp_118 + 0x08:word32];
- Mem93[esi_124 + 0x00:word32] = fn00402952(ebp_118, dwArg00);
- Mem97[esp_90 - 0x04 + 0x00:word32] = esi_124 + 0x04;
- Mem101[0x0040FAC4:word32] = fn00402952(ebp_118, dwArg00);
- eax_102 = Mem101[ebp_118 + 0x08:word32];
- return eax_102;
- }
- word32 eax_105 = 0x0800;
- if (eax_74 <u 0x0800)
- eax_105 = eax_74;
- word32 eax_115;
- word32 eax_109 = eax_105 + eax_74;
- if (eax_109 >=u eax_74)
- {
- Mem155[fp - 0x18 + 0x00:word32] = eax_109;
- Mem157[fp - 0x1C + 0x00:word32] = Mem155[ebp_118 - 0x04 + 0x00:word32];
- eax_115 = fn0040492B(ebx_117, eax_74, es, ds, out ebx_117, out ebp_118, out edi_132);
- esp_119 = fp - 0x14;
- if (eax_115 != 0x00)
- goto l00405C0B;
- }
- word32 eax_136 = edi_132 + 0x10;
- if (eax_136 >=u edi_132)
- {
- word32 esp_139 = esp_119 - 0x04;
- Mem140[esp_139 + 0x00:word32] = eax_136;
- Mem142[esp_139 - 0x04 + 0x00:word32] = Mem140[ebp_118 - 0x04 + 0x00:word32];
- word32 edi_145;
- eax_115 = fn0040492B(ebx_117, edi_132, es, ds, out ebx_117, out ebp_118, out edi_145);
- esp_119 = esp_139 + 0x04;
- if (eax_115 != 0x00)
- {
- l00405C0B:
- word32 esp_122 = esp_119 - 0x04;
- Mem123[esp_122 + 0x00:word32] = eax_115;
- Mem128[4258504:word32] = fn00402952(ebp_118, dwArg00);
- esi_124 = eax_115 + (ebx_117 >> 0x02) * 0x04;
- esp_119 = esp_122 + 0x04;
- goto l00405C1D;
- }
- }
- }
- }
- eax_102 = 0x00;
- return eax_102;
- }
- word32 fn00405C74(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & esiOut)
- {
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4241192, 0x0C, out ebp_10);
- word32 ebp_14 = fn00401C08(ebx, edi, es, ds);
- Mem17[ebp_14 - 0x04 + 0x00:word32] = Mem0[ebp_14 - 0x04 + 0x00:word32] & 0x00;
- Mem21[fp - 0x0C + 0x00:word32] = Mem17[ebp_14 + 0x08:word32];
- Mem25[ebp_14 - 0x1C + 0x00:word32] = fn00405B89(ebp_14, es, ds);
- Mem26[ebp_14 - 0x04 + 0x00:word32] = ~0x01;
- fn00405CAA();
- word32 eax_27 = Mem26[ebp_14 - 0x1C + 0x00:word32];
- word32 ebp_32;
- word32 esi_33;
- word32 edi_34;
- word32 ebx_35;
- *ebxOut = fn00402F65(ebp_14, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_32, out esi_33, out edi_34);
- return eax_27;
- }
- void fn00405CAA()
- {
- fn00401C11();
- return;
- }
- word32 fn00405CB0(word32 ebx, word32 esi, word32 edi, selector es, selector ds, word32 dwArg04, ptr32 & esiOut)
- {
- word32 ebx_15;
- word32 esi_16;
- fn00405C74(ebx, esi, edi, es, ds, out ebx_15, out esi_16);
- return ebx_15;
- }
- word32 fn00405CD0(word32 dwArg04)
- {
- if (Mem0[dwArg04 + 0x00:word16] == 23117)
- {
- word32 eax_39 = Mem0[dwArg04 + 0x3C:word32] + dwArg04;
- if (Mem0[eax_39 + 0x00:word32] == 0x4550)
- return (word32) (Mem0[eax_39 + 0x18:word16] == 0x010B);
- }
- return 0x00;
- }
- word32 fn00405D10(word32 dwArg04, word32 dwArg08)
- {
- word32 ecx_12 = Mem0[dwArg04 + 0x3C:word32] + dwArg04;
- word32 esi_20 = (word32) Mem0[ecx_12 + 0x06:word16];
- word32 edx_21 = 0x00;
- word32 eax_24 = (word32) Mem0[ecx_12 + 0x14:word16] + 0x18 + ecx_12 + 0x0C;
- if (true)
- do
- {
- word32 ecx_56 = Mem0[eax_24 + 0x00:word32];
- if (dwArg08 >=u ecx_56 && dwArg08 <u Mem0[eax_24 + 0x08:word32] + ecx_56)
- return eax_24;
- edx_21 = edx_21 + 0x01;
- eax_24 = eax_24 + 0x28;
- } while (edx_21 <u esi_20);
- eax_24 = 0x00;
- return eax_24;
- }
- word32 fn00405D60(word32 dwArg04)
- {
- word32 eax_16 = Mem0[fs:0x00:word32];
- Mem38[fs:0x00:word32] = fp - 0x14;
- if (fn00405CD0(0x00400000) != 0x00)
- {
- word32 eax_92 = fn00405D10(0x00400000, dwArg04 - 0x00400000);
- if (eax_92 != 0x00)
- {
- word32 eax_99 = ~(Mem38[eax_92 + 0x24:word32] >>u 0x1F);
- Mem105[fs:0x00:word32] = eax_16;
- return eax_99 & 0x01;
- }
- }
- Mem73[fs:0x00:word32] = eax_16;
- return 0x00;
- }
- void fn00405E1D(word32 dwArg04)
- {
- Mem10[0x0040E520:word32] = dwArg04;
- Mem11[0x0040E524:word32] = dwArg04;
- Mem12[0x0040E528:word32] = dwArg04;
- Mem13[4252972:word32] = dwArg04;
- return;
- }
- void fn0040602F(word32 dwArg04)
- {
- Mem10[0x0040E534:word32] = dwArg04;
- return;
- }
- void fn0040603E(word32 dwArg04)
- {
- Mem10[0x0040E540:word32] = dwArg04;
- return;
- }
- void fn0040604D(word32 dwArg04)
- {
- Mem10[0x0040E544:word32] = dwArg04;
- return;
- }
- word32 fn0040605C(word32 ebx, word32 esi, word32 edi, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4241288, 0x10, out ebp_10);
- Mem14[ebp_10 - 0x04 + 0x00:word32] = Mem0[ebp_10 - 0x04 + 0x00:word32] & 0x00;
- Mem18[fp - 0x0C + 0x00:word32] = Mem14[ebp_10 + 0x0C:word32];
- Mem20[fp - 0x10 + 0x00:word32] = Mem18[ebp_10 + 0x08:word32];
- Mem23[ebp_10 - 0x1C + 0x00:word32] = InitializeCriticalSectionAndSpinCount(Mem20[fp - 0x10 + 0x00:LPCRITICAL_SECTION], Mem20[fp - 0x0C + 0x00:DWORD]);
- Mem24[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- word32 eax_25 = Mem24[ebp_10 - 0x1C + 0x00:word32];
- word32 ebp_30;
- word32 esi_31;
- word32 edi_32;
- word32 ebx_33;
- *ebxOut = fn00402F65(ebp_10, 0x10, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_30, out esi_31, out edi_32);
- return eax_25;
- }
- void fn004060BC(word32 dwArg04)
- {
- Mem10[4253000:word32] = dwArg04;
- return;
- }
- word32 fn004060CB(ptr32 & esiOut)
- {
- *esiOut = esi;
- word32 dwLoc08_10 = Mem0[4253000:word32];
- word32 eax_11 = fn004029CD(fp - 0x04, dwLoc08_10);
- if (eax_11 != 0x00)
- {
- Mem39[fp - 0x08 + 0x00:word32] = Mem0[fp + 0x04:word32];
- word32 esp_40;
- word32 edi_41;
- word32 ebp_42;
- word32 ecx_43;
- word32 eax_44;
- byte SZO_45;
- byte C_46;
- byte Z_47;
- word32 esi_48;
- eax_11();
- if (eax_44 != 0x00)
- return 0x01;
- }
- return 0x00;
- }
- void fn004060F3(word32 ebp)
- {
- word32 esi_19;
- word32 ebp_106;
- word32 eax_20 = fn004029C4(fp - 0x04, out ebp_106, out esi_19);
- Mem23[ebp_106 - 0x04 + 0x00:word32] = Mem0[ebp_106 - 0x04 + 0x00:word32] & 0x00;
- word32 esp_107 = fp - 0x24;
- word32 ebx_105 = eax_20;
- if (Mem23[0x0040E54C:word32] == 0x00)
- {
- Mem236[fp - 0x28 + 0x00:word32] = 0x0040AA20;
- word32 eax_237 = LoadLibraryA(Mem236[fp - 0x28 + 0x00:LPCSTR]);
- if (eax_237 == 0x00)
- return;
- Mem245[fp - 0x28 + 0x00:word32] = 0x0040AA14;
- Mem247[fp - 44 + 0x00:word32] = eax_237;
- word32 eax_248 = GetProcAddress(Mem247[fp - 44 + 0x00:HMODULE], Mem247[fp - 0x28 + 0x00:LPCSTR]);
- if (eax_248 == 0x00)
- return;
- Mem254[fp - 0x28 + 0x00:word32] = eax_248;
- word32 eax_255 = fn00402952(ebp_106, dwArg00);
- Mem256[fp - 0x28 + 0x00:word32] = 0x0040AA04;
- Mem258[fp - 44 + 0x00:word32] = eax_237;
- Mem259[0x0040E54C:word32] = eax_255;
- Mem263[fp - 0x28 + 0x00:word32] = GetProcAddress(Mem259[fp - 44 + 0x00:HMODULE], Mem259[fp - 0x28 + 0x00:LPCSTR]);
- word32 eax_264 = fn00402952(ebp_106, dwArg00);
- Mem265[fp - 0x28 + 0x00:word32] = 0x0040A9F0;
- Mem267[fp - 44 + 0x00:word32] = eax_237;
- Mem268[0x0040E550:word32] = eax_264;
- Mem272[fp - 0x28 + 0x00:word32] = GetProcAddress(Mem268[fp - 44 + 0x00:HMODULE], Mem268[fp - 0x28 + 0x00:LPCSTR]);
- word32 eax_273 = fn00402952(ebp_106, dwArg00);
- Mem274[fp - 0x28 + 0x00:word32] = 0x0040A9D4;
- Mem276[fp - 44 + 0x00:word32] = eax_237;
- Mem277[0x0040E554:word32] = eax_273;
- Mem281[fp - 0x28 + 0x00:word32] = GetProcAddress(Mem277[fp - 44 + 0x00:HMODULE], Mem277[fp - 0x28 + 0x00:LPCSTR]);
- word32 eax_282 = fn00402952(ebp_106, dwArg00);
- Mem285[0x0040E55C:word32] = eax_282;
- esp_107 = fp - 0x24;
- if (eax_282 != 0x00)
- {
- Mem290[fp - 0x28 + 0x00:word32] = 0x0040A9BC;
- Mem292[fp - 44 + 0x00:word32] = eax_237;
- Mem296[fp - 0x28 + 0x00:word32] = GetProcAddress(Mem292[fp - 44 + 0x00:HMODULE], Mem292[fp - 0x28 + 0x00:LPCSTR]);
- Mem300[0x0040E558:word32] = fn00402952(ebp_106, dwArg00);
- esp_107 = fp - 0x24;
- }
- }
- word32 eax_63 = Mem23[0x0040E558:word32];
- if (eax_63 == eax_20 || Mem23[0x0040E55C:word32] == eax_20)
- {
- l004061FC:
- word32 eax_108 = Mem23[0x0040E550:word32];
- if (eax_108 != ebx_105)
- {
- word32 esp_111 = esp_107 - 0x04;
- Mem112[esp_111 + 0x00:word32] = eax_108;
- word32 eax_113 = fn004029CD(ebp_106, dwArg00);
- esp_107 = esp_111 + 0x04;
- if (eax_113 != 0x00)
- {
- word32 edi_120;
- byte SCZO_122;
- word32 ebx_123;
- word32 esi_124;
- byte SZO_125;
- byte C_126;
- word32 eax_127;
- byte Z_128;
- word32 ecx_129;
- eax_113();
- Mem130[ebp_106 - 0x04 + 0x00:word32] = eax_127;
- if (eax_127 != 0x00)
- {
- word32 eax_134 = Mem130[0x0040E554:word32];
- if (eax_134 != ebx_123)
- {
- Mem138[esp_107 - 0x04 + 0x00:word32] = eax_134;
- word32 eax_139 = fn004029CD(ebp_106, dwArg00);
- if (eax_139 != 0x00)
- {
- Mem146[esp_107 - 0x04 + 0x00:word32] = Mem138[ebp_106 - 0x04 + 0x00:word32];
- word32 edi_148;
- byte SCZO_150;
- word32 ebx_151;
- word32 esi_152;
- byte SZO_153;
- byte C_154;
- word32 eax_155;
- byte Z_156;
- word32 ecx_157;
- eax_139();
- Mem158[ebp_106 - 0x04 + 0x00:word32] = eax_155;
- }
- }
- }
- }
- }
- goto l00406235;
- }
- else
- {
- word32 esp_161 = esp_107 - 0x04;
- Mem162[esp_161 + 0x00:word32] = eax_63;
- word32 eax_163 = fn004029CD(ebp_106, dwArg00);
- Mem165[esp_161 - 0x04 + 0x00:word32] = Mem162[0x0040E55C:word32];
- word32 eax_167 = fn004029CD(ebp_106, dwArg00);
- esp_107 = esp_161 + 0x04;
- if (eax_163 == 0x00 || eax_167 == 0x00)
- goto l004061FC;
- word32 edi_180;
- byte SCZO_182;
- word32 ebx_183;
- word32 esi_184;
- byte SZO_185;
- byte C_186;
- word32 eax_187;
- byte Z_188;
- word32 ecx_189;
- eax_163();
- if (eax_187 != 0x00)
- {
- Mem208[esp_107 - 0x04 + 0x00:word32] = ebp_106 - 0x08;
- Mem210[esp_107 - 0x08 + 0x00:word32] = 0x0C;
- Mem213[esp_107 - 0x0C + 0x00:word32] = ebp_106 - 0x14;
- Mem215[esp_107 - 0x10 + 0x00:word32] = 0x01;
- Mem217[esp_107 - 0x14 + 0x00:word32] = eax_187;
- word32 edi_219;
- byte SCZO_221;
- word32 esi_223;
- byte SZO_224;
- byte C_225;
- word32 eax_226;
- byte Z_227;
- word32 ecx_228;
- edi_180();
- if (eax_226 != 0x00 && (Mem217[(ebp_106 - 0x0C) + 0x00:byte] & 0x01) != 0x00)
- goto l004061FC;
- }
- Mem203[ebp_106 + 0x10:word32] = Mem165[ebp_106 + 0x10:word32] | 0x00200000;
- l00406235:
- word32 esp_72 = esp_107 - 0x04;
- Mem73[esp_72 + 0x00:word32] = Mem23[0x0040E54C:word32];
- word32 eax_75 = fn004029CD(ebp_106, dwArg00);
- if (eax_75 != 0x00)
- {
- Mem82[esp_72 + 0x00:word32] = Mem73[ebp_106 + 0x10:word32];
- Mem84[esp_72 - 0x04 + 0x00:word32] = Mem82[ebp_106 + 0x0C:word32];
- Mem86[esp_72 - 0x08 + 0x00:word32] = Mem84[ebp_106 + 0x08:word32];
- Mem88[esp_72 - 0x0C + 0x00:word32] = Mem86[ebp_106 - 0x04 + 0x00:word32];
- word32 esp_89;
- word32 edi_90;
- word32 ebp_91;
- byte SCZO_92;
- word32 ebx_93;
- word32 esi_94;
- byte SZO_95;
- byte C_96;
- word32 eax_97;
- byte Z_98;
- word32 ecx_99;
- eax_75();
- return;
- }
- return;
- }
- }
- bool fn0040625C(word32 esi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- word32 esp_151;
- word32 ebx_142;
- word128 xmm0_146;
- if (dwArg04 != 0x00)
- {
- word32 edi_100 = dwArg08;
- if (dwArg08 >u 0x00)
- {
- esi = dwArg0C;
- if (dwArg0C != 0x00)
- {
- word32 edx_114 = dwArg04;
- if (Mem0[edx_114 + 0x00:byte] != 0x00)
- {
- edx_114 = edx_114 + 0x01;
- edi_100 = edi_100 - 0x01;
- if (edi_100 != 0x00)
- goto l0040629C;
- }
- if (edi_100 != 0x00)
- {
- l004062A8:
- byte cl_129 = Mem0[esi + 0x00:byte];
- Mem130[edx_114 + 0x00:byte] = cl_129;
- edx_114 = edx_114 + 0x01;
- *edxOut = edx_114;
- esi = esi + 0x01;
- if (cl_129 != 0x00)
- {
- edi_100 = edi_100 - 0x01;
- if (edi_100 != 0x00)
- goto l004062A8;
- }
- if (edi_100 != 0x00)
- {
- word32 eax_154;
- *eaxOut = 0x00;
- return D;
- }
- Mem139[dwArg04 + 0x00:byte] = 0x00;
- word32 eax_140;
- word32 edx_141;
- word32 ebp_143;
- word32 esi_144;
- word32 edi_145;
- D = fn0040197F(0x00, fp - 0x04, esi, es, ds, out eax_140, out edx_141, out ebx_142, out ebp_143, out esi_144, out edi_145, out xmm0_146);
- Mem149[fp - 0x14 + 0x00:word32] = 0x22;
- Mem152[eax_140 + 0x00:word32] = Mem149[fp - 0x14 + 0x00:word32];
- esp_151 = fp - 0x10;
- l0040627E:
- word32 esp_59 = esp_151 - 0x04;
- Mem60[esp_59 + 0x00:word32] = ebx_142;
- Mem62[esp_59 - 0x04 + 0x00:word32] = ebx_142;
- Mem64[esp_59 - 0x08 + 0x00:word32] = ebx_142;
- Mem66[esp_59 - 0x0C + 0x00:word32] = ebx_142;
- Mem68[esp_59 - 0x10 + 0x00:word32] = ebx_142;
- word32 edx_71;
- word32 ebx_72;
- word32 esi_73;
- fn00401917(es, ds, xmm0_146, out edx_71, out ebx_72, out esi_73);
- word32 eax_77;
- *eaxOut = esi_73;
- return D;
- }
- }
- Mem113[dwArg04 + 0x00:byte] = 0x00;
- }
- }
- word32 eax_84;
- word32 edx_85;
- word32 ebp_87;
- word32 esi_88;
- word32 edi_89;
- D = fn0040197F(0x00, fp - 0x04, esi, es, ds, out eax_84, out edx_85, out ebx_142, out ebp_87, out esi_88, out edi_89, out xmm0_146);
- Mem93[fp - 0x14 + 0x00:word32] = 22;
- Mem96[eax_84 + 0x00:word32] = Mem93[fp - 0x14 + 0x00:word32];
- esp_151 = fp - 0x10;
- goto l0040627E;
- }
- bool fn004062D0(selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, word32 dwArg10, ptr32 & eaxOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- word32 esp_108;
- word32 ebx_148;
- word128 xmm0_103;
- if (dwArg10 == 0x00)
- if (dwArg04 == 0x00)
- {
- if (dwArg08 == 0x00)
- goto l004062EB;
- goto l004062FD;
- }
- else if (dwArg04 == 0x00)
- goto l004062FD;
- word32 edi_114 = dwArg08;
- if (dwArg08 <=u 0x00)
- goto l004062FD;
- if (dwArg10 == 0x00)
- Mem119[dwArg04 + 0x00:byte] = 0x00;
- else
- {
- word32 edx_122 = dwArg0C;
- if (dwArg0C == 0x00)
- {
- Mem125[dwArg04 + 0x00:byte] = 0x00;
- l004062FD:
- word32 eax_97;
- word32 edx_98;
- word32 ebp_100;
- word32 esi_101;
- word32 edi_102;
- D = fn0040197F(0x00, fp - 0x04, dwArg04, es, ds, out eax_97, out edx_98, out ebx_148, out ebp_100, out esi_101, out edi_102, out xmm0_103);
- Mem106[fp - 0x14 + 0x00:word32] = 22;
- Mem109[eax_97 + 0x00:word32] = Mem106[fp - 0x14 + 0x00:word32];
- esp_108 = fp - 0x10;
- goto l00406307;
- }
- word32 eax_128 = dwArg04;
- if (dwArg10 == ~0x00)
- do
- {
- byte cl_164 = Mem0[edx_122 + 0x00:byte];
- Mem165[eax_128 + 0x00:byte] = cl_164;
- eax_128 = eax_128 + 0x01;
- edx_122 = edx_122 + 0x01;
- if (cl_164 == 0x00)
- goto l0040635C;
- edi_114 = edi_114 - 0x01;
- } while (edi_114 != 0x00);
- else
- {
- l00406343:
- byte cl_178 = Mem0[edx_122 + 0x00:byte];
- Mem179[eax_128 + 0x00:byte] = cl_178;
- eax_128 = eax_128 + 0x01;
- edx_122 = edx_122 + 0x01;
- if (cl_178 != 0x00)
- {
- edi_114 = edi_114 - 0x01;
- if (edi_114 == 0x00)
- break;
- word32 v16_193 = dwArg10 - 0x01;
- dwArg10 = v16_193;
- if (v16_193 != 0x00)
- goto l00406343;
- }
- if (dwArg10 == 0x00)
- Mem189[eax_128 + 0x00:byte] = 0x00;
- }
- if (edi_114 == 0x00)
- {
- if (dwArg10 == ~0x00)
- {
- Mem142[dwArg04 - 0x01 + dwArg08:byte] = 0x00;
- word32 eax_143;
- *eaxOut = 0x50;
- return D;
- }
- Mem145[dwArg04 + 0x00:byte] = 0x00;
- word32 eax_146;
- word32 edx_147;
- word32 ebp_149;
- word32 esi_150;
- word32 edi_151;
- D = fn0040197F(0x00, fp - 0x04, dwArg04, es, ds, out eax_146, out edx_147, out ebx_148, out ebp_149, out esi_150, out edi_151, out xmm0_103);
- Mem155[fp - 0x14 + 0x00:word32] = 0x22;
- Mem158[eax_146 + 0x00:word32] = Mem155[fp - 0x14 + 0x00:word32];
- esp_108 = fp - 0x10;
- l00406307:
- word32 esp_74 = esp_108 - 0x04;
- Mem75[esp_74 + 0x00:word32] = ebx_148;
- Mem77[esp_74 - 0x04 + 0x00:word32] = ebx_148;
- Mem79[esp_74 - 0x08 + 0x00:word32] = ebx_148;
- Mem81[esp_74 - 0x0C + 0x00:word32] = ebx_148;
- Mem83[esp_74 - 0x10 + 0x00:word32] = ebx_148;
- word32 edx_86;
- word32 ebx_87;
- word32 esi_88;
- fn00401917(es, ds, xmm0_103, out edx_86, out ebx_87, out esi_88);
- word32 eax_92;
- *eaxOut = esi_88;
- return D;
- }
- }
- l004062EB:
- word32 eax_55;
- *eaxOut = 0x00;
- return D;
- }
- bool fn00406385(word32 esi, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & eaxOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- word32 esp_131;
- word32 ebx_122;
- word128 xmm0_126;
- if (dwArg04 != 0x00)
- {
- word32 edi_107 = dwArg08;
- if (dwArg08 >u 0x00)
- {
- esi = dwArg0C;
- if (dwArg0C != 0x00)
- {
- word32 edx_104 = dwArg04;
- l004063C5:
- byte al_109 = Mem0[esi + 0x00:byte];
- Mem110[edx_104 + 0x00:byte] = al_109;
- edx_104 = edx_104 + 0x01;
- esi = esi + 0x01;
- if (al_109 != 0x00)
- {
- edi_107 = edi_107 - 0x01;
- if (edi_107 != 0x00)
- goto l004063C5;
- }
- if (edi_107 != 0x00)
- {
- word32 eax_134;
- *eaxOut = 0x00;
- return D;
- }
- Mem119[dwArg04 + 0x00:byte] = 0x00;
- word32 eax_120;
- word32 edx_121;
- word32 ebp_123;
- word32 esi_124;
- word32 edi_125;
- D = fn0040197F(0x00, fp - 0x04, esi, es, ds, out eax_120, out edx_121, out ebx_122, out ebp_123, out esi_124, out edi_125, out xmm0_126);
- Mem129[fp - 0x14 + 0x00:word32] = 0x22;
- Mem132[eax_120 + 0x00:word32] = Mem129[fp - 0x14 + 0x00:word32];
- esp_131 = fp - 0x10;
- l004063A7:
- word32 esp_56 = esp_131 - 0x04;
- Mem57[esp_56 + 0x00:word32] = ebx_122;
- Mem59[esp_56 - 0x04 + 0x00:word32] = ebx_122;
- Mem61[esp_56 - 0x08 + 0x00:word32] = ebx_122;
- Mem63[esp_56 - 0x0C + 0x00:word32] = ebx_122;
- Mem65[esp_56 - 0x10 + 0x00:word32] = ebx_122;
- word32 edx_68;
- word32 ebx_69;
- word32 esi_70;
- fn00401917(es, ds, xmm0_126, out edx_68, out ebx_69, out esi_70);
- word32 eax_74;
- *eaxOut = esi_70;
- return D;
- }
- Mem103[dwArg04 + 0x00:byte] = 0x00;
- }
- }
- word32 eax_81;
- word32 edx_82;
- word32 ebp_84;
- word32 esi_85;
- word32 edi_86;
- D = fn0040197F(0x00, fp - 0x04, esi, es, ds, out eax_81, out edx_82, out ebx_122, out ebp_84, out esi_85, out edi_86, out xmm0_126);
- Mem90[fp - 0x14 + 0x00:word32] = 22;
- Mem93[eax_81 + 0x00:word32] = Mem90[fp - 0x14 + 0x00:word32];
- esp_131 = fp - 0x10;
- goto l004063A7;
- }
- bool fn004063ED(word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *xmm0Out = xmm0;
- *edxOut = edx;
- if (dwArg04 >= 0x00)
- {
- if (dwArg04 <= 0x02)
- {
- word32 eax_78;
- *eaxOut = Mem0[0x0040DF08:word32];
- Mem79[0x0040DF08:word32] = dwArg04;
- return D;
- }
- if (dwArg04 == 0x03)
- {
- word32 eax_73;
- *eaxOut = Mem0[0x0040DF08:word32];
- return D;
- }
- }
- word32 eax_42;
- word32 edx_43;
- word32 ebx_44;
- word32 ebp_45;
- word32 esi_46;
- word32 edi_47;
- word128 xmm0_48;
- D = fn0040197F(ebx, fp - 0x04, 0x00, es, ds, out eax_42, out edx_43, out ebx_44, out ebp_45, out esi_46, out edi_47, out xmm0_48);
- Mem51[fp - 0x0C + 0x00:word32] = esi_46;
- Mem53[fp - 0x10 + 0x00:word32] = esi_46;
- Mem55[fp - 0x14 + 0x00:word32] = esi_46;
- Mem57[fp - 0x18 + 0x00:word32] = esi_46;
- Mem59[fp - 0x1C + 0x00:word32] = esi_46;
- Mem60[eax_42 + 0x00:word32] = 22;
- word32 edx_61;
- word32 ebx_62;
- word32 esi_63;
- word32 eax_66;
- *eaxOut = fn00401917(es, ds, xmm0_48, out edx_61, out ebx_62, out esi_63) | ~0x00;
- return D;
- }
- word32 fn00406438(word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & esiOut)
- {
- *esiOut = esi;
- word32 eax_28;
- word32 ebx_17;
- word128 xmm0_18;
- fn00401759(fp - 0x14, ebx, es, ds, dwArg04, out ebx_17, out xmm0_18);
- word32 eax_22 = (word32) Mem0[fp + 0x08:byte];
- if ((Mem0[Mem0[fp - 0x10 + 0x00:word32] + 0x1D + eax_22:byte] & Mem0[fp + 0x10:byte]) == 0x00)
- {
- if (Mem0[fp + 0x0C:word32] != 0x00)
- eax_28 = (word32) Mem0[Mem0[fp - 0x14 + 0x00:word32] + 200:word32][eax_22 * 0x02] & Mem0[fp + 0x0C:word32];
- else
- eax_28 = 0x00;
- if (eax_28 == 0x00)
- {
- l0040647C:
- if (Mem0[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 ecx_43 = Mem0[fp - 0x0C + 0x00:word32];
- Mem45[ecx_43 + 0x70:word32] = Mem0[ecx_43 + 0x70:word32] & ~0x02;
- }
- return eax_28;
- }
- }
- eax_28 = 0x01;
- goto l0040647C;
- }
- word32 fn0040648B(word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & esiOut)
- {
- word32 ebx_20;
- word32 esi_21;
- return fn00406438(ebx, es, ds, 0x00, out ebx_20, out esi_21);
- }
- word32 fn004064B0(word32 ebp, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & esiOut, ptr32 & ediOut)
- {
- word32 esi_13 = dwArg08;
- word32 edi_17 = dwArg04;
- word32 eax_20 = dwArg0C + dwArg08;
- if (dwArg04 <=u dwArg08 || dwArg04 >=u eax_20)
- {
- if (dwArg0C >=u 0x0100 && Mem0[0x0040E960:word32] != 0x00)
- {
- esi_13 = dwArg08;
- edi_17 = dwArg04;
- if ((dwArg04 & 0x0F) == (dwArg08 & 0x0F))
- {
- word32 esi_99;
- *esiOut = esi;
- word32 edi_101;
- *ediOut = edi;
- word128 xmm0_106;
- fn00408F81(dwArg00, dwArg04, dwArg08, out xmm0_106);
- return ebp;
- }
- }
- if ((edi_17 & 0x03) != 0x00)
- if (dwArg0C <u 0x04)
- ;
- else
- {
- word32 ecx_54 = dwArg0C >>u 0x02;
- if (dwArg0C >>u 0x02 <u 0x08)
- switch (dwArg0C & 0x03)
- ;
- else
- {
- while (ecx_54 != 0x00)
- {
- Mem73[edi_17 + 0x00:word32] = Mem0[esi_13 + 0x00:word32];
- esi_13 = esi_13 + 0x04;
- edi_17 = edi_17 + 0x04;
- ecx_54 = ecx_54 - 0x01;
- }
- switch (dwArg0C & 0x03)
- {
- case 0x00:
- word32 esi_60;
- *esiOut = esi;
- word32 edi_62;
- *ediOut = edi;
- return ebp;
- }
- }
- }
- }
- else
- {
- word32 esi_111 = dwArg0C - 0x04 + dwArg08;
- word32 edi_112 = dwArg0C - 0x04 + dwArg04;
- if ((edi_112 & 0x03) != 0x00)
- if (dwArg0C <u 0x04)
- switch (dwArg0C)
- ;
- else
- {
- word32 ecx_128 = dwArg0C >>u 0x02;
- if (dwArg0C >>u 0x02 <u 0x08)
- {
- word32 ecx_142 = -(dwArg0C >>u 0x02);
- word32 esp_145;
- word32 ebp_146;
- word32 edi_147;
- word32 esi_148;
- word32 ecx_149;
- word32 eax_150;
- word32 edx_151;
- byte SCZO_152;
- byte CZ_153;
- byte C_154;
- byte Z_155;
- byte SZO_156;
- byte D_157;
- word128 xmm0_158;
- 0x00406770[ecx_142 * 0x04]();
- return ebp_146;
- }
- else
- {
- while (ecx_128 != 0x00)
- {
- Mem137[edi_112 + 0x00:word32] = Mem0[esi_111 + 0x00:word32];
- esi_111 = esi_111 - 0x04;
- edi_112 = edi_112 - 0x04;
- ecx_128 = ecx_128 - 0x01;
- }
- switch (dwArg0C & 0x03)
- {
- case 0x00:
- word32 esi_122;
- *esiOut = esi;
- word32 edi_124;
- *ediOut = edi;
- return ebp;
- }
- }
- }
- }
- }
- word32 fn00406815(word32 dwArg04, ptr32 & edxOut)
- {
- *edxOut = edx;
- word32 eax_10 = Mem0[4254056:word32] + 0x0C;
- word32 ecx_12 = Mem0[4254052:word32] *s 0x14 + eax_10;
- while (eax_10 <u ecx_12)
- {
- word32 edx_32 = dwArg04 - Mem0[eax_10 + 0x00:word32];
- *edxOut = edx_32;
- if (edx_32 <u 0x00100000)
- return eax_10;
- eax_10 = eax_10 + 0x14;
- }
- eax_10 = 0x00;
- return eax_10;
- }
- bool fn00406845(word32 dwArg04, word32 dwArg08, byte bArg0B, ptr32 & edxOut, ptr32 & xmm0Out)
- {
- fn00406845_entry:
- def fp
- def dwArg04
- def Mem0
- def dwArg08
- def edx
- def xmm0
- def D
- ebp_7 = fp - 0x04
- ecx_10 = dwArg04
- eax_12 = Mem0[dwArg04 + 0x10:word32]
- esi_17 = dwArg08
- edi_20 = dwArg08
- edi_21 = dwArg08 - Mem0[dwArg04 + 0x0C:word32]
- esi_22 = dwArg08 + ~0x03
- edi_23 = edi_21 >>u 0x0F
- ecx_24 = edi_21 >>u 0x0F
- ecx_25 = (edi_21 >>u 0x0F) *s 0x0204
- ecx_26 = ecx_25 + 0x0144 + eax_12
- dwLoc14_27 = ecx_26
- ecx_28 = Mem0[dwArg08 + ~0x03:word32]
- ecx_29 = ecx_28 - 0x01
- cl_30 = (byte) (ecx_28 - 0x01) (alias)
- dwLoc08_31 = ecx_28 - 0x01
- branch (cl_30 & 0x01) != 0x00 l00406B57
- goto l00406884
- l00406845:
- l00406884:
- ebx_89 = ecx_28 - 0x01 + (dwArg08 + ~0x03)
- edx_90 = Mem0[ebx_89 + 0x00:word32]
- dwLoc10_91 = edx_90
- edx_92 = Mem0[dwArg08 + ~0x07:word32]
- dwLoc0C_93 = edx_92
- edx_94 = edx_90
- dl_95 = (byte) edx_90 (alias)
- dwArg08_96 = ebx_89
- branch (dl_95 & 0x01) != 0x00 l00406912
- l0040689E:
- edx_474 = edx_90 >> 0x04
- edx_475 = (edx_90 >> 0x04) - 0x01
- branch edx_475 <=u 0x3F l004068AA
- l004068A7:
- edx_549 = 0x3F
- l004068AA:
- edx_481 = PHI(edx_475, edx_549)
- ecx_483 = Mem0[ebx_89 + 0x04:word32]
- branch ecx_483 != Mem0[ebx_89 + 0x08:word32] l004068F4
- l004068B2:
- branch edx_481 >=u 0x20 l004068D5
- l004068BC:
- ecx_511 = edx_481
- cl_512 = (byte) edx_481 (alias)
- ebx_513 = 0x80000000 >>u cl_512
- ecx_514 = edx_481 + 0x04 + eax_12
- ebx_515 = ~ebx_513
- v17_516 = (eax_12 + 0x44)[(edi_21 >>u 0x0F) * 0x04] & ebx_515
- (eax_12 + 0x44)[(edi_21 >>u 0x0F) * 0x04] = v17_516
- v18_520 = Mem517[ecx_514 + 0x00:byte] - 0x01
- Mem521[ecx_514 + 0x00:byte] = v18_520
- branch v18_520 != 0x00 l004068F1
- l004068CE:
- ecx_524 = dwArg04
- v19_525 = Mem521[dwArg04 + 0x00:word32] & ebx_515
- Mem526[dwArg04 + 0x00:word32] = v19_525
- goto l004068F1
- l004068D5:
- ecx_529 = edx_481 - 0x20
- cl_530 = (byte) ecx_529 (alias)
- ebx_531 = 0x80000000 >>u cl_530
- ecx_532 = edx_481 + 0x04 + eax_12
- ebx_533 = ~ebx_531
- v20_534 = (eax_12 + 0xC4)[(edi_21 >>u 0x0F) * 0x04] & ebx_533
- (eax_12 + 0xC4)[(edi_21 >>u 0x0F) * 0x04] = v20_534
- v21_538 = Mem535[ecx_532 + 0x00:byte] - 0x01
- Mem539[ecx_532 + 0x00:byte] = v21_538
- branch v21_538 != 0x00 l004068F1
- l004068EB:
- ecx_542 = dwArg04
- v22_543 = Mem539[dwArg04 + 0x04:word32] & ebx_533
- Mem544[dwArg04 + 0x04:word32] = v22_543
- l004068F1:
- ebx_510 = ebx_89
- l004068F4:
- ebx_489 = PHI(ebx_89, ebx_510)
- edx_490 = Mem0[ebx_489 + 0x08:word32]
- ebx_491 = Mem0[ebx_489 + 0x04:word32]
- ecx_492 = ecx_28 - 0x01
- ecx_493 = ecx_28 - 0x01 + edx_90
- Mem496[edx_490 + 0x04:word32] = ebx_491
- edx_497 = ebx_89
- ebx_498 = Mem496[ebx_89 + 0x04:word32]
- edx_499 = Mem496[ebx_89 + 0x08:word32]
- Mem500[ebx_498 + 0x08:word32] = edx_499
- dwLoc08_501 = ecx_493
- l00406912:
- dwLoc08_100 = PHI(dwLoc08_31, dwLoc08_501)
- ecx_106 = PHI(ecx_29, ecx_493)
- edx_109 = ecx_106
- edx_110 = ecx_106 >> 0x04
- edx_111 = edx_110 - 0x01
- branch edx_110 <=u 0x40 l00406920
- l0040691D:
- edx_471 = 0x3F
- l00406920:
- edx_117 = PHI(edx_111, edx_471)
- ebx_119 = edx_92
- ebx_120 = edx_92 & 0x01
- dwLoc10_124 = edx_92 & 0x01
- branch (edx_92 & 0x01) != 0x00 l004069BE
- l0040692F:
- esi_380 = dwArg08 + ~0x03 - edx_92
- ebx_381 = edx_92
- ebx_382 = edx_92 >> 0x04
- dwArg08_385 = esi_380
- ebx_386 = (edx_92 >> 0x04) - 0x01
- branch ebx_386 <=u 0x3F l00406945
- l00406943:
- ebx_467 = 0x3F
- l00406945:
- ebx_391 = PHI(ebx_386, ebx_467)
- ecx_392 = ecx_106 + edx_92
- edx_393 = ecx_392
- edx_394 = ecx_392 >> 0x04
- edx_395 = (ecx_392 >> 0x04) - 0x01
- dwLoc08_397 = ecx_392
- branch edx_395 <=u 0x3F l00406957
- l00406955:
- edx_465 = 0x3F
- l00406957:
- edx_401 = PHI(edx_395, edx_465)
- branch ebx_391 == edx_401 l004069B9
- l0040695B:
- ecx_411 = esi_380
- esi_412 = Mem0[esi_380 + 0x04:word32]
- branch esi_412 != Mem0[esi_380 + 0x08:word32] l004069A1
- l00406966:
- branch ebx_391 >=u 0x20 l00406987
- l00406970:
- ecx_431 = ebx_391
- cl_432 = (byte) ebx_391 (alias)
- esi_433 = 0x80000000 >>u cl_432
- esi_434 = ~esi_433
- v24_435 = (eax_12 + 0x44)[(edi_21 >>u 0x0F) * 0x04] & esi_434
- (eax_12 + 0x44)[(edi_21 >>u 0x0F) * 0x04] = v24_435
- v25_439 = Mem436[ebx_391 + 0x04 + eax_12:byte] - 0x01
- Mem440[ebx_391 + 0x04 + eax_12:byte] = v25_439
- branch v25_439 != 0x00 l004069A1
- l00406980:
- ecx_443 = dwArg04
- v26_444 = Mem440[dwArg04 + 0x00:word32] & esi_434
- Mem445[dwArg04 + 0x00:word32] = v26_444
- goto l004069A1
- l00406987:
- ecx_448 = ebx_391 - 0x20
- cl_449 = (byte) ecx_448 (alias)
- esi_450 = 0x80000000 >>u cl_449
- esi_451 = ~esi_450
- v28_452 = (eax_12 + 0xC4)[(edi_21 >>u 0x0F) * 0x04] & esi_451
- (eax_12 + 0xC4)[(edi_21 >>u 0x0F) * 0x04] = v28_452
- v29_456 = Mem453[ebx_391 + 0x04 + eax_12:byte] - 0x01
- Mem457[ebx_391 + 0x04 + eax_12:byte] = v29_456
- branch v29_456 != 0x00 l004069A1
- l0040699B:
- ecx_460 = dwArg04
- v30_461 = Mem457[dwArg04 + 0x04:word32] & esi_451
- Mem462[dwArg04 + 0x04:word32] = v30_461
- l004069A1:
- ecx_420 = esi_380
- esi_421 = Mem0[esi_380 + 0x08:word32]
- ecx_422 = Mem0[esi_380 + 0x04:word32]
- Mem423[esi_421 + 0x04:word32] = ecx_422
- ecx_424 = esi_380
- esi_425 = Mem423[esi_380 + 0x04:word32]
- ecx_426 = Mem423[esi_380 + 0x08:word32]
- Mem427[esi_425 + 0x08:word32] = ecx_426
- l004069B9:
- esi_410 = esi_380
- goto l004069C1
- l004069BE:
- ebx_468 = dwArg04
- l004069C1:
- dwLoc08_126 = PHI(dwLoc08_100, dwLoc08_397)
- edx_133 = PHI(edx_117, edx_401)
- ebx_135 = PHI(ebx_468, ebx_391)
- esi_136 = PHI(esi_22, esi_410)
- branch (edx_92 & 0x01) != 0x00 || ebx_135 != edx_133 l004069CF
- goto l00406A4F
- l004069C7:
- l004069CF:
- ecx_319 = ecx_26
- ecx_320 = ecx_26 + edx_133 * 0x08
- ebx_321 = Mem0[ecx_320 + 0x04:word32]
- Mem322[esi_136 + 0x08:word32] = ecx_320
- Mem323[esi_136 + 0x04:word32] = ebx_321
- Mem324[ecx_320 + 0x04:word32] = esi_136
- ecx_325 = Mem324[esi_136 + 0x04:word32]
- Mem326[ecx_325 + 0x08:word32] = esi_136
- ecx_327 = Mem326[esi_136 + 0x04:word32]
- branch ecx_327 != Mem326[esi_136 + 0x08:word32] l00406A4F
- l004069EF:
- cl_330 = Mem326[edx_133 + 0x04 + eax_12:byte]
- bArg0B_331 = cl_330
- cl_332 = cl_330 + 0x01
- Mem333[edx_133 + 0x04 + eax_12:byte] = cl_330 + 0x01
- branch edx_133 >=u 0x20 l00406A26
- l00406A01:
- branch cl_330 != 0x00 l00406A15
- l00406A07:
- ecx_347 = edx_133
- cl_348 = (byte) edx_133 (alias)
- ebx_350 = 0x80000000 >>u cl_348
- ecx_351 = dwArg04
- v23_352 = Mem333[dwArg04 + 0x00:word32] | ebx_350
- Mem353[dwArg04 + 0x00:word32] = v23_352
- l00406A15:
- ecx_339 = edx_133
- cl_340 = (byte) edx_133 (alias)
- ebx_341 = 0x80000000 >>u cl_340
- eax_342 = eax_12 + 0x44 + (edi_21 >>u 0x0F) * 0x04
- v32_343 = Mem333[eax_342 + 0x00:word32] | ebx_341
- Mem344[eax_342 + 0x00:word32] = v32_343
- goto l00406A4F
- l00406A26:
- branch cl_330 != 0x00 l00406A3C
- l00406A2C:
- ecx_369 = edx_133 - 0x20
- cl_370 = (byte) ecx_369 (alias)
- ebx_372 = 0x80000000 >>u cl_370
- ecx_373 = dwArg04
- v27_374 = Mem333[dwArg04 + 0x04:word32] | ebx_372
- Mem375[dwArg04 + 0x04:word32] = v27_374
- l00406A3C:
- ecx_359 = edx_133 - 0x20
- cl_360 = (byte) ecx_359 (alias)
- edx_362 = 0x80000000 >>u cl_360
- eax_364 = eax_12 + 0xC4 + (edi_21 >>u 0x0F) * 0x04
- v31_365 = Mem333[eax_364 + 0x00:word32] | edx_362
- Mem366[eax_364 + 0x00:word32] = v31_365
- l00406A4F:
- edx_145 = PHI(edx_133, edx_133, edx_362, edx_133)
- eax_148 = dwLoc08_126
- Mem149[esi_136 + 0x00:word32] = dwLoc08_126
- Mem150[dwLoc08_126 - 0x04 + esi_136:word32] = dwLoc08_126
- eax_151 = ecx_26
- v33_152 = Mem150[ecx_26 + 0x00:word32] - 0x01
- Mem153[ecx_26 + 0x00:word32] = v33_152
- branch v33_152 != 0x00 l00406B56
- l00406A63:
- eax_180 = Mem153[0x0040E560:word32]
- branch eax_180 == 0x00 l00406B48
- l00406A70:
- ecx_209 = Mem153[4254072:word32]
- esi_210 = VirtualFree
- ecx_213 = ecx_209 << 0x0F
- ecx_214 = (ecx_209 << 0x0F) + Mem153[eax_180 + 0x0C:word32]
- dwLoc2C_219 = ecx_214
- VirtualFree(ecx_214, 0x8000, 0x4000)
- ecx_222 = Mem153[4254072:word32]
- cl_223 = (byte) ecx_222 (alias)
- eax_224 = Mem153[0x0040E560:word32]
- edx_226 = 0x80000000 >>u cl_223
- v34_228 = Mem153[eax_224 + 0x08:word32] | edx_226
- Mem229[eax_224 + 0x08:word32] = v34_228
- eax_231 = Mem229[0x0040E560:word32]
- eax_232 = Mem229[eax_231 + 0x10:word32]
- ecx_233 = Mem229[4254072:word32]
- v35_234 = (eax_232 + 0xC4)[ecx_233 * 0x04] & 0x00
- (eax_232 + 0xC4)[ecx_233 * 0x04] = v35_234
- eax_237 = Mem235[0x0040E560:word32]
- eax_238 = Mem235[eax_237 + 0x10:word32]
- v36_239 = Mem235[eax_238 + 0x43:byte] - 0x01
- Mem240[eax_238 + 0x43:byte] = v36_239
- eax_241 = Mem240[0x0040E560:word32]
- ecx_242 = Mem240[eax_241 + 0x10:word32]
- branch Mem240[ecx_242 + 0x43:byte] != 0x00 l00406ADD
- l00406AD4:
- v37_314 = Mem240[eax_241 + 0x04:word32] & ~0x01
- Mem315[eax_241 + 0x04:word32] = v37_314
- eax_318 = Mem315[0x0040E560:word32]
- l00406ADD:
- eax_247 = PHI(eax_241, eax_318)
- branch Mem240[eax_247 + 0x08:word32] != ~0x00 l00406B48
- l00406AE3:
- eax_261 = VirtualFree(Mem0[esp + 0x00:LPVOID], Mem0[esp + 0x04:SIZE_T], Mem0[esp + 0x08:DWORD])
- eax_273 = Mem240[0x0040E560:word32]
- dwLoc30_275 = Mem240[eax_273 + 0x10:word32]
- dwLoc38_279 = Mem240[4252540:word32]
- HeapFree(dwLoc38_279, 0x00, dwLoc30_275)
- ecx_282 = Mem240[4254052:word32]
- eax_283 = Mem240[0x0040E560:word32]
- ecx_284 = ecx_282 *s 0x14
- edx_285 = Mem240[4254056:word32]
- ecx_287 = ecx_282 *s 0x14 - eax_283
- ecx_289 = ecx_287 - 0x14 + edx_285
- dwLoc30_291 = ecx_289
- ecx_292 = eax_283 + 0x14
- dwLoc34_294 = eax_283 + 0x14
- dwLoc38_296 = eax_283
- D_301 = fn00409070(ebp_258, eax_283, eax_283 + 0x14, ecx_289, out edx_297, out ebp_298, out edi_299, out xmm0_300)
- eax_302 = Mem240[ebp_298 + 0x08:word32]
- v38_304 = Mem240[4254052:word32] - 0x01
- Mem305[4254052:word32] = v38_304
- branch eax_302 <=u Mem305[0x0040E560:word32] l00406B3E
- l00406B3A:
- v39_311 = Mem305[ebp_298 + 0x08:word32] - 0x14
- Mem312[ebp_298 + 0x08:word32] = v39_311
- l00406B3E:
- eax_309 = Mem305[4254056:word32]
- Mem310[0x0040E970:word32] = eax_309
- l00406B48:
- edx_196 = PHI(edx_145, edx_226, edx_297)
- xmm0_197 = PHI(xmm0, xmm0, xmm0_300)
- D_198 = PHI(D, D, D_301)
- edi_202 = PHI(edi_23, edi_23, edi_299)
- ebp_204 = PHI(ebp_7, ebp_7, ebp_298)
- eax_206 = Mem153[ebp_204 + 0x08:word32]
- Mem207[0x0040E560:word32] = eax_206
- Mem208[4254072:word32] = edi_202
- l00406B56:
- edx_168 = PHI(edx_145, edx_196)
- xmm0_169 = PHI(xmm0, xmm0_197)
- D_170 = PHI(D, D_198)
- l00406B57:
- edx_70 = PHI(edx, edx_168)
- xmm0_71 = PHI(xmm0, xmm0_169)
- D_72 = PHI(D, D_170)
- return D_72
- fn00406845_exit:
- use edx_70 (=> edxOut)
- use xmm0_71 (=> xmm0Out)
- }
- word32 fn00406B5B()
- {
- word32 eax_21;
- word32 eax_3 = Mem0[0x0040E974:word32];
- word32 esi_105 = Mem0[4254052:word32];
- if (esi_105 == eax_3)
- {
- word32 eax_98 = HeapReAlloc(Mem0[4252540:word32], 0x00, Mem0[4254056:word32], (eax_3 + 0x10) *s 0x14);
- if (eax_98 == 0x00)
- {
- l00406B8C:
- eax_21 = 0x00;
- return eax_21;
- }
- Mem103[0x0040E974:word32] = Mem0[0x0040E974:word32] + 0x10;
- esi_105 = Mem103[4254052:word32];
- Mem106[4254056:word32] = eax_98;
- }
- word32 esi_42 = esi_105 *s 0x14 + Mem0[4254056:word32];
- word32 eax_49 = HeapAlloc(Mem0[4252540:word32], 0x08, 0x41C4);
- Mem51[esi_42 + 0x10:word32] = eax_49;
- if (eax_49 != 0x00)
- {
- word32 eax_62 = VirtualAlloc(0x00, 0x00100000, 0x2000, 0x04);
- Mem64[esi_42 + 0x0C:word32] = eax_62;
- if (eax_62 != 0x00)
- {
- Mem76[esi_42 + 0x08:word32] = Mem64[esi_42 + 0x08:word32] | ~0x00;
- Mem78[esi_42 + 0x00:word32] = 0x00;
- Mem79[esi_42 + 0x04:word32] = 0x00;
- Mem81[4254052:word32] = Mem79[4254052:word32] + 0x01;
- word32 eax_82 = Mem81[esi_42 + 0x10:word32];
- Mem84[eax_82 + 0x00:word32] = Mem81[eax_82 + 0x00:word32] | ~0x00;
- eax_21 = esi_42;
- return eax_21;
- }
- HeapFree(Mem64[4252540:word32], 0x00, Mem64[esi_42 + 0x10:word32]);
- }
- goto l00406B8C;
- }
- word32 fn00406C0B(word32 dwArg04, ptr32 & edxOut)
- {
- word32 eax_17 = Mem0[dwArg04 + 0x08:word32];
- word32 esi_25 = Mem0[dwArg04 + 0x10:word32];
- word32 ebx_179 = 0x00;
- while (eax_17 >= 0x00)
- {
- eax_17 = eax_17 * 0x02;
- ebx_179 = ebx_179 + 0x01;
- }
- word32 eax_42 = ebx_179 *s 0x0204 + 0x0144 + esi_25;
- word32 edx_47 = 0x3F;
- eax_50 = eax_42;
- do
- {
- word32 eax_50;
- Mem51[eax_50 + 0x08:word32] = eax_50;
- Mem52[eax_50 + 0x04:word32] = eax_50;
- eax_50 = eax_50 + 0x08;
- edx_47 = edx_47 - 0x01;
- *edxOut = edx_47;
- } while (edx_47 != 0x00);
- word32 eax_139;
- word32 edi_65 = (ebx_179 << 0x0F) + Mem52[dwArg04 + 0x0C:word32];
- word32 eax_70 = VirtualAlloc(edi_65, 0x8000, 0x1000, 0x04);
- if (eax_70 == 0x00)
- eax_139 = eax_70 | ~0x00;
- else
- {
- word32 edx_101 = edi_65 + 0x7000;
- if (edi_65 <=u edi_65 + 0x7000)
- {
- word32 eax_149 = edi_65 + 0x10;
- word32 ecx_151 = (edi_65 + 0x7000 - edi_65 >>u 0x0C) + 0x01;
- do
- {
- Mem157[eax_149 - 0x08 + 0x00:word32] = Mem52[eax_149 - 0x08 + 0x00:word32] | ~0x00;
- Mem160[eax_149 + 0x0FEC:word32] = Mem157[eax_149 + 0x0FEC:word32] | ~0x00;
- Mem163[eax_149 + 0x00:word32] = eax_149 + 0x0FFC;
- Mem165[eax_149 - 0x04 + 0x00:word32] = 0x0FF0;
- Mem166[eax_149 + 0x04:word32] = eax_149 + ~0x1003;
- Mem167[eax_149 + 0x0FE8:word32] = 0x0FF0;
- eax_149 = eax_149 + 0x1000;
- ecx_151 = ecx_151 - 0x01;
- } while (ecx_151 != 0x00);
- edx_101 = edi_65 + 0x7000;
- }
- Mem110[eax_42 + 0x01FC:word32] = edi_65 + 0x0C;
- Mem111[edi_65 + 0x14:word32] = eax_42 + 0x01F8;
- word32 ecx_112 = edx_101 + 0x0C;
- Mem113[eax_42 + 0x0200:word32] = ecx_112;
- Mem114[ecx_112 + 0x04:word32] = eax_42 + 0x01F8;
- (esi_25 + 0x44)[ebx_179 * 0x04] = (esi_25 + 0x44)[ebx_179 * 0x04] & 0x00;
- (esi_25 + 0xC4)[ebx_179 * 0x04] = 0x01;
- byte al_121 = Mem120[esi_25 + 0x43:byte];
- Mem129[esi_25 + 0x43:byte] = al_121 + 0x01;
- if (al_121 == 0x00)
- Mem142[dwArg04 + 0x04:word32] = Mem129[dwArg04 + 0x04:word32] | 0x01;
- word32 edx_134 = ~(0x80000000 >>u (byte) ebx_179);
- *edxOut = edx_134;
- Mem136[dwArg04 + 0x08:word32] = Mem129[dwArg04 + 0x08:word32] & edx_134;
- eax_139 = ebx_179;
- }
- return eax_139;
- }
- word32 fn00406D13(word32 dwArg04, word32 dwArg08, byte bArg0B, word32 dwArg0C, byte bArg0F, ptr32 & edxOut)
- {
- word32 eax_101;
- word32 ecx_33 = Mem0[dwArg08 - 0x04 + 0x00:word32];
- word32 edi_43 = ecx_33 - 0x05 + dwArg08;
- word32 edx_26 = dwArg08 - Mem0[dwArg04 + 0x0C:word32];
- word32 eax_12 = Mem0[dwArg04 + 0x10:word32];
- word32 ebx_44 = Mem0[edi_43 + 0x00:word32];
- word32 edx_28 = edx_26 >>u 0x0F;
- *edxOut = edx_28;
- word32 ecx_31 = (edx_26 >>u 0x0F) *s 0x0204 + 0x0144 + eax_12;
- word32 esi_34 = dwArg0C + 0x17 & ~0x0F;
- byte bl_45 = (byte) ebx_44;
- if (esi_34 > ecx_33 - 0x01)
- {
- if ((bl_45 & 0x01) != 0x00 || esi_34 > ebx_44 + (ecx_33 - 0x01))
- {
- eax_101 = 0x00;
- return eax_101;
- }
- word32 ecx_113 = (ebx_44 >> 0x04) - 0x01;
- byte cl_114 = (byte) ecx_113;
- word32 dwLoc0C_115 = ecx_113;
- if (ecx_113 >u 0x3F)
- {
- ecx_113 = 0x3F;
- cl_114 = 0x3F;
- dwLoc0C_115 = 0x3F;
- }
- if (Mem0[edi_43 + 0x04:word32] == Mem0[edi_43 + 0x08:word32])
- if (ecx_113 <u 0x20)
- {
- word32 ebx_258 = ~(0x80000000 >>u cl_114);
- (eax_12 + 0x44)[(edx_26 >>u 0x0F) * 0x04] = (eax_12 + 0x44)[(edx_26 >>u 0x0F) * 0x04] & ebx_258;
- word32 ecx_257 = dwLoc0C_115 + 0x04 + eax_12;
- byte v20_264 = Mem261[ecx_257 + 0x00:byte] - 0x01;
- Mem265[ecx_257 + 0x00:byte] = v20_264;
- if (v20_264 == 0x00)
- Mem270[dwArg04 + 0x00:word32] = Mem265[dwArg04 + 0x00:word32] & ebx_258;
- }
- else
- {
- word32 ebx_278 = ~(0x80000000 >>u (byte) (ecx_113 + ~0x1F));
- (eax_12 + 0xC4)[(edx_26 >>u 0x0F) * 0x04] = (eax_12 + 0xC4)[(edx_26 >>u 0x0F) * 0x04] & ebx_278;
- word32 ecx_277 = dwLoc0C_115 + 0x04 + eax_12;
- byte v26_284 = Mem281[ecx_277 + 0x00:byte] - 0x01;
- Mem285[ecx_277 + 0x00:byte] = v26_284;
- if (v26_284 == 0x00)
- Mem290[dwArg04 + 0x04:word32] = Mem285[dwArg04 + 0x04:word32] & ebx_278;
- }
- word32 edx_149;
- Mem132[Mem0[edi_43 + 0x08:word32] + 0x04:word32] = Mem0[edi_43 + 0x04:word32];
- Mem135[Mem132[edi_43 + 0x04:word32] + 0x08:word32] = Mem132[edi_43 + 0x08:word32];
- word32 v31_138 = ebx_44 + ((ecx_33 - 0x01) - esi_34);
- if (v31_138 > 0x00)
- {
- word32 edi_162 = (v31_138 >> 0x04) - 0x01;
- word32 ecx_163 = dwArg08 - 0x04 + esi_34;
- if (edi_162 >u 0x3F)
- edi_162 = 0x3F;
- word32 ebx_171 = ecx_31 + edi_162 * 0x08;
- Mem174[ecx_163 + 0x04:word32] = Mem135[ebx_171 + 0x04:word32];
- Mem176[ecx_163 + 0x08:word32] = ebx_171;
- Mem177[ebx_171 + 0x04:word32] = ecx_163;
- Mem179[Mem177[ecx_163 + 0x04:word32] + 0x08:word32] = ecx_163;
- if (Mem179[ecx_163 + 0x04:word32] == Mem179[ecx_163 + 0x08:word32])
- {
- word32 eax_205;
- byte cl_203;
- byte cl_195 = Mem179[edi_162 + 0x04 + eax_12:byte];
- Mem198[edi_162 + 0x04 + eax_12:byte] = cl_195 + 0x01;
- if (edi_162 <u 0x20)
- {
- if (cl_195 == 0x00)
- Mem227[dwArg04 + 0x00:word32] = Mem198[dwArg04 + 0x00:word32] | 0x80000000 >>u (byte) edi_162;
- eax_205 = eax_12 + 0x44 + (edx_26 >>u 0x0F) * 0x04;
- cl_203 = (byte) edi_162;
- }
- else
- {
- if (cl_195 == 0x00)
- Mem244[dwArg04 + 0x04:word32] = Mem198[dwArg04 + 0x04:word32] | 0x80000000 >>u (byte) (edi_162 - 0x20);
- eax_205 = eax_12 + 0xC4 + (edx_26 >>u 0x0F) * 0x04;
- cl_203 = (byte) (edi_162 - 0x20);
- }
- Mem210[eax_205 + 0x00:word32] = Mem198[eax_205 + 0x00:word32] | 0x80000000 >>u cl_203;
- }
- word32 eax_192 = dwArg08 - 0x04 + esi_34;
- Mem193[eax_192 + 0x00:word32] = v31_138;
- Mem194[v31_138 - 0x04 + eax_192:word32] = v31_138;
- *edxOut = dwArg08;
- }
- else
- *edxOut = dwArg08;
- Mem157[edx_149 - 0x04 + 0x00:word32] = esi_34 + 0x01;
- Mem158[edx_149 - 0x08 + esi_34:word32] = esi_34 + 0x01;
- }
- else if (esi_34 < ecx_33 - 0x01)
- {
- word32 v17_300 = ecx_33 - 0x01 - esi_34;
- Mem303[dwArg08 - 0x04 + 0x00:word32] = esi_34 + 0x01;
- word32 ebx_304 = dwArg08 - 0x04 + esi_34;
- Mem310[ebx_304 - 0x04 + 0x00:word32] = esi_34 + 0x01;
- word32 dwArg0C_301 = v17_300;
- word32 esi_308 = (v17_300 >> 0x04) - 0x01;
- if (esi_308 >u 0x3F)
- esi_308 = 0x3F;
- if ((bLoc08 & 0x01) == 0x00)
- {
- word32 esi_407 = (ebx_44 >> 0x04) - 0x01;
- if (esi_407 >u 0x3F)
- esi_407 = 0x3F;
- if (Mem310[edi_43 + 0x04:word32] == Mem310[edi_43 + 0x08:word32])
- if (esi_407 <u 0x20)
- {
- word32 ebx_454 = ~(0x80000000 >>u (byte) esi_407);
- (eax_12 + 0x44)[(edx_26 >>u 0x0F) * 0x04] = (eax_12 + 0x44)[(edx_26 >>u 0x0F) * 0x04] & ebx_454;
- word32 esi_453 = esi_407 + 0x04 + eax_12;
- byte v23_460 = Mem457[esi_453 + 0x00:byte] - 0x01;
- Mem461[esi_453 + 0x00:byte] = v23_460;
- if (v23_460 == 0x00)
- Mem466[dwArg04 + 0x00:word32] = Mem461[dwArg04 + 0x00:word32] & ebx_454;
- }
- else
- {
- word32 ebx_473 = ~(0x80000000 >>u (byte) (esi_407 - 0x20));
- (eax_12 + 0xC4)[(edx_26 >>u 0x0F) * 0x04] = (eax_12 + 0xC4)[(edx_26 >>u 0x0F) * 0x04] & ebx_473;
- word32 ecx_472 = esi_407 + 0x04 + eax_12;
- byte v29_479 = Mem476[ecx_472 + 0x00:byte] - 0x01;
- Mem480[ecx_472 + 0x00:byte] = v29_479;
- if (v29_479 == 0x00)
- Mem485[dwArg04 + 0x04:word32] = Mem480[dwArg04 + 0x04:word32] & ebx_473;
- }
- Mem424[Mem310[edi_43 + 0x08:word32] + 0x04:word32] = Mem310[edi_43 + 0x04:word32];
- Mem427[Mem424[edi_43 + 0x04:word32] + 0x08:word32] = Mem424[edi_43 + 0x08:word32];
- word32 esi_429 = v17_300 + ebx_44;
- dwArg0C_301 = esi_429;
- esi_308 = (esi_429 >> 0x04) - 0x01;
- if (esi_308 >u 0x3F)
- esi_308 = 0x3F;
- }
- word32 ecx_331 = ecx_31 + esi_308 * 0x08;
- word32 edi_332 = Mem310[ecx_331 + 0x04:word32];
- Mem333[ebx_304 + 0x08:word32] = ecx_331;
- Mem334[ebx_304 + 0x04:word32] = edi_332;
- Mem335[ecx_331 + 0x04:word32] = ebx_304;
- Mem337[Mem335[ebx_304 + 0x04:word32] + 0x08:word32] = ebx_304;
- if (Mem337[ebx_304 + 0x04:word32] == Mem337[ebx_304 + 0x08:word32])
- {
- word32 eax_363;
- byte cl_361;
- byte cl_353 = Mem337[esi_308 + 0x04 + eax_12:byte];
- Mem356[esi_308 + 0x04 + eax_12:byte] = cl_353 + 0x01;
- if (esi_308 <u 0x20)
- {
- if (cl_353 == 0x00)
- Mem385[dwArg04 + 0x00:word32] = Mem356[dwArg04 + 0x00:word32] | 0x80000000 >>u (byte) esi_308;
- eax_363 = eax_12 + 0x44 + (edx_26 >>u 0x0F) * 0x04;
- cl_361 = (byte) esi_308;
- }
- else
- {
- if (cl_353 == 0x00)
- Mem402[dwArg04 + 0x04:word32] = Mem356[dwArg04 + 0x04:word32] | 0x80000000 >>u (byte) (esi_308 - 0x20);
- eax_363 = eax_12 + 0xC4 + (edx_26 >>u 0x0F) * 0x04;
- cl_361 = (byte) (esi_308 - 0x20);
- }
- word32 edx_366 = 0x80000000 >>u cl_361;
- *edxOut = edx_366;
- Mem368[eax_363 + 0x00:word32] = Mem356[eax_363 + 0x00:word32] | edx_366;
- }
- Mem351[ebx_304 + 0x00:word32] = dwArg0C_301;
- Mem352[dwArg0C_301 - 0x04 + ebx_304:word32] = dwArg0C_301;
- }
- eax_101 = 0x01;
- return eax_101;
- }
- word32 fn00406FF7(word32 edx, word32 esi, word32 dwArg04, byte bArg07, ptr32 & edxOut)
- {
- *edxOut = edx;
- word32 esi_36;
- word32 dwLoc0C_31;
- word32 ecx_16 = dwArg04 + 0x17 & ~0x0F;
- word32 ecx_22 = (ecx_16 >> 0x04) - 0x01;
- word32 eax_14 = Mem0[4254052:word32] *s 0x14 + Mem0[4254056:word32];
- byte cl_23 = (byte) ecx_22;
- if (ecx_22 < 0x20)
- {
- esi_36 = (esi | ~0x00) >>u cl_23;
- dwLoc0C_31 = dwLoc0C | ~0x00;
- }
- else
- {
- word32 edx_499 = (edx | ~0x00) >>u (byte) (ecx_22 + ~0x1F);
- *edxOut = edx_499;
- esi_36 = 0x00;
- dwLoc0C_31 = edx_499;
- }
- word32 ecx_37 = Mem0[0x0040E970:word32];
- word32 ebx_148 = ecx_37;
- while (true)
- {
- word32 dwArg04_400 = ebx_148;
- if (ebx_148 >=u eax_14)
- break;
- word32 edx_481 = Mem0[ebx_148 + 0x04:word32] & dwLoc0C_31 | Mem0[ebx_148 + 0x00:word32] & esi_36;
- *edxOut = edx_481;
- if (edx_481 != 0x00)
- break;
- ebx_148 = ebx_148 + 0x14;
- }
- word32 eax_167;
- if (ebx_148 == eax_14)
- {
- ebx_148 = Mem0[4254056:word32];
- while (true)
- {
- dwArg04_400 = ebx_148;
- if (ebx_148 >=u ecx_37)
- break;
- word32 edx_471 = Mem0[ebx_148 + 0x04:word32] & dwLoc0C_31 | Mem0[ebx_148 + 0x00:word32] & esi_36;
- *edxOut = edx_471;
- if (edx_471 != 0x00)
- break;
- ebx_148 = ebx_148 + 0x14;
- }
- if (ebx_148 == ecx_37)
- {
- while (ebx_148 <u eax_14 && Mem0[ebx_148 + 0x08:word32] == 0x00)
- {
- ebx_148 = ebx_148 + 0x14;
- dwArg04_400 = ebx_148;
- }
- if (ebx_148 == eax_14)
- {
- ebx_148 = Mem0[4254056:word32] + 0x08;
- while (true)
- {
- dwArg04_400 = ebx_148;
- if (ebx_148 >=u ecx_37 || Mem0[ebx_148 + 0x00:word32] != 0x00)
- break;
- ebx_148 = ebx_148 + 0x14;
- }
- if (ebx_148 == ecx_37)
- {
- word32 eax_452 = fn00406B5B();
- ebx_148 = eax_452;
- dwArg04_400 = eax_452;
- if (eax_452 == 0x00)
- {
- l004070C7:
- eax_167 = 0x00;
- return eax_167;
- }
- }
- }
- word32 edx_435;
- Mem440[Mem0[ebx_148 + 0x10:word32] + 0x00:word32] = fn00406C0B(ebx_148, out edx_435);
- if (Mem440[Mem440[ebx_148 + 0x10:word32] + 0x00:word32] == ~0x00)
- goto l004070C7;
- }
- }
- Mem89[0x0040E970:word32] = ebx_148;
- Mem95[0x0040E970:word32] = ebx_148;
- word32 eax_96 = Mem95[ebx_148 + 0x10:word32];
- word32 edx_102 = Mem95[eax_96 + 0x00:word32];
- word32 dwLoc08_101 = edx_102;
- if (edx_102 != ~0x00)
- if (((eax_96 + 0xC4)[edx_102 * 0x04] & dwLoc0C_31 | (eax_96 + 0x44)[edx_102 * 0x04] & esi_36) != 0x00)
- goto l00407132;
- dwLoc08_101 = edx_102 & 0x00 & 0x00;
- word32 edx_357 = Mem95[eax_96 + 0xC4:word32];
- word32 ecx_358 = eax_96 + 0x44 + 0x84;
- while ((edx_357 & dwLoc0C_31 | Mem95[ecx_358 + 0x00:word32] & esi_36) == 0x00)
- {
- dwLoc08_101 = dwLoc08_101 + 0x01;
- edx_357 = Mem95[ecx_358 + 0x00:word32];
- ecx_358 = ecx_358 + 0x04;
- }
- edx_102 = dwLoc08_101;
- l00407132:
- word32 ecx_106 = edx_102 *s 0x0204 + 0x0144 + eax_96;
- word32 edi_109 = 0x00;
- word32 ecx_110 = (eax_96 + 0x44)[edx_102 * 0x04] & esi_36;
- if (ecx_110 == 0x00)
- {
- ecx_110 = (eax_96 + 0xC4)[edx_102 * 0x04] & dwLoc0C_31;
- edi_109 = 0x20;
- }
- while (ecx_110 >= 0x00)
- {
- ecx_110 = ecx_110 * 0x02;
- edi_109 = edi_109 + 0x01;
- }
- word32 edx_125 = (ecx_106 + 0x04)[edi_109 * 0x08];
- word32 ecx_127 = Mem95[edx_125 + 0x00:word32] - ecx_16;
- word32 esi_131 = (ecx_127 >> 0x04) - 0x01;
- if (esi_131 > 0x3F)
- esi_131 = 0x3F;
- if (esi_131 == edi_109)
- {
- l0040728A:
- if (ecx_127 != 0x00)
- {
- Mem189[edx_125 + 0x00:word32] = ecx_127;
- Mem190[ecx_127 - 0x04 + edx_125:word32] = ecx_127;
- }
- goto l00407299;
- }
- if (Mem95[edx_125 + 0x04:word32] == Mem95[edx_125 + 0x08:word32])
- {
- if (edi_109 < 0x20)
- {
- word32 ebx_292 = ~(0x80000000 >>u (byte) edi_109);
- (eax_96 + 0x44)[dwLoc08_101 * 0x04] = ebx_292 & (eax_96 + 0x44)[dwLoc08_101 * 0x04];
- word32 edi_291 = eax_96 + 0x04 + edi_109;
- byte v20_297 = Mem296[edi_291 + 0x00:byte] - 0x01;
- Mem298[edi_291 + 0x00:byte] = v20_297;
- if (v20_297 == 0x00)
- {
- Mem304[dwArg04_400 + 0x00:word32] = Mem298[dwArg04_400 + 0x00:word32] & ebx_292;
- ebx_148 = dwArg04_400;
- goto l004071ED;
- }
- l004071EA:
- ebx_148 = dwArg04_400;
- goto l004071ED;
- }
- word32 ecx_311 = eax_96 + 0xC4 + dwLoc08_101 * 0x04;
- word32 ebx_313 = ~(0x80000000 >>u (byte) (edi_109 - 0x20));
- Mem315[ecx_311 + 0x00:word32] = Mem95[ecx_311 + 0x00:word32] & ebx_313;
- word32 edi_312 = eax_96 + 0x04 + edi_109;
- byte v23_318 = Mem315[edi_312 + 0x00:byte] - 0x01;
- Mem319[edi_312 + 0x00:byte] = v23_318;
- if (v23_318 != 0x00)
- goto l004071EA;
- Mem326[dwArg04_400 + 0x04:word32] = Mem319[dwArg04_400 + 0x04:word32] & ebx_313;
- ebx_148 = dwArg04_400;
- }
- l004071ED:
- Mem204[Mem95[edx_125 + 0x08:word32] + 0x04:word32] = Mem95[edx_125 + 0x04:word32];
- Mem207[Mem204[edx_125 + 0x04:word32] + 0x08:word32] = Mem204[edx_125 + 0x08:word32];
- if (ecx_127 == 0x00)
- {
- l00407299:
- word32 edx_150 = edx_125 + ecx_127;
- *edxOut = edx_150;
- Mem152[edx_150 + 0x00:word32] = ecx_16 + 0x01;
- Mem153[edx_150 - 0x04 + ecx_16:word32] = ecx_16 + 0x01;
- word32 ecx_155 = Mem153[ecx_106 + 0x00:word32];
- Mem157[ecx_106 + 0x00:word32] = ecx_155 + 0x01;
- if (ecx_155 == 0x00 && (ebx_148 == Mem157[0x0040E560:word32] && dwLoc08_101 == Mem157[4254072:word32]))
- Mem174[0x0040E560:word32] = Mem157[0x0040E560:word32] & 0x00;
- Mem166[eax_96 + 0x00:word32] = dwLoc08_101;
- eax_167 = edx_150 + 0x04;
- return eax_167;
- }
- word32 ecx_209 = ecx_106 + esi_131 * 0x08;
- word32 edi_210 = Mem207[ecx_209 + 0x04:word32];
- Mem211[edx_125 + 0x08:word32] = ecx_209;
- Mem212[edx_125 + 0x04:word32] = edi_210;
- Mem213[ecx_209 + 0x04:word32] = edx_125;
- Mem215[Mem213[edx_125 + 0x04:word32] + 0x08:word32] = edx_125;
- if (Mem215[edx_125 + 0x04:word32] == Mem215[edx_125 + 0x08:word32])
- {
- byte cl_229 = Mem215[esi_131 + 0x04 + eax_96:byte];
- Mem234[esi_131 + 0x04 + eax_96:byte] = cl_229 + 0x01;
- if (esi_131 < 0x20)
- {
- if (cl_229 == 0x00)
- Mem251[ebx_148 + 0x00:word32] = Mem234[ebx_148 + 0x00:word32] | 0x80000000 >>u (byte) esi_131;
- (eax_96 + 0x44)[dwLoc08_101 * 0x04] = (eax_96 + 0x44)[dwLoc08_101 * 0x04] | 0x80000000 >>u (byte) esi_131;
- }
- else
- {
- if (cl_229 == 0x00)
- Mem271[ebx_148 + 0x04:word32] = Mem234[ebx_148 + 0x04:word32] | 0x80000000 >>u (byte) (esi_131 - 0x20);
- word32 edi_257 = eax_96 + 0xC4 + dwLoc08_101 * 0x04;
- Mem263[edi_257 + 0x00:word32] = Mem234[edi_257 + 0x00:word32] | 0x80000000 >>u (byte) (esi_131 - 0x20);
- }
- }
- goto l0040728A;
- }
- word32 fn004074B5(word32 ebx, word32 esi, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *xmm0Out = xmm0;
- if (dwArg04 == ~0x01)
- {
- word32 edx_34;
- word32 ebx_35;
- word32 ebp_36;
- word32 esi_37;
- word32 edi_38;
- word128 xmm0_39;
- word32 eax_40 = fn00401992(ebx, fp - 0x04, esi, es, ds, out edx_34, out ebx_35, out ebp_36, out esi_37, out edi_38, out xmm0_39);
- Mem43[eax_40 + 0x00:word32] = Mem0[eax_40 + 0x00:word32] & 0x00;
- word32 eax_46;
- word32 edx_47;
- word32 ebx_48;
- word32 ebp_49;
- word32 esi_50;
- word32 edi_51;
- word128 xmm0_52;
- fn0040197F(ebx_35, ebp_36, esi_37, es, ds, out eax_46, out edx_47, out ebx_48, out ebp_49, out esi_50, out edi_51, out xmm0_52);
- Mem54[eax_46 + 0x00:word32] = 0x09;
- return eax_46 | ~0x00;
- }
- word32 eax_119;
- if (dwArg04 >= 0x00 && dwArg04 <u Mem0[4258220:word32])
- {
- word32 eax_129 = ((dwArg04 & 0x1F) << 0x06) + 0x0040F9C0[(dwArg04 >> 0x05) * 0x04];
- if ((Mem0[eax_129 + 0x04:byte] & 0x01) != 0x00)
- {
- eax_119 = Mem0[eax_129 + 0x00:word32];
- return eax_119;
- }
- }
- word32 edx_87;
- word32 ebx_88;
- word32 ebp_89;
- word32 esi_90;
- word32 edi_91;
- word128 xmm0_92;
- word32 eax_93 = fn00401992(ebx, fp - 0x04, 0x00, es, ds, out edx_87, out ebx_88, out ebp_89, out esi_90, out edi_91, out xmm0_92);
- Mem94[eax_93 + 0x00:word32] = esi_90;
- word32 eax_95;
- word32 edx_96;
- word32 ebx_97;
- word32 ebp_98;
- word32 esi_99;
- word32 edi_100;
- word128 xmm0_101;
- fn0040197F(ebx_88, ebp_89, esi_90, es, ds, out eax_95, out edx_96, out ebx_97, out ebp_98, out esi_99, out edi_100, out xmm0_101);
- Mem104[fp - 0x0C + 0x00:word32] = esi_99;
- Mem106[fp - 0x10 + 0x00:word32] = esi_99;
- Mem108[fp - 0x14 + 0x00:word32] = esi_99;
- Mem110[fp - 0x18 + 0x00:word32] = esi_99;
- Mem112[fp - 0x1C + 0x00:word32] = esi_99;
- Mem113[eax_95 + 0x00:word32] = 0x09;
- word32 edx_114;
- word32 ebx_115;
- word32 esi_116;
- eax_119 = fn00401917(es, ds, xmm0_101, out edx_114, out ebx_115, out esi_116) | ~0x00;
- return eax_119;
- }
- word32 fn0040752C(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut)
- {
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4241320, 0x0C, out ebp_10);
- word32 edi_101 = Mem0[ebp_10 + 0x08:word32];
- word32 esi_19 = ((edi_101 & 0x1F) << 0x06) + 0x0040F9C0[(edi_101 >> 0x05) * 0x04];
- Mem20[ebp_10 - 0x1C + 0x00:word32] = 0x01;
- word32 esp_106 = fp - 0x08;
- word32 ebx_21 = 0x00;
- if (Mem20[esi_19 + 0x08:word32] == 0x00)
- {
- Mem70[fp - 0x0C + 0x00:word32] = 0x0A;
- word128 xmm0_75;
- fn00405B56(0x00, edi_101, es, ds, dwArg00, out edx, out ebx_21, out xmm0_75);
- Mem79[ebp_10 - 0x04 + 0x00:word32] = ebx_21;
- esp_106 = fp - 0x08;
- if (Mem79[esi_19 + 0x08:word32] == ebx_21)
- {
- Mem94[fp - 0x0C + 0x00:word32] = 4000;
- Mem97[fp - 0x10 + 0x00:word32] = esi_19 + 0x0C;
- esp_106 = fp - 0x08;
- word32 esi_100;
- if (fn0040605C(ebx_21, esi_19, edi_101, out ebx_21, out ebp_10, out esi_100, out edi_101) == 0x00)
- Mem113[ebp_10 - 0x1C + 0x00:word32] = ebx_21;
- Mem111[esi_100 + 0x08:word32] = Mem97[esi_100 + 0x08:word32] + 0x01;
- }
- Mem92[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn004075C3();
- }
- if (Mem20[ebp_10 - 0x1C + 0x00:word32] != ebx_21)
- {
- word32 esp_66 = esp_106 - 0x04;
- Mem67[esp_66 + 0x00:word32] = 0x0040F9C0[(edi_101 >> 0x05) * 0x04] + 0x0C + ((edi_101 & 0x1F) << 0x06);
- EnterCriticalSection(Mem67[esp_66 + 0x00:LPCRITICAL_SECTION]);
- }
- word32 ebp_51;
- word32 esi_52;
- word32 edi_53;
- word32 ebx_54;
- *ebxOut = fn00402F65(ebp_10, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_51, out esi_52, out edi_53);
- return edx;
- }
- void fn004075C3()
- {
- fn00405A7C(0x0A);
- return;
- }
- void fn004075CC(word32 dwArg04)
- {
- LeaveCriticalSection(0x0040F9C0[(dwArg04 >> 0x05) * 0x04] + 0x0C + ((dwArg04 & 0x1F) << 0x06));
- return;
- }
- word16 fn004075F3(word32 edx, word32 ebx, word32 esi, word32 edi, selector es, selector ds, word16 wArg04, ptr32 & ebpOut, ptr32 & esiOut)
- {
- word32 eax_123;
- word32 eax_32;
- word32 ebp_7;
- *ebpOut = fp - 0x04;
- word32 eax_11 = Mem0[0x0040DB60:word32] ^ fp - 0x04;
- word32 esi_16;
- *esiOut = 0x00;
- if (Mem0[0x0040DC90:word32] != 0x00)
- {
- if (Mem0[0x0040DDD4:word32] == ~0x01)
- fn0040950F();
- word32 eax_130 = Mem0[0x0040DDD4:word32];
- if (eax_130 == ~0x00)
- goto l00407628;
- eax_123 = WriteConsoleW(eax_130, fp + 0x04, 0x01, fp - 0x14, 0x00);
- if (eax_123 != 0x00)
- {
- Mem167[0x0040DC90:word32] = 0x01;
- goto l0040769B;
- }
- if (Mem0[0x0040DC90:word32] != 0x02 || GetLastError() != 0x78)
- goto l00407628;
- Mem166[0x0040DC90:word32] = 0x00;
- }
- word32 eax_104 = WideCharToMultiByte(GetConsoleOutputCP(), 0x00, fp + 0x04, 0x01, fp - 0x10, 0x05, 0x00, 0x00);
- word32 ecx_107 = Mem0[0x0040DDD4:word32];
- if (ecx_107 == ~0x00)
- goto l00407628;
- edx = fp - 0x14;
- eax_123 = WriteConsoleA(ecx_107, fp - 0x10, eax_104, fp - 0x14, 0x00);
- if (eax_123 == 0x00)
- {
- l00407628:
- eax_32 = 0xFFFF;
- return (word16) fn00404BEF(eax_32, eax_11 ^ fp - 0x04, edx, ebx, fp - 0x04, esi, edi, es, ds);
- }
- l0040769B:
- eax_32 = DPB(eax_123, wArg04, 0);
- return (word16) fn00404BEF(eax_32, eax_11 ^ fp - 0x04, edx, ebx, fp - 0x04, esi, edi, es, ds);
- }
- word32 fn004076B8(word32 ebp, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, word32 dwArg10, ptr32 & edxOut, ptr32 & xmm0Out)
- {
- *edxOut = edx;
- *xmm0Out = xmm0;
- word32 eax_107;
- if (dwArg08 == 0x00 || dwArg0C == 0x00)
- {
- l004076E0:
- eax_107 = 0x00;
- return eax_107;
- }
- if (Mem0[dwArg08 + 0x00:byte] == 0x00)
- {
- if (dwArg04 != 0x00)
- Mem77[dwArg04 + 0x00:word16] = 0x00;
- goto l004076E0;
- }
- word32 ebx_84;
- word128 xmm0_85;
- word32 edx_86;
- *edxOut = fn00401759(fp - 0x14, 0x00, es, ds, dwArg10, out ebx_84, out xmm0_85);
- if (Mem0[Mem0[fp - 0x14 + 0x00:word32] + 0x14:word32] == ebx_84)
- {
- word32 eax_115 = Mem0[fp + 0x04:word32];
- if (eax_115 != ebx_84)
- Mem122[eax_115 + 0x00:word16] = (word16) Mem0[dwArg08 + 0x00:byte];
- goto l00407707;
- }
- Mem125[fp - 0x20 + 0x00:word32] = fp - 0x14;
- Mem128[fp - 0x24 + 0x00:word32] = (word32) Mem125[dwArg08 + 0x00:byte];
- word32 edx_129;
- word32 ebx_130;
- word32 esi_131;
- word128 xmm0_132;
- if (fn00404BA4(ebx_84, es, ds, dwArg04, out edx_129, out ebx_130, out esi_131, out xmm0_132) != 0x00)
- {
- word32 eax_171 = Mem128[fp - 0x14 + 0x00:word32];
- word32 ecx_173 = Mem128[eax_171 + 0xAC:word32];
- if (ecx_173 > 0x01 && Mem128[fp + 0x0C:word32] >= ecx_173)
- {
- word32 edx_213 = (word32) (Mem128[fp + 0x04:word32] != ebx_130);
- *edxOut = edx_213;
- Mem215[fp - 0x20 + 0x00:word32] = edx_213;
- Mem217[fp - 0x24 + 0x00:word32] = Mem215[fp + 0x04:word32];
- Mem219[fp - 0x28 + 0x00:word32] = ecx_173;
- Mem221[fp - 44 + 0x00:word32] = esi_131;
- Mem223[fp - 0x30 + 0x00:word32] = 0x09;
- Mem225[fp - 0x34 + 0x00:word32] = Mem223[eax_171 + 0x04:word32];
- word32 eax_226 = MultiByteToWideChar(Mem225[fp - 0x34 + 0x00:UINT], Mem225[fp - 0x30 + 0x00:DWORD], Mem225[fp - 44 + 0x00:LPCSTR], Mem225[fp - 0x28 + 0x00:int32], Mem225[fp - 0x24 + 0x00:LPWSTR], Mem225[fp - 0x20 + 0x00:int32]);
- eax_171 = Mem225[fp - 0x14 + 0x00:word32];
- if (eax_226 != 0x00)
- {
- l0040776E:
- eax_107 = Mem128[eax_171 + 0xAC:word32];
- if (Mem128[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 ecx_189 = Mem128[fp - 0x0C + 0x00:word32];
- Mem191[ecx_189 + 0x70:word32] = Mem128[ecx_189 + 0x70:word32] & ~0x02;
- }
- return eax_107;
- }
- }
- if (Mem128[fp + 0x0C:word32] >=u Mem128[eax_171 + 0xAC:word32] && Mem128[esi_131 + 0x01:byte] != 0x00)
- goto l0040776E;
- }
- else
- {
- Mem239[fp - 0x20 + 0x00:word32] = (word32) (Mem128[fp + 0x04:word32] != ebx_130);
- Mem241[fp - 0x24 + 0x00:word32] = Mem239[fp + 0x04:word32];
- word32 eax_242 = Mem241[fp - 0x14 + 0x00:word32];
- Mem244[fp - 0x28 + 0x00:word32] = 0x01;
- Mem246[fp - 44 + 0x00:word32] = esi_131;
- Mem248[fp - 0x30 + 0x00:word32] = 0x09;
- Mem250[fp - 0x34 + 0x00:word32] = Mem248[eax_242 + 0x04:word32];
- if (MultiByteToWideChar(Mem250[fp - 0x34 + 0x00:UINT], Mem250[fp - 0x30 + 0x00:DWORD], Mem250[fp - 44 + 0x00:LPCSTR], Mem250[fp - 0x28 + 0x00:int32], Mem250[fp - 0x24 + 0x00:LPWSTR], Mem250[fp - 0x20 + 0x00:int32]) != 0x00)
- {
- l00407707:
- if (Mem0[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 eax_110 = Mem0[fp - 0x0C + 0x00:word32];
- Mem112[eax_110 + 0x70:word32] = Mem0[eax_110 + 0x70:word32] & ~0x02;
- }
- eax_107 = 0x01;
- return eax_107;
- }
- }
- word32 edx_150;
- word32 ebx_151;
- word32 ebp_152;
- word32 esi_153;
- word32 edi_154;
- word128 xmm0_155;
- word32 eax_149;
- fn0040197F(ebx_130, fp - 0x04, esi_131, es, ds, out eax_149, out edx_150, out ebx_151, out ebp_152, out esi_153, out edi_154, out xmm0_155);
- Mem157[eax_149 + 0x00:word32] = 0x2A;
- if (Mem157[ebp_152 - 0x04 + 0x00:byte] != 0x00)
- {
- eax_149 = Mem157[ebp_152 - 0x08 + 0x00:word32];
- Mem168[eax_149 + 0x70:word32] = Mem157[eax_149 + 0x70:word32] & ~0x02;
- }
- eax_107 = eax_149 | ~0x00;
- return eax_107;
- }
- word32 fn004077CF(selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- word32 edx_21;
- word128 xmm0_22;
- return fn004076B8(fp - 0x04, es, ds, dwArg04, dwArg08, dwArg0C, 0x00, out edx_21, out xmm0_22);
- }
- void fn004077F0(word32 eax, word32 dwArg00)
- {
- word32 ecx_7 = fp - eax;
- word32 ecx_12 = ecx_7 & ~(0x00 - (ecx_7 <u 0x00));
- word32 eax_14 = fp - 0x04 & ~0x0FFF;
- while (ecx_12 <u eax_14)
- eax_14 = eax_14 - 0x1000;
- Mem29[ecx_12 + 0x00:word32] = dwArg00;
- return;
- }
- word32 fn00407A4D(word32 ebx, word32 esi, word32 edi, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *ebxOut = ebx;
- *esiOut = esi;
- *xmm0Out = xmm0;
- if (dwArg04 != 0x00 && Mem0[(dwArg04 - 0x08) + 0x00:word32] == 0xDDDD)
- {
- word32 eax_46;
- word32 ebx_48;
- word32 ebp_49;
- word32 esi_50;
- word32 edi_51;
- word128 xmm0_52;
- fn004047EB(ebx, esi, edi, es, ds, out eax_46, out edx, out ebx_48, out ebp_49, out esi_50, out edi_51, out xmm0_52);
- }
- return edx;
- }
- word32 fn00407A6D(word32 ecx, word32 edx, word32 ebp, word32 edi, selector es, selector ds, word32 dwArg04, word32 dwArg0C, word32 dwArg10, word32 dwArg1C, word32 dwArg20, ptr32 & xmm0Out)
- {
- fn00407A6D_entry:
- def fp
- def edi
- def ebp
- def Mem0
- def edx
- def ecx
- def dwArg10
- def ds
- def es
- def dwArg04
- def dwArg1C
- def dwArg00
- def dwArg08
- def dwArg0C
- def xmm0
- def dwArg20
- edi_3 = edi
- dwLoc04_6 = ebp
- ebp_7 = fp - 0x04
- ebx_21 = 0x00
- bl_22 = 0x00 (alias)
- esi_26 = ecx
- branch Mem0[0x0040E564:word32] != 0x00 l00407AC6
- goto l00407A8E
- l00407A6D:
- l00407A8E:
- edi_837 = 0x01
- eax_846 = LCMapStringW(0x00, 0x0100, 0x0040AA2C, 0x01, 0x00, 0x00)
- branch eax_846 == 0x00 l00407AB1
- l00407AA9:
- Mem852[0x0040E564:word32] = 0x01
- goto l00407AC6
- l00407AB1:
- eax_853 = GetLastError()
- branch eax_853 != 0x78 l00407AC6
- l00407ABC:
- Mem857[0x0040E564:word32] = 0x02
- l00407AC6:
- edi_43 = PHI(edi_3, edi_837, edi_837, edi_837)
- branch dwArg10 <= 0x00 l00407AED
- l00407ACB:
- ecx_793 = dwArg10
- eax_794 = dwArg0C
- l00407AD1:
- ecx_798 = PHI(ecx_793, ecx_801)
- eax_799 = PHI(eax_794, eax_824)
- ecx_801 = ecx_798 - 0x01
- branch Mem0[eax_799 + 0x00:byte] == 0x00 l00407ADE
- l00407AD6:
- eax_824 = eax_799 + 0x01
- branch ecx_801 != 0x00 l00407AD1
- l00407ADB:
- ecx_829 = ecx_801 | ~0x00
- l00407ADE:
- ecx_805 = PHI(ecx_801, ecx_829)
- eax_808 = dwArg10
- eax_809 = dwArg10 - ecx_805
- eax_810 = eax_809 - 0x01
- branch eax_809 - 0x01 >= dwArg10 l00407AEA
- l00407AE9:
- eax_820 = eax_809
- l00407AEA:
- eax_817 = PHI(eax_810, eax_820)
- dwArg10_819 = eax_817
- l00407AED:
- dwArg10_52 = PHI(dwArg10, dwArg10_819)
- eax_57 = Mem0[0x0040E564:word32]
- branch eax_57 == 0x02 || eax_57 == 0x00 l00407CA7
- goto l00407B03
- l00407AFB:
- l00407B03:
- branch eax_57 != 0x01 l00407CD8
- l00407B0C:
- branch dwArg1C != 0x00 l00407B1C
- l00407B14:
- eax_789 = Mem0[ecx + 0x00:word32]
- eax_790 = Mem0[eax_789 + 0x04:word32]
- dwArg1C_792 = eax_790
- l00407B1C:
- dwArg1C_456 = PHI(dwArg1C, dwArg1C_792)
- esi_457 = MultiByteToWideChar
- eax_458 = 0x00
- dwLoc30_467 = dwArg10_52
- al_468 = dwArg20 != 0x00
- eax_469 = (word32) (dwArg20 != 0x00) (alias)
- dwLoc34_471 = dwArg0C
- eax_472 = eax_469 * 0x08 + 0x01
- dwLoc38_474 = eax_472
- dwLoc3C_476 = dwArg1C_456
- eax_477 = MultiByteToWideChar(dwArg1C_456, eax_472, dwArg0C, dwArg10_52, 0x00, 0x00)
- esp_480 = fp - 0x24
- edi_481 = eax_477
- branch eax_477 == 0x00 l00407CD8
- l00407B49:
- branch eax_477 <= 0x00 l00407B8E
- l00407B4B:
- edx_730 = 0x00
- eax_731 = ~0x1F
- edx_eax_732 = ~0x1F (alias)
- esp_733 = fp - 0x24
- edx_734 = ~0x1F % eax_477
- edx_eax_735 = SEQ(edx_734, ~0x1F) (alias)
- eax_736 = edx_eax_735 /u eax_477
- branch eax_736 <u 0x02 l00407B8E
- l00407B57:
- eax_741 = eax_477 + 0x08 + eax_477
- branch eax_741 >u 0x0400 l00407B75
- l00407B62:
- fn00409930(eax_741)
- eax_770 = fp - 0x24
- branch fp == 0x24 l00407B89
- l00407B6D:
- Mem775[fp - 0x24 + 0x00:word32] = 0xCCCC
- goto l00407B86
- l00407B75:
- esp_776 = fp - 0x28
- dwLoc28_777 = eax_741
- eax_781 = fn00408438(0x00, fp - 0x04, es, ds, eax_741, out edx_778, out ebx_779, out xmm0_780)
- esp_785 = fp - 0x24
- branch eax_781 == ebx_779 l00407B89
- l00407B80:
- Mem788[eax_781 + 0x00:word32] = 0xDDDD
- l00407B86:
- xmm0_760 = PHI(xmm0, xmm0_780)
- edx_761 = PHI(edx_734, edx_778)
- ebx_762 = PHI(ebx_21, ebx_779)
- eax_764 = PHI(eax_770, eax_781)
- esp_765 = PHI(esp_733, esp_785)
- eax_766 = eax_764 + 0x08
- l00407B89:
- xmm0_749 = PHI(xmm0, xmm0_760, xmm0_780)
- edx_750 = PHI(edx_734, edx_761, edx_778)
- ebx_752 = PHI(ebx_21, ebx_762, ebx_779)
- eax_754 = PHI(eax_770, eax_766, eax_781)
- esp_756 = PHI(esp_733, esp_765, esp_785)
- Mem757[fp - 0x10 + 0x00:word32] = eax_754
- goto l00407B91
- l00407B8E:
- edx_721 = PHI(edx, edx_734)
- esp_726 = PHI(esp_480, esp_733)
- l00407B91:
- xmm0_491 = PHI(xmm0_749, xmm0)
- edx_492 = PHI(edx_750, edx_721)
- ebx_494 = PHI(ebx_752, ebx_21)
- esp_499 = PHI(esp_756, esp_726)
- branch Mem0[fp - 0x10 + 0x00:word32] == ebx_494 l00407CD8
- l00407B9A:
- esp_502 = esp_499 - 0x04
- Mem503[esp_502 + 0x00:word32] = eax_477
- esp_504 = esp_502 - 0x04
- Mem505[esp_502 - 0x04 + 0x00:word32] = Mem503[fp - 0x10 + 0x00:word32]
- esp_506 = esp_502 - 0x08
- Mem507[esp_502 - 0x08 + 0x00:word32] = Mem505[fp + 0x10:word32]
- esp_508 = esp_502 - 0x0C
- Mem509[esp_502 - 0x0C + 0x00:word32] = Mem507[fp + 0x0C:word32]
- esp_510 = esp_502 - 0x10
- Mem511[esp_502 - 0x10 + 0x00:word32] = 0x01
- esp_512 = esp_502 - 0x14
- Mem513[esp_502 - 0x14 + 0x00:word32] = Mem511[fp + 0x1C:word32]
- eax_518 = MultiByteToWideChar(Mem0[esp + 0x00:UINT], Mem0[esp + 0x04:DWORD], Mem0[esp + 0x08:LPCSTR], Mem0[esp + 0x0C:int32], Mem0[esp + 0x0010:LPWSTR], Mem0[esp + 0x0014:int32])
- branch eax_518 == 0x00 l00407C96
- l00407BB3:
- esi_556 = LCMapStringW
- esp_557 = esp_514 - 0x04
- Mem558[esp_514 - 0x04 + 0x00:word32] = ebx_521
- esp_559 = esp_514 - 0x08
- Mem560[esp_514 - 0x08 + 0x00:word32] = ebx_521
- esp_561 = esp_514 - 0x0C
- Mem562[esp_514 - 0x0C + 0x00:word32] = edi_515
- esp_563 = esp_514 - 0x10
- Mem564[esp_514 - 0x10 + 0x00:word32] = Mem562[ebp_516 - 0x0C + 0x00:word32]
- esp_565 = esp_514 - 0x14
- Mem566[esp_514 - 0x14 + 0x00:word32] = Mem564[ebp_516 + 0x0C:word32]
- esp_567 = esp_514 - 0x18
- Mem568[esp_514 - 0x18 + 0x00:word32] = Mem566[ebp_516 + 0x08:word32]
- eax_569 = LCMapStringW(Mem568[esp_514 - 0x18 + 0x00:LCID], Mem568[esp_514 - 0x14 + 0x00:DWORD], Mem568[esp_514 - 0x10 + 0x00:LPCWSTR], Mem568[esp_514 - 0x0C + 0x00:int32], Mem568[esp_514 - 0x08 + 0x00:LPWSTR], Mem568[esp_514 - 0x04 + 0x00:int32])
- esp_570 = esp_514
- ecx_571 = eax_569
- Mem572[ebp_516 - 0x08 + 0x00:word32] = eax_569
- branch eax_569 == ebx_521 l00407C96
- l00407BD4:
- branch (Mem572[ebp_516 + 0x0C:word32] & 0x0400) == 0x00 l00407C06
- l00407BDD:
- branch Mem572[ebp_516 + 0x1C:word32] == ebx_521 || eax_569 > Mem572[ebp_516 + 0x1C:word32] l00407C96
- goto l00407BEF
- l00407BE6:
- l00407BEF:
- esp_582 = esp_514 - 0x04
- Mem583[esp_514 - 0x04 + 0x00:word32] = Mem572[ebp_516 + 0x1C:word32]
- esp_584 = esp_514 - 0x08
- Mem585[esp_514 - 0x08 + 0x00:word32] = Mem583[ebp_516 + 0x18:word32]
- esp_586 = esp_514 - 0x0C
- Mem587[esp_514 - 0x0C + 0x00:word32] = edi_515
- esp_588 = esp_514 - 0x10
- Mem589[esp_514 - 0x10 + 0x00:word32] = Mem587[ebp_516 - 0x0C + 0x00:word32]
- esp_590 = esp_514 - 0x14
- Mem591[esp_514 - 0x14 + 0x00:word32] = Mem589[ebp_516 + 0x0C:word32]
- esp_592 = esp_514 - 0x18
- Mem593[esp_514 - 0x18 + 0x00:word32] = Mem591[ebp_516 + 0x08:word32]
- LCMapStringW(Mem593[esp_514 - 0x18 + 0x00:LCID], Mem593[esp_514 - 0x14 + 0x00:DWORD], Mem593[esp_514 - 0x10 + 0x00:LPCWSTR], Mem593[esp_514 - 0x0C + 0x00:int32], Mem593[esp_514 - 0x08 + 0x00:LPWSTR], Mem593[esp_514 - 0x04 + 0x00:int32])
- esp_595 = esp_514
- goto l00407C96
- l00407C06:
- branch eax_569 <= ebx_521 l00407C4F
- l00407C0A:
- esp_675 = esp_514 - 0x04
- Mem676[esp_514 - 0x04 + 0x00:word32] = ~0x1F
- edx_677 = 0x00
- eax_678 = Mem676[esp_514 - 0x04 + 0x00:word32]
- edx_eax_679 = SEQ(0x00, eax_678) (alias)
- esp_680 = esp_514
- edx_681 = edx_eax_679 % eax_569
- edx_eax_682 = SEQ(edx_681, eax_678) (alias)
- eax_683 = edx_eax_682 /u eax_569
- branch eax_683 <u 0x02 l00407C4F
- l00407C16:
- eax_686 = eax_569 + 0x08 + eax_569
- branch eax_686 >u 0x0400 l00407C37
- l00407C21:
- fn00409930(eax_686)
- esi_691 = esp_514
- branch esp_514 == ebx_521 l00407C96
- l00407C2C:
- Mem694[esp_514 + 0x00:word32] = 0xCCCC
- esi_695 = esp_514 + 0x08
- goto l00407C51
- l00407C37:
- esp_697 = esp_514 - 0x04
- Mem698[esp_514 - 0x04 + 0x00:word32] = eax_686
- eax_702 = fn00408438(ebx_521, ebp_516, es_530, ds_531, dwArg00, out edx_699, out ebx_700, out xmm0_701)
- esp_706 = esp_514
- branch eax_702 == ebx_700 l00407C4B
- l00407C42:
- Mem714[eax_702 + 0x00:word32] = 0xDDDD
- eax_715 = eax_702 + 0x08
- l00407C4B:
- eax_711 = PHI(eax_702, eax_715)
- esi_713 = eax_711
- goto l00407C51
- l00407C4F:
- esp_671 = PHI(esp_570, esp_680)
- esi_672 = 0x00
- l00407C51:
- esi_602 = PHI(esi_695, esi_713, esi_672)
- ebx_603 = PHI(ebx_521, ebx_700, ebx_521)
- esp_609 = PHI(esp_680, esp_706, esp_671)
- branch esi_602 == ebx_603 l00407C96
- l00407C55:
- esp_612 = esp_609 - 0x04
- Mem613[esp_612 + 0x00:word32] = Mem572[ebp_516 - 0x08 + 0x00:word32]
- esp_614 = esp_612 - 0x04
- Mem615[esp_612 - 0x04 + 0x00:word32] = esi_602
- esp_616 = esp_612 - 0x08
- Mem617[esp_612 - 0x08 + 0x00:word32] = edi_515
- esp_618 = esp_612 - 0x0C
- Mem619[esp_612 - 0x0C + 0x00:word32] = Mem617[ebp_516 - 0x0C + 0x00:word32]
- esp_620 = esp_612 - 0x10
- Mem621[esp_612 - 0x10 + 0x00:word32] = Mem619[ebp_516 + 0x0C:word32]
- esp_622 = esp_612 - 0x14
- Mem623[esp_612 - 0x14 + 0x00:word32] = Mem621[ebp_516 + 0x08:word32]
- eax_624 = LCMapStringW(Mem623[esp_612 - 0x14 + 0x00:LCID], Mem623[esp_612 - 0x10 + 0x00:DWORD], Mem623[esp_612 - 0x0C + 0x00:LPCWSTR], Mem623[esp_612 - 0x08 + 0x00:int32], Mem623[esp_612 - 0x04 + 0x00:LPWSTR], Mem623[esp_612 + 0x00:int32])
- esp_625 = esp_612 + 0x04
- branch eax_624 == 0x00 l00407C8F
- l00407C6D:
- esp_641 = esp_612
- Mem642[esp_612 + 0x00:word32] = ebx_603
- esp_643 = esp_612 - 0x04
- Mem644[esp_612 - 0x04 + 0x00:word32] = ebx_603
- branch Mem644[ebp_516 + 0x1C:word32] != ebx_603 l00407C78
- l00407C74:
- esp_659 = esp_612 - 0x08
- Mem660[esp_612 - 0x08 + 0x00:word32] = ebx_603
- esp_661 = esp_612 - 0x0C
- Mem662[esp_612 - 0x0C + 0x00:word32] = ebx_603
- goto l00407C7E
- l00407C78:
- esp_663 = esp_612 - 0x08
- Mem664[esp_612 - 0x08 + 0x00:word32] = Mem644[ebp_516 + 0x1C:word32]
- esp_665 = esp_612 - 0x0C
- Mem666[esp_612 - 0x0C + 0x00:word32] = Mem664[ebp_516 + 0x18:word32]
- l00407C7E:
- esp_647 = PHI(esp_661, esp_665)
- esp_648 = esp_647 - 0x04
- Mem649[esp_648 + 0x00:word32] = Mem644[ebp_516 - 0x08 + 0x00:word32]
- esp_650 = esp_648 - 0x04
- Mem651[esp_648 - 0x04 + 0x00:word32] = esi_602
- esp_652 = esp_648 - 0x08
- Mem653[esp_648 - 0x08 + 0x00:word32] = ebx_603
- esp_654 = esp_648 - 0x0C
- Mem655[esp_648 - 0x0C + 0x00:word32] = Mem653[ebp_516 + 0x20:word32]
- eax_656 = WideCharToMultiByte(Mem655[esp_648 - 0x0C + 0x00:UINT], Mem655[esp_648 - 0x08 + 0x00:DWORD], Mem655[esp_648 - 0x04 + 0x00:LPCWSTR], Mem655[esp_648 + 0x00:int32], Mem655[esp_648 + 0x04:LPSTR], Mem655[esp_648 + 0x08:int32], Mem655[esp_648 + 0x0C:LPCSTR], Mem655[esp_648 + 0x10:LPBOOL])
- esp_657 = esp_648 + 0x14
- Mem658[ebp_516 - 0x08 + 0x00:word32] = eax_656
- l00407C8F:
- esp_632 = PHI(esp_625, esp_657)
- esp_633 = esp_632 - 0x04
- Mem634[esp_633 + 0x00:word32] = esi_602
- fn00407A4D(ebx_603, esi_602, edi_515, es_530, ds_531, dwArg00, out ebx_635, out esi_636, out xmm0_637)
- esp_640 = esp_633 + 0x04
- l00407C96:
- esi_540 = PHI(esi_522, esi_556, esi_556, esi_556, esi_556, esi_691, esi_602, esi_636)
- ebx_541 = PHI(ebx_521, ebx_521, ebx_521, ebx_521, ebx_521, ebx_521, ebx_603, ebx_635)
- esp_544 = PHI(esp_514, esp_570, esp_570, esp_570, esp_595, esp_680, esp_609, esp_640)
- esp_545 = esp_544 - 0x04
- Mem546[esp_545 + 0x00:word32] = Mem513[ebp_516 - 0x0C + 0x00:word32]
- edx_550 = fn00407A4D(ebx_541, esi_540, edi_515, es_530, ds_531, dwArg00, out ebx_547, out esi_548, out xmm0_549)
- eax_551 = Mem546[ebp_516 - 0x08 + 0x00:word32]
- goto l00407E00
- l00407CA7:
- branch dwArg04 != 0x00 l00407CBA
- l00407CB2:
- eax_442 = Mem0[ecx + 0x00:word32]
- eax_443 = Mem0[eax_442 + 0x14:word32]
- dwArg04_445 = eax_443
- l00407CBA:
- dwArg04_139 = PHI(dwArg04, dwArg04_445)
- esp_146 = fp - 0x28
- dwLoc28_147 = dwArg04_139
- eax_152 = fn0040972F(edx, 0x00, ecx, edi_43, es, ds, dwArg04_139, out edx_148, out ebx_149, out esi_150, out xmm0_151)
- esp_156 = fp - 0x24
- Mem157[fp - 0x18 + 0x00:word32] = eax_152
- branch eax_152 != ~0x00 l00407CDF
- goto l00407CD8
- l00407CC7:
- l00407CD8:
- xmm0_118 = PHI(xmm0, xmm0, xmm0_491, xmm0_151, xmm0_251)
- edx_119 = PHI(edx, edx, edx_492, edx_148, edx_250)
- eax_126 = 0x00
- goto l00407E00
- l00407CDF:
- branch eax_152 == Mem157[fp + 0x1C:word32] l00407DC3
- l00407CE8:
- esp_234 = fp - 0x28
- Mem235[fp - 0x28 + 0x00:word32] = ebx_149
- esp_236 = fp - 44
- Mem237[fp - 44 + 0x00:word32] = ebx_149
- ecx_238 = fp + 0x10
- esp_239 = fp - 0x30
- Mem240[fp - 0x30 + 0x00:word32] = fp + 0x10
- esp_241 = fp - 0x34
- Mem242[fp - 0x34 + 0x00:word32] = Mem240[fp + 0x0C:word32]
- esp_243 = fp - 0x38
- Mem244[fp - 0x38 + 0x00:word32] = eax_152
- esp_245 = fp - 0x3C
- Mem246[fp - 0x3C + 0x00:word32] = Mem244[fp + 0x1C:word32]
- eax_252 = fn00409778(edx_148, fp - 0x04, es, ds, xmm0_151, dwArg00, dwArg04_139, dwArg08, dwArg0C, dwArg10_52, out edx_250, out xmm0_251)
- esp_255 = fp - 0x24
- Mem256[fp - 0x10 + 0x00:word32] = eax_252
- branch eax_252 == ebx_149 l00407CD8
- l00407D04:
- esp_260 = fp - 0x28
- Mem261[fp - 0x28 + 0x00:word32] = ebx_149
- esp_262 = fp - 44
- Mem263[fp - 44 + 0x00:word32] = ebx_149
- esp_264 = fp - 0x30
- Mem265[fp - 0x30 + 0x00:word32] = Mem263[fp + 0x10:word32]
- esp_266 = fp - 0x34
- Mem267[fp - 0x34 + 0x00:word32] = eax_252
- esp_268 = fp - 0x38
- Mem269[fp - 0x38 + 0x00:word32] = Mem267[fp + 0x08:word32]
- esp_270 = fp - 0x3C
- Mem271[fp - 0x3C + 0x00:word32] = Mem269[fp + 0x04:word32]
- eax_272 = LCMapStringA(Mem271[fp - 0x3C + 0x00:LCID], Mem271[fp - 0x38 + 0x00:DWORD], Mem271[fp - 0x34 + 0x00:LPCSTR], Mem271[fp - 0x30 + 0x00:int32], Mem271[fp - 44 + 0x00:LPSTR], Mem271[fp - 0x28 + 0x00:int32])
- esp_275 = fp - 0x24
- Mem276[fp - 0x0C + 0x00:word32] = eax_272
- branch eax_272 != ebx_149 l00407D26
- l00407D1F:
- xmm0_286 = PHI(xmm0_251, xmm0_251, xmm0_299)
- edx_287 = PHI(edx_250, edx_250, edx_300)
- edi_289 = PHI(edi_43, edi_394, edi_302)
- ebx_290 = PHI(ebx_149, ebx_149, ebx_303)
- esp_294 = PHI(esp_275, esp_275, esp_309)
- esi_295 = 0x00
- goto l00407DDD
- l00407D26:
- branch eax_272 <= ebx_149 || eax_272 >u ~0x1F l00407D65
- goto l00407D2D
- l00407D28:
- l00407D2D:
- eax_389 = eax_272 + 0x08
- branch eax_272 >u ~0x03F7 l00407D4D
- l00407D37:
- fn00409930(eax_272 + 0x08)
- edi_394 = fp - 0x24
- branch fp - 0x24 == ebx_149 l00407D1F
- l00407D42:
- Mem397[fp - 0x24 + 0x00:word32] = 0xCCCC
- edi_398 = fp - 0x1C
- goto l00407D67
- l00407D4D:
- esp_400 = fp - 0x28
- Mem401[fp - 0x28 + 0x00:word32] = eax_272 + 0x08
- eax_405 = fn00408438(ebx_149, fp - 0x04, es, ds, dwArg00, out edx_402, out ebx_403, out xmm0_404)
- esp_409 = fp - 0x24
- branch eax_405 == ebx_403 l00407D61
- l00407D58:
- Mem417[eax_405 + 0x00:word32] = 0xDDDD
- eax_418 = eax_405 + 0x08
- l00407D61:
- eax_414 = PHI(eax_405, eax_418)
- edi_416 = eax_414
- goto l00407D67
- l00407D65:
- edi_384 = 0x00
- l00407D67:
- xmm0_299 = PHI(xmm0_251, xmm0_251, xmm0_404)
- edx_300 = PHI(edx_250, edx_250, edx_402)
- edi_302 = PHI(edi_398, edi_384, edi_416)
- ebx_303 = PHI(ebx_149, ebx_149, ebx_403)
- esp_309 = PHI(esp_275, esp_275, esp_409)
- branch edi_302 == ebx_303 l00407D1F
- l00407D6B:
- esp_312 = esp_309 - 0x04
- Mem313[esp_312 + 0x00:word32] = Mem276[fp - 0x0C + 0x00:word32]
- esp_314 = esp_312 - 0x04
- Mem315[esp_312 - 0x04 + 0x00:word32] = ebx_303
- esp_316 = esp_312 - 0x08
- Mem317[esp_312 - 0x08 + 0x00:word32] = edi_302
- fn00404CA0(xmm0_299, ebp, dwArg00, dwArg04_139, dwArg08, out edx_318, out edi_319)
- esp_321 = esp_312 + 0x04
- esp_322 = esp_312
- Mem323[esp_312 + 0x00:word32] = Mem317[fp - 0x0C + 0x00:word32]
- esp_324 = esp_312 - 0x04
- Mem325[esp_312 - 0x04 + 0x00:word32] = edi_319
- esp_326 = esp_312 - 0x08
- Mem327[esp_312 - 0x08 + 0x00:word32] = Mem325[fp + 0x10:word32]
- esp_328 = esp_312 - 0x0C
- Mem329[esp_312 - 0x0C + 0x00:word32] = Mem327[fp - 0x10 + 0x00:word32]
- esp_330 = esp_312 - 0x10
- Mem331[esp_312 - 0x10 + 0x00:word32] = Mem329[fp + 0x08:word32]
- esp_332 = esp_312 - 0x14
- Mem333[esp_312 - 0x14 + 0x00:word32] = Mem331[fp + 0x04:word32]
- eax_334 = LCMapStringA(Mem333[esp_312 - 0x14 + 0x00:LCID], Mem333[esp_312 - 0x10 + 0x00:DWORD], Mem333[esp_312 - 0x0C + 0x00:LPCSTR], Mem333[esp_312 - 0x08 + 0x00:int32], Mem333[esp_312 - 0x04 + 0x00:LPSTR], Mem333[esp_312 + 0x00:int32])
- esp_336 = esp_312 + 0x04
- Mem337[fp - 0x0C + 0x00:word32] = eax_334
- branch eax_334 != ebx_303 l00407D95
- l00407D91:
- esi_354 = 0x00
- goto l00407DBA
- l00407D95:
- esp_357 = esp_312
- Mem358[esp_312 + 0x00:word32] = Mem337[fp + 0x18:word32]
- eax_359 = fp - 0x0C
- esp_360 = esp_312 - 0x04
- Mem361[esp_312 - 0x04 + 0x00:word32] = Mem358[fp + 0x14:word32]
- esp_362 = esp_312 - 0x08
- Mem363[esp_312 - 0x08 + 0x00:word32] = fp - 0x0C
- esp_364 = esp_312 - 0x0C
- Mem365[esp_312 - 0x0C + 0x00:word32] = edi_319
- esp_366 = esp_312 - 0x10
- Mem367[esp_312 - 0x10 + 0x00:word32] = Mem365[fp + 0x1C:word32]
- esp_368 = esp_312 - 0x14
- Mem369[esp_312 - 0x14 + 0x00:word32] = Mem367[fp - 0x18 + 0x00:word32]
- eax_372 = fn00409778(edx_318, fp - 0x04, es, ds, xmm0_299, dwArg00, dwArg04_139, dwArg08, dwArg0C, dwArg10_52, out edx_370, out xmm0_371)
- esi_373 = eax_372
- Mem374[fp - 0x14 + 0x00:word32] = eax_372
- esp_375 = esp_312 + 0x04
- esi_376 = -eax_372
- esi_378 = 0x00 - (esi_376 == 0x00)
- esi_379 = esi_378 & Mem374[(fp - 0x0C) + 0x00:word32]
- l00407DBA:
- esi_340 = PHI(esi_354, esi_379)
- esp_344 = PHI(esp_336, esp_375)
- esp_345 = esp_344 - 0x04
- Mem346[esp_345 + 0x00:word32] = edi_319
- edx_350 = fn00407A4D(ebx_303, esi_340, edi_319, es, ds, dwArg00, out ebx_347, out esi_348, out xmm0_349)
- esp_353 = esp_345 + 0x04
- goto l00407DDD
- l00407DC3:
- esp_422 = fp - 0x28
- Mem423[fp - 0x28 + 0x00:word32] = Mem157[fp + 0x18:word32]
- esp_424 = fp - 44
- Mem425[fp - 44 + 0x00:word32] = Mem423[fp + 0x14:word32]
- esp_426 = fp - 0x30
- Mem427[fp - 0x30 + 0x00:word32] = Mem425[fp + 0x10:word32]
- esp_428 = fp - 0x34
- Mem429[fp - 0x34 + 0x00:word32] = Mem427[fp + 0x0C:word32]
- esp_430 = fp - 0x38
- Mem431[fp - 0x38 + 0x00:word32] = Mem429[fp + 0x08:word32]
- esp_432 = fp - 0x3C
- Mem433[fp - 0x3C + 0x00:word32] = Mem431[fp + 0x04:word32]
- eax_434 = LCMapStringA(Mem433[fp - 0x3C + 0x00:LCID], Mem433[fp - 0x38 + 0x00:DWORD], Mem433[fp - 0x34 + 0x00:LPCSTR], Mem433[fp - 0x30 + 0x00:int32], Mem433[fp - 44 + 0x00:LPSTR], Mem433[fp - 0x28 + 0x00:int32])
- esp_436 = fp - 0x24
- esi_437 = eax_434
- l00407DDD:
- xmm0_166 = PHI(xmm0_286, xmm0_151, xmm0_349)
- edx_167 = PHI(edx_287, edx_148, edx_350)
- edi_169 = PHI(edi_289, edi_43, edi_319)
- esi_170 = PHI(esi_295, esi_437, esi_348)
- ebx_171 = PHI(ebx_290, ebx_149, ebx_347)
- esp_177 = PHI(esp_294, esp_436, esp_353)
- branch Mem157[fp - 0x10 + 0x00:word32] == ebx_171 l00407DEB
- l00407DE2:
- esp_222 = esp_177 - 0x04
- Mem223[esp_222 + 0x00:word32] = Mem157[fp - 0x10 + 0x00:word32]
- fn004047EB(ebx_171, esi_170, edi_169, es, ds, out eax_224, out edx_225, out ebx_226, out ebp_227, out esi_228, out edi_229, out xmm0_230)
- esp_233 = esp_222 + 0x04
- l00407DEB:
- xmm0_181 = PHI(xmm0_166, xmm0_230)
- edx_182 = PHI(edx_167, edx_225)
- edi_183 = PHI(edi_169, edi_229)
- esi_184 = PHI(esi_170, esi_228)
- ebx_185 = PHI(ebx_171, ebx_226)
- ebp_187 = PHI(ebp_7, ebp_227)
- esp_188 = PHI(esp_177, esp_233)
- eax_189 = Mem157[ebp_187 - 0x10 + 0x00:word32]
- branch eax_189 == ebx_185 || Mem157[ebp_187 + 0x18:word32] == eax_189 l00407DFE
- goto l00407DF7
- l00407DF2:
- l00407DF7:
- esp_210 = esp_188 - 0x04
- Mem211[esp_210 + 0x00:word32] = eax_189
- fn004047EB(ebx_185, esi_184, edi_183, es, ds, out eax_212, out edx_213, out ebx_214, out ebp_215, out esi_216, out edi_217, out xmm0_218)
- l00407DFE:
- xmm0_197 = PHI(xmm0_181, xmm0_181, xmm0_218)
- edx_198 = PHI(edx_182, edx_182, edx_213)
- esi_200 = PHI(esi_184, esi_184, esi_216)
- ebp_203 = PHI(ebp_187, ebp_187, ebp_215)
- eax_205 = esi_200
- l00407E00:
- ds_74 = PHI(ds, ds_531, ds)
- es_75 = PHI(es, es_530, es)
- xmm0_81 = PHI(xmm0_118, xmm0_549, xmm0_197)
- edx_82 = PHI(edx_119, edx_550, edx_198)
- eax_84 = PHI(eax_126, eax_551, eax_205)
- ebp_85 = PHI(ebp_7, ebp_516, ebp_203)
- esp_86 = ebp_85 - 0x20
- edi_87 = Mem0[esp_86 + 0x00:word32]
- esp_88 = esp_86 + 0x04
- esi_89 = Mem0[esp_86 + 0x04:word32]
- esp_90 = esp_86 + 0x08
- ebx_91 = Mem0[esp_86 + 0x08:word32]
- ecx_93 = Mem0[ebp_85 - 0x04 + 0x00:word32]
- ecx_94 = ecx_93 ^ ebp_85
- fn00404BEF(eax_84, ecx_94, edx_82, ebx_91, ebp_85, esi_89, edi_87, es_75, ds_74)
- return edx_82
- fn00407A6D_exit:
- use xmm0_81 (=> xmm0Out)
- }
- word32 fn00407E12(word32 ebx, word32 ebp, selector es, selector ds, word32 dwArg04, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *esiOut = esi;
- word32 ebx_17;
- word128 xmm0_18;
- word32 edx_19 = fn00401759(fp - 0x14, ebx, es, ds, dwArg04, out ebx_17, out xmm0_18);
- Mem23[fp - 0x18 + 0x00:word32] = Mem0[fp + 0x24:word32];
- Mem26[fp - 0x1C + 0x00:word32] = Mem23[fp + 0x20:word32];
- Mem28[fp - 0x20 + 0x00:word32] = Mem26[fp + 0x1C:word32];
- Mem30[fp - 0x24 + 0x00:word32] = Mem28[fp + 0x18:word32];
- Mem32[fp - 0x28 + 0x00:word32] = Mem30[fp + 0x14:word32];
- Mem34[fp - 44 + 0x00:word32] = Mem32[fp + 0x10:word32];
- Mem36[fp - 0x30 + 0x00:word32] = Mem34[fp + 0x0C:word32];
- Mem38[fp - 0x34 + 0x00:word32] = Mem36[fp + 0x08:word32];
- word128 xmm0_44;
- word32 edx_45 = fn00407A6D(fp - 0x14, edx_19, fp - 0x04, edi, es, ds, dwArg00, dwArg08, dwArg0C, dwArg18, dwArg1C, out xmm0_44);
- if (Mem38[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 ecx_61 = Mem38[fp - 0x0C + 0x00:word32];
- Mem63[ecx_61 + 0x70:word32] = Mem38[ecx_61 + 0x70:word32] & ~0x02;
- }
- return edx_45;
- }
- word32 fn00407E57(word32 ecx, word32 edx, word32 ebp, selector es, selector ds, word128 xmm0, word32 dwArg08, word32 dwArg0C, word32 dwArg14, word32 dwArg18, word32 dwArg1C, ptr32 & edxOut, ptr32 & xmm0Out)
- {
- fn00407E57_entry:
- def fp
- def ebp
- def ecx
- def Mem0
- def ds
- def es
- def dwArg14
- def dwArg1C
- def dwArg0C
- def dwArg08
- def dwArg18
- def xmm0
- def edx
- def dwArg00
- def dwArg04
- def dwArg10
- dwLoc04_6 = ebp
- ebp_7 = fp - 0x04
- eax_17 = Mem0[4253032:word32]
- ebx_25 = 0x00
- edi_28 = ecx
- branch eax_17 != 0x00 l00407EB2
- goto l00407E78
- l00407E57:
- l00407E78:
- dwLoc1C_393 = fp - 0x0C
- eax_402 = GetStringTypeW(0x01, 0x0040AA2C, 0x01, fp - 0x0C)
- branch eax_402 == 0x00 l00407E98
- l00407E90:
- Mem407[4253032:word32] = 0x01
- goto l00407ECC
- l00407E98:
- eax_408 = GetLastError()
- branch eax_408 != 0x78 l00407EAD
- l00407EA3:
- eax_413 = 0x02
- Mem416[4253032:word32] = 0x02
- goto l00407EB2
- l00407EAD:
- eax_417 = Mem0[4253032:word32]
- l00407EB2:
- eax_286 = PHI(eax_17, eax_413, eax_417)
- branch eax_286 == 0x02 || eax_286 == 0x00 l00407F8A
- goto l00407EC3
- l00407EBB:
- l00407EC3:
- branch eax_286 != 0x01 l00407FB4
- l00407ECC:
- branch dwArg14 != 0x00 l00407EDC
- l00407ED4:
- eax_276 = Mem0[ecx + 0x00:word32]
- eax_277 = Mem0[eax_276 + 0x04:word32]
- dwArg14_278 = eax_277
- l00407EDC:
- dwArg14_115 = PHI(dwArg14, dwArg14_278)
- esi_116 = MultiByteToWideChar
- eax_117 = 0x00
- dwLoc24_127 = dwArg0C
- al_128 = dwArg1C != 0x00
- eax_129 = (word32) (dwArg1C != 0x00) (alias)
- dwLoc28_132 = dwArg08
- eax_133 = eax_129 * 0x08 + 0x01
- dwLoc2C_135 = eax_133
- dwLoc30_137 = dwArg14_115
- eax_138 = MultiByteToWideChar(dwArg14_115, eax_133, dwArg08, dwArg0C, 0x00, 0x00)
- esp_139 = fp - 0x18
- edi_140 = eax_138
- branch eax_138 == 0x00 l00407FB4
- l00407F09:
- branch eax_138 <= 0x00 || eax_138 >u 0x7FFFFFF0 l00407F47
- goto l00407F13
- l00407F0B:
- l00407F13:
- eax_234 = eax_138 + 0x08 + eax_138
- branch eax_234 >u 0x0400 l00407F31
- l00407F1E:
- fn00409930(eax_234)
- eax_259 = fp - 0x18
- branch fp == 0x18 l00407F45
- l00407F29:
- Mem263[fp - 0x18 + 0x00:word32] = 0xCCCC
- goto l00407F42
- l00407F31:
- esp_264 = fp - 0x1C
- dwLoc1C_265 = eax_234
- eax_269 = fn00408438(0x00, fp - 0x04, es, ds, eax_234, out edx_266, out ebx_267, out xmm0_268)
- esp_272 = fp - 0x18
- branch eax_269 == ebx_267 l00407F45
- l00407F3C:
- Mem275[eax_269 + 0x00:word32] = 0xDDDD
- l00407F42:
- xmm0_250 = PHI(xmm0, xmm0_268)
- edx_251 = PHI(edx, edx_266)
- eax_254 = PHI(eax_259, eax_269)
- esp_255 = PHI(esp_139, esp_272)
- eax_256 = eax_254 + 0x08
- l00407F45:
- xmm0_241 = PHI(xmm0, xmm0_250, xmm0_268)
- edx_242 = PHI(edx, edx_251, edx_266)
- eax_244 = PHI(eax_259, eax_256, eax_269)
- esp_246 = PHI(esp_139, esp_255, esp_272)
- ebx_247 = eax_244
- l00407F47:
- xmm0_152 = PHI(xmm0, xmm0, xmm0_241)
- edx_153 = PHI(edx, edx, edx_242)
- ebx_154 = PHI(ebx_25, ebx_25, ebx_247)
- esp_158 = PHI(esp_139, esp_139, esp_246)
- branch ebx_154 == 0x00 l00407FB4
- l00407F4B:
- eax_162 = eax_138 * 0x02
- esp_163 = esp_158 - 0x04
- Mem164[esp_163 + 0x00:word32] = eax_138 * 0x02
- esp_165 = esp_163 - 0x04
- Mem166[esp_163 - 0x04 + 0x00:word32] = 0x00
- esp_167 = esp_163 - 0x08
- Mem168[esp_163 - 0x08 + 0x00:word32] = ebx_154
- eax_173 = fn00404CA0(xmm0_152, ebp, dwArg00, dwArg04, dwArg08, out edx_171, out edi_172)
- esp_175 = esp_163 + 0x04
- esp_177 = esp_163
- Mem178[esp_163 + 0x00:word32] = edi_172
- esp_179 = esp_163 - 0x04
- Mem180[esp_163 - 0x04 + 0x00:word32] = ebx_154
- esp_181 = esp_163 - 0x08
- Mem182[esp_163 - 0x08 + 0x00:word32] = Mem180[fp + 0x0C:word32]
- esp_183 = esp_163 - 0x0C
- Mem184[esp_163 - 0x0C + 0x00:word32] = Mem182[fp + 0x08:word32]
- esp_185 = esp_163 - 0x10
- Mem186[esp_163 - 0x10 + 0x00:word32] = 0x01
- esp_187 = esp_163 - 0x14
- Mem188[esp_163 - 0x14 + 0x00:word32] = Mem186[fp + 0x14:word32]
- eax_193 = MultiByteToWideChar(Mem0[esp + 0x00:UINT], Mem0[esp + 0x04:DWORD], Mem0[esp + 0x08:LPCSTR], Mem0[esp + 0x0C:int32], Mem0[esp + 0x0010:LPWSTR], Mem0[esp + 0x0014:int32])
- branch eax_193 == 0x00 l00407F7E
- l00407F6D:
- esp_221 = esp_189 - 0x04
- Mem222[esp_189 - 0x04 + 0x00:word32] = Mem188[ebp_191 + 0x14:word32]
- esp_223 = esp_189 - 0x08
- Mem224[esp_189 - 0x08 + 0x00:word32] = eax_193
- esp_225 = esp_189 - 0x0C
- Mem226[esp_189 - 0x0C + 0x00:word32] = ebx_196
- esp_227 = esp_189 - 0x10
- Mem228[esp_189 - 0x10 + 0x00:word32] = Mem226[ebp_191 + 0x08:word32]
- eax_229 = GetStringTypeW(Mem228[esp_189 - 0x10 + 0x00:DWORD], Mem228[esp_189 - 0x0C + 0x00:LPCWSTR], Mem228[esp_189 - 0x08 + 0x00:int32], Mem228[esp_189 - 0x04 + 0x00:LPWORD])
- esp_230 = esp_189
- Mem231[ebp_191 - 0x08 + 0x00:word32] = eax_229
- l00407F7E:
- esp_210 = PHI(esp_189, esp_230)
- esp_211 = esp_210 - 0x04
- Mem212[esp_211 + 0x00:word32] = ebx_196
- edx_216 = fn00407A4D(ebx_196, esi_197, edi_190, es_203, ds_204, dwArg00, out ebx_213, out esi_214, out xmm0_215)
- eax_217 = Mem212[ebp_191 - 0x08 + 0x00:word32]
- goto l00407FFF
- l00407F8A:
- esi_291 = 0x00
- branch dwArg18 != 0x00 l00407F99
- l00407F91:
- eax_384 = Mem0[ecx + 0x00:word32]
- eax_385 = Mem0[eax_384 + 0x14:word32]
- dwArg18_386 = eax_385
- l00407F99:
- dwArg18_294 = PHI(dwArg18, dwArg18_386)
- esp_299 = fp - 0x1C
- dwLoc1C_300 = dwArg18_294
- eax_305 = fn0040972F(edx, 0x00, 0x00, ecx, es, ds, dwArg18_294, out edx_301, out ebx_302, out esi_303, out xmm0_304)
- esp_308 = fp - 0x18
- branch eax_305 != ~0x00 l00407FB8
- goto l00407FB4
- l00407FA6:
- l00407FB4:
- xmm0_86 = PHI(xmm0, xmm0, xmm0_152, xmm0_304, xmm0_374)
- edx_87 = PHI(edx, edx, edx_153, edx_301, edx_373)
- eax_94 = 0x00
- goto l00407FFF
- l00407FB8:
- branch eax_305 == Mem0[fp + 0x14:word32] l00407FDB
- l00407FBD:
- esp_359 = fp - 0x1C
- Mem360[fp - 0x1C + 0x00:word32] = ebx_302
- esp_361 = fp - 0x20
- Mem362[fp - 0x20 + 0x00:word32] = ebx_302
- ecx_363 = fp + 0x0C
- esp_364 = fp - 0x24
- Mem365[fp - 0x24 + 0x00:word32] = fp + 0x0C
- esp_366 = fp - 0x28
- Mem367[fp - 0x28 + 0x00:word32] = Mem365[fp + 0x08:word32]
- esp_368 = fp - 44
- Mem369[fp - 44 + 0x00:word32] = eax_305
- esp_370 = fp - 0x30
- Mem371[fp - 0x30 + 0x00:word32] = Mem369[fp + 0x14:word32]
- eax_375 = fn00409778(edx_301, fp - 0x04, es, ds, xmm0_304, dwArg00, dwArg04, dwArg08, dwArg0C, dwArg10, out edx_373, out xmm0_374)
- esi_376 = eax_375
- esp_377 = fp - 0x18
- branch eax_375 == ebx_302 l00407FB4
- l00407FD8:
- Mem380[fp + 0x08:word32] = eax_375
- l00407FDB:
- xmm0_316 = PHI(xmm0_304, xmm0_374)
- edx_317 = PHI(edx_301, edx_373)
- esi_318 = PHI(esi_303, esi_376)
- esp_320 = PHI(esp_308, esp_377)
- esp_321 = esp_320 - 0x04
- Mem322[esp_321 + 0x00:word32] = Mem0[fp + 0x10:word32]
- esp_323 = esp_321 - 0x04
- Mem324[esp_321 - 0x04 + 0x00:word32] = Mem322[fp + 0x0C:word32]
- esp_325 = esp_321 - 0x08
- Mem326[esp_321 - 0x08 + 0x00:word32] = Mem324[fp + 0x08:word32]
- esp_327 = esp_321 - 0x0C
- Mem328[esp_321 - 0x0C + 0x00:word32] = Mem326[fp + 0x04:word32]
- esp_329 = esp_321 - 0x10
- Mem330[esp_321 - 0x10 + 0x00:word32] = Mem328[fp + 0x18:word32]
- eax_331 = GetStringTypeA(Mem330[esp_321 - 0x10 + 0x00:LCID], Mem330[esp_321 - 0x0C + 0x00:DWORD], Mem330[esp_321 - 0x08 + 0x00:LPCSTR], Mem330[esp_321 - 0x04 + 0x00:int32], Mem330[esp_321 + 0x00:LPWORD])
- esp_332 = esp_321 + 0x04
- edi_333 = eax_331
- branch esi_318 == ebx_302 l00407FFD
- l00407FF6:
- esp_347 = esp_321
- Mem348[esp_321 + 0x00:word32] = esi_318
- fn004047EB(ebx_302, esi_318, eax_331, es, ds, out eax_349, out edx_350, out ebx_351, out ebp_352, out esi_353, out edi_354, out xmm0_355)
- l00407FFD:
- xmm0_337 = PHI(xmm0_316, xmm0_355)
- edx_338 = PHI(edx_317, edx_350)
- edi_339 = PHI(edi_333, edi_354)
- ebp_343 = PHI(ebp_7, ebp_352)
- eax_345 = edi_339
- l00407FFF:
- ds_47 = PHI(ds, ds_204, ds)
- es_48 = PHI(es, es_203, es)
- xmm0_52 = PHI(xmm0_86, xmm0_215, xmm0_337)
- edx_53 = PHI(edx_87, edx_216, edx_338)
- eax_54 = PHI(eax_94, eax_217, eax_345)
- ebp_55 = PHI(ebp_7, ebp_191, ebp_343)
- esp_56 = ebp_55 - 0x14
- edi_57 = Mem0[esp_56 + 0x00:word32]
- esp_58 = esp_56 + 0x04
- esi_59 = Mem0[esp_56 + 0x04:word32]
- esp_60 = esp_56 + 0x08
- ebx_61 = Mem0[esp_56 + 0x08:word32]
- ecx_63 = Mem0[ebp_55 - 0x04 + 0x00:word32]
- ecx_64 = ecx_63 ^ ebp_55
- eax_67 = fn00404BEF(eax_54, ecx_64, edx_53, ebx_61, ebp_55, esi_59, edi_57, es_48, ds_47)
- return eax_67
- fn00407E57_exit:
- use edx_53 (=> edxOut)
- use xmm0_52 (=> xmm0Out)
- }
- word32 fn00408011(word32 ebx, word32 ebp, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *esiOut = esi;
- word32 ebx_17;
- word128 xmm0_18;
- word32 edx_19 = fn00401759(fp - 0x14, ebx, es, ds, dwArg04, out ebx_17, out xmm0_18);
- Mem23[fp - 0x18 + 0x00:word32] = Mem0[fp + 0x20:word32];
- Mem26[fp - 0x1C + 0x00:word32] = Mem23[fp + 0x1C:word32];
- Mem28[fp - 0x20 + 0x00:word32] = Mem26[fp + 0x18:word32];
- Mem30[fp - 0x24 + 0x00:word32] = Mem28[fp + 0x14:word32];
- Mem32[fp - 0x28 + 0x00:word32] = Mem30[fp + 0x10:word32];
- Mem34[fp - 44 + 0x00:word32] = Mem32[fp + 0x0C:word32];
- Mem36[fp - 0x30 + 0x00:word32] = Mem34[fp + 0x08:word32];
- word32 edx_41;
- word128 xmm0_42;
- word32 eax_43 = fn00407E57(fp - 0x14, edx_19, fp - 0x04, es, ds, xmm0_18, dwArg04, dwArg08, dwArg10, dwArg14, dwArg18, out edx_41, out xmm0_42);
- if (Mem36[fp - 0x08 + 0x00:byte] != 0x00)
- {
- word32 ecx_59 = Mem36[fp - 0x0C + 0x00:word32];
- Mem61[ecx_59 + 0x70:word32] = Mem36[ecx_59 + 0x70:word32] & ~0x02;
- }
- return eax_43;
- }
- word32 fn00408053(word32 ebx, word32 edi, selector es, selector ds, word32 dwArg04)
- {
- if (dwArg04 != 0x00)
- {
- word32 eax_41;
- word32 edx_42;
- word32 ebx_43;
- word32 ebp_44;
- word32 esi_45;
- word32 edi_46;
- word128 xmm0_47;
- fn004047EB(ebx, dwArg04, edi, es, ds, out eax_41, out edx_42, out ebx_43, out ebp_44, out esi_45, out edi_46, out xmm0_47);
- Mem50[fp - 0x10 + 0x00:word32] = Mem0[esi_45 + 0x08:word32];
- word32 eax_51;
- word32 edx_52;
- word32 ebx_53;
- word32 ebp_54;
- word32 esi_55;
- word32 edi_56;
- word128 xmm0_57;
- fn004047EB(ebx_43, esi_45, edi_46, es, ds, out eax_51, out edx_52, out ebx_53, out ebp_54, out esi_55, out edi_56, out xmm0_57);
- Mem60[fp - 0x14 + 0x00:word32] = Mem50[esi_55 + 0x0C:word32];
- word32 eax_61;
- word32 edx_62;
- word32 ebx_63;
- word32 ebp_64;
- word32 esi_65;
- word32 edi_66;
- word128 xmm0_67;
- fn004047EB(ebx_53, esi_55, edi_56, es, ds, out eax_61, out edx_62, out ebx_63, out ebp_64, out esi_65, out edi_66, out xmm0_67);
- Mem70[fp - 0x18 + 0x00:word32] = Mem60[esi_65 + 0x10:word32];
- word32 eax_71;
- word32 edx_72;
- word32 ebx_73;
- word32 ebp_74;
- word32 esi_75;
- word32 edi_76;
- word128 xmm0_77;
- fn004047EB(ebx_63, esi_65, edi_66, es, ds, out eax_71, out edx_72, out ebx_73, out ebp_74, out esi_75, out edi_76, out xmm0_77);
- Mem80[fp - 0x1C + 0x00:word32] = Mem70[esi_75 + 0x14:word32];
- word32 eax_81;
- word32 edx_82;
- word32 ebx_83;
- word32 ebp_84;
- word32 esi_85;
- word32 edi_86;
- word128 xmm0_87;
- fn004047EB(ebx_73, esi_75, edi_76, es, ds, out eax_81, out edx_82, out ebx_83, out ebp_84, out esi_85, out edi_86, out xmm0_87);
- Mem90[fp - 0x20 + 0x00:word32] = Mem80[esi_85 + 0x18:word32];
- word32 eax_91;
- word32 edx_92;
- word32 ebx_93;
- word32 ebp_94;
- word32 esi_95;
- word32 edi_96;
- word128 xmm0_97;
- fn004047EB(ebx_83, esi_85, edi_86, es, ds, out eax_91, out edx_92, out ebx_93, out ebp_94, out esi_95, out edi_96, out xmm0_97);
- Mem100[fp - 0x24 + 0x00:word32] = Mem90[esi_95 + 0x00:word32];
- word32 eax_101;
- word32 edx_102;
- word32 ebx_103;
- word32 ebp_104;
- word32 esi_105;
- word32 edi_106;
- word128 xmm0_107;
- fn004047EB(ebx_93, esi_95, edi_96, es, ds, out eax_101, out edx_102, out ebx_103, out ebp_104, out esi_105, out edi_106, out xmm0_107);
- Mem110[fp - 0x28 + 0x00:word32] = Mem100[esi_105 + 0x20:word32];
- word32 eax_111;
- word32 edx_112;
- word32 ebx_113;
- word32 ebp_114;
- word32 esi_115;
- word32 edi_116;
- word128 xmm0_117;
- fn004047EB(ebx_103, esi_105, edi_106, es, ds, out eax_111, out edx_112, out ebx_113, out ebp_114, out esi_115, out edi_116, out xmm0_117);
- Mem120[fp - 44 + 0x00:word32] = Mem110[esi_115 + 0x24:word32];
- word32 eax_121;
- word32 edx_122;
- word32 ebx_123;
- word32 ebp_124;
- word32 esi_125;
- word32 edi_126;
- word128 xmm0_127;
- fn004047EB(ebx_113, esi_115, edi_116, es, ds, out eax_121, out edx_122, out ebx_123, out ebp_124, out esi_125, out edi_126, out xmm0_127);
- Mem130[fp - 0x30 + 0x00:word32] = Mem120[esi_125 + 0x28:word32];
- word32 eax_131;
- word32 edx_132;
- word32 ebx_133;
- word32 ebp_134;
- word32 esi_135;
- word32 edi_136;
- word128 xmm0_137;
- fn004047EB(ebx_123, esi_125, edi_126, es, ds, out eax_131, out edx_132, out ebx_133, out ebp_134, out esi_135, out edi_136, out xmm0_137);
- Mem140[fp - 0x34 + 0x00:word32] = Mem130[esi_135 + 44:word32];
- word32 eax_141;
- word32 edx_142;
- word32 ebx_143;
- word32 ebp_144;
- word32 esi_145;
- word32 edi_146;
- word128 xmm0_147;
- fn004047EB(ebx_133, esi_135, edi_136, es, ds, out eax_141, out edx_142, out ebx_143, out ebp_144, out esi_145, out edi_146, out xmm0_147);
- Mem150[fp - 0x38 + 0x00:word32] = Mem140[esi_145 + 0x30:word32];
- word32 eax_151;
- word32 edx_152;
- word32 ebx_153;
- word32 ebp_154;
- word32 esi_155;
- word32 edi_156;
- word128 xmm0_157;
- fn004047EB(ebx_143, esi_145, edi_146, es, ds, out eax_151, out edx_152, out ebx_153, out ebp_154, out esi_155, out edi_156, out xmm0_157);
- Mem160[fp - 0x3C + 0x00:word32] = Mem150[esi_155 + 0x34:word32];
- word32 eax_161;
- word32 edx_162;
- word32 ebx_163;
- word32 ebp_164;
- word32 esi_165;
- word32 edi_166;
- word128 xmm0_167;
- fn004047EB(ebx_153, esi_155, edi_156, es, ds, out eax_161, out edx_162, out ebx_163, out ebp_164, out esi_165, out edi_166, out xmm0_167);
- Mem170[fp - 0x40 + 0x00:word32] = Mem160[esi_165 + 0x1C:word32];
- word32 eax_171;
- word32 edx_172;
- word32 ebx_173;
- word32 ebp_174;
- word32 esi_175;
- word32 edi_176;
- word128 xmm0_177;
- fn004047EB(ebx_163, esi_165, edi_166, es, ds, out eax_171, out edx_172, out ebx_173, out ebp_174, out esi_175, out edi_176, out xmm0_177);
- Mem180[fp - 0x44 + 0x00:word32] = Mem170[esi_175 + 0x38:word32];
- word32 eax_181;
- word32 edx_182;
- word32 ebx_183;
- word32 ebp_184;
- word32 esi_185;
- word32 edi_186;
- word128 xmm0_187;
- fn004047EB(ebx_173, esi_175, edi_176, es, ds, out eax_181, out edx_182, out ebx_183, out ebp_184, out esi_185, out edi_186, out xmm0_187);
- Mem190[fp - 0x48 + 0x00:word32] = Mem180[esi_185 + 0x3C:word32];
- word32 eax_191;
- word32 edx_192;
- word32 ebx_193;
- word32 ebp_194;
- word32 esi_195;
- word32 edi_196;
- word128 xmm0_197;
- fn004047EB(ebx_183, esi_185, edi_186, es, ds, out eax_191, out edx_192, out ebx_193, out ebp_194, out esi_195, out edi_196, out xmm0_197);
- Mem202[fp - 0x0C + 0x00:word32] = Mem190[esi_195 + 0x40:word32];
- word32 eax_203;
- word32 edx_204;
- word32 ebx_205;
- word32 ebp_206;
- word32 esi_207;
- word32 edi_208;
- word128 xmm0_209;
- fn004047EB(ebx_193, esi_195, edi_196, es, ds, out eax_203, out edx_204, out ebx_205, out ebp_206, out esi_207, out edi_208, out xmm0_209);
- Mem212[fp - 0x10 + 0x00:word32] = Mem202[esi_207 + 0x44:word32];
- word32 eax_213;
- word32 edx_214;
- word32 ebx_215;
- word32 ebp_216;
- word32 esi_217;
- word32 edi_218;
- word128 xmm0_219;
- fn004047EB(ebx_205, esi_207, edi_208, es, ds, out eax_213, out edx_214, out ebx_215, out ebp_216, out esi_217, out edi_218, out xmm0_219);
- Mem222[fp - 0x14 + 0x00:word32] = Mem212[esi_217 + 0x48:word32];
- word32 eax_223;
- word32 edx_224;
- word32 ebx_225;
- word32 ebp_226;
- word32 esi_227;
- word32 edi_228;
- word128 xmm0_229;
- fn004047EB(ebx_215, esi_217, edi_218, es, ds, out eax_223, out edx_224, out ebx_225, out ebp_226, out esi_227, out edi_228, out xmm0_229);
- Mem232[fp - 0x18 + 0x00:word32] = Mem222[esi_227 + 0x4C:word32];
- word32 eax_233;
- word32 edx_234;
- word32 ebx_235;
- word32 ebp_236;
- word32 esi_237;
- word32 edi_238;
- word128 xmm0_239;
- fn004047EB(ebx_225, esi_227, edi_228, es, ds, out eax_233, out edx_234, out ebx_235, out ebp_236, out esi_237, out edi_238, out xmm0_239);
- Mem242[fp - 0x1C + 0x00:word32] = Mem232[esi_237 + 0x50:word32];
- word32 eax_243;
- word32 edx_244;
- word32 ebx_245;
- word32 ebp_246;
- word32 esi_247;
- word32 edi_248;
- word128 xmm0_249;
- fn004047EB(ebx_235, esi_237, edi_238, es, ds, out eax_243, out edx_244, out ebx_245, out ebp_246, out esi_247, out edi_248, out xmm0_249);
- Mem252[fp - 0x20 + 0x00:word32] = Mem242[esi_247 + 0x54:word32];
- word32 eax_253;
- word32 edx_254;
- word32 ebx_255;
- word32 ebp_256;
- word32 esi_257;
- word32 edi_258;
- word128 xmm0_259;
- fn004047EB(ebx_245, esi_247, edi_248, es, ds, out eax_253, out edx_254, out ebx_255, out ebp_256, out esi_257, out edi_258, out xmm0_259);
- Mem262[fp - 0x24 + 0x00:word32] = Mem252[esi_257 + 88:word32];
- word32 eax_263;
- word32 edx_264;
- word32 ebx_265;
- word32 ebp_266;
- word32 esi_267;
- word32 edi_268;
- word128 xmm0_269;
- fn004047EB(ebx_255, esi_257, edi_258, es, ds, out eax_263, out edx_264, out ebx_265, out ebp_266, out esi_267, out edi_268, out xmm0_269);
- Mem272[fp - 0x28 + 0x00:word32] = Mem262[esi_267 + 0x5C:word32];
- word32 eax_273;
- word32 edx_274;
- word32 ebx_275;
- word32 ebp_276;
- word32 esi_277;
- word32 edi_278;
- word128 xmm0_279;
- fn004047EB(ebx_265, esi_267, edi_268, es, ds, out eax_273, out edx_274, out ebx_275, out ebp_276, out esi_277, out edi_278, out xmm0_279);
- Mem282[fp - 44 + 0x00:word32] = Mem272[esi_277 + 0x60:word32];
- word32 eax_283;
- word32 edx_284;
- word32 ebx_285;
- word32 ebp_286;
- word32 esi_287;
- word32 edi_288;
- word128 xmm0_289;
- fn004047EB(ebx_275, esi_277, edi_278, es, ds, out eax_283, out edx_284, out ebx_285, out ebp_286, out esi_287, out edi_288, out xmm0_289);
- Mem292[fp - 0x30 + 0x00:word32] = Mem282[esi_287 + 100:word32];
- word32 eax_293;
- word32 edx_294;
- word32 ebx_295;
- word32 ebp_296;
- word32 esi_297;
- word32 edi_298;
- word128 xmm0_299;
- fn004047EB(ebx_285, esi_287, edi_288, es, ds, out eax_293, out edx_294, out ebx_295, out ebp_296, out esi_297, out edi_298, out xmm0_299);
- Mem302[fp - 0x34 + 0x00:word32] = Mem292[esi_297 + 0x68:word32];
- word32 eax_303;
- word32 edx_304;
- word32 ebx_305;
- word32 ebp_306;
- word32 esi_307;
- word32 edi_308;
- word128 xmm0_309;
- fn004047EB(ebx_295, esi_297, edi_298, es, ds, out eax_303, out edx_304, out ebx_305, out ebp_306, out esi_307, out edi_308, out xmm0_309);
- Mem312[fp - 0x38 + 0x00:word32] = Mem302[esi_307 + 0x6C:word32];
- word32 eax_313;
- word32 edx_314;
- word32 ebx_315;
- word32 ebp_316;
- word32 esi_317;
- word32 edi_318;
- word128 xmm0_319;
- fn004047EB(ebx_305, esi_307, edi_308, es, ds, out eax_313, out edx_314, out ebx_315, out ebp_316, out esi_317, out edi_318, out xmm0_319);
- Mem322[fp - 0x3C + 0x00:word32] = Mem312[esi_317 + 0x70:word32];
- word32 eax_323;
- word32 edx_324;
- word32 ebx_325;
- word32 ebp_326;
- word32 esi_327;
- word32 edi_328;
- word128 xmm0_329;
- fn004047EB(ebx_315, esi_317, edi_318, es, ds, out eax_323, out edx_324, out ebx_325, out ebp_326, out esi_327, out edi_328, out xmm0_329);
- Mem332[fp - 0x40 + 0x00:word32] = Mem322[esi_327 + 116:word32];
- word32 eax_333;
- word32 edx_334;
- word32 ebx_335;
- word32 ebp_336;
- word32 esi_337;
- word32 edi_338;
- word128 xmm0_339;
- fn004047EB(ebx_325, esi_327, edi_328, es, ds, out eax_333, out edx_334, out ebx_335, out ebp_336, out esi_337, out edi_338, out xmm0_339);
- Mem342[fp - 0x44 + 0x00:word32] = Mem332[esi_337 + 0x78:word32];
- word32 eax_343;
- word32 edx_344;
- word32 ebx_345;
- word32 ebp_346;
- word32 esi_347;
- word32 edi_348;
- word128 xmm0_349;
- fn004047EB(ebx_335, esi_337, edi_338, es, ds, out eax_343, out edx_344, out ebx_345, out ebp_346, out esi_347, out edi_348, out xmm0_349);
- Mem352[fp - 0x48 + 0x00:word32] = Mem342[esi_347 + 0x7C:word32];
- word32 eax_353;
- word32 edx_354;
- word32 ebx_355;
- word32 ebp_356;
- word32 esi_357;
- word32 edi_358;
- word128 xmm0_359;
- fn004047EB(ebx_345, esi_347, edi_348, es, ds, out eax_353, out edx_354, out ebx_355, out ebp_356, out esi_357, out edi_358, out xmm0_359);
- Mem364[fp - 0x0C + 0x00:word32] = Mem352[esi_357 + 0x80:word32];
- word32 eax_365;
- word32 edx_366;
- word32 ebx_367;
- word32 ebp_368;
- word32 esi_369;
- word32 edi_370;
- word128 xmm0_371;
- fn004047EB(ebx_355, esi_357, edi_358, es, ds, out eax_365, out edx_366, out ebx_367, out ebp_368, out esi_369, out edi_370, out xmm0_371);
- Mem374[fp - 0x10 + 0x00:word32] = Mem364[esi_369 + 0x84:word32];
- word32 eax_375;
- word32 edx_376;
- word32 ebx_377;
- word32 ebp_378;
- word32 esi_379;
- word32 edi_380;
- word128 xmm0_381;
- fn004047EB(ebx_367, esi_369, edi_370, es, ds, out eax_375, out edx_376, out ebx_377, out ebp_378, out esi_379, out edi_380, out xmm0_381);
- Mem384[fp - 0x14 + 0x00:word32] = Mem374[esi_379 + 0x88:word32];
- word32 eax_385;
- word32 edx_386;
- word32 ebx_387;
- word32 ebp_388;
- word32 esi_389;
- word32 edi_390;
- word128 xmm0_391;
- fn004047EB(ebx_377, esi_379, edi_380, es, ds, out eax_385, out edx_386, out ebx_387, out ebp_388, out esi_389, out edi_390, out xmm0_391);
- Mem394[fp - 0x18 + 0x00:word32] = Mem384[esi_389 + 0x8C:word32];
- word32 eax_395;
- word32 edx_396;
- word32 ebx_397;
- word32 ebp_398;
- word32 esi_399;
- word32 edi_400;
- word128 xmm0_401;
- fn004047EB(ebx_387, esi_389, edi_390, es, ds, out eax_395, out edx_396, out ebx_397, out ebp_398, out esi_399, out edi_400, out xmm0_401);
- Mem404[fp - 0x1C + 0x00:word32] = Mem394[esi_399 + 0x90:word32];
- word32 eax_405;
- word32 edx_406;
- word32 ebx_407;
- word32 ebp_408;
- word32 esi_409;
- word32 edi_410;
- word128 xmm0_411;
- fn004047EB(ebx_397, esi_399, edi_400, es, ds, out eax_405, out edx_406, out ebx_407, out ebp_408, out esi_409, out edi_410, out xmm0_411);
- Mem414[fp - 0x20 + 0x00:word32] = Mem404[esi_409 + 0x94:word32];
- word32 eax_415;
- word32 edx_416;
- word32 ebx_417;
- word32 ebp_418;
- word32 esi_419;
- word32 edi_420;
- word128 xmm0_421;
- fn004047EB(ebx_407, esi_409, edi_410, es, ds, out eax_415, out edx_416, out ebx_417, out ebp_418, out esi_419, out edi_420, out xmm0_421);
- Mem424[fp - 0x24 + 0x00:word32] = Mem414[esi_419 + 0x98:word32];
- word32 eax_425;
- word32 edx_426;
- word32 ebx_427;
- word32 ebp_428;
- word32 esi_429;
- word32 edi_430;
- word128 xmm0_431;
- fn004047EB(ebx_417, esi_419, edi_420, es, ds, out eax_425, out edx_426, out ebx_427, out ebp_428, out esi_429, out edi_430, out xmm0_431);
- Mem434[fp - 0x28 + 0x00:word32] = Mem424[esi_429 + 0x9C:word32];
- word32 eax_435;
- word32 edx_436;
- word32 ebx_437;
- word32 ebp_438;
- word32 esi_439;
- word32 edi_440;
- word128 xmm0_441;
- fn004047EB(ebx_427, esi_429, edi_430, es, ds, out eax_435, out edx_436, out ebx_437, out ebp_438, out esi_439, out edi_440, out xmm0_441);
- Mem444[fp - 44 + 0x00:word32] = Mem434[esi_439 + 0xA0:word32];
- word32 eax_445;
- word32 edx_446;
- word32 ebx_447;
- word32 ebp_448;
- word32 esi_449;
- word32 edi_450;
- word128 xmm0_451;
- fn004047EB(ebx_437, esi_439, edi_440, es, ds, out eax_445, out edx_446, out ebx_447, out ebp_448, out esi_449, out edi_450, out xmm0_451);
- Mem454[fp - 0x30 + 0x00:word32] = Mem444[esi_449 + 0xA4:word32];
- word32 eax_455;
- word32 edx_456;
- word32 ebx_457;
- word32 ebp_458;
- word32 esi_459;
- word32 edi_460;
- word128 xmm0_461;
- fn004047EB(ebx_447, esi_449, edi_450, es, ds, out eax_455, out edx_456, out ebx_457, out ebp_458, out esi_459, out edi_460, out xmm0_461);
- Mem464[fp - 0x34 + 0x00:word32] = Mem454[esi_459 + 0xA8:word32];
- word32 eax_465;
- word32 edx_466;
- word32 ebp_468;
- word32 esi_469;
- word32 edi_470;
- word128 xmm0_471;
- fn004047EB(ebx_457, esi_459, edi_460, es, ds, out eax_465, out edx_466, out ebx, out ebp_468, out esi_469, out edi_470, out xmm0_471);
- }
- return ebx;
- }
- word32 fn004081E8(word32 ebx, word32 edi, selector es, selector ds, word32 dwArg04)
- {
- word32 edi_102 = edi;
- word32 esp_106 = fp - 0x08;
- word32 esi_101 = dwArg04;
- if (dwArg04 != 0x00)
- {
- if (Mem0[dwArg04 + 0x00:word32] != Mem0[0x0040DD68:word32])
- {
- word32 eax_97;
- word32 edx_98;
- word32 ebp_100;
- word128 xmm0_103;
- fn004047EB(ebx, dwArg04, edi, es, ds, out eax_97, out edx_98, out ebx, out ebp_100, out esi_101, out edi_102, out xmm0_103);
- esp_106 = fp - 0x08;
- }
- word32 eax_53 = Mem0[esi_101 + 0x04:word32];
- if (eax_53 != Mem0[0x0040DD6C:word32])
- {
- word32 esp_83 = esp_106 - 0x04;
- Mem84[esp_83 + 0x00:word32] = eax_53;
- word32 eax_85;
- word32 edx_86;
- word32 ebp_88;
- word128 xmm0_91;
- fn004047EB(ebx, esi_101, edi_102, es, ds, out eax_85, out edx_86, out ebx, out ebp_88, out esi_101, out edi_102, out xmm0_91);
- esp_106 = esp_83 + 0x04;
- }
- word32 esi_66 = Mem0[esi_101 + 0x08:word32];
- if (esi_66 != Mem0[0x0040DD70:word32])
- {
- Mem70[esp_106 - 0x04 + 0x00:word32] = esi_66;
- word32 eax_73;
- word32 edx_74;
- word32 ebp_76;
- word32 esi_77;
- word32 edi_78;
- word128 xmm0_79;
- fn004047EB(ebx, esi_66, edi_102, es, ds, out eax_73, out edx_74, out ebx, out ebp_76, out esi_77, out edi_78, out xmm0_79);
- }
- }
- return ebx;
- }
- word32 fn0040822D(word32 ebx, word32 edi, selector es, selector ds, word32 dwArg04)
- {
- word32 edi_107 = edi;
- word32 esp_100 = fp - 0x08;
- word32 esi_111 = dwArg04;
- if (dwArg04 != 0x00)
- {
- if (Mem0[dwArg04 + 0x0C:word32] != Mem0[0x0040DD74:word32])
- {
- word32 eax_193;
- word32 edx_194;
- word32 ebp_196;
- word128 xmm0_199;
- fn004047EB(ebx, dwArg04, edi, es, ds, out eax_193, out edx_194, out ebx, out ebp_196, out esi_111, out edi_107, out xmm0_199);
- esp_100 = fp - 0x08;
- }
- word32 eax_53 = Mem0[esi_111 + 0x10:word32];
- if (eax_53 != Mem0[4251000:word32])
- {
- word32 esp_179 = esp_100 - 0x04;
- Mem180[esp_179 + 0x00:word32] = eax_53;
- word32 eax_181;
- word32 edx_182;
- word32 ebp_184;
- word128 xmm0_187;
- fn004047EB(ebx, esi_111, edi_107, es, ds, out eax_181, out edx_182, out ebx, out ebp_184, out esi_111, out edi_107, out xmm0_187);
- esp_100 = esp_179 + 0x04;
- }
- word32 eax_65 = Mem0[esi_111 + 0x14:word32];
- if (eax_65 != Mem0[0x0040DD7C:word32])
- {
- word32 esp_167 = esp_100 - 0x04;
- Mem168[esp_167 + 0x00:word32] = eax_65;
- word32 eax_169;
- word32 edx_170;
- word32 ebp_172;
- word128 xmm0_175;
- fn004047EB(ebx, esi_111, edi_107, es, ds, out eax_169, out edx_170, out ebx, out ebp_172, out esi_111, out edi_107, out xmm0_175);
- esp_100 = esp_167 + 0x04;
- }
- word32 eax_77 = Mem0[esi_111 + 0x18:word32];
- if (eax_77 != Mem0[0x0040DD80:word32])
- {
- word32 esp_155 = esp_100 - 0x04;
- Mem156[esp_155 + 0x00:word32] = eax_77;
- word32 eax_157;
- word32 edx_158;
- word32 ebp_160;
- word128 xmm0_163;
- fn004047EB(ebx, esi_111, edi_107, es, ds, out eax_157, out edx_158, out ebx, out ebp_160, out esi_111, out edi_107, out xmm0_163);
- esp_100 = esp_155 + 0x04;
- }
- word32 eax_89 = Mem0[esi_111 + 0x1C:word32];
- if (eax_89 != Mem0[0x0040DD84:word32])
- {
- word32 esp_143 = esp_100 - 0x04;
- Mem144[esp_143 + 0x00:word32] = eax_89;
- word32 eax_145;
- word32 edx_146;
- word32 ebp_148;
- word128 xmm0_151;
- fn004047EB(ebx, esi_111, edi_107, es, ds, out eax_145, out edx_146, out ebx, out ebp_148, out esi_111, out edi_107, out xmm0_151);
- esp_100 = esp_143 + 0x04;
- }
- word32 eax_101 = Mem0[esi_111 + 0x20:word32];
- if (eax_101 != Mem0[0x0040DD88:word32])
- {
- word32 esp_131 = esp_100 - 0x04;
- Mem132[esp_131 + 0x00:word32] = eax_101;
- word32 eax_133;
- word32 edx_134;
- word32 ebp_136;
- word128 xmm0_139;
- fn004047EB(ebx, esi_111, edi_107, es, ds, out eax_133, out edx_134, out ebx, out ebp_136, out esi_111, out edi_107, out xmm0_139);
- esp_100 = esp_131 + 0x04;
- }
- word32 esi_114 = Mem0[esi_111 + 0x24:word32];
- if (esi_114 != Mem0[0x0040DD8C:word32])
- {
- Mem118[esp_100 - 0x04 + 0x00:word32] = esi_114;
- word32 eax_121;
- word32 edx_122;
- word32 ebp_124;
- word32 esi_125;
- word32 edi_126;
- word128 xmm0_127;
- fn004047EB(ebx, esi_114, edi_107, es, ds, out eax_121, out edx_122, out ebx, out ebp_124, out esi_125, out edi_126, out xmm0_127);
- }
- }
- return ebx;
- }
- word32 fn004083E9(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & edxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- *edxOut = edx;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4241424, 0x0C, out ebp_10);
- Mem14[ebp_10 - 0x1C + 0x00:word32] = Mem0[ebp_10 - 0x1C + 0x00:word32] & 0x00;
- word32 esi_16 = Mem14[ebp_10 + 0x08:word32];
- if (esi_16 <=u Mem14[4254060:word32])
- {
- Mem46[fp - 0x0C + 0x00:word32] = 0x04;
- word32 edx_49;
- word32 ebx_50;
- word128 xmm0_51;
- fn00405B56(ebx, edi, es, ds, dwArg00, out edx_49, out ebx_50, out xmm0_51);
- Mem56[ebp_10 - 0x04 + 0x00:word32] = Mem46[ebp_10 - 0x04 + 0x00:word32] & 0x00;
- Mem60[fp - 0x0C + 0x00:word32] = esi_16;
- word32 edx_62;
- Mem66[ebp_10 - 0x1C + 0x00:word32] = fn00406FF7(edx_49, esi_16, dwArg00, bArg03, out edx_62);
- Mem67[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn0040842F();
- }
- word32 eax_31 = Mem14[ebp_10 - 0x1C + 0x00:word32];
- word32 ebp_36;
- word32 esi_37;
- word32 edi_38;
- fn00402F65(ebp_10, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_36, out esi_37, out edi_38);
- return eax_31;
- }
- void fn0040842F()
- {
- fn00405A7C(0x04);
- return;
- }
- word32 fn00408438(word32 ebx, word32 ebp, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- fn00408438_entry:
- word32 eax_117
- word32 esi_12 = dwArg04
- branch dwArg04 >u ~0x1F l004084EB
- goto l0040844A
- l00408438:
- l0040844A:
- word32 esp_113 = fp - 0x10
- word32 edi_169 = HeapAlloc
- l00408452:
- branch Mem0[4252540:word32] != 0x00 l00408473
- l0040845B:
- word32 ebp_234 = fn0040204F(ebx, es, ds)
- word32 esp_235 = esp_113 - 0x04
- Mem236[esp_235 + 0x00:word32] = 0x1E
- word32 edx_238
- byte bl_239
- word128 xmm0_240
- fn00401EA4(ebp_234, es, ds, dwArg00, out edx_238, out bl_239, out xmm0_240)
- Mem243[esp_235 - 0x04 + 0x00:word32] = 0xFF
- fn00401BF0(dwArg00)
- esp_113 = esp_235 + 0x04
- l00408473:
- word32 esp_163
- word32 ebp_132
- word32 eax_177
- word32 eax_82 = Mem0[0x0040F9A8:word32]
- branch eax_82 != 0x01 l0040848B
- l0040847D:
- word32 eax_191
- branch esi_12 == 0x00 l00408485
- l00408481:
- eax_191 = esi_12
- goto l00408488
- l00408485:
- eax_191 = 0x01
- l00408488:
- esp_163 = esp_113 - 0x04
- Mem193[esp_163 + 0x00:word32] = eax_191
- goto l004084A7
- l0040848B:
- word32 esi_208
- esi_208 = esi_12
- branch eax_82 != 0x03 l0040849B
- l00408490:
- word32 esp_221 = esp_113 - 0x04
- Mem222[esp_221 + 0x00:word32] = esi_12
- word32 edx_223
- word128 xmm0_227
- eax_177 = fn004083E9(ebx, esi_12, edi_169, es, ds, out edx_223, out ebp_132, out esi_208, out edi_169, out xmm0_227)
- esp_113 = esp_221 + 0x04
- branch eax_177 != 0x00 l004084B1
- l0040849B:
- branch esi_208 != 0x00 l004084A0
- l0040849F:
- esi_208 = esi_208 + 0x01
- l004084A0:
- esp_163 = esp_113 - 0x04
- Mem218[esp_163 + 0x00:word32] = esi_208 + 0x0F & ~0x0F
- l004084A7:
- word32 esp_164 = esp_163 - 0x04
- Mem165[esp_164 + 0x00:word32] = 0x00
- Mem167[esp_164 - 0x04 + 0x00:word32] = Mem165[4252540:word32]
- word32 esi_171
- byte SCZO_172
- byte CZ_173
- word32 ebx_174
- byte Z_175
- word32 ecx_176
- byte SZO_178
- byte C_179
- word32 edx_182
- word128 xmm0_183
- bool D_184
- byte bl_185
- call edi_169 (retsize: 4; depth: 4)
- uses: bl_79,C_62,CZ_59,D_78,ds_57,dwLoc04_6,dwLoc08_10,dwLoc0C_43,dwLoc10_45,eax_82,ebp_80,ebx_68,ecx_75,edi_66,edx_76,es_58,esi_72,esp_166,SCZO_83,SZO_61,xmm0_77,Z_84
- defs: bl_185,C_179,CZ_173,D_184,ds_181,eax_177,ebp_170,ebx_174,ecx_176,edi_169,edx_182,es_180,esi_171,esp_168,SCZO_172,SZO_178,xmm0_183,Z_175
- l004084B1:
- ebx = eax_177
- branch eax_177 != 0x00 l004084E5
- l004084B7:
- word32 esi_134
- word32 esp_121 = esp_113 - 0x04
- Mem122[esp_121 + 0x00:word32] = 0x0C
- word32 esi_123 = Mem122[esp_121 + 0x00:word32]
- esp_113 = esp_121 + 0x04
- branch Mem122[4254040:word32] == eax_177 l004084D7
- l004084C2:
- Mem145[esp_121 + 0x00:word32] = Mem122[ebp_132 + 0x08:word32]
- esp_113 = esp_121 + 0x04
- branch fn004060CB(out esi_134) == 0x00 l004084DE
- l004084CF:
- esi_12 = Mem145[ebp_132 + 0x08:word32]
- goto l00408452
- l004084D7:
- word32 eax_154
- word32 edx_155
- word32 edi_159
- word128 xmm0_160
- fn0040197F(eax_177, ebp_132, esi_123, es, ds, out eax_154, out edx_155, out ebx, out ebp_132, out esi_134, out edi_159, out xmm0_160)
- Mem162[eax_154 + 0x00:word32] = esi_134
- l004084DE:
- word32 eax_135
- word32 edx_136
- word32 ebp_138
- word32 esi_139
- word32 edi_140
- word128 xmm0_141
- fn0040197F(ebx, ebp_132, esi_134, es, ds, out eax_135, out edx_136, out ebx, out ebp_138, out esi_139, out edi_140, out xmm0_141)
- Mem143[eax_135 + 0x00:word32] = esi_139
- l004084E5:
- eax_117 = ebx
- word32 ebx_118
- *ebxOut = Mem0[esp_113 + 0x04:word32]
- goto l004084FF
- l004084EB:
- word32 esi_250
- fn004060CB(out esi_250)
- word32 eax_254
- word32 edx_255
- word32 ebx_256
- word32 ebp_257
- word32 esi_258
- word32 edi_259
- word128 xmm0_260
- fn0040197F(ebx, fp - 0x04, esi_250, es, ds, out eax_254, out edx_255, out ebx_256, out ebp_257, out esi_258, out edi_259, out xmm0_260)
- Mem262[eax_254 + 0x00:word32] = 0x0C
- eax_117 = 0x00
- l004084FF:
- return eax_117
- fn00408438_exit:
- }
- bool fn00408502(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & eaxOut, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *edxOut = edx;
- *xmm0Out = xmm0;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 0x0040B830, 0x0C, out ebp_10);
- word32 esp_111 = fp - 0x08;
- word32 ecx_15 = Mem0[ebp_10 + 0x08:word32];
- word32 edi_115 = 0x00;
- if (ecx_15 >u 0x00)
- {
- Mem234[fp - 0x0C + 0x00:word32] = ~0x1F;
- word32 eax_235 = Mem234[fp - 0x0C + 0x00:word32];
- word32 edx_239 = SEQ(0x00, eax_235) % ecx_15;
- *edxOut = edx_239;
- esp_111 = fp - 0x08;
- if (0x00 - (SEQ(edx_239, eax_235) /u ecx_15 <u Mem234[ebp_10 + 0x0C:word32]) == 0x01)
- {
- word32 eax_250;
- word32 edx_251;
- word32 ebx_252;
- word32 esi_254;
- word32 edi_255;
- word128 xmm0_256;
- D = fn0040197F(ebx, ebp_10, esi, es, ds, out eax_250, out edx_251, out ebx_252, out ebp_10, out esi_254, out edi_255, out xmm0_256);
- Mem258[eax_250 + 0x00:word32] = 0x0C;
- Mem260[fp - 0x0C + 0x00:word32] = edi_255;
- Mem262[fp - 0x10 + 0x00:word32] = edi_255;
- Mem264[fp - 0x14 + 0x00:word32] = edi_255;
- Mem266[fp - 0x18 + 0x00:word32] = edi_255;
- Mem268[fp - 0x1C + 0x00:word32] = edi_255;
- word32 edx_269;
- word32 ebx_270;
- word32 esi_271;
- fn00401917(es, ds, xmm0_256, out edx_269, out ebx_270, out esi_271);
- goto l0040853E;
- }
- }
- word32 ecx_70 = ecx_15 *s Mem0[ebp_10 + 0x0C:word32];
- Mem72[ebp_10 + 0x08:word32] = ecx_70;
- word32 esi_114 = ecx_70;
- if (ecx_70 == 0x00)
- esi_114 = 0x01;
- l00408555:
- Mem90[ebp_10 - 0x1C + 0x00:word32] = 0x00;
- word32 ebx_103 = 0x00;
- if (esi_114 >u ~0x1F)
- {
- l004085C8:
- if (ebx_103 == edi_115)
- {
- if (Mem90[4254040:word32] != edi_115)
- {
- word32 esp_121 = esp_111 - 0x04;
- Mem122[esp_121 + 0x00:word32] = esi_114;
- esp_111 = esp_121 + 0x04;
- if (fn004060CB(out esi_114) != 0x00)
- goto l00408555;
- word32 eax_131 = Mem122[ebp_10 + 0x10:word32];
- if (eax_131 != edi_115)
- Mem135[eax_131 + 0x00:word32] = 0x0C;
- l0040853E:
- word32 eax_60;
- *eaxOut = 0x00;
- l0040861A:
- word32 ebp_38;
- word32 esi_39;
- word32 edi_40;
- word32 ebx_41;
- *ebxOut = fn00402F65(ebp_10, 0x0C, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_38, out esi_39, out edi_40);
- return D;
- }
- if (ebx_103 == edi_115)
- {
- word32 eax_138 = Mem90[ebp_10 + 0x10:word32];
- if (eax_138 != edi_115)
- Mem142[eax_138 + 0x00:word32] = 0x0C;
- }
- }
- goto l00408618;
- }
- if (Mem90[0x0040F9A8:word32] == 0x03)
- {
- word32 esi_186 = esi_114 + 0x0F;
- Mem188[ebp_10 + 0x0C:word32] = esi_186 & ~0x0F;
- esi_114 = esi_186 & ~0x0F;
- if (Mem188[ebp_10 + 0x08:word32] <=u Mem188[4254060:word32])
- {
- word32 esp_193 = esp_111 - 0x04;
- Mem194[esp_193 + 0x00:word32] = 0x04;
- word32 edx_197;
- word32 ebx_198;
- word128 xmm0_199;
- D = fn00405B56(0x00, edi_115, es, ds, dwArg00, out edx_197, out ebx_198, out xmm0_199);
- Mem203[ebp_10 - 0x04 + 0x00:word32] = edi_115;
- Mem205[esp_193 + 0x00:word32] = Mem203[ebp_10 + 0x08:word32];
- word32 edx_207;
- Mem212[ebp_10 - 0x1C + 0x00:word32] = fn00406FF7(edx_197, esi_186 & ~0x0F, dwArg00, bArg03, out edx_207);
- Mem213[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn004085FE();
- esp_111 = esp_193 + 0x04;
- ebx_103 = Mem213[ebp_10 - 0x1C + 0x00:word32];
- if (ebx_103 == edi_115)
- {
- l004085B7:
- word32 esp_155 = esp_111 - 0x04;
- Mem156[esp_155 + 0x00:word32] = esi_114;
- Mem158[esp_155 - 0x04 + 0x00:word32] = 0x08;
- Mem160[esp_155 - 0x08 + 0x00:word32] = Mem158[4252540:word32];
- HeapAlloc(Mem160[esp_155 - 0x08 + 0x00:HANDLE], Mem160[esp_155 - 0x04 + 0x00:DWORD], Mem160[esp_155 + 0x00:SIZE_T]);
- Mem164[esp_155 + 0x00:word32] = esi_114;
- Mem166[esp_155 - 0x04 + 0x00:word32] = 0x08;
- Mem168[esp_155 - 0x08 + 0x00:word32] = Mem166[4252540:word32];
- esp_111 = esp_155 + 0x04;
- ebx_103 = HeapAlloc(Mem168[esp_155 - 0x08 + 0x00:HANDLE], Mem168[esp_155 - 0x04 + 0x00:DWORD], Mem168[esp_155 + 0x00:SIZE_T]);
- goto l004085C8;
- }
- Mem218[esp_193 + 0x00:word32] = Mem213[ebp_10 + 0x08:word32];
- Mem220[esp_193 - 0x04 + 0x00:word32] = edi_115;
- Mem222[esp_193 - 0x08 + 0x00:word32] = ebx_103;
- word32 edx_223;
- fn00404CA0(xmm0_199, 0x0C, dwArg00, dwArg04, dwArg08, out edx_223, out edi_115);
- esp_111 = esp_193 + 0x04;
- }
- }
- if (ebx_103 != edi_115)
- {
- l00408618:
- word32 eax_104;
- *eaxOut = ebx_103;
- goto l0040861A;
- }
- goto l004085B7;
- }
- void fn004085FE()
- {
- fn00405A7C(0x04);
- return;
- }
- word32 fn00408620(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut, ptr32 & esiOut)
- {
- word32 eax_149;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4241488, 0x10, out ebp_10);
- word32 esp_176 = fp - 0x08;
- word32 ebx_13 = Mem0[ebp_10 + 0x08:word32];
- if (ebx_13 == 0x00)
- {
- Mem41[fp - 0x0C + 0x00:word32] = Mem0[ebp_10 + 0x0C:word32];
- word32 edx_44;
- word32 ebx_45;
- word128 xmm0_46;
- eax_149 = fn00408438(ebx_13, ebp_10, es, ds, dwArg00, out edx_44, out ebx_45, out xmm0_46);
- goto l0040880D;
- }
- word32 esi_178 = Mem0[ebp_10 + 0x0C:word32];
- if (esi_178 == 0x00)
- {
- Mem73[fp - 0x0C + 0x00:word32] = ebx_13;
- word32 eax_74;
- word32 edx_75;
- word32 ebx_76;
- word32 esi_78;
- word32 edi_79;
- word128 xmm0_80;
- fn004047EB(ebx_13, esi_178, edi, es, ds, out eax_74, out edx_75, out ebx_76, out ebp_10, out esi_78, out edi_79, out xmm0_80);
- goto l0040880B;
- }
- word32 esp_159;
- word32 edi_147;
- word32 eax_158;
- word32 eax_126;
- if (Mem0[0x0040F9A8:word32] != 0x03)
- {
- l004087F4:
- if (esi_178 >u ~0x1F)
- {
- l004087F9:
- word32 esp_180 = esp_176 - 0x04;
- Mem181[esp_180 + 0x00:word32] = esi_178;
- word32 esi_182;
- fn004060CB(out esi_182);
- word32 eax_186;
- word32 edx_187;
- word32 ebx_188;
- word32 ebp_189;
- word32 esi_190;
- word32 edi_191;
- word128 xmm0_192;
- fn0040197F(ebx_13, ebp_10, esi_182, es, ds, out eax_186, out edx_187, out ebx_188, out ebp_189, out esi_190, out edi_191, out xmm0_192);
- Mem195[esp_180 + 0x00:word32] = esi_190;
- word32 esi_196;
- fn004060CB(out esi_196);
- word32 edx_201;
- word32 ebx_202;
- word32 esi_204;
- word32 edi_205;
- word128 xmm0_206;
- fn0040197F(ebx_188, ebp_189, esi_196, es, ds, out eax_126, out edx_201, out ebx_202, out ebp_10, out esi_204, out edi_205, out xmm0_206);
- goto l00408805;
- }
- if (esi_178 == 0x00)
- esi_178 = esi_178 + 0x01;
- word32 esp_455 = esp_176 - 0x04;
- Mem456[esp_455 + 0x00:word32] = esi_178;
- Mem458[esp_455 - 0x04 + 0x00:word32] = ebx_13;
- Mem460[esp_455 - 0x08 + 0x00:word32] = 0x00;
- Mem462[esp_455 - 0x0C + 0x00:word32] = Mem460[4252540:word32];
- word32 eax_463 = HeapReAlloc(Mem462[esp_455 - 0x0C + 0x00:HANDLE], Mem462[esp_455 - 0x08 + 0x00:DWORD], Mem462[esp_455 - 0x04 + 0x00:LPVOID], Mem462[esp_455 + 0x00:SIZE_T]);
- esp_159 = esp_455 + 0x04;
- edi_147 = eax_463;
- if (eax_463 == 0x00)
- {
- if (Mem462[4254040:word32] != eax_463)
- {
- Mem472[esp_455 + 0x00:word32] = esi_178;
- esp_176 = esp_455 + 0x04;
- if (fn004060CB(out esi_178) != 0x00)
- goto l004087F4;
- word32 edx_481;
- word32 ebx_482;
- word32 esi_484;
- word32 edi_485;
- word128 xmm0_486;
- fn0040197F(ebx_13, ebp_10, esi_178, es, ds, out eax_126, out edx_481, out ebx_482, out ebp_10, out esi_484, out edi_485, out xmm0_486);
- goto l00408799;
- }
- if (eax_463 == 0x00)
- {
- word32 edx_492;
- word32 ebx_493;
- word32 esi_495;
- word128 xmm0_497;
- fn0040197F(ebx_13, ebp_10, esi_178, es, ds, out eax_158, out edx_492, out ebx_493, out ebp_10, out esi_495, out edi_147, out xmm0_497);
- l00408826:
- Mem166[esp_159 - 0x04 + 0x00:word32] = GetLastError();
- Mem168[eax_158 + 0x00:word32] = fn0040193D(dwArg00);
- }
- }
- l00408837:
- eax_149 = edi_147;
- goto l0040880D;
- }
- else
- {
- l00408661:
- Mem221[ebp_10 - 0x1C + 0x00:word32] = 0x00;
- word32 edi_220 = 0x00;
- if (esi_178 >u ~0x1F)
- goto l004087F9;
- word32 esp_224 = esp_176 - 0x04;
- Mem225[esp_224 + 0x00:word32] = 0x04;
- word32 edx_226;
- word128 xmm0_228;
- fn00405B56(ebx_13, 0x00, es, ds, dwArg00, out edx_226, out ebx_13, out xmm0_228);
- Mem232[ebp_10 - 0x04 + 0x00:word32] = 0x00;
- Mem234[esp_224 + 0x00:word32] = ebx_13;
- word32 edx_235;
- word32 eax_236 = fn00406815(dwArg00, out edx_235);
- Mem239[ebp_10 - 0x20 + 0x00:word32] = eax_236;
- esp_159 = esp_224 + 0x04;
- if (eax_236 != 0x00)
- {
- if (esi_178 <=u Mem239[4254060:word32])
- {
- Mem387[esp_224 + 0x00:word32] = esi_178;
- Mem389[esp_224 - 0x04 + 0x00:word32] = ebx_13;
- Mem391[esp_224 - 0x08 + 0x00:word32] = eax_236;
- esp_159 = esp_224 + 0x04;
- word32 edx_393;
- if (fn00406D13(dwArg00, dwArg04, bArg07, dwArg08, bArg0B, out edx_393) != 0x00)
- Mem399[ebp_10 - 0x1C + 0x00:word32] = ebx_13;
- else
- {
- Mem401[esp_224 + 0x00:word32] = esi_178;
- word32 edx_403;
- word32 eax_404 = fn00406FF7(edx_393, esi_178, dwArg00, bArg03, out edx_403);
- Mem407[ebp_10 - 0x1C + 0x00:word32] = eax_404;
- esp_159 = esp_224 + 0x04;
- if (eax_404 != 0x00)
- {
- word32 eax_410 = Mem407[ebx_13 - 0x04 + 0x00:word32];
- word32 eax_411 = eax_410 - 0x01;
- if (eax_410 - 0x01 >=u esi_178)
- eax_411 = esi_178;
- Mem416[esp_224 + 0x00:word32] = eax_411;
- Mem418[esp_224 - 0x04 + 0x00:word32] = ebx_13;
- Mem420[esp_224 - 0x08 + 0x00:word32] = Mem418[ebp_10 - 0x1C + 0x00:word32];
- ebp_10 = fn004064B0(ebp_10, dwArg00, dwArg04, dwArg08, out esi_178, out edi_220);
- Mem425[esp_224 - 0x0C + 0x00:word32] = ebx_13;
- word32 edx_426;
- word32 eax_427 = fn00406815(dwArg00, out edx_426);
- Mem428[ebp_10 - 0x20 + 0x00:word32] = eax_427;
- Mem430[esp_224 - 0x10 + 0x00:word32] = ebx_13;
- Mem432[esp_224 - 0x14 + 0x00:word32] = eax_427;
- word32 edx_433;
- word128 xmm0_434;
- fn00406845(dwArg00, dwArg04, bArg07, out edx_433, out xmm0_434);
- esp_159 = esp_224 + 0x04;
- }
- }
- }
- if (Mem239[ebp_10 - 0x1C + 0x00:word32] == edi_220)
- {
- if (esi_178 == edi_220)
- {
- Mem385[ebp_10 + 0x0C:word32] = 0x01;
- esi_178 = 0x01;
- }
- word32 esi_342 = esi_178 + 0x0F;
- Mem344[ebp_10 + 0x0C:word32] = esi_342 & ~0x0F;
- word32 esp_345 = esp_159 - 0x04;
- Mem346[esp_345 + 0x00:word32] = esi_342 & ~0x0F;
- Mem348[esp_345 - 0x04 + 0x00:word32] = edi_220;
- Mem350[esp_345 - 0x08 + 0x00:word32] = Mem348[4252540:word32];
- word32 eax_351 = HeapAlloc(Mem350[esp_345 - 0x08 + 0x00:HANDLE], Mem350[esp_345 - 0x04 + 0x00:DWORD], Mem350[esp_345 + 0x00:SIZE_T]);
- Mem353[ebp_10 - 0x1C + 0x00:word32] = eax_351;
- esi_178 = esi_342 & ~0x0F;
- esp_159 = esp_345 + 0x04;
- if (eax_351 != edi_220)
- {
- word32 eax_356 = Mem353[ebx_13 - 0x04 + 0x00:word32];
- word32 eax_357 = eax_356 - 0x01;
- if (eax_356 - 0x01 >=u (esi_342 & ~0x0F))
- eax_357 = esi_342 & ~0x0F;
- Mem362[esp_345 + 0x00:word32] = eax_357;
- Mem364[esp_345 - 0x04 + 0x00:word32] = ebx_13;
- Mem366[esp_345 - 0x08 + 0x00:word32] = Mem364[ebp_10 - 0x1C + 0x00:word32];
- word32 edi_368;
- ebp_10 = fn004064B0(ebp_10, dwArg00, dwArg04, dwArg08, out esi_178, out edi_368);
- Mem371[esp_345 - 0x0C + 0x00:word32] = ebx_13;
- Mem373[esp_345 - 0x10 + 0x00:word32] = Mem371[ebp_10 - 0x20 + 0x00:word32];
- word32 edx_375;
- word128 xmm0_376;
- fn00406845(dwArg00, dwArg04, bArg07, out edx_375, out xmm0_376);
- esp_159 = esp_345 + 0x04;
- }
- }
- }
- Mem254[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn00408764();
- if (Mem254[ebp_10 - 0x20 + 0x00:word32] == 0x00)
- {
- if (esi_178 == 0x00)
- esi_178 = esi_178 + 0x01;
- word32 esi_303 = esi_178 + 0x0F;
- Mem307[ebp_10 + 0x0C:word32] = esi_303 & ~0x0F;
- word32 esp_308 = esp_159 - 0x04;
- Mem309[esp_308 + 0x00:word32] = esi_303 & ~0x0F;
- Mem311[esp_308 - 0x04 + 0x00:word32] = ebx_13;
- Mem313[esp_308 - 0x08 + 0x00:word32] = 0x00;
- Mem315[esp_308 - 0x0C + 0x00:word32] = Mem313[4252540:word32];
- esi_178 = esi_303 & ~0x0F;
- esp_159 = esp_308 + 0x04;
- edi_147 = HeapReAlloc(Mem315[esp_308 - 0x0C + 0x00:HANDLE], Mem315[esp_308 - 0x08 + 0x00:DWORD], Mem315[esp_308 - 0x04 + 0x00:LPVOID], Mem315[esp_308 + 0x00:SIZE_T]);
- }
- else
- edi_147 = Mem254[ebp_10 - 0x1C + 0x00:word32];
- if (edi_147 != 0x00)
- goto l00408837;
- if (Mem254[4254040:word32] == edi_147)
- {
- if (edi_147 != 0x00)
- goto l00408837;
- word32 edx_289;
- word32 ebx_290;
- word32 esi_292;
- word128 xmm0_294;
- fn0040197F(ebx_13, ebp_10, esi_178, es, ds, out eax_158, out edx_289, out ebx_290, out ebp_10, out esi_292, out edi_147, out xmm0_294);
- if (Mem254[ebp_10 - 0x20 + 0x00:word32] == edi_147)
- goto l00408826;
- Mem298[eax_158 + 0x00:word32] = 0x0C;
- goto l00408837;
- }
- word32 esp_266 = esp_159 - 0x04;
- Mem267[esp_266 + 0x00:word32] = esi_178;
- esp_176 = esp_266 + 0x04;
- if (fn004060CB(out esi_178) != 0x00)
- goto l00408661;
- word32 edx_276;
- word32 ebx_277;
- word32 esi_279;
- word32 edi_280;
- word128 xmm0_281;
- fn0040197F(ebx_13, ebp_10, esi_178, es, ds, out eax_126, out edx_276, out ebx_277, out ebp_10, out esi_279, out edi_280, out xmm0_281);
- if (Mem267[ebp_10 - 0x20 + 0x00:word32] != edi_280)
- {
- l00408805:
- Mem133[eax_126 + 0x00:word32] = 0x0C;
- Mem134[eax_126 + 0x00:word32] = 0x0C;
- l0040880B:
- eax_149 = 0x00;
- l0040880D:
- word32 ebp_33;
- word32 esi_34;
- word32 edi_35;
- word32 ebx_36;
- *ebxOut = fn00402F65(ebp_10, 0x10, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_33, out esi_34, out edi_35);
- return eax_149;
- }
- l00408799:
- word32 esp_104 = esp_176 - 0x04;
- Mem105[esp_104 + 0x00:word32] = GetLastError();
- word32 eax_106 = fn0040193D(dwArg00);
- Mem109[eax_126 + 0x00:word32] = eax_106;
- Mem113[esp_104 + 0x00:word32] = GetLastError();
- Mem117[eax_106 + 0x00:word32] = fn0040193D(dwArg00);
- goto l0040880B;
- }
- }
- void fn00408764()
- {
- fn00405A7C(0x04);
- return;
- }
- word32 fn0040883B(word32 eax, word32 ecx, word32 edx, word32 ebx, word32 ebp, word32 esi, word32 edi, selector es, selector ds, word32 dwArg00)
- {
- Mem12[0x0040E680:word32] = eax;
- Mem14[0x0040E67C:word32] = ecx;
- Mem16[4253304:word32] = edx;
- Mem18[0x0040E674:word32] = ebx;
- Mem20[0x0040E670:word32] = esi;
- Mem21[4253292:word32] = edi;
- Mem23[4253336:word16] = ss;
- Mem25[4253324:word16] = cs;
- Mem27[0x0040E668:word16] = ds;
- Mem29[0x0040E664:word16] = es;
- Mem31[0x0040E660:word16] = fs;
- Mem33[0x0040E65C:word16] = gs;
- Mem36[0x0040E690:word32] = cond(fp - 0x032C);
- Mem39[0x0040E684:word32] = ebp;
- Mem42[0x0040E688:word32] = dwArg00;
- Mem44[4253332:word32] = fp + 0x04;
- Mem47[0x0040E5D0:word32] = 0x00010001;
- Mem49[0x0040E584:word32] = Mem47[0x0040E688:word32];
- Mem50[0x0040E578:word32] = 0xC0000409;
- Mem51[4253052:word32] = 0x01;
- Mem57[0x0040E5C8:word32] = IsDebuggerPresent();
- fn00404C95();
- SetUnhandledExceptionFilter(0x00);
- UnhandledExceptionFilter(4240228);
- if (Mem57[0x0040E5C8:word32] == 0x00)
- fn00404C95();
- return TerminateProcess(GetCurrentProcess(), 0xC0000409);
- }
- void fn00408941(word128 xmm0, word32 dwArg04, word32 dwArg08)
- {
- word32 edi_10 = dwArg04;
- word32 ecx_13 = dwArg08 >>u 0x07;
- do
- {
- Mem19[edi_10 + 0x00:word128] = xmm0;
- Mem20[edi_10 + 0x10:word128] = xmm0;
- Mem21[edi_10 + 0x20:word128] = xmm0;
- Mem22[edi_10 + 0x30:word128] = xmm0;
- Mem23[edi_10 + 0x40:word128] = xmm0;
- Mem24[edi_10 + 0x50:word128] = xmm0;
- Mem25[edi_10 + 0x60:word128] = xmm0;
- Mem26[edi_10 + 0x70:word128] = xmm0;
- edi_10 = edi_10 + 0x80;
- ecx_13 = ecx_13 - 0x01;
- } while (ecx_13 != 0x00);
- return;
- }
- void fn00408998(word128 xmm0, word32 dwArg04, word32 dwArg0C)
- {
- int64 edx_eax_11 = (int64) dwArg04;
- word32 eax_12 = (word32) edx_eax_11;
- word32 edx_13 = SLICE(edx_eax_11, word32, 32);
- word32 edi_20 = ((eax_12 ^ edx_13) - edx_13 & 0x0F ^ edx_13) - edx_13;
- if (edi_20 == 0x00)
- {
- word32 edx_46 = dwArg0C & 0x7F;
- if (dwArg0C != (dwArg0C & 0x7F))
- {
- fn00408941(xmm0, eax_12, dwArg0C - (dwArg0C & 0x7F));
- eax_12 = dwArg04;
- edx_46 = dwArg0C & 0x7F;
- }
- if (edx_46 != 0x00)
- {
- word32 edi_76 = eax_12 + dwArg0C - edx_46;
- word32 ecx_77 = dwArg0C & 0x7F;
- while (ecx_77 != 0x00)
- {
- Mem80[edi_76 + 0x00:byte] = 0x00;
- edi_76 = edi_76 + 0x01;
- ecx_77 = ecx_77 - 0x01;
- }
- }
- }
- else
- {
- word32 edi_97 = -edi_20;
- word32 edi_105 = dwArg04;
- word32 ecx_106 = edi_97 + 0x10;
- while (ecx_106 != 0x00)
- {
- Mem109[edi_105 + 0x00:byte] = 0x00;
- edi_105 = edi_105 + 0x01;
- ecx_106 = ecx_106 - 0x01;
- }
- fn00408998(xmm0, dwArg04 + (edi_97 + 0x10), dwArg0C - (edi_97 + 0x10));
- }
- return;
- }
- word32 fn00408AE6(word32 ebx, word32 ebp, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & xmm0Out)
- {
- fn00408AE6_entry:
- word32 ebx_22
- word128 xmm0_23
- fn00401759(fp - 0x18, ebx, es, ds, dwArg04, out ebx_22, out xmm0_23)
- word32 ebp_266 = fp - 0x04
- word32 eax_27 = Mem0[fp + 0x0C:word32]
- word32 esi_134 = Mem0[fp + 0x08:word32]
- branch eax_27 == 0x00 l00408B09
- goto l00408B07
- l00408AE6:
- l00408B07:
- Mem505[eax_27 + 0x00:word32] = esi_134
- l00408B09:
- word32 eax_178
- branch esi_134 != 0x00 && (Mem0[fp + 0x10:word32] == 0x00 || Mem0[fp + 0x10:word32] >= 0x02 && Mem0[fp + 0x10:word32] <= 0x24) l00408B39
- l00408B0D:
- word32 eax_67
- word32 edx_68
- word32 ebx_69
- word32 ebp_70
- word32 esi_71
- word32 edi_72
- word128 xmm0_73
- fn0040197F(ebx_22, fp - 0x04, esi_134, es, ds, out eax_67, out edx_68, out ebx_69, out ebp_70, out esi_71, out edi_72, out xmm0_73)
- Mem76[fp - 0x24 + 0x00:word32] = edi_72
- Mem78[fp - 0x28 + 0x00:word32] = edi_72
- Mem80[fp - 44 + 0x00:word32] = edi_72
- Mem82[fp - 0x30 + 0x00:word32] = edi_72
- Mem84[fp - 0x34 + 0x00:word32] = edi_72
- Mem85[eax_67 + 0x00:word32] = 22
- word32 edx_86
- word32 ebx_87
- word32 esi_88
- fn00401917(es, ds, xmm0_73, out edx_86, out ebx_87, out esi_88)
- branch Mem85[ebp_70 - 0x08 + 0x00:byte] == 0x00 l00408B32
- l00408B2B:
- word32 eax_102 = Mem85[ebp_70 - 0x0C + 0x00:word32]
- Mem105[eax_102 + 0x70:word32] = Mem85[eax_102 + 0x70:word32] & ~0x02
- l00408B32:
- eax_178 = 0x00
- goto l00408D11
- l00408B39:
- l00408B3E:
- l00408B44:
- l00408B4A:
- word32 ecx_113 = Mem0[fp - 0x18 + 0x00:word32]
- Mem116[fp - 0x24 + 0x00:word32] = ebx_22
- byte bl_117 = Mem116[esi_134 + 0x00:byte]
- Mem119[fp - 0x08 + 0x00:word32] = 0x00
- word32 esp_115 = fp - 0x24
- word32 ebx_118 = DPB(ebx_22, bl_117, 0)
- word32 edi_120 = esi_134 + 0x01 + 0x01
- l00408B56:
- word32 eax_144
- branch Mem119[ecx_113 + 0xAC:word32] <= 0x01 l00408B76
- l00408B5F:
- word32 esp_474 = esp_115 - 0x04
- Mem475[esp_474 + 0x00:word32] = fp - 0x18
- Mem478[esp_474 - 0x04 + 0x00:word32] = 0x08
- Mem480[esp_474 - 0x08 + 0x00:word32] = (word32) bl_117
- word32 edx_482
- word128 xmm0_485
- eax_144 = fn00409972(ebx_118, fp - 0x04, es, ds, dwArg08, out edx_482, out bl_117, out esi_134, out xmm0_485)
- ecx_113 = Mem480[fp - 0x18 + 0x00:word32]
- esp_115 = esp_474 + 0x04
- goto l00408B86
- l00408B76:
- word32 edx_493 = Mem119[ecx_113 + 200:word32]
- *edxOut = edx_493
- eax_144 = (word32) edx_493[(word32) bl_117 * 0x02] & 0x08
- l00408B86:
- branch eax_144 == 0x00 l00408B8F
- l00408B8A:
- bl_117 = Mem119[edi_120 + 0x00:byte]
- ebx_118 = DPB(ebx_118, bl_117, 0) (alias)
- edi_120 = edi_120 + 0x01
- goto l00408B56
- l00408B8F:
- branch bl_117 != 0x2D l00408B9A
- l00408B94:
- Mem468[fp + 0x14:word32] = Mem119[fp + 0x14:word32] | 0x02
- goto l00408B9F
- l00408B9A:
- branch bl_117 != 0x2B l00408BA2
- l00408B9F:
- word32 edi_462 = edi_120 + 0x00
- bl_117 = Mem119[edi_462 + 0x00:byte]
- ebx_118 = DPB(ebx_118, bl_117, 0) (alias)
- edi_120 = edi_462 + 0x01
- l00408BA2:
- word32 eax_163 = Mem119[fp + 0x10:word32]
- branch eax_163 < 0x00 || (eax_163 == 0x01 || eax_163 > 0x24) l00408CF8
- goto l00408BBF
- l00408BAD:
- l00408BB6:
- l00408BBF:
- branch eax_163 != 0x00 l00408BED
- l00408BC3:
- branch bl_117 == 0x30 l00408BD1
- l00408BC8:
- Mem442[fp + 0x10:word32] = 0x0A
- goto l00408C05
- l00408BD1:
- byte al_443 = Mem119[edi_120 + 0x00:byte]
- branch al_443 == 0x78 || al_443 == 88 l00408BE4
- goto l00408BDB
- l00408BD7:
- l00408BDB:
- Mem453[fp + 0x10:word32] = 0x08
- goto l00408C05
- l00408BE4:
- Mem450[fp + 0x10:word32] = 0x10
- goto l00408BF7
- l00408BED:
- branch eax_163 != 0x10 || bl_117 != 0x30 l00408C05
- goto l00408BF7
- l00408BF2:
- l00408BF7:
- branch Mem119[edi_120 + 0x00:byte] == 0x78 l00408C01
- byte al_421 = Mem119[edi_120 + 0x00:byte]
- branch al_421 == 0x78 l00408C01
- l00408BFD:
- branch al_421 != 88 l00408C05
- branch al_421 != 88 l00408C05
- l00408C01:
- word32 edi_428 = edi_120 + 0x01
- bl_117 = Mem119[edi_428 + 0x02:byte]
- ebx_118 = DPB(ebx_118, bl_117, 0) (alias)
- edi_120 = edi_428 + 0x03
- l00408C05:
- word32 edx_228 = ~0x00 % Mem119[fp + 0x10:word32]
- *edxOut = edx_228
- word32 esi_224 = Mem119[ecx_113 + 200:word32]
- word32 eax_230 = SEQ(edx_228, ~0x00) /u Mem119[fp + 0x10:word32]
- l00408C15:
- word32 ecx_358
- word32 ecx_241 = (word32) esi_224[(word32) bl_117 * 0x02]
- branch ((byte) ecx_241 & 0x04) == 0x00 l00408C29
- l00408C21:
- ecx_358 = (int32) bl_117 - 0x30
- goto l00408C44
- l00408C29:
- branch (ecx_241 & 0x0103) == 0x00 l00408C62
- l00408C31:
- word32 ecx_407 = (int32) bl_117
- branch bl_117 >u 122 l00408C41
- l00408C3E:
- ecx_407 = ecx_407 - 0x20
- l00408C41:
- ecx_358 = ecx_407 + ~0x36
- l00408C44:
- branch ecx_358 >=u Mem119[fp + 0x10:word32] l00408C62
- l00408C49:
- Mem366[fp + 0x14:word32] = Mem119[fp + 0x14:word32] | 0x08
- branch Mem366[fp - 0x08 + 0x00:word32] <u eax_230 || Mem366[(fp - 0x08) + 0x00:word32] == eax_230 && ecx_358 <=u edx_228 l00408C79
- goto l00408C58
- l00408C52:
- l00408C54:
- l00408C58:
- Mem390[fp + 0x14:word32] = Mem366[fp + 0x14:word32] | 0x04
- branch Mem390[fp + 0x0C:word32] != 0x00 l00408C85
- l00408C62:
- word32 eax_251 = Mem119[fp + 0x14:word32]
- byte al_253 = (byte) eax_251
- word32 edi_254 = edi_120 - 0x01
- branch (al_253 & 0x08) != 0x00 l00408C8A
- l00408C6A:
- branch Mem119[fp + 0x0C:word32] == 0x00 l00408C73
- l00408C70:
- edi_254 = Mem119[fp + 0x08:word32]
- l00408C73:
- Mem300[fp - 0x08 + 0x00:word32] = Mem119[fp - 0x08 + 0x00:word32] & 0x00
- goto l00408CD4
- l00408C79:
- ebx_118 = Mem366[fp - 0x08 + 0x00:word32] *s Mem366[fp + 0x10:word32] + ecx_358
- Mem387[fp - 0x08 + 0x00:word32] = ebx_118
- l00408C85:
- bl_117 = Mem366[edi_120 + 0x00:byte]
- ebx_118 = DPB(ebx_118, bl_117, 0) (alias)
- edi_120 = edi_120 + 0x01
- goto l00408C15
- l00408C8A:
- branch (al_253 & 0x04) != 0x00 || (al_253 & 0x01) == 0x00 && ((eax_251 & 0x02) != 0x00 && Mem119[(fp - 0x08) + 0x00:word32] >u 0x80000000 || (eax_251 & 0x02) == 0x00 && Mem119[(fp - 0x08) + 0x00:word32] >u 0x7FFFFFFF) l00408CAE
- goto l00408CD4
- l00408C93:
- l00408C97:
- l00408C9C:
- l00408CA5:
- l00408CA9:
- l00408CAE:
- word32 eax_312
- word32 edx_313
- word32 ebx_314
- word32 esi_316
- word128 xmm0_318
- fn0040197F(ebx_118, fp - 0x04, 0x7FFFFFFF, es, ds, out eax_312, out edx_313, out ebx_314, out ebp_266, out esi_316, out edi_254, out xmm0_318)
- Mem323[eax_312 + 0x00:word32] = 0x22
- branch (Mem119[ebp_266 + 0x18:byte] & 0x01) == 0x00 l00408CC5
- l00408CBF:
- Mem325[ebp_266 - 0x04 + 0x00:word32] = Mem323[ebp_266 - 0x04 + 0x00:word32] | ~0x00
- goto l00408CD4
- l00408CC5:
- word32 esp_330 = esp_115 - 0x04
- Mem331[esp_330 + 0x00:word32] = 0x00
- Mem339[ebp_266 - 0x04 + 0x00:word32] = DPB(Mem331[esp_330 + 0x00:word32], (Mem323[ebp_266 + 0x18:byte] & 0x02) != 0x00, 0) + esi_316
- esp_115 = esp_330 + 0x04
- l00408CD4:
- word32 eax_268 = Mem119[ebp_266 + 0x10:word32]
- branch eax_268 == 0x00 l00408CDD
- l00408CDB:
- Mem295[eax_268 + 0x00:word32] = edi_254
- l00408CDD:
- branch (Mem119[ebp_266 + 0x18:byte] & 0x02) == 0x00 l00408CE6
- l00408CE3:
- Mem292[ebp_266 - 0x04 + 0x00:word32] = -Mem119[ebp_266 - 0x04 + 0x00:word32]
- l00408CE6:
- branch Mem119[ebp_266 - 0x08 + 0x00:byte] == 0x00 l00408CF3
- l00408CEC:
- word32 eax_285 = Mem119[ebp_266 - 0x0C + 0x00:word32]
- Mem288[eax_285 + 0x70:word32] = Mem119[eax_285 + 0x70:word32] & ~0x02
- l00408CF3:
- eax_178 = Mem119[ebp_266 - 0x04 + 0x00:word32]
- goto l00408D10
- l00408CF8:
- word32 eax_191 = Mem119[fp + 0x0C:word32]
- branch eax_191 == 0x00 l00408D01
- l00408CFF:
- Mem211[eax_191 + 0x00:word32] = esi_134
- l00408D01:
- branch Mem119[fp - 0x0C + 0x00:byte] == 0x00 l00408D0E
- l00408D07:
- word32 eax_205 = Mem119[fp - 0x10 + 0x00:word32]
- Mem208[eax_205 + 0x70:word32] = Mem119[eax_205 + 0x70:word32] & ~0x02
- l00408D0E:
- eax_178 = 0x00
- l00408D10:
- word32 ebx_187
- *ebxOut = Mem119[esp_115 + 0x00:word32]
- l00408D11:
- return eax_178
- fn00408AE6_exit:
- }
- word32 fn00408D15(word32 ebx, selector es, selector ds, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *esiOut = esi;
- word32 dwLoc18_23;
- if (Mem0[0x0040E3A0:word32] == 0x00)
- dwLoc18_23 = 0x0040DB30;
- else
- dwLoc18_23 = 0x00;
- word32 edx_28;
- word32 ebx_29;
- word128 xmm0_30;
- return fn00408AE6(ebx, fp - 0x04, es, ds, dwLoc18_23, out edx_28, out ebx_29, out xmm0_30);
- }
- word32 fn00408E57(word32 ebx, word32 esi, word32 edi, selector es, selector ds, ptr32 & ebxOut, ptr32 & ebpOut)
- {
- word32 eax_29;
- word32 ebp_10;
- fn00402F20(ebx, esi, edi, dwLoc0C, 4241552, 0x10, out ebp_10);
- word32 ebx_100 = Mem0[ebp_10 + 0x08:word32];
- word32 esp_124 = fp - 0x08;
- if ((word32) (ebx_100 != 0x00) == 0x00)
- {
- word32 eax_46;
- word32 edx_47;
- word32 ebx_48;
- word32 esi_50;
- word32 edi_51;
- word128 xmm0_52;
- fn0040197F(ebx_100, ebp_10, esi, es, ds, out eax_46, out edx_47, out ebx_48, out ebp_10, out esi_50, out edi_51, out xmm0_52);
- Mem54[eax_46 + 0x00:word32] = 22;
- Mem56[fp - 0x0C + 0x00:word32] = edi_51;
- Mem58[fp - 0x10 + 0x00:word32] = edi_51;
- Mem60[fp - 0x14 + 0x00:word32] = edi_51;
- Mem62[fp - 0x18 + 0x00:word32] = edi_51;
- Mem64[fp - 0x1C + 0x00:word32] = edi_51;
- word32 edx_65;
- word32 ebx_66;
- word32 esi_67;
- eax_29 = fn00401917(es, ds, xmm0_52, out edx_65, out ebx_66, out esi_67) | ~0x00;
- goto l00408EE3;
- }
- word32 esi_109;
- if (Mem0[0x0040F9A8:word32] == 0x03)
- {
- Mem111[fp - 0x0C + 0x00:word32] = 0x04;
- word32 edx_112;
- word128 xmm0_114;
- fn00405B56(ebx_100, 0x00, es, ds, dwArg00, out edx_112, out ebx_100, out xmm0_114);
- Mem118[ebp_10 - 0x04 + 0x00:word32] = 0x00;
- Mem120[fp - 0x0C + 0x00:word32] = ebx_100;
- word32 edx_121;
- word32 eax_122 = fn00406815(dwArg00, out edx_121);
- Mem125[ebp_10 - 0x20 + 0x00:word32] = eax_122;
- esp_124 = fp - 0x08;
- if (eax_122 != 0x00)
- {
- word32 esi_132 = Mem125[ebx_100 - 0x04 + 0x00:word32];
- Mem135[ebp_10 - 0x1C + 0x00:word32] = esi_132 - 0x09;
- esi_109 = esi_132 - 0x09;
- }
- else
- esi_109 = Mem125[ebp_10 - 0x1C + 0x00:word32];
- Mem129[ebp_10 - 0x04 + 0x00:word32] = ~0x01;
- fn00408EF1();
- if (Mem129[ebp_10 - 0x20 + 0x00:word32] != 0x00)
- {
- l00408EE1:
- eax_29 = esi_109;
- l00408EE3:
- word32 ebp_38;
- word32 esi_39;
- word32 edi_40;
- word32 ebx_41;
- *ebxOut = fn00402F65(ebp_10, 0x10, dwArg00, dwArg04, dwArg08, dwArg0C, out ebp_38, out esi_39, out edi_40);
- return eax_29;
- }
- }
- word32 esp_101 = esp_124 - 0x04;
- Mem102[esp_101 + 0x00:word32] = ebx_100;
- Mem104[esp_101 - 0x04 + 0x00:word32] = 0x00;
- Mem106[esp_101 - 0x08 + 0x00:word32] = Mem104[4252540:word32];
- esi_109 = HeapSize(Mem106[esp_101 - 0x08 + 0x00:HANDLE], Mem106[esp_101 - 0x04 + 0x00:DWORD], Mem106[esp_101 + 0x00:LPCVOID]);
- goto l00408EE1;
- }
- void fn00408EF1()
- {
- fn00405A7C(0x04);
- return;
- }
- word128 fn00408EFA(word32 dwArg04, word32 dwArg08, word32 dwArg0C)
- {
- word32 esi_12 = dwArg08;
- word32 edi_14 = dwArg04;
- word32 ecx_17 = dwArg0C >>u 0x07;
- do
- {
- word128 xmm0_23 = Mem0[esi_12 + 0x00:word128];
- word128 xmm1_24 = Mem0[esi_12 + 0x10:word128];
- word128 xmm2_25 = Mem0[esi_12 + 0x20:word128];
- word128 xmm3_26 = Mem0[esi_12 + 0x30:word128];
- Mem27[edi_14 + 0x00:word128] = xmm0_23;
- Mem28[edi_14 + 0x10:word128] = xmm1_24;
- Mem29[edi_14 + 0x20:word128] = xmm2_25;
- Mem30[edi_14 + 0x30:word128] = xmm3_26;
- word128 xmm5_32 = Mem30[esi_12 + 0x50:word128];
- word128 xmm6_33 = Mem30[esi_12 + 0x60:word128];
- word128 xmm7_34 = Mem30[esi_12 + 0x70:word128];
- Mem35[edi_14 + 0x40:word128] = Mem30[esi_12 + 0x40:word128];
- Mem36[edi_14 + 0x50:word128] = xmm5_32;
- Mem37[edi_14 + 0x60:word128] = xmm6_33;
- Mem38[edi_14 + 0x70:word128] = xmm7_34;
- esi_12 = esi_12 + 0x80;
- edi_14 = edi_14 + 0x80;
- ecx_17 = ecx_17 - 0x01;
- } while (ecx_17 != 0x00);
- return xmm0_23;
- }
- word32 fn00408F81(word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- int64 edx_eax_16 = (int64) dwArg08;
- int64 edx_eax_27 = (int64) dwArg04;
- word32 edx_18 = SLICE(edx_eax_16, word32, 32);
- word32 eax_127 = (word32) edx_eax_27;
- word32 edx_29 = SLICE(edx_eax_27, word32, 32);
- word32 ecx_26 = (((word32) edx_eax_16 ^ edx_18) - edx_18 & 0x0F ^ edx_18) - edx_18;
- word32 edi_35 = ((eax_127 ^ edx_29) - edx_29 & 0x0F ^ edx_29) - edx_29;
- word32 edx_161 = ecx_26 | edi_35;
- if (edx_161 == 0x00)
- {
- word32 ecx_129 = dwArg0C & 0x7F;
- if (dwArg0C != (dwArg0C & 0x7F))
- {
- word128 xmm0_124;
- *xmm0Out = fn00408EFA(eax_127, dwArg08, dwArg0C - (dwArg0C & 0x7F));
- eax_127 = dwArg04;
- ecx_129 = dwArg0C & 0x7F;
- }
- if (ecx_129 != 0x00)
- {
- edx_161 = dwArg08 + dwArg0C - ecx_129;
- word32 esi_102 = edx_161;
- word32 edi_103 = dwArg0C + eax_127 - ecx_129;
- word32 ecx_104 = dwArg0C & 0x7F;
- while (ecx_104 != 0x00)
- {
- Mem110[edi_103 + 0x00:byte] = Mem0[esi_102 + 0x00:byte];
- esi_102 = esi_102 + 0x01;
- edi_103 = edi_103 + 0x01;
- ecx_104 = ecx_104 - 0x01;
- }
- }
- }
- else if (ecx_26 == edi_35)
- {
- word32 ecx_132 = -ecx_26;
- word32 esi_136 = dwArg08;
- word32 edi_137 = dwArg04;
- word32 ecx_138 = ecx_132 + 0x10;
- while (ecx_138 != 0x00)
- {
- Mem143[edi_137 + 0x00:byte] = Mem0[esi_136 + 0x00:byte];
- esi_136 = esi_136 + 0x01;
- edi_137 = edi_137 + 0x01;
- ecx_138 = ecx_138 - 0x01;
- }
- word128 xmm0_160;
- edx_161 = fn00408F81(dwArg04 + (ecx_132 + 0x10), dwArg08 + (ecx_132 + 0x10), dwArg0C - (ecx_132 + 0x10), out xmm0_160);
- }
- else
- {
- word32 esi_167 = dwArg08;
- word32 edi_168 = dwArg04;
- edx_161 = dwArg0C;
- word32 ecx_172 = dwArg0C >>u 0x02;
- while (ecx_172 != 0x00)
- {
- Mem178[edi_168 + 0x00:word32] = Mem0[esi_167 + 0x00:word32];
- esi_167 = esi_167 + 0x04;
- edi_168 = edi_168 + 0x04;
- ecx_172 = ecx_172 - 0x01;
- }
- word32 ecx_183 = dwArg0C & 0x03;
- while (ecx_183 != 0x00)
- {
- Mem190[edi_168 + 0x00:byte] = Mem0[esi_167 + 0x00:byte];
- esi_167 = esi_167 + 0x01;
- edi_168 = edi_168 + 0x01;
- ecx_183 = ecx_183 - 0x01;
- }
- }
- return edx_161;
- }
- byte fn00409070(word32 ebp, word32 dwArg04, word32 dwArg08, word32 dwArg0C, ptr32 & edxOut, ptr32 & ebpOut, ptr32 & ediOut, ptr32 & xmm0Out)
- {
- *xmm0Out = xmm0;
- word32 esi_13 = dwArg08;
- word32 edi_17 = dwArg04;
- word32 eax_20 = dwArg0C + dwArg08;
- if (dwArg04 <=u dwArg08 || dwArg04 >=u eax_20)
- {
- if (dwArg0C >=u 0x0100 && Mem0[0x0040E960:word32] != 0x00)
- {
- esi_13 = dwArg08;
- edi_17 = dwArg04;
- if ((dwArg04 & 0x0F) == (dwArg08 & 0x0F))
- {
- word32 edi_103;
- *ediOut = edi;
- word32 ebp_105;
- *ebpOut = ebp;
- word128 xmm0_108;
- word32 edx_109;
- *edxOut = fn00408F81(dwArg00, dwArg04, dwArg08, out xmm0_108);
- return D;
- }
- }
- if ((edi_17 & 0x03) != 0x00)
- if (dwArg0C <u 0x04)
- ;
- else
- {
- word32 ecx_56 = dwArg0C >>u 0x02;
- word32 edx_57;
- *edxOut = dwArg0C & 0x03;
- if (dwArg0C >>u 0x02 <u 0x08)
- switch (dwArg0C & 0x03)
- ;
- else
- {
- while (ecx_56 != 0x00)
- {
- Mem75[edi_17 + 0x00:word32] = Mem0[esi_13 + 0x00:word32];
- esi_13 = esi_13 + 0x04;
- edi_17 = edi_17 + 0x04;
- ecx_56 = ecx_56 - 0x01;
- }
- switch (dwArg0C & 0x03)
- {
- case 0x00:
- word32 edi_64;
- *ediOut = edi;
- word32 ebp_66;
- *ebpOut = ebp;
- return D;
- }
- }
- }
- }
- else
- {
- word32 esi_113 = dwArg0C - 0x04 + dwArg08;
- word32 edi_114 = dwArg0C - 0x04 + dwArg04;
- if ((edi_114 & 0x03) != 0x00)
- {
- word32 edx_162;
- *edxOut = 0x03;
- if (dwArg0C <u 0x04)
- switch (dwArg0C)
- ;
- }
- else
- {
- word32 ecx_130 = dwArg0C >>u 0x02;
- word32 edx_131 = dwArg0C & 0x03;
- *edxOut = edx_131;
- if (dwArg0C >>u 0x02 <u 0x08)
- {
- word32 ecx_144 = -(dwArg0C >>u 0x02);
- word32 esp_147;
- word32 ebp_148;
- word32 edi_149;
- word32 esi_150;
- word32 ecx_151;
- word32 eax_152;
- word32 edx_153;
- byte SCZO_154;
- byte CZ_155;
- byte C_156;
- byte Z_157;
- byte SZO_158;
- byte D_159;
- word128 xmm0_160;
- 0x00409330[ecx_144 * 0x04]();
- return D_159;
- }
- else
- {
- while (ecx_130 != 0x00)
- {
- Mem139[edi_114 + 0x00:word32] = Mem0[esi_113 + 0x00:word32];
- esi_113 = esi_113 - 0x04;
- edi_114 = edi_114 - 0x04;
- ecx_130 = ecx_130 - 0x01;
- }
- D = false;
- switch (dwArg0C & 0x03)
- {
- case 0x00:
- word32 edi_126;
- *ediOut = edi;
- word32 ebp_128;
- *ebpOut = ebp;
- return D;
- }
- }
- }
- }
- }
- void fn0040950F()
- {
- Mem21[0x0040DDD4:word32] = CreateFileA(4240236, 0x40000000, 0x03, 0x00, 0x03, 0x00, 0x00);
- return;
- }
- word32 fn0040972F(word32 edx, word32 ebx, word32 esi, word32 edi, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *edxOut = edx;
- *ebxOut = ebx;
- *esiOut = esi;
- *xmm0Out = xmm0;
- word32 eax_34;
- word32 eax_24 = GetLocaleInfoA(dwArg04, 0x1004, fp - 0x10, 0x06);
- if (eax_24 == 0x00)
- eax_34 = eax_24 | ~0x00;
- else
- {
- word128 xmm0_62;
- eax_34 = fn0040995C(ebx, es, ds, fp - 0x10, out edx, out ebx, out esi, out xmm0_62);
- }
- return fn00404BEF(eax_34, Mem0[fp - 0x08 + 0x00:word32] ^ fp - 0x04, edx, ebx, fp - 0x04, esi, edi, es, ds);
- }
- word32 fn00409778(word32 edx, word32 ebp, selector es, selector ds, word128 xmm0, word32 dwArg04, word32 dwArg08, word32 dwArg0C, word32 dwArg10, word32 dwArg14, ptr32 & edxOut, ptr32 & xmm0Out)
- {
- fn00409778_entry:
- def fp
- def ebp
- def Mem0
- def dwArg0C
- def dwArg10
- def dwArg04
- def dwArg08
- def ds
- def es
- def xmm0
- def edx
- def dwArg00
- def dwLoc1C
- dwLoc04_6 = ebp
- ebp_7 = fp - 0x04
- eax_14 = dwArg0C
- dwLoc2C_17 = dwArg0C
- eax_19 = dwArg10
- eax_24 = Mem0[dwArg10 + 0x00:word32]
- dwLoc28_28 = eax_24
- eax_30 = dwArg04
- edi_33 = 0x00
- branch dwArg04 == dwArg08 l00409917
- goto l004097B8
- l00409778:
- l004097B8:
- dwLoc48_118 = fp - 0x1C
- dwLoc4C_120 = dwArg04
- eax_121 = GetCPInfo(dwArg04, fp - 0x1C)
- ebx_123 = MultiByteToWideChar
- branch eax_121 == 0x00 || dwLoc1C != 0x01 l0040982D
- goto l004097D5
- l004097CF:
- l004097D5:
- dwLoc48_457 = fp - 0x1C
- dwLoc4C_459 = dwArg08
- eax_460 = GetCPInfo(dwArg08, fp - 0x1C)
- esp_461 = fp - 0x44
- branch eax_460 == 0x00 || dwLoc1C != 0x01 l0040982D
- goto l004097E8
- l004097E2:
- l004097E8:
- esi_467 = eax_24
- branch eax_24 != ~0x00 l00409803
- l004097F7:
- dwLoc48_483 = dwArg0C
- eax_485 = fn00404990(dwArg0C, out edx_484)
- esi_486 = eax_485
- esp_488 = fp - 0x44
- esi_489 = eax_485 + 0x01
- l00409803:
- edx_472 = PHI(edx, edx_484)
- esi_473 = PHI(esi_467, esi_489)
- esp_476 = PHI(esp_461, esp_488)
- SCZO_477 = cond(esi_473)
- SZO_478 = SCZO_477 (alias)
- l00409805:
- ds_160 = PHI(ds, ds_443)
- es_161 = PHI(es, es_442)
- xmm0_166 = PHI(xmm0, xmm0_444)
- edx_167 = PHI(edx_472, edx_441)
- edi_168 = PHI(edi_33, edi_430)
- esi_169 = PHI(esi_473, esi_446)
- ebx_170 = PHI(ebx_123, ebx_437)
- SZO_172 = PHI(SZO_478, SZO_448)
- ebp_175 = PHI(ebp_7, ebp_431)
- esp_176 = PHI(esp_476, esp_429)
- branch SZO_172 || esi_169 >u 0x7FFFFFF0 l00409862
- goto l0040980F
- l00409807:
- l0040980F:
- eax_381 = esi_169 + 0x08 + esi_169
- branch eax_381 >u 0x0400 l00409849
- l0040981A:
- fn00409930(eax_381)
- eax_402 = esp_176
- branch esp_176 == 0x00 l0040985D
- l00409825:
- Mem405[esp_176 + 0x00:word32] = 0xCCCC
- goto l0040985A
- l0040982D:
- eax_433 = MultiByteToWideChar(Mem0[esp + 0x00:UINT], Mem0[esp + 0x04:DWORD], Mem0[esp + 0x08:LPCSTR], Mem0[esp + 0x0C:int32], Mem0[esp + 0x0010:LPWSTR], Mem0[esp + 0x0014:int32])
- esi_446 = eax_433
- SCZO_447 = cond(eax_433)
- SZO_448 = SCZO_447 (alias)
- branch eax_433 != 0x00 l00409805
- l00409842:
- ds_135 = PHI(ds_160, ds_443)
- es_136 = PHI(es_161, es_442)
- xmm0_141 = PHI(xmm0_179, xmm0_444)
- edx_142 = PHI(edx_180, edx_441)
- ebp_147 = PHI(ebp_175, ebp_431)
- eax_150 = 0x00
- goto l0040991A
- l00409849:
- esp_406 = esp_176 - 0x04
- Mem407[esp_406 + 0x00:word32] = eax_381
- eax_411 = fn00408438(ebx_170, ebp_175, es_161, ds_160, dwArg00, out edx_408, out ebx_409, out xmm0_410)
- esp_413 = esp_406 + 0x04
- branch eax_411 == edi_168 l0040985D
- l00409854:
- Mem416[eax_411 + 0x00:word32] = 0xDDDD
- l0040985A:
- xmm0_394 = PHI(xmm0_166, xmm0_410)
- edx_395 = PHI(edx_167, edx_408)
- ebx_396 = PHI(ebx_170, ebx_409)
- eax_398 = PHI(eax_402, eax_411)
- esp_399 = PHI(esp_176, esp_413)
- eax_400 = eax_398 + 0x08
- l0040985D:
- xmm0_386 = PHI(xmm0_166, xmm0_394, xmm0_410)
- edx_387 = PHI(edx_167, edx_395, edx_408)
- ebx_388 = PHI(ebx_170, ebx_396, ebx_409)
- eax_390 = PHI(eax_402, eax_400, eax_411)
- esp_391 = PHI(esp_176, esp_399, esp_413)
- Mem392[ebp_175 - 0x1C + 0x00:word32] = eax_390
- l00409865:
- xmm0_179 = PHI(xmm0_386, xmm0_166)
- edx_180 = PHI(edx_387, edx_167)
- ebx_181 = PHI(ebx_388, ebx_170)
- esp_184 = PHI(esp_391, esp_176)
- branch Mem0[ebp_175 - 0x1C + 0x00:word32] == edi_168 l00409842
- l0040986A:
- eax_187 = esi_169 * 0x02
- esp_188 = esp_184 - 0x04
- Mem189[esp_188 + 0x00:word32] = eax_187
- esp_190 = esp_188 - 0x04
- Mem191[esp_188 - 0x04 + 0x00:word32] = edi_168
- esp_192 = esp_188 - 0x08
- Mem193[esp_188 - 0x08 + 0x00:word32] = Mem191[ebp_175 - 0x1C + 0x00:word32]
- eax_197 = fn00404CA0(xmm0_179, ebp, dwArg00, dwArg04, dwArg08, out edx_195, out edi_196)
- esp_198 = esp_188 + 0x04
- esp_200 = esp_188
- Mem201[esp_188 + 0x00:word32] = esi_169
- esp_202 = esp_188 - 0x04
- Mem203[esp_188 - 0x04 + 0x00:word32] = Mem201[ebp_175 - 0x1C + 0x00:word32]
- esp_204 = esp_188 - 0x08
- Mem205[esp_188 - 0x08 + 0x00:word32] = Mem203[ebp_175 - 0x24 + 0x00:word32]
- esp_206 = esp_188 - 0x0C
- Mem207[esp_188 - 0x0C + 0x00:word32] = Mem205[ebp_175 - 0x28 + 0x00:word32]
- esp_208 = esp_188 - 0x10
- Mem209[esp_188 - 0x10 + 0x00:word32] = 0x01
- esp_210 = esp_188 - 0x14
- Mem211[esp_188 - 0x14 + 0x00:word32] = Mem209[ebp_175 + 0x08:word32]
- call ebx_181 (retsize: 4; depth: 4)
- uses: C_173,CZ_178,D_164,ds_160,dwLoc04_6,dwLoc08_12,dwLoc20_177,dwLoc24_35,dwLoc28_28,dwLoc2C_17,dwLoc30_158,dwLoc34_23,dwLoc38_34,dwLoc3C_22,dwLoc40_27,dwLoc44_32,dwLoc48_159,dwLoc4C_153,dwLoc50_154,dwLoc54_155,dwLoc58_156,dwLoc5C_157,eax_197,ebp_175,ebx_181,ecx_182,edi_196,edx_195,es_161,esi_169,esp_210,SCZO_199,SZO_172,xmm0_179,Z_186
- defs: C_218,CZ_223,D_228,ds_226,eax_216,ebp_214,ebx_220,ecx_219,edi_213,edx_224,es_225,esi_221,esp_212,SCZO_215,SZO_217,xmm0_227,Z_222
- branch eax_216 == 0x00 l0040990E
- l0040988F:
- ebx_254 = Mem211[ebp_214 - 0x34 + 0x00:word32]
- branch ebx_254 == edi_213 l004098B3
- l00409896:
- esp_257 = esp_212 - 0x04
- Mem258[esp_212 - 0x04 + 0x00:word32] = edi_213
- esp_259 = esp_212 - 0x08
- Mem260[esp_212 - 0x08 + 0x00:word32] = edi_213
- esp_261 = esp_212 - 0x0C
- Mem262[esp_212 - 0x0C + 0x00:word32] = Mem260[ebp_214 + 0x1C:word32]
- esp_263 = esp_212 - 0x10
- Mem264[esp_212 - 0x10 + 0x00:word32] = ebx_254
- esp_265 = esp_212 - 0x14
- Mem266[esp_212 - 0x14 + 0x00:word32] = esi_221
- esp_267 = esp_212 - 0x18
- Mem268[esp_212 - 0x18 + 0x00:word32] = Mem266[ebp_214 - 0x1C + 0x00:word32]
- esp_269 = esp_212 - 0x1C
- Mem270[esp_212 - 0x1C + 0x00:word32] = edi_213
- esp_271 = esp_212 - 0x20
- Mem272[esp_212 - 0x20 + 0x00:word32] = Mem270[ebp_214 + 0x0C:word32]
- eax_273 = WideCharToMultiByte(Mem272[esp_212 - 0x20 + 0x00:UINT], Mem272[esp_212 - 0x1C + 0x00:DWORD], Mem272[esp_212 - 0x18 + 0x00:LPCWSTR], Mem272[esp_212 - 0x14 + 0x00:int32], Mem272[esp_212 - 0x10 + 0x00:LPSTR], Mem272[esp_212 - 0x0C + 0x00:int32], Mem272[esp_212 - 0x08 + 0x00:LPCSTR], Mem272[esp_212 - 0x04 + 0x00:LPBOOL])
- esp_274 = esp_212
- branch eax_273 == 0x00 l0040990E
- l004098AE:
- Mem278[ebp_214 - 0x20 + 0x00:word32] = ebx_254
- goto l0040990E
- l004098B3:
- ebx_279 = WideCharToMultiByte
- branch Mem211[ebp_214 - 44 + 0x00:word32] != edi_213 l004098D2
- l004098BE:
- esp_355 = esp_212 - 0x04
- Mem356[esp_212 - 0x04 + 0x00:word32] = edi_213
- esp_357 = esp_212 - 0x08
- Mem358[esp_212 - 0x08 + 0x00:word32] = edi_213
- esp_359 = esp_212 - 0x0C
- Mem360[esp_212 - 0x0C + 0x00:word32] = edi_213
- esp_361 = esp_212 - 0x10
- Mem362[esp_212 - 0x10 + 0x00:word32] = edi_213
- esp_363 = esp_212 - 0x14
- Mem364[esp_212 - 0x14 + 0x00:word32] = esi_221
- esp_365 = esp_212 - 0x18
- Mem366[esp_212 - 0x18 + 0x00:word32] = Mem364[ebp_214 - 0x1C + 0x00:word32]
- esp_367 = esp_212 - 0x1C
- Mem368[esp_212 - 0x1C + 0x00:word32] = edi_213
- esp_369 = esp_212 - 0x20
- Mem370[esp_212 - 0x20 + 0x00:word32] = Mem368[ebp_214 + 0x0C:word32]
- eax_371 = WideCharToMultiByte(Mem370[esp_212 - 0x20 + 0x00:UINT], Mem370[esp_212 - 0x1C + 0x00:DWORD], Mem370[esp_212 - 0x18 + 0x00:LPCWSTR], Mem370[esp_212 - 0x14 + 0x00:int32], Mem370[esp_212 - 0x10 + 0x00:LPSTR], Mem370[esp_212 - 0x0C + 0x00:int32], Mem370[esp_212 - 0x08 + 0x00:LPCSTR], Mem370[esp_212 - 0x04 + 0x00:LPBOOL])
- esp_372 = esp_212
- esi_373 = eax_371
- branch eax_371 == edi_213 l0040990E
- l004098D2:
- esi_282 = PHI(esi_221, esi_373)
- esp_283 = PHI(esp_212, esp_372)
- esp_284 = esp_283 - 0x04
- Mem285[esp_284 + 0x00:word32] = esi_282
- esp_286 = esp_284 - 0x04
- Mem287[esp_284 - 0x04 + 0x00:word32] = 0x01
- D_295 = fn004048DF(WideCharToMultiByte, edi_213, es_225, ds_226, out eax_288, out edx_289, out ebx_290, out ebp_291, out esi_292, out edi_293, out xmm0_294)
- esp_297 = esp_284
- esp_299 = esp_284 + 0x04
- Mem300[ebp_291 - 0x20 + 0x00:word32] = eax_288
- branch eax_288 == edi_293 l0040990E
- l004098E3:
- esp_303 = esp_284
- Mem304[esp_284 + 0x00:word32] = edi_293
- esp_305 = esp_284 - 0x04
- Mem306[esp_284 - 0x04 + 0x00:word32] = edi_293
- esp_307 = esp_284 - 0x08
- Mem308[esp_284 - 0x08 + 0x00:word32] = esi_292
- esp_309 = esp_284 - 0x0C
- Mem310[esp_284 - 0x0C + 0x00:word32] = eax_288
- esp_311 = esp_284 - 0x10
- Mem312[esp_284 - 0x10 + 0x00:word32] = esi_292
- esp_313 = esp_284 - 0x14
- Mem314[esp_284 - 0x14 + 0x00:word32] = Mem312[ebp_291 - 0x1C + 0x00:word32]
- esp_315 = esp_284 - 0x18
- Mem316[esp_284 - 0x18 + 0x00:word32] = edi_293
- esp_317 = esp_284 - 0x1C
- Mem318[esp_284 - 0x1C + 0x00:word32] = Mem316[ebp_291 + 0x0C:word32]
- call ebx_290 (retsize: 4; depth: 4)
- uses: C_231,CZ_223,D_295,ds_226,dwLoc04_6,dwLoc08_12,dwLoc20_177,dwLoc24_35,dwLoc28_28,dwLoc2C_17,dwLoc30_158,dwLoc34_23,dwLoc38_34,dwLoc3C_22,dwLoc40_27,dwLoc44_32,dwLoc48_159,dwLoc4C_153,dwLoc50_154,dwLoc54_155,dwLoc58_156,dwLoc5C_157,eax_288,ebp_291,ebx_290,ecx_298,edi_293,edx_289,es_225,esi_292,esp_317,SCZO_301,SZO_229,xmm0_294,Z_302
- defs: C_325,CZ_330,D_335,ds_333,eax_323,ebp_321,ebx_327,ecx_326,edi_320,edx_331,es_332,esi_328,esp_319,SCZO_322,SZO_324,xmm0_334,Z_329
- branch eax_323 != edi_320 l00409903
- l004098F5:
- esp_338 = esp_319 - 0x04
- Mem339[esp_319 - 0x04 + 0x00:word32] = Mem318[ebp_321 - 0x20 + 0x00:word32]
- fn004047EB(ebx_327, esi_328, edi_320, es_332, ds_333, out eax_340, out edx_341, out ebx_342, out ebp_343, out esi_344, out edi_345, out xmm0_346)
- esp_349 = esp_319
- Mem350[ebp_343 - 0x20 + 0x00:word32] = edi_345
- goto l0040990E
- l00409903:
- branch Mem318[ebp_321 - 0x24 + 0x00:word32] == ~0x00 l0040990E
- l00409909:
- ecx_353 = Mem318[ebp_321 - 0x30 + 0x00:word32]
- Mem354[ecx_353 + 0x00:word32] = eax_323
- l0040990E:
- ds_232 = PHI(ds_226, ds_226, ds_226, ds_226, ds_226, ds_333, ds_333, ds_333)
- es_233 = PHI(es_225, es_225, es_225, es_225, es_225, es_332, es_332, es_332)
- edi_238 = PHI(edi_213, edi_213, edi_213, edi_213, edi_293, edi_345, edi_320, edi_320)
- esi_239 = PHI(esi_221, esi_221, esi_221, esi_373, esi_292, esi_344, esi_328, esi_328)
- ebx_240 = PHI(ebx_220, ebx_254, ebx_254, ebx_279, ebx_290, ebx_342, ebx_327, ebx_327)
- ebp_244 = PHI(ebp_214, ebp_214, ebp_214, ebp_214, ebp_291, ebp_343, ebp_321, ebp_321)
- esp_245 = PHI(esp_212, esp_274, esp_274, esp_372, esp_299, esp_349, esp_319, esp_319)
- esp_246 = esp_245 - 0x04
- Mem247[esp_246 + 0x00:word32] = Mem211[ebp_244 - 0x1C + 0x00:word32]
- edx_251 = fn00407A4D(ebx_240, esi_239, edi_238, es_233, ds_232, dwArg00, out ebx_248, out esi_249, out xmm0_250)
- l00409917:
- ds_98 = PHI(ds, ds_232)
- es_99 = PHI(es, es_233)
- xmm0_104 = PHI(xmm0, xmm0_250)
- edx_105 = PHI(edx, edx_251)
- ebp_112 = PHI(ebp_7, ebp_244)
- eax_114 = Mem0[ebp_112 - 0x20 + 0x00:word32]
- l0040991A:
- ds_63 = PHI(ds_98, ds_135)
- es_64 = PHI(es_99, es_136)
- xmm0_69 = PHI(xmm0_104, xmm0_141)
- edx_70 = PHI(edx_105, edx_142)
- eax_71 = PHI(eax_114, eax_150)
- ebp_72 = PHI(ebp_112, ebp_147)
- esp_73 = ebp_72 - 0x40
- edi_74 = Mem0[esp_73 + 0x00:word32]
- esp_75 = esp_73 + 0x04
- esi_76 = Mem0[esp_73 + 0x04:word32]
- esp_77 = esp_73 + 0x08
- ebx_78 = Mem0[esp_73 + 0x08:word32]
- ecx_80 = Mem0[ebp_72 - 0x04 + 0x00:word32]
- ecx_81 = ecx_80 ^ ebp_72
- eax_84 = fn00404BEF(eax_71, ecx_81, edx_70, ebx_78, ebp_72, esi_76, edi_74, es_64, ds_63)
- return eax_84
- fn00409778_exit:
- use edx_70 (=> edxOut)
- use xmm0_69 (=> xmm0Out)
- }
- void fn00409930(word32 eax)
- {
- word32 eax_9 = eax + ((fp + 0x04) - eax & 0x0F);
- word32 eax_13 = eax_9 | 0x00 - (eax_9 <u 0x00);
- fn004077F0(eax_13, dwArg00);
- return;
- }
- word32 fn0040995C(word32 ebx, selector es, selector ds, word32 dwArg04, ptr32 & edxOut, ptr32 & ebxOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- word32 edx_18;
- word32 ebx_19;
- word32 esi_20;
- word128 xmm0_21;
- return fn00408D15(ebx, es, ds, dwArg04, 0x00, 0x0A, out edx_18, out ebx_19, out esi_20, out xmm0_21);
- }
- word32 fn00409972(word32 ebx, word32 ebp, selector es, selector ds, word32 dwArg0C, ptr32 & edxOut, ptr32 & blOut, ptr32 & esiOut, ptr32 & xmm0Out)
- {
- *esiOut = esi;
- word32 eax_142;
- word32 eax_133;
- word32 ebx_19;
- word128 xmm0_20;
- word32 edx_21;
- *edxOut = fn00401759(fp - 0x1C, ebx, es, ds, dwArg0C, out ebx_19, out xmm0_20);
- word32 ebx_24 = Mem0[fp + 0x04:word32];
- word32 esp_127 = fp - 0x20;
- byte bl_25 = (byte) ebx_24;
- if (ebx_24 <=u ~0xFE)
- eax_142 = (word32) Mem0[Mem0[fp - 0x1C + 0x00:word32] + 200:word32][ebx_24 * 0x02];
- else
- {
- word32 ecx_150;
- Mem74[fp + 0x04:word32] = ebx_24;
- Mem76[fp + 0x04:word32] = Mem74[fp + 0x04:word32] >> 0x08;
- Mem79[fp - 0x24 + 0x00:word32] = fp - 0x1C;
- Mem85[fp - 0x28 + 0x00:word32] = Mem79[fp + 0x04:word32] & 0xFF;
- word32 esp_100 = fp - 0x20;
- word32 edx_87;
- word32 ebx_88;
- word32 esi_89;
- word128 xmm0_90;
- if (fn00404BA4(ebx_24, es, ds, dwArg04, out edx_87, out ebx_88, out esi_89, out xmm0_90) != 0x00)
- {
- byte al_144 = Mem85[fp + 0x04:byte];
- Mem146[fp - 0x24 + 0x00:word32] = 0x02;
- Mem147[fp - 0x0C + 0x00:byte] = al_144;
- Mem148[fp - 11 + 0x00:byte] = bl_25;
- Mem149[fp - 0x0A + 0x00:byte] = 0x00;
- ecx_150 = Mem149[fp - 0x24 + 0x00:word32];
- esp_100 = fp - 0x20;
- }
- else
- {
- Mem154[fp - 0x0C + 0x00:byte] = bl_25;
- Mem155[fp - 11 + 0x00:byte] = 0x00;
- ecx_150 = 0x01;
- }
- word32 eax_101 = Mem85[fp - 0x1C + 0x00:word32];
- word32 esp_102 = esp_100 - 0x04;
- Mem103[esp_102 + 0x00:word32] = 0x01;
- Mem105[esp_102 - 0x04 + 0x00:word32] = Mem103[eax_101 + 0x14:word32];
- Mem107[esp_102 - 0x08 + 0x00:word32] = Mem105[eax_101 + 0x04:word32];
- Mem110[esp_102 - 0x0C + 0x00:word32] = fp - 0x08;
- Mem112[esp_102 - 0x10 + 0x00:word32] = ecx_150;
- Mem115[esp_102 - 0x14 + 0x00:word32] = fp - 0x0C;
- Mem118[esp_102 - 0x18 + 0x00:word32] = 0x01;
- Mem120[esp_102 - 0x1C + 0x00:word32] = fp - 0x1C;
- word32 edx_122;
- word32 esi_123;
- word128 xmm0_124;
- word32 eax_125 = fn00408011(ebx_88, fp - 0x04, es, ds, dwArg00, out edx_122, out esi_123, out xmm0_124);
- byte al_126 = (byte) eax_125;
- esp_127 = esp_102 + 0x04;
- if (eax_125 == 0x00)
- {
- if (Mem120[fp - 0x10 + 0x00:byte] != al_126)
- {
- word32 eax_137 = Mem120[fp - 0x14 + 0x00:word32];
- Mem139[eax_137 + 0x70:word32] = Mem120[eax_137 + 0x70:word32] & ~0x02;
- }
- eax_133 = 0x00;
- l00409A27:
- byte bl_41;
- *blOut = (byte) Mem0[esp_127 + 0x00:word32];
- return eax_133;
- }
- eax_142 = (word32) Mem120[fp - 0x08 + 0x00:word16];
- }
- eax_133 = eax_142 & Mem0[fp + 0x08:word32];
- if (Mem0[fp - 0x10 + 0x00:byte] != 0x00)
- {
- word32 ecx_62 = Mem0[fp - 0x14 + 0x00:word32];
- Mem64[ecx_62 + 0x70:word32] = Mem0[ecx_62 + 0x70:word32] & ~0x02;
- }
- goto l00409A27;
- }
Add Comment
Please, Sign In to add comment