Function at 0x521920
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x3a8
mov eax, dword [0x52f010]
xor eax, esp
mov dword [esp + 0x3a4], eax
push esi
push edi
mov byte [esp + 0x114], 0
lea ecx, [esp + 0x130]
push dword [esp + 0x114]
mov byte [esp + 0x20], 0
push dword [esp + 0x20]
mov byte [esp + 0x28], 0
push dword [esp + 0x28]
mov dword [esp + 0xac], 0
call fcn.0041f4e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xb4]
call fcn.0041ed30
mov byte [esp + 0x20], 0
lea ecx, [esp + 0x130]
push dword [esp + 0x20]
mov byte [esp + 0x20], 0
push dword [esp + 0x20]
mov byte [esp + 0x20], 0
push dword [esp + 0x20]
call fcn.0041f520
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
lea ecx, [esp + 0xd8]
call fcn.0041ed20
lea ecx, [esp + 0xb0]
call fcn.0041ed20
push 0x208
lea eax, [esp + 0x1a4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [esp + 0x18], 0
mov byte [esp + 0x20], 0
lea ecx, [esp + 0x130]
mov byte [esp + 0x1c], 0
push dword [esp + 0x18]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.0041f7e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed30
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0xb4]
call fcn.0041ed60
lea ecx, [esp + 0xb0]
call fcn.0041eb00
cmp eax, 5
jbe 0x521a5b
push 0x21
push 5
call fcn.0041ead0
mov byte [esp + 0x18], 0
lea ecx, [esp + 0x130]
push dword [esp + 0x18]
mov byte [esp + 0x24], 0
push dword [esp + 0x24]
mov byte [esp + 0x24], 0
push dword [esp + 0x24]
call fcn.0041f820
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed10
lea ecx, [esp + 0xb0]
call fcn.0041ed20
lea ecx, [esp + 0xf0]
call fcn.0041ed20
sub esp, 0x18
mov byte [esp + 0x30], 0
mov edi, esp
mov byte [esp + 0x38], 0
sub esp, 0x18
mov byte [esp + 0x4c], 0
mov esi, esp
mov dword [esp + 0x144], 0x104
lea ecx, [esp + 0x160]
push dword [esp + 0x48]
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.00429d10
mov ecx, eax
call fcn.0041e8f0
push eax
mov ecx, esi
call fcn.0041ed30
mov ecx, edi
call fcn.00422310
lea ecx, [esp + 0x130]
call fcn.00422670
mov ecx, 0x530550
mov dword [esp + 0x10], eax
call fcn.0041eb00
dec eax
push eax
push 0
lea eax, [esp + 0x160]
push eax
call fcn.004283b0
sub esp, 0x18
mov byte [esp + 0x30], 0
mov esi, esp
mov byte [esp + 0x38], 0
mov byte [esp + 0x34], 0
lea ecx, [esp + 0x108]
mov dword [esp + 0x24], eax
push dword [esp + 0x30]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
call fcn.005078a0
mov ecx, eax
call fcn.0041e8f0
push eax
mov ecx, esi
call fcn.0041ed30
lea ecx, [esp + 0xa0]
call fcn.00422310
mov ecx, 0x530550
mov dword [esp + 0x14], eax
call fcn.0041eb00
dec eax
push eax
push 0
lea eax, [esp + 0x78]
push eax
call fcn.004283b0
sub esp, 0x18
mov dword [esp + 0x3c], eax
mov byte [esp + 0x30], 0
mov edi, esp
mov byte [esp + 0x38], 0
mov byte [esp + 0x34], 0
sub esp, 0x18
lea ecx, [esp + 0xe0]
mov esi, esp
push dword [esp + 0x48]
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.00507860
mov ecx, eax
call fcn.0041e8f0
push eax
mov ecx, esi
call fcn.0041ed30
mov ecx, edi
call fcn.00422310
lea ecx, [esp + 0x70]
call fcn.00422670
push dword [esp + 0x24]
mov edx, eax
lea ecx, [esp + 0x44]
call fcn.00474d40
push dword [esp + 0x14]
mov edx, eax
lea ecx, [esp + 0x2c]
call fcn.00474d40
push dword [esp + 0xc]
mov edx, eax
lea ecx, [esp + 0xdc]
call fcn.00474d40
push dword [esp + 0x10]
mov edx, eax
lea ecx, [esp + 0x174]
call fcn.00474d40
lea ecx, [esp + 0xd8]
call fcn.0041e9b0
lea ecx, [esp + 0x28]
call fcn.0041e9b0
lea ecx, [esp + 0x40]
call fcn.0041e9b0
lea ecx, [esp + 0x58]
call fcn.0041e9b0
lea ecx, [esp + 0x70]
call fcn.0041e9b0
lea ecx, [esp + 0x88]
call fcn.0041e9b0
lea ecx, [esp + 0x158]
call fcn.0041e9b0
lea ecx, [esp + 0x118]
call fcn.0041e9b0
lea eax, [esp + 0xa0]
mov dword [esp + 0xc], 0x101
lea ecx, [esp + 0x170]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
call fcn.0041e950
mov dword [esp + 0x24], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
mov dword [esp + 0x1c], 0x80000001
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.005232a0
test eax, eax
jne 0x5231bf
sub esp, 0x18
mov byte [esp + 0x28], al
mov edi, esp
mov byte [esp + 0x24], al
sub esp, 0x18
mov byte [esp + 0x44], al
mov esi, esp
lea ecx, [esp + 0xe0]
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x4c]
call fcn.00429cd0
mov ecx, eax
call fcn.0041e8f0
push eax
mov ecx, esi
call fcn.0041ed30
mov ecx, edi
call fcn.00422310
lea ecx, [esp + 0x170]
call fcn.00422670
push eax
lea ecx, [esp + 0x11c]
call fcn.005235a0
push eax
lea ecx, [esp + 0x174]
call fcn.00428530
lea ecx, [esp + 0x118]
call fcn.0041e9b0
lea ecx, [esp + 0x158]
call fcn.0041e9b0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f720
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x134]
call fcn.0041ed30
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed60
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f760
mov ecx, eax
call fcn.0041e8f0
push eax
push 2
lea ecx, [esp + 0xf8]
call fcn.0041ec80
push 3
lea ecx, [esp + 0x134]
call fcn.0041ebb0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
mov byte [eax], 0x44
call fcn.0041f7a0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed10
lea ecx, [esp + 0xf0]
call fcn.0041ed20
lea ecx, [esp + 0x130]
call fcn.0041ed20
lea eax, [esp + 0x114]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x170]
lea eax, [esp + 0x1a0]
mov dword [esp + 0x24], 0
mov dword [esp + 0xc], eax
call fcn.0041e950
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.005232f0
test eax, eax
jne 0x5231bf
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x1a4]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00523360
lea edx, [esp + 0x1a0]
push ecx
lea ecx, [esp + 0x18c]
lea eax, [edx + eax*2]
push eax
mov eax, edx
push eax
call fcn.00507ba0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fa60
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041faa0
mov ecx, eax
call fcn.0041e8f0
push eax
lea edx, [esp + 0xf4]
lea ecx, [esp + 0xdc]
call fcn.0041fae0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fb40
mov ecx, eax
call fcn.0041e8f0
push eax
push 3
lea ecx, [esp + 0xe0]
call fcn.0041ec80
push 2
push 0
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0xfc]
call fcn.0041e9f0
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0xd8]
call fcn.0041ed20
lea ecx, [esp + 0xf0]
call fcn.0041ed20
push ecx
lea ecx, [esp + 0xa8]
call fcn.004228d0
push 0x20
lea edx, [esp + 0x18c]
call fcn.00422800
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
lea ecx, [esp + 0xbc]
call fcn.0041f560
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f5a0
mov ecx, eax
call fcn.0041e8f0
push 3
push 2
lea ecx, [esp + 0xe0]
call fcn.0041ec60
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f5e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0xd8]
call fcn.0041ed20
lea ecx, [esp + 0xa4]
call fcn.005234f0
cmp eax, 0x22
jb 0x523180
call fcn.005234f0
cmp eax, 0x22
ja 0x523180
push 0
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
push 1
lea ecx, [esp + 0xa8]
movsd qword [0x52f250], xmm0
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
movsd qword [0x52f248], xmm0
call fcn.0041f560
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f5a0
mov ecx, eax
call fcn.0041e8f0
push 3
push 2
lea ecx, [esp + 0xe0]
call fcn.0041ec60
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f5e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push 2
lea ecx, [esp + 0xa8]
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
movsd qword [0x52fb50], xmm0
call fcn.0041f8e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed30
push 0
mov byte [esp + 0x14], 0
push dword [esp + 0x14]
mov byte [esp + 0x14], 0
push dword [esp + 0x14]
mov byte [esp + 0x20], 0
push dword [esp + 0x20]
lea ecx, [esp + 0xc0]
call fcn.0041f920
push ecx
mov ecx, eax
call fcn.0041e8f0
add esp, 4
lea ecx, [esp + 0xf4]
push eax
call fcn.0041ea40
lea ecx, [esp + 0xf0]
call fcn.0041eb00
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
lea esi, [eax - 1]
push dword [esp + 0x1c]
call fcn.0041f960
mov ecx, eax
call fcn.0041e8f0
push esi
push eax
lea ecx, [esp + 0xf8]
call fcn.0041ea10
lea ecx, [esp + 0xf0]
call fcn.0041ed20
push 3
lea ecx, [esp + 0xa8]
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
movsd qword [0x52fb58], xmm0
call fcn.0041f9a0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
push 5
push 3
lea ecx, [esp + 0x138]
push ecx
mov ecx, eax
call fcn.0041e9f0
lea ecx, [esp + 0x118]
call fcn.0041ed20
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f9e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed30
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x134]
call fcn.0041eaa0
lea ecx, [esp + 0x130]
call fcn.0041eac0
test al, al
je 0x5223b6
lea ecx, [esp + 0xf0]
call fcn.0041ec50
lea ecx, [esp + 0xf0]
call fcn.0041ed20
lea ecx, [esp + 0x130]
call fcn.0041ed20
push 4
lea ecx, [esp + 0xa8]
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
movsd qword [0x52f240], xmm0
call fcn.0041f620
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
mov esi, 3
nop dword [eax + eax]
push 0x6f
lea ecx, [esp + 0xdc]
call fcn.0041eb20
sub esi, 1
jne 0x522430
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push 5
lea ecx, [esp + 0xa8]
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
push 6
lea ecx, [esp + 0xa8]
movsd qword [0x52f260], xmm0
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
push 7
lea ecx, [esp + 0xa8]
movsd qword [0x52f258], xmm0
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
push 8
lea ecx, [esp + 0xa8]
movsd qword [0x52f1a8], xmm0
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
push 9
lea ecx, [esp + 0xa8]
movsd qword [0x52f1b0], xmm0
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
movsd qword [0x52f1a0], xmm0
call fcn.0041f860
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ed30
lea ecx, [esp + 0xf0]
call fcn.0041ebc0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f8a0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xf4]
call fcn.0041ece0
lea ecx, [esp + 0xf0]
call fcn.0041ed20
push 0xa
lea ecx, [esp + 0xa8]
call fcn.005234e0
mov ecx, eax
call fcn.0051f180
push ecx
push 0xb
lea ecx, [esp + 0xac]
movsd qword [0x52f268], xmm0
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
setne byte [0x52f1bb]
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
lea ecx, [esp + 0xbc]
call fcn.0041f660
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x134]
call fcn.0041ed60
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f6a0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x134]
call fcn.0041ece0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xf0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
mov esi, eax
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f6e0
mov ecx, eax
call fcn.0041e8f0
push eax
mov ecx, esi
call fcn.0041ece0
push 0
lea ecx, [esp + 0xdc]
call fcn.0041ebb0
push 1
lea ecx, [esp + 0x134]
mov byte [eax], 0x55
call fcn.0041ebb0
lea ecx, [esp + 0x130]
mov byte [eax], 0x6e
call fcn.0041ed20
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0xc
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0xd
setne byte [0x52fb34]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0xe
setne byte [0x52f1b9]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
setne byte [0x52f19e]
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
lea ecx, [esp + 0xbc]
call fcn.0041f620
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
mov esi, 3
nop dword [eax]
nop word [eax + eax]
push 0x6f
lea ecx, [esp + 0xdc]
call fcn.0041eb20
sub esi, 1
jne 0x522750
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0xf
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x10
setne byte [0x52f97e]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x11
setne byte [0x52f97f]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
setne byte [0x52f1b8]
push dword [esp + 0x1c]
call fcn.0041f4e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x15c]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f520
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0x158]
call fcn.0041ed20
push ecx
push 0x12
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x13
setne byte [0x52fb39]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
test eax, eax
lea ecx, [esp + 0xd8]
setne byte [0x52f979]
call fcn.0041ed90
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fa20
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ecb0
push 2
lea ecx, [esp + 0xdc]
call fcn.0041ebb0
cmp byte [eax], 0x65
jne 0x5228f5
mov byte [eax], 0x45
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0x14
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
test eax, eax
lea ecx, [esp + 0xd8]
setne byte [0x52fb3a]
call fcn.0041ed90
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fa20
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ecb0
push 2
lea ecx, [esp + 0xdc]
call fcn.0041ebb0
cmp byte [eax], 0x65
jne 0x52297d
mov byte [eax], 0x45
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0x15
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
setne byte [0x52f19f]
push dword [esp + 0x1c]
call fcn.0041f860
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
lea ecx, [esp + 0xd8]
call fcn.0041ebc0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f8a0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ece0
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0x16
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
setne byte [0x52fb38]
push dword [esp + 0x1c]
call fcn.0041fa60
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041faa0
mov ecx, eax
call fcn.0041e8f0
push eax
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xf4]
call fcn.0041fae0
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
lea ecx, [esp + 0xbc]
call fcn.0041fb40
mov ecx, eax
call fcn.0041e8f0
push eax
push 3
lea ecx, [esp + 0xf8]
call fcn.0041ec80
push 2
push 0
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0xe4]
call fcn.0041e9f0
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0xf0]
call fcn.0041ed20
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0x17
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x18
setne byte [0x52f1ba]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x19
setne byte [0x52fb35]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x1a
setne byte [0x52f19d]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
test eax, eax
lea ecx, [esp + 0xa8]
push 0x1b
setne byte [0x52fb36]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
setne byte [0x52f1bc]
push dword [esp + 0x1c]
call fcn.0041f4e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x15c]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f520
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0x158]
call fcn.0041ed20
push ecx
push 0x1c
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
test eax, eax
lea ecx, [esp + 0xd8]
setne byte [0x52f811]
call fcn.0041ed90
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fa20
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ecb0
push 2
lea ecx, [esp + 0xdc]
call fcn.0041ebb0
cmp byte [eax], 0x65
jne 0x522cf0
mov byte [eax], 0x45
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push ecx
push 0x1d
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
test eax, eax
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
setne byte [0x52fb3f]
push dword [esp + 0x1c]
call fcn.0041f9a0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
push 5
push 3
lea ecx, [esp + 0xf8]
push ecx
mov ecx, eax
call fcn.0041e9f0
lea ecx, [esp + 0x118]
call fcn.0041ed20
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f9e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0xf4]
call fcn.0041eaa0
lea ecx, [esp + 0xf0]
call fcn.0041eac0
test al, al
je 0x522de0
lea ecx, [esp + 0xd8]
call fcn.0041ec50
lea ecx, [esp + 0xd8]
call fcn.0041ed20
lea ecx, [esp + 0xf0]
call fcn.0041ed20
push ecx
push 0x1e
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
push 0x1f
lea ecx, [esp + 0xac]
mov dword [0x52fb2c], eax
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
push 0x20
lea ecx, [esp + 0xac]
mov dword [0x52fb30], eax
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
push ecx
push 0x21
lea ecx, [esp + 0xac]
mov dword [0x52fb78], eax
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
sub esp, 0x18
mov byte [esp + 0x28], 0
mov edi, esp
mov byte [esp + 0x24], 0
sub esp, 0x18
mov byte [esp + 0x44], 0
mov esi, esp
mov dword [0x52fb7c], eax
lea ecx, [esp + 0xe0]
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x4c]
call fcn.00429d10
mov ecx, eax
call fcn.0041e8f0
push eax
mov ecx, esi
call fcn.0041ed30
mov ecx, edi
call fcn.00422310
lea ecx, [esp + 0x170]
call fcn.00422670
push eax
lea ecx, [esp + 0x11c]
call fcn.005235a0
push eax
lea ecx, [esp + 0x174]
call fcn.00428530
lea ecx, [esp + 0x118]
call fcn.0041e9b0
lea ecx, [esp + 0x158]
call fcn.0041e9b0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041f4e0
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x15c]
call fcn.0041ed30
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
lea ecx, [esp + 0xbc]
call fcn.0041f520
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0x11c]
call fcn.0041ed30
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0x158]
call fcn.0041ed20
lea eax, [esp + 0x114]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x170]
lea eax, [esp + 0x1a0]
mov dword [esp + 0x24], 0
mov dword [esp + 0xc], eax
call fcn.0041e950
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.005233a0
test eax, eax
jne 0x5231a7
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x1a4]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00523410
lea ecx, [esp + 0x1a0]
lea eax, [ecx + eax*2]
push eax
mov eax, ecx
lea ecx, [esp + 0x18c]
push eax
call fcn.00523d60
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fa60
mov ecx, eax
call fcn.0041e8f0
push eax
lea ecx, [esp + 0xdc]
call fcn.0041ed30
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041faa0
mov ecx, eax
call fcn.0041e8f0
push eax
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xf4]
call fcn.0041fae0
mov byte [esp + 0x10], 0
lea ecx, [esp + 0xb0]
push dword [esp + 0x10]
mov byte [esp + 0x10], 0
push dword [esp + 0x10]
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
call fcn.0041fb40
mov ecx, eax
call fcn.0041e8f0
push eax
push 3
lea ecx, [esp + 0xf8]
call fcn.0041ec80
push 2
push 0
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0xe4]
call fcn.0041e9f0
lea ecx, [esp + 0x118]
call fcn.0041ed20
lea ecx, [esp + 0xf0]
call fcn.0041ed20
lea ecx, [esp + 0xd8]
call fcn.0041ed20
push 0x20
lea edx, [esp + 0x18c]
lea ecx, [esp + 0x134]
call fcn.00422800
push eax
lea ecx, [esp + 0xa8]
call fcn.00523500
lea ecx, [esp + 0x130]
call fcn.00427fe0
lea ecx, [esp + 0xa4]
call fcn.005234f0
cmp eax, 0x24
jb 0x523180
call fcn.005234f0
cmp eax, 0x24
ja 0x523180
xor edi, edi
cmp edi, 0x1c
jae 0x5231df
push ecx
push edi
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
mov dword [edi*4 + 0x52f1d0], eax
inc edi
cmp edi, 0x24
jl 0x523155
lea ecx, [esp + 0x170]
call fcn.0041e950
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x80000001
push eax
call fcn.00523450
lea ecx, [esp + 0xa4]
call fcn.00427fe0
lea ecx, [esp + 0x188]
call fcn.0041ed20
lea ecx, [esp + 0x170]
call fcn.0041e9b0
mov ecx, dword [esp + 0x3ac]
pop edi
pop esi
xor ecx, esp
call fcn.00527df2
mov esp, ebp
pop ebp
ret
mov esi, 0x1c
mov ecx, 0x530580
call fcn.0041e840
lea ecx, [esp + 0xa4]
lea edx, [eax + 0x1c]
call fcn.005234f0
cmp eax, edx
jae 0x523208
call fcn.005234f0
jmp 0x523215
mov ecx, 0x530580
call fcn.0041e840
add eax, 0x1c
cmp esi, eax
jae 0x52317a
push ecx
push esi
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
test eax, eax
jne 0x523272
lea eax, [esp + 0x10]
mov ecx, 0x530580
push eax
call fcn.0041e870
push esi
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call fcn.005234b0
push ecx
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.00523480
push dword [eax]
lea eax, [esp + 0x28]
push eax
call fcn.0041e890
dec esi
inc esi
jmp 0x5231e4
push ecx
push esi
lea ecx, [esp + 0xac]
call fcn.005234e0
mov ecx, eax
call fcn.0042d0d0
lea ecx, [esi - 0x1c]
mov edx, eax
push ecx
mov ecx, 0x530580
call fcn.0041e830
inc esi
mov dword [eax], edx
jmp 0x5231e4