Function at 0x450160
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x512640
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x28]
push ebp
push esi
push edi
mov esi, ecx
push ebx
mov dword [esp + 0x14], esi
call fcn.0044fd40
xor edi, edi
lea ecx, [esi + 0x138]
push ebx
mov dword [esp + 0x30], edi
call fcn.0044ebb0
lea ecx, [esi + 0x1b4]
mov byte [esp + 0x2c], 1
call fcn.00501a9a
lea ecx, [esi + 0x1b8]
mov byte [esp + 0x2c], 2
call fcn.00501a9a
lea ecx, [esi + 0x304]
mov byte [esp + 0x2c], 3
call fcn.004e1040
mov dword [esi + 0x3d8], edi
mov dword [esi + 0x3dc], edi
mov dword [esi + 0x3e0], edi
mov dword [esi + 0x3e4], edi
mov dword [esi + 0x3e8], edi
mov dword [esi + 0x3ec], edi
mov dword [esi + 0x3f0], edi
mov dword [esi + 0x3f4], edi
mov dword [esi + 0x3f8], edi
mov dword [esi + 0x3fc], edi
mov dword [esi + 0x400], edi
mov dword [esi + 0x404], edi
mov dword [esi + 0x408], edi
mov dword [esi + 0x40c], edi
mov dword [esi], vtable.CEnemy.0
mov eax, dword [esi + 0xc]
mov ebp, dword [sym.imp.USER32.dll_SetRectEmpty]
mov byte [esp + 0x2c], 4
mov ebx, dword [eax + 8]
or ebx, 0x80000
mov dword [eax + 8], ebx
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x168]
mov eax, 0x32
mov dword [esi + 4], ecx
mov dword [esi + 0x194], 6
mov dword [esi + 0x198], edi
mov dword [esi + 0x298], edi
mov dword [esi + 0x29c], 0x190
mov dword [esi + 0x2a0], eax
mov dword [esi + 0x2ac], 0x12c
mov dword [esi + 0x2b0], eax
mov dword [esi + 0x2b4], 0xc8
mov dword [esi + 0x2b8], eax
mov dword [esi + 0x2bc], 0x64
mov dword [esi + 0x2c0], eax
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x118]
mov dword [esi + 0x2f4], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x124]
mov dword [esi + 0x2f8], edx
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x68]
mov dword [esi + 0x2fc], ecx
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 0x68]
mov dword [esi + 0x300], eax
lea eax, [esi + 0x220]
mov dword [esi + 0x1ac], 0xffffffff
push eax
mov dword [esi + 0x1b0], edi
call ebp
lea ebx, [esi + 0x230]
push ebx
call ebp
lea ebp, [esi + 0x240]
push ebp
call dword [sym.imp.USER32.dll_SetRectEmpty]
lea eax, [esi + 0x250]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
lea eax, [esi + 0x260]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
lea eax, [esi + 0x270]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
push edi
push 0x545dfc
lea ecx, [esp + 0x1c]
call fcn.004e0cd0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 5
push ecx
lea ecx, [esi + 0x304]
call fcn.004e0c20
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 4
call fcn.004e0bd0
mov edx, dword [esi + 0x10]
cmp dword [edx + 0x64], edi
jle 0x45037c
push 2
lea ecx, [esi + 0x304]
call fcn.004224b0
push 9
lea ecx, [esi + 0x304]
call fcn.004224b0
mov dword [esi + 0x2c4], edi
mov dword [esi + 0x2c8], edi
mov dword [esi + 0x2cc], edi
mov dword [esi + 0x2d0], edi
mov dword [esi + 0x2d4], edi
mov dword [esi + 0x2d8], edi
mov dword [esi + 0x1bc], edi
mov dword [esi + 0x2dc], edi
mov dword [esi + 0x2e0], edi
mov dword [esi + 0x318], edi
mov dword [esi + 0x31c], edi
mov dword [esi + 0x320], edi
mov dword [esi + 0x324], edi
mov dword [esi + 0x328], edi
mov dword [esi + 0x32c], edi
mov dword [esi + 0x330], edi
mov dword [esi + 0x33c], edi
mov dword [esi + 0x340], edi
mov dword [esi + 0x344], edi
mov dword [esi + 0x348], edi
mov dword [esi + 0x34c], edi
mov dword [esi + 0x350], edi
mov dword [esi + 0x354], edi
mov dword [esi + 0x358], edi
mov dword [esi + 0x35c], edi
mov dword [esi + 0x360], edi
mov dword [esi + 0x364], edi
mov dword [esi + 0x368], edi
mov dword [esi + 0x36c], edi
mov dword [esi + 0x370], edi
mov dword [esi + 0x374], edi
mov dword [esi + 0x378], edi
mov dword [esi + 0x37c], edi
mov dword [esi + 0x380], edi
mov dword [esi + 0x384], edi
mov dword [esi + 0x388], edi
mov dword [esi + 0x38c], edi
mov dword [esi + 0x390], edi
mov dword [esi + 0x394], edi
push str.GAME_SPLASH
lea ecx, [esi + 0x138]
mov dword [esi + 0x398], edi
call fcn.00410080
push str.GAME_HIT1
lea ecx, [esi + 0x138]
mov dword [esi + 0x39c], eax
call fcn.00410080
push str.GAME_HIT2
lea ecx, [esi + 0x138]
mov dword [esi + 0x3a0], eax
call fcn.00410080
push str.GAME_HIT3
lea ecx, [esi + 0x138]
mov dword [esi + 0x3a4], eax
call fcn.00410080
push str.GAME_HIT4
lea ecx, [esi + 0x138]
mov dword [esi + 0x3a8], eax
call fcn.00410080
push str.GAME_PURELEASE1
lea ecx, [esi + 0x138]
mov dword [esi + 0x3ac], eax
call fcn.00410080
mov dword [esi + 0x158], eax
mov dword [esi + 0x3b0], edi
mov dword [esi + 0x3b4], edi
mov dword [esi + 0x3b8], edi
mov dword [esi + 0x3bc], edi
mov dword [esi + 0x3c0], edi
mov dword [esi + 0x3c4], edi
mov dword [esi + 0x3c8], edi
mov dword [esi + 0x3cc], edi
mov dword [esi + 0x3d0], edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], 0x409f4000
mov eax, dword [esi + 0x13c]
mov edx, dword [eax + 0x174]
and edx, 0xfffffffe
mov dword [eax + 0x174], edx
mov eax, dword [esi + 0x13c]
test byte [eax + 0x40], 2
je 0x450569
lea ecx, [esi + 0x138]
call fcn.00438c20
mov dword [esi + 0x438], edi
mov dword [esi + 0x43c], edi
mov dword [esi + 0x440], edi
mov dword [esi + 0x444], edi
mov dword [esi + 0x448], edi
mov dword [esi + 0x44c], edi
mov dword [esi + 0x450], edi
mov dword [esi + 0x454], edi
mov dword [esi], vtable.CHumanEnemy.0
mov eax, dword [esi + 0xc]
push str.GAME_HIT1
mov dword [esp + 0x30], 6
mov ecx, dword [eax + 8]
or ecx, 0x80000
mov dword [eax + 8], ecx
mov dword [esi + 0x434], edi
mov dword [esi + 0x458], edi
mov dword [esi + 0x2e0], 0xa
mov dword [esi + 0x418], edi
mov dword [esi + 0x41c], edi
mov dword [esi + 0x424], edi
mov dword [esi + 0x428], edi
mov ecx, dword [esi + 0x13c]
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 0x28]
call fcn.0045cf40
mov dword [esi + 0x42c], eax
mov eax, dword [esi + 0x13c]
push str.LEVEL_DEATHTILE
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x28]
call fcn.0045cf40
mov dword [esi + 0x3b8], eax
mov edx, dword [esi + 0x13c]
push str.LEVEL_DEATHTILE
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x28]
call fcn.0045cf40
mov dword [esi + 0x3bc], eax
mov dword [esi + 0x420], edi
mov dword [esi + 0x41c], edi
mov dword [esi + 0x430], edi
mov ecx, dword [esi + 0x13c]
push str.GAME_SOLHITL2
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 0x28]
call fcn.0045cf40
mov dword [esi + 0x424], eax
mov eax, dword [esi + 0x13c]
push str.GAME_SOLHITHI
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x28]
call fcn.0045cf40
mov dword [esi + 0x428], eax
mov edx, dword [esi + 0x13c]
push str.GAME_LELAND
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x28]
call fcn.0045cf40
mov dword [esi + 0x418], eax
mov dword [esi + 0x45c], edi
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x6c], edi
mov ecx, dword [0x521978]
mov edx, dword [0x52197c]
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], edx
mov eax, dword [0x521980]
mov ecx, dword [0x521984]
mov dword [esi + 0xb0], eax
mov dword [esi + 0xb4], ecx
push edi
lea ecx, [esi + 0x304]
mov dword [esi + 0x410], 0x3c
mov dword [esi + 0x414], 0x78
call fcn.004224b0
push 3
lea ecx, [esi + 0x304]
call fcn.004224b0
push 5
lea ecx, [esi + 0x304]
call fcn.004224b0
mov dword [esi + 0x134], 8
mov eax, dword [esi + 0x13c]
push 0xfffffffffffffff9
push edi
mov edx, dword [eax + 8]
push 0xffffffffffffffe5
or edx, 0x40
push 0xffffff77
mov dword [eax + 8], edx
mov eax, dword [esi + 0x13c]
mov ecx, dword [eax + 0x174]
or ch, 4
mov dword [eax + 0x174], ecx
mov edx, dword [esi + 0x13c]
mov ecx, ebp
mov dword [edx + 0xdc], 4
mov eax, dword [esi + 0x13c]
mov dword [eax + 0xe0], 0x3001032
call fcn.0042b730
push 0x28
push edi
push 0x14
push 0xffffff77
lea ecx, [esi + 0x250]
call fcn.0042b730
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
mov dword [ebx], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebx + 4], edx
push 1
mov dword [ebx + 8], eax
push 1
mov dword [ebx + 0xc], ecx
push 0xffffffffffffffff
push 0xffffffffffffffff
lea ecx, [esi + 0x220]
call fcn.0042b730
push 0x33
push 0x14
lea ebx, [esi + 0x260]
push 0xffffffffffffffc4
push 0xffffffffffffffec
mov ecx, ebx
call fcn.0042b730
push 0xf
push 0x14
push 0xfffffffffffffff1
push 0xffffffffffffffec
lea ecx, [esi + 0x270]
call fcn.0042b730
push 0x32
push 0x14
lea edi, [esi + 0x138]
push 0xffffffffffffffce
push 0xffffffffffffffec
mov ecx, edi
call fcn.0040b420
push ebx
mov ecx, edi
call fcn.0040b450
mov eax, 0x28
mov dword [esi + 0x29c], 0x1f4
mov dword [esi + 0x2a0], eax
mov dword [esi + 0x2ac], 0xc8
mov dword [esi + 0x2b0], eax
mov dword [esi + 0x2b4], 0x96
mov dword [esi + 0x2b8], eax
mov dword [esi + 0x2bc], 0x64
mov edi, 0xa
mov dword [esi + 0x2c0], eax
mov dword [esi + 0x2c4], edi
mov dword [esi + 0x2c8], 0xfffffff6
mov dword [esi + 0x2a4], 0x12c
mov dword [esi + 0x2a8], eax
mov dword [esi + 0x2cc], 0xffffffd3
mov dword [esi + 0x2d0], 0xffffffec
mov dword [esi + 0x2d4], 0x14
mov dword [esi + 0x2d8], 0xfffffff1
mov dword [esi + 0x2f4], 0x32
fld dword [0x5375b0]
fmul dword [0x51b890]
call fcn.004aab10
cmp eax, 0x63
ja 0x4508b3
mov eax, 0x63
mov dword [esi + 0x2f4], eax
mov edx, dword [esi + 0xc]
mov dword [edx + 0x11c], edi
mov ebx, dword [esi + 0xc]
fild dword [ebx + 0x11c]
fmul dword [0x5375ac]
call fcn.004aab10
mov dword [ebx + 0x11c], eax
mov eax, dword [esi + 0xc]
mov dword [eax + 0x114], edi
mov edi, dword [esi + 0xc]
fild dword [edi + 0x114]
fmul dword [0x5375a8]
call fcn.004aab10
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x114], eax
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x20
ret 4