Function at 0x53e5f4
Capabilities:
Check for peb ntglobalflag flag
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x8a
push 0
push 0
dec ecx
jne 0x53e5fc
push ebx
push esi
push edi
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x278]
mov edx, dword [0x46ec28]
call fcn.00407644
xor eax, eax
push ebp
push 0x5400d3
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00516e3c
mov edx, dword [ebp - 0x27c]
mov byte [edx + 5], al
mov dl, 1
mov eax, dword [0x512b34]
call fcn.005139a4
mov dword [ebp - 0x280], eax
mov dl, 1
mov eax, dword [0x4a1a70]
call fcn.004a1d2c
mov dword [ebp - 0x28c], eax
mov dl, 1
mov eax, dword [0x48b8c0]
call fcn.00491c08
mov dword [ebp - 0x294], eax
xor edx, edx
push ebp
push 0x540080
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x27c]
call fcn.0053e078
mov edx, dword [ebp - 0x27c]
mov byte [edx + 4], al
mov eax, dword [ebp - 0x27c]
mov dword [eax + 8], 0x60
mov edx, 0x80000001
mov eax, dword [ebp - 0x28c]
call fcn.004a1dcc
mov edx, 0x5400f0
mov eax, dword [ebp - 0x28c]
call fcn.004a1f5c
test al, al
je 0x53e6fd
xor eax, eax
push ebp
push 0x53e6f3
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x540144
mov eax, dword [ebp - 0x28c]
call fcn.004a26a4
mov edx, dword [ebp - 0x27c]
mov dword [edx + 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e6fd
xor eax, eax
push ebp
push 0x53e72e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x27c]
fild dword [eax + 8]
fdiv dword [0x54015c]
mov eax, dword [ebp - 0x27c]
fstp qword [eax + 0x10]
wait
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e74a
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
xor edx, edx
call fcn.00513380
mov eax, dword [ebp - 0x29c]
lea edx, [ebp - 0x298]
call fcn.0047a47c
mov edx, dword [ebp - 0x298]
mov eax, dword [ebp - 0x27c]
add eax, 0x1c
call fcn.00406ba8
lea ecx, [ebp - 0x2a4]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 1
call fcn.00513380
mov eax, dword [ebp - 0x2a4]
lea edx, [ebp - 0x2a0]
call fcn.0047a47c
mov edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x27c]
add eax, 0x20
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x27c]
add eax, 0x24
mov ecx, 0x54016c
call fcn.00406f8c
lea ecx, [ebp - 0x2ac]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xc
call fcn.00513380
mov eax, dword [ebp - 0x2ac]
lea edx, [ebp - 0x2a8]
call fcn.0047a47c
mov edx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x27c]
add eax, 0x30
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0x30], 0
je 0x53e88c
lea edx, [ebp - 0x2b8]
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0x30]
call fcn.0047a4cc
mov eax, dword [ebp - 0x2b8]
lea edx, [ebp - 0x2b4]
call fcn.00471f48
mov eax, dword [ebp - 0x2b4]
lea edx, [ebp - 0x2b0]
call fcn.0047a47c
mov edx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x27c]
add eax, 0x2c
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x27c]
add eax, 0x54
mov ecx, 0x54018c
call fcn.00406f8c
lea ecx, [ebp - 0x2c0]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xd
call fcn.00513380
mov eax, dword [ebp - 0x2c0]
lea edx, [ebp - 0x2bc]
call fcn.0047a47c
mov edx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x27c]
add eax, 0x34
call fcn.00406ba8
lea ecx, [ebp - 0x2c8]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xb
call fcn.00513380
mov eax, dword [ebp - 0x2c8]
lea edx, [ebp - 0x2c4]
call fcn.0047a47c
mov edx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x27c]
add eax, 0x28
call fcn.00406ba8
lea ecx, [ebp - 0x2d0]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
xor edx, edx
call fcn.00513244
mov eax, dword [ebp - 0x2d0]
lea edx, [ebp - 0x2cc]
call fcn.0047a47c
mov edx, dword [ebp - 0x2cc]
mov eax, dword [ebp - 0x27c]
add eax, 0x40
call fcn.00406ba8
lea eax, [ebp - 0x2d4]
call fcn.0051496c
mov edx, dword [ebp - 0x2d4]
mov eax, dword [ebp - 0x27c]
add eax, 0x44
call fcn.00406ba8
lea ecx, [ebp - 0x2dc]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 8
call fcn.00513380
mov eax, dword [ebp - 0x2dc]
lea edx, [ebp - 0x2d8]
call fcn.0047a47c
mov edx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x27c]
add eax, 0x48
call fcn.00406ba8
lea ecx, [ebp - 0x2e4]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 3
call fcn.00513244
mov eax, dword [ebp - 0x2e4]
lea edx, [ebp - 0x2e0]
call fcn.0047a47c
mov edx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x27c]
add eax, 0x4c
call fcn.00406ba8
lea ecx, [ebp - 0x2ec]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 2
call fcn.00513244
mov eax, dword [ebp - 0x2ec]
lea edx, [ebp - 0x2e8]
call fcn.0047a47c
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x27c]
add eax, 0x50
call fcn.00406ba8
lea ecx, [ebp - 0x2f4]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xf
call fcn.00513380
mov eax, dword [ebp - 0x2f4]
lea edx, [ebp - 0x2f0]
call fcn.0047a47c
mov edx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x27c]
add eax, 0x58
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
cmp byte [eax + 5], 0
je 0x53ea9a
movzx eax, byte [0x5401e0]
push eax
lea eax, [ebp - 0x2f8]
push eax
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0x58]
mov ecx, 0x5401f0
mov edx, 0x540218
call fcn.0047aefc
mov edx, dword [ebp - 0x2f8]
mov eax, dword [ebp - 0x27c]
add eax, 0x58
call fcn.00406ba8
lea ecx, [ebp - 0x300]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xf
call fcn.00513380
mov eax, dword [ebp - 0x300]
lea edx, [ebp - 0x2fc]
call fcn.0047a47c
mov edx, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x27c]
add eax, 0x5c
call fcn.00406ba8
lea edx, [ebp - 0x30c]
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0x1c]
call fcn.0047a4cc
mov eax, dword [ebp - 0x30c]
lea edx, [ebp - 0x308]
call fcn.00471f48
mov eax, dword [ebp - 0x308]
lea edx, [ebp - 0x304]
call fcn.0047a47c
mov edx, dword [ebp - 0x304]
mov eax, dword [ebp - 0x27c]
add eax, 0x18
call fcn.00406ba8
lea ecx, [ebp - 0x314]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0x1e
call fcn.00513380
mov eax, dword [ebp - 0x314]
lea edx, [ebp - 0x310]
call fcn.0047a47c
mov edx, dword [ebp - 0x310]
mov eax, dword [ebp - 0x27c]
add eax, 0x60
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
cmp byte [eax + 5], 0
je 0x53eba5
movzx eax, byte [0x5401e0]
push eax
lea eax, [ebp - 0x318]
push eax
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0x60]
mov ecx, 0x5401f0
mov edx, 0x540218
call fcn.0047aefc
mov edx, dword [ebp - 0x318]
mov eax, dword [ebp - 0x27c]
add eax, 0x60
call fcn.00406ba8
lea ecx, [ebp - 0x320]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0x1f
call fcn.00513380
mov eax, dword [ebp - 0x320]
lea edx, [ebp - 0x31c]
call fcn.0047a47c
mov edx, dword [ebp - 0x31c]
mov eax, dword [ebp - 0x27c]
add eax, 0x64
call fcn.00406ba8
lea ecx, [ebp - 0x328]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 7
call fcn.00513380
mov eax, dword [ebp - 0x328]
lea edx, [ebp - 0x324]
call fcn.0047a47c
mov edx, dword [ebp - 0x324]
mov eax, dword [ebp - 0x27c]
add eax, 0x68
call fcn.00406ba8
lea ecx, [ebp - 0x330]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 1
call fcn.00513244
mov eax, dword [ebp - 0x330]
lea edx, [ebp - 0x32c]
call fcn.0047a47c
mov edx, dword [ebp - 0x32c]
mov eax, dword [ebp - 0x27c]
add eax, 0x6c
call fcn.00406ba8
lea ecx, [ebp - 0x338]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0x23
call fcn.00513380
mov eax, dword [ebp - 0x338]
lea edx, [ebp - 0x334]
call fcn.0047a47c
mov edx, dword [ebp - 0x334]
mov eax, dword [ebp - 0x27c]
add eax, 0x70
call fcn.00406ba8
lea ecx, [ebp - 0x340]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 8
call fcn.00513244
mov eax, dword [ebp - 0x340]
lea edx, [ebp - 0x33c]
call fcn.0047a47c
mov edx, dword [ebp - 0x33c]
mov eax, dword [ebp - 0x27c]
add eax, 0x74
call fcn.00406ba8
lea ecx, [ebp - 0x348]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0x1b
call fcn.00513380
mov eax, dword [ebp - 0x348]
lea edx, [ebp - 0x344]
call fcn.0047a47c
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x27c]
add eax, 0x78
call fcn.00406ba8
lea ecx, [ebp - 0x350]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xb
call fcn.00513244
mov eax, dword [ebp - 0x350]
lea edx, [ebp - 0x34c]
call fcn.0047a47c
mov edx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x27c]
add eax, 0x7c
call fcn.00406ba8
lea ecx, [ebp - 0x358]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0x18
call fcn.00513380
mov eax, dword [ebp - 0x358]
lea edx, [ebp - 0x354]
call fcn.0047a47c
mov edx, dword [ebp - 0x354]
mov eax, dword [ebp - 0x27c]
add eax, 0x80
call fcn.00406ba8
lea ecx, [ebp - 0x360]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xa
call fcn.00513244
mov eax, dword [ebp - 0x360]
lea edx, [ebp - 0x35c]
call fcn.0047a47c
mov edx, dword [ebp - 0x35c]
mov eax, dword [ebp - 0x27c]
add eax, 0x84
call fcn.00406ba8
lea ecx, [ebp - 0x368]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0x19
call fcn.00513380
mov eax, dword [ebp - 0x368]
lea edx, [ebp - 0x364]
call fcn.0047a47c
mov edx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x27c]
add eax, 0x88
call fcn.00406ba8
lea ecx, [ebp - 0x370]
mov eax, dword [ebp - 0x280]
mov eax, dword [eax]
mov edx, 0xc
call fcn.00513244
mov eax, dword [ebp - 0x370]
lea edx, [ebp - 0x36c]
call fcn.0047a47c
mov edx, dword [ebp - 0x36c]
mov eax, dword [ebp - 0x27c]
add eax, 0x8c
call fcn.00406ba8
push 0x540240
call sub.kernel32.dll_LoadLibraryW
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
jbe 0x53f003
xor edx, edx
push ebp
push 0x53effc
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x540258
mov eax, dword [ebp - 0x288]
push eax
call fcn.0040a178
mov esi, eax
mov ebx, esi
test esi, esi
je 0x53efe2
lea eax, [ebp - 0x284]
push eax
push 0
push 0
push 0x68a84c
call ebx
test eax, eax
jne 0x53eee6
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x284]
call fcn.00406d64
lea edx, [ebp - 0x374]
mov eax, dword [ebp - 4]
call fcn.0047a47c
mov edx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x27c]
add eax, 0x38
call fcn.00406ba8
mov eax, dword [ebp - 0x284]
push eax
call sub.ole32.dll_CoTaskMemFree
lea eax, [ebp - 0x284]
push eax
push 0
push 0
push 0x68a85c
call ebx
test eax, eax
jne 0x53ef3a
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x284]
call fcn.00406d64
lea edx, [ebp - 0x378]
mov eax, dword [ebp - 4]
call fcn.0047a47c
mov edx, dword [ebp - 0x378]
mov eax, dword [ebp - 0x27c]
add eax, 0x90
call fcn.00406ba8
mov eax, dword [ebp - 0x284]
push eax
call sub.ole32.dll_CoTaskMemFree
lea eax, [ebp - 0x284]
push eax
push 0
push 0
push 0x68a86c
call ebx
test eax, eax
jne 0x53ef8e
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x284]
call fcn.00406d64
lea edx, [ebp - 0x37c]
mov eax, dword [ebp - 4]
call fcn.0047a47c
mov edx, dword [ebp - 0x37c]
mov eax, dword [ebp - 0x27c]
add eax, 0x94
call fcn.00406ba8
mov eax, dword [ebp - 0x284]
push eax
call sub.ole32.dll_CoTaskMemFree
lea eax, [ebp - 0x284]
push eax
push 0
push 0
push 0x68a83c
call ebx
test eax, eax
jne 0x53efe2
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x284]
call fcn.00406d64
lea edx, [ebp - 0x380]
mov eax, dword [ebp - 4]
call fcn.0047a47c
mov edx, dword [ebp - 0x380]
mov eax, dword [ebp - 0x27c]
add eax, 0x98
call fcn.00406ba8
mov eax, dword [ebp - 0x284]
push eax
call sub.ole32.dll_CoTaskMemFree
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53f003
mov eax, dword [ebp - 0x288]
push eax
call sub.kernel32.dll_FreeLibrary_1
ret
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0x38], 0
jne 0x53f05e
lea edx, [ebp - 0x38c]
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0x34]
call fcn.0047a4cc
mov eax, dword [ebp - 0x38c]
lea edx, [ebp - 0x388]
call fcn.00471f48
mov eax, dword [ebp - 0x388]
lea edx, [ebp - 0x384]
call fcn.0047a47c
mov edx, dword [ebp - 0x384]
mov eax, dword [ebp - 0x27c]
add eax, 0x38
mov ecx, 0x540290
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
cmp byte [eax + 4], 5
jne 0x53f0aa
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0x27c]
add eax, 0x3c
mov ecx, 0x5402b0
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0x3c]
call fcn.00471a74
test al, al
jne 0x53f0ba
mov eax, dword [ebp - 0x27c]
add eax, 0x3c
xor edx, edx
call fcn.00406ba8
jmp 0x53f0ba
mov eax, dword [ebp - 0x27c]
add eax, 0x3c
xor edx, edx
call fcn.00406ba8
mov dl, 1
mov eax, dword [0x48b8c0]
call fcn.00491c08
mov ebx, eax
mov eax, dword [ebp - 0x27c]
mov dword [eax + 0xb0], ebx
lea edx, [ebp - 0x390]
mov eax, dword [ebp - 0x27c]
call fcn.0053e390
mov edx, dword [ebp - 0x390]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0x30], 0
jne 0x53f112
mov eax, dword [ebp - 0x27c]
add eax, 0xa4
xor edx, edx
call fcn.00406ba8
jmp 0x53f130
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x27c]
add eax, 0xa4
mov ecx, 0x5402fc
call fcn.00406f8c
lea eax, [ebp - 0x394]
call fcn.005143fc
mov edx, dword [ebp - 0x394]
mov eax, dword [ebp - 0x27c]
add eax, 0xa8
call fcn.00406ba8
xor edx, edx
mov eax, dword [ebp - 0x27c]
call fcn.0053dd70
mov edx, dword [ebp - 0x27c]
mov byte [edx + 0xac], al
mov eax, dword [ebp - 0x27c]
call fcn.0053ddbc
mov edx, dword [ebp - 0x27c]
mov byte [edx + 0x104], al
lea edx, [ebp - 0x3a0]
mov eax, dword [0x693f1c]
mov eax, dword [eax]
call fcn.0050e23c
mov eax, dword [ebp - 0x3a0]
lea edx, [ebp - 0x39c]
call fcn.00471f48
mov eax, dword [ebp - 0x39c]
lea edx, [ebp - 0x398]
call fcn.0047a47c
mov edx, dword [ebp - 0x398]
mov eax, dword [ebp - 0x27c]
add eax, 0x9c
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
add eax, 0xa0
mov edx, dword [ebp - 0x27c]
mov edx, dword [edx + 0x9c]
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
xor edx, edx
mov dword [eax + 0x108], edx
mov dword [eax + 0x10c], edx
mov eax, dword [ebp - 0x27c]
add eax, 0xb4
mov edx, 0x54033c
call fcn.00406ba8
mov eax, dword [ebp - 0x28c]
call fcn.004a1d9c
mov edx, 0x80000002
mov eax, dword [ebp - 0x28c]
call fcn.004a1dcc
mov edx, 0x54035c
mov eax, dword [ebp - 0x28c]
call fcn.004a1f5c
test al, al
je 0x53f378
mov edx, 0x5403f0
mov eax, dword [ebp - 0x28c]
call fcn.004a2828
test al, al
je 0x53f286
lea eax, [ebp - 0x3a4]
push eax
xor ecx, ecx
mov edx, 0x5403f0
mov eax, dword [ebp - 0x28c]
call fcn.004a24d8
mov edx, dword [ebp - 0x3a4]
mov eax, dword [ebp - 0x27c]
add eax, 0xb4
call fcn.00406ba8
mov edx, 0x54041c
mov eax, dword [ebp - 0x28c]
call fcn.004a2828
test al, al
je 0x53f2d1
lea eax, [ebp - 0x3a8]
push eax
xor ecx, ecx
mov edx, 0x54041c
mov eax, dword [ebp - 0x28c]
call fcn.004a24d8
mov edx, dword [ebp - 0x3a8]
mov eax, dword [ebp - 0x27c]
call fcn.0053e490
mov eax, dword [ebp - 0x27c]
fstp qword [eax + 0x108]
wait
mov edx, 0x540440
mov eax, dword [ebp - 0x28c]
call fcn.004a2828
test al, al
je 0x53f378
lea eax, [ebp - 0x3ac]
push eax
xor ecx, ecx
mov edx, 0x540440
mov eax, dword [ebp - 0x28c]
call fcn.004a24d8
mov edx, dword [ebp - 0x3ac]
mov eax, dword [ebp - 0x27c]
add eax, 0xa0
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0xa0]
call fcn.00471a74
test al, al
je 0x53f35c
lea edx, [ebp - 0x3b0]
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + 0xa0]
call fcn.0047a47c
mov edx, dword [ebp - 0x3b0]
mov eax, dword [ebp - 0x27c]
add eax, 0xa0
call fcn.00406ba8
jmp 0x53f378
mov eax, dword [ebp - 0x27c]
add eax, 0xa0
mov edx, dword [ebp - 0x27c]
mov edx, dword [edx + 0x9c]
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xa0]
lea eax, [ebp - 0x3b4]
mov ecx, 0x54046c
call fcn.00406f8c
mov eax, dword [ebp - 0x3b4]
call fcn.00471a2c
test al, al
je 0x53f3f6
lea eax, [ebp - 0x3b8]
push eax
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xa0]
lea eax, [ebp - 0x3bc]
mov ecx, 0x54046c
call fcn.00406f8c
mov eax, dword [ebp - 0x3bc]
mov ecx, 0x5404a0
mov edx, 3
call fcn.005169cc
mov edx, dword [ebp - 0x3b8]
mov eax, dword [ebp - 0x27c]
add eax, 0xb8
call fcn.00406ba8
jmp 0x53f4b6
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
lea eax, [ebp - 0x3c0]
mov ecx, 0x54046c
call fcn.00406f8c
mov eax, dword [ebp - 0x3c0]
call fcn.00471a2c
test al, al
je 0x53f471
lea eax, [ebp - 0x3c4]
push eax
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
lea eax, [ebp - 0x3c8]
mov ecx, 0x54046c
call fcn.00406f8c
mov eax, dword [ebp - 0x3c8]
mov ecx, 0x5404a0
mov edx, 3
call fcn.005169cc
mov edx, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x27c]
add eax, 0xb8
call fcn.00406ba8
jmp 0x53f4b6
lea eax, [ebp - 0x3cc]
push eax
lea ecx, [ebp - 0x3d0]
xor edx, edx
mov eax, dword [ebp - 0x27c]
call fcn.0053e028
mov eax, dword [ebp - 0x3d0]
mov ecx, 0x5404a0
mov edx, 3
call fcn.005169cc
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x27c]
add eax, 0xb8
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xbc
mov ecx, 0x5404bc
call fcn.00406f8c
mov byte [ebp - 0x28d], 1
lea ecx, [ebp - 0x28d]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xbc]
mov eax, dword [0x6db698]
call fcn.0053d548
xor al, 1
or al, byte [ebp - 0x28d]
je 0x53f516
mov eax, dword [ebp - 0x27c]
add eax, 0xbc
xor edx, edx
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xc0
mov ecx, 0x5404e0
call fcn.00406f8c
mov byte [ebp - 0x28d], 1
lea ecx, [ebp - 0x28d]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xc0]
mov eax, dword [0x6db698]
call fcn.0053d548
xor al, 1
or al, byte [ebp - 0x28d]
je 0x53f576
mov eax, dword [ebp - 0x27c]
add eax, 0xc0
xor edx, edx
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xc4
mov ecx, 0x540518
call fcn.00406f8c
mov byte [ebp - 0x28d], 1
lea ecx, [ebp - 0x28d]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xc4]
mov eax, dword [0x6db698]
call fcn.0053d548
xor al, 1
or al, byte [ebp - 0x28d]
je 0x53f5d6
mov eax, dword [ebp - 0x27c]
add eax, 0xc4
xor edx, edx
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xc8
mov ecx, 0x540540
call fcn.00406f8c
mov byte [ebp - 0x28d], 1
lea ecx, [ebp - 0x28d]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xc8]
mov eax, dword [0x6db698]
call fcn.0053d548
xor al, 1
or al, byte [ebp - 0x28d]
je 0x53f636
mov eax, dword [ebp - 0x27c]
add eax, 0xc8
xor edx, edx
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xcc
mov ecx, 0x540564
call fcn.00406f8c
mov byte [ebp - 0x28d], 1
lea ecx, [ebp - 0x28d]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xcc]
mov eax, dword [0x6db698]
call fcn.0053d548
xor al, 1
or al, byte [ebp - 0x28d]
je 0x53f696
mov eax, dword [ebp - 0x27c]
add eax, 0xcc
xor edx, edx
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xd0
mov ecx, 0x540588
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xd4
mov ecx, 0x5405b4
call fcn.00406f8c
mov byte [ebp - 0x28d], 1
lea ecx, [ebp - 0x28d]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xd4]
mov eax, dword [0x6db698]
call fcn.0053d548
xor al, 1
or al, byte [ebp - 0x28d]
je 0x53f717
mov eax, dword [ebp - 0x27c]
add eax, 0xd4
xor edx, edx
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0x40], 0
je 0x53f741
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x27c]
add eax, 0xd8
mov ecx, 0x5402fc
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0xd8], 0
je 0x53f771
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xd8]
mov eax, dword [ebp - 0x27c]
add eax, 0xdc
mov ecx, 0x5405e4
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0xa4], 0
je 0x53f80a
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x27c]
add eax, 0xe4
mov ecx, 0x540618
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xa4]
mov eax, dword [ebp - 0x27c]
add eax, 0xe0
mov ecx, 0x540648
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xa4]
mov eax, dword [ebp - 0x27c]
add eax, 0xf8
mov ecx, 0x540668
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0xa4]
mov eax, dword [ebp - 0x27c]
add eax, 0xfc
mov ecx, 0x540680
call fcn.00406f8c
jmp 0x53f88e
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xe4
mov ecx, 0x540618
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xe0
mov ecx, 0x540648
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xf8
mov ecx, 0x540668
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xfc
mov ecx, 0x540680
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xe8
mov ecx, 0x54069c
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x27c]
add eax, 0xec
mov ecx, 0x5406bc
call fcn.00406f8c
mov eax, dword [ebp - 0x27c]
cmp dword [eax + 0x18], 0
jne 0x53f8f3
mov eax, dword [ebp - 0x27c]
add eax, 0xf0
xor edx, edx
call fcn.00406ba8
jmp 0x53facb
mov eax, dword [ebp - 0x294]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x18]
lea eax, [ebp - 8]
mov ecx, 0x5406d4
call fcn.00406f8c
mov byte [ebp - 0x28d], 0
lea ecx, [ebp - 0x28d]
mov edx, dword [ebp - 8]
mov eax, dword [0x6db698]
call fcn.0053d548
and al, byte [ebp - 0x28d]
je 0x53faa4
lea eax, [ebp - 0x3d4]
mov ecx, 0x5406f0
mov edx, dword [ebp - 8]
call fcn.00406f8c
mov eax, dword [ebp - 0x3d4]
lea ecx, [ebp - 0x278]
mov edx, 0x1ff
call fcn.00471c6c
mov ebx, eax
test ebx, ebx
jne 0x53fa99
xor eax, eax
push ebp
push 0x53fa8a
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x540704
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
jne 0x53f9a3
mov edx, 0x540714
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
je 0x53f9ad
call fcn.0040541c
jmp 0x53fa91
mov esi, dword [ebp - 0x268]
test esi, 4
jle 0x53f9c5
call fcn.0040541c
jmp 0x53fa91
test esi, 0x10
jle 0x53fa6f
mov edx, 0x540728
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
je 0x53f9ef
call fcn.0040541c
jmp 0x53fa91
mov edx, 0x540748
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
je 0x53fa0d
call fcn.0040541c
jmp 0x53fa91
mov edx, 0x540764
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
je 0x53fa28
call fcn.0040541c
jmp 0x53fa91
mov edx, 0x54078c
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
je 0x53fa43
call fcn.0040541c
jmp 0x53fa91
mov edx, 0x5407b0
mov eax, dword [ebp - 0x264]
call fcn.00470760
test al, al
je 0x53fa5e
call fcn.0040541c
jmp 0x53fa91
mov edx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x294]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53fa91
lea eax, [ebp - 0x278]
call fcn.00471cbc
mov ebx, eax
ret
test ebx, ebx
je 0x53f96d
lea eax, [ebp - 0x278]
call fcn.00471ce0
lea edx, [ebp - 0x3d8]
mov eax, dword [ebp - 0x294]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x3d8]
mov eax, dword [ebp - 0x27c]
add eax, 0xf0
call fcn.00406ba8
lea ecx, [ebp - 0x3dc]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x1c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3dc]
mov eax, dword [ebp - 0x27c]
add eax, 0x1c
call fcn.00406ba8
lea ecx, [ebp - 0x3e0]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x20]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x27c]
add eax, 0x20
call fcn.00406ba8
lea ecx, [ebp - 0x3e4]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x24]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3e4]
mov eax, dword [ebp - 0x27c]
add eax, 0x24
call fcn.00406ba8
lea ecx, [ebp - 0x3e8]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x28]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3e8]
mov eax, dword [ebp - 0x27c]
add eax, 0x28
call fcn.00406ba8
lea ecx, [ebp - 0x3ec]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x2c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3ec]
mov eax, dword [ebp - 0x27c]
add eax, 0x2c
call fcn.00406ba8
lea ecx, [ebp - 0x3f0]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x30]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x27c]
add eax, 0x30
call fcn.00406ba8
lea ecx, [ebp - 0x3f4]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x34]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3f4]
mov eax, dword [ebp - 0x27c]
add eax, 0x34
call fcn.00406ba8
lea ecx, [ebp - 0x3f8]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x38]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3f8]
mov eax, dword [ebp - 0x27c]
add eax, 0x38
call fcn.00406ba8
lea ecx, [ebp - 0x3fc]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x3c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x3fc]
mov eax, dword [ebp - 0x27c]
add eax, 0x3c
call fcn.00406ba8
lea ecx, [ebp - 0x400]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x400]
mov eax, dword [ebp - 0x27c]
add eax, 0x40
call fcn.00406ba8
lea ecx, [ebp - 0x404]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x44]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x404]
mov eax, dword [ebp - 0x27c]
add eax, 0x44
call fcn.00406ba8
lea ecx, [ebp - 0x408]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x48]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x408]
mov eax, dword [ebp - 0x27c]
add eax, 0x48
call fcn.00406ba8
lea ecx, [ebp - 0x40c]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x4c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x40c]
mov eax, dword [ebp - 0x27c]
add eax, 0x4c
call fcn.00406ba8
lea ecx, [ebp - 0x410]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x58]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x410]
mov eax, dword [ebp - 0x27c]
add eax, 0x58
call fcn.00406ba8
lea ecx, [ebp - 0x414]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x5c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x27c]
add eax, 0x5c
call fcn.00406ba8
lea ecx, [ebp - 0x418]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x60]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x418]
mov eax, dword [ebp - 0x27c]
add eax, 0x60
call fcn.00406ba8
lea ecx, [ebp - 0x41c]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x64]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x41c]
mov eax, dword [ebp - 0x27c]
add eax, 0x64
call fcn.00406ba8
lea ecx, [ebp - 0x420]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x68]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x420]
mov eax, dword [ebp - 0x27c]
add eax, 0x68
call fcn.00406ba8
lea ecx, [ebp - 0x424]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x6c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x424]
mov eax, dword [ebp - 0x27c]
add eax, 0x6c
call fcn.00406ba8
lea ecx, [ebp - 0x428]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x70]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x27c]
add eax, 0x70
call fcn.00406ba8
lea ecx, [ebp - 0x42c]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x74]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x42c]
mov eax, dword [ebp - 0x27c]
add eax, 0x74
call fcn.00406ba8
lea ecx, [ebp - 0x430]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x78]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x430]
mov eax, dword [ebp - 0x27c]
add eax, 0x78
call fcn.00406ba8
lea ecx, [ebp - 0x434]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x7c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x434]
mov eax, dword [ebp - 0x27c]
add eax, 0x7c
call fcn.00406ba8
lea ecx, [ebp - 0x438]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x80]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x27c]
add eax, 0x80
call fcn.00406ba8
lea ecx, [ebp - 0x43c]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x84]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x27c]
add eax, 0x84
call fcn.00406ba8
lea ecx, [ebp - 0x440]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x88]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x440]
mov eax, dword [ebp - 0x27c]
add eax, 0x88
call fcn.00406ba8
lea ecx, [ebp - 0x444]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x8c]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x444]
mov eax, dword [ebp - 0x27c]
add eax, 0x8c
call fcn.00406ba8
lea ecx, [ebp - 0x448]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x90]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x448]
mov eax, dword [ebp - 0x27c]
add eax, 0x90
call fcn.00406ba8
lea ecx, [ebp - 0x44c]
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax + 0x94]
mov eax, dword [0x6db698]
call fcn.0053d5b4
mov edx, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x27c]
add eax, 0x94
call fcn.00406ba8
lea eax, [ebp - 0x450]
call fcn.00514e18
mov edx, dword [ebp - 0x450]
mov eax, dword [ebp - 0x27c]
add eax, 0x100
call fcn.00406ba8
mov eax, dword [ebp - 0x27c]
call fcn.0053d9bc
mov edx, dword [ebp - 0x27c]
mov byte [edx + 0x110], al
mov eax, dword [ebp - 0x27c]
call fcn.0053dc90
mov edx, dword [ebp - 0x27c]
mov dword [edx + 0x114], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x540087
mov eax, dword [ebp - 0x280]
call fcn.00404490
mov eax, dword [ebp - 0x28c]
call fcn.00404490
mov eax, dword [ebp - 0x294]
call fcn.00404490
ret