Function at 0x409f20
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x422a4c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x970
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
push 0
call fcn.00407610
add esp, 4
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
lea edx, [ebp - 0xe0]
push edx
call fcn.00409df0
add esp, 0xc
mov dword [ebp - 4], 0
push 0
lea ecx, [ebp - 0x58]
call fcn.00408e00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x78]
call fcn.00408e50
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x88]
call fcn.00408e50
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xcc]
call fcn.0040e6d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x54]
call fcn.00408e50
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x60]
call fcn.00408e50
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x6c]
call fcn.0040e6d0
mov byte [ebp - 4], 7
mov dword [ebp - 0x74], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0xf0], 0
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0xc8]
rep stosd dword es:[edi], eax
mov dword [ebp - 0xec], 0
mov eax, dword [0x42ad64]
push eax
lea ecx, [ebp - 0x4ec]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x7bc], eax
lea ecx, [ebp - 0x4ec]
push ecx
mov ecx, dword [ebp - 0x7bc]
mov edx, dword [ebp - 0x7bc]
mov eax, dword [edx]
call dword [eax + 0x38]
test eax, eax
je 0x40a06c
mov ecx, dword [ebp - 0xa4]
or ecx, 1
mov dword [ebp - 0xa4], ecx
mov edx, dword [0x42ad58]
push edx
lea ecx, [ebp - 0x4f0]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x7c0], eax
push 0
lea eax, [ebp - 0x4f0]
push eax
mov ecx, dword [ebp - 0x7c0]
mov edx, dword [ebp - 0x7c0]
mov eax, dword [edx]
call dword [eax + 0x14]
test eax, eax
je 0x40a0b9
mov ecx, dword [ebp - 0xa4]
or ecx, 2
mov dword [ebp - 0xa4], ecx
mov edx, dword [0x42ad34]
push edx
lea ecx, [ebp - 0x4f4]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x7c4], eax
push 0
lea eax, [ebp - 0x4f4]
push eax
mov ecx, dword [ebp - 0x7c4]
mov edx, dword [ebp - 0x7c4]
mov eax, dword [edx]
call dword [eax + 0x14]
test eax, eax
je 0x40a106
mov ecx, dword [ebp - 0xa4]
or ecx, 4
mov dword [ebp - 0xa4], ecx
mov edx, dword [0x42ad38]
push edx
lea ecx, [ebp - 0x4f8]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x7c8], eax
push 0
lea eax, [ebp - 0x4f8]
push eax
mov ecx, dword [ebp - 0x7c8]
mov edx, dword [ebp - 0x7c8]
mov eax, dword [edx]
call dword [eax + 0x14]
test eax, eax
je 0x40a153
mov ecx, dword [ebp - 0xa4]
or ecx, 0x20
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0xc8], 0xffffffff
mov dword [ebp - 0x5c], 0
mov byte [ebp - 4], 8
push 0
push 0
push 3
push 0
push 0
push 0x80000000
mov ecx, dword [ebp + 8]
call fcn.00408410
push eax
call dword [0x425048]
push eax
lea ecx, [ebp - 0x78]
call fcn.00408ec0
mov dword [ebp - 0x7cc], eax
mov ecx, dword [ebp - 0x7cc]
call fcn.0040e640
mov byte [ebp - 0x7cd], al
mov dl, byte [ebp - 0x7cd]
mov byte [ebp - 0x4fc], dl
push 0x7e
push 0x42b624
push 0x42b5d4
lea eax, [ebp - 0x4fc]
push eax
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0x78]
call fcn.00408ee0
mov dword [ebp - 0x7d4], eax
push 0
mov ecx, dword [ebp - 0x7d4]
push ecx
call dword [0x42504c]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x68]
mov dword [0x42ca28], edx
lea ecx, [ebp - 0x78]
call fcn.00408ee0
mov dword [ebp - 0x7d8], eax
push 0
mov eax, dword [ebp - 0x68]
push eax
push 0
push 2
push 0
mov ecx, dword [ebp - 0x7d8]
push ecx
call dword [0x4250a0]
push eax
lea ecx, [ebp - 0x88]
call fcn.00408ec0
mov dword [ebp - 0x7dc], eax
mov ecx, dword [ebp - 0x7dc]
call fcn.0040e640
mov byte [ebp - 0x7dd], al
mov dl, byte [ebp - 0x7dd]
mov byte [ebp - 0x500], dl
push 0x80
push 0x42b624
push 0x42b588
lea eax, [ebp - 0x500]
push eax
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0x88]
call fcn.00408ee0
mov dword [ebp - 0x7e4], eax
mov ecx, dword [ebp - 0x68]
push ecx
push 0
push 0
push 4
mov edx, dword [ebp - 0x7e4]
push edx
call dword [0x425054]
push eax
lea ecx, [ebp - 0xcc]
call fcn.0040e710
mov dword [ebp - 0x7e8], eax
mov ecx, dword [ebp - 0x7e8]
call fcn.0040e770
mov dword [ebp - 0x7ec], eax
xor eax, eax
cmp dword [ebp - 0x7ec], 0
setne al
mov byte [ebp - 0x504], al
push 0x81
push 0x42b624
push 0x42b544
lea ecx, [ebp - 0x504]
push ecx
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0xcc]
call fcn.0040e780
mov dword [ebp - 0x7f0], eax
mov edx, dword [ebp - 0x7f0]
mov dword [ebp - 0xdc], edx
lea ecx, [ebp - 0x88]
call fcn.0040e660
lea ecx, [ebp - 0x78]
call fcn.0040e660
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xdc]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x84], edx
xor eax, eax
test eax, eax
jne 0x40a34b
mov ecx, dword [ebp - 0x84]
cmp dword [ecx], 0x4550
je 0x40a3d6
mov ecx, dword [ebp + 8]
call fcn.00404020
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x51c], esp
push 0x42b520
call fcn.00401d10
lea edx, [ebp - 0x520]
push edx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x7f4], eax
mov eax, dword [ebp - 0x7f4]
mov dword [ebp - 0x7f8], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x7f8]
push ecx
lea ecx, [ebp - 0x518]
call fcn.00405dd0
lea edx, [ebp - 0x518]
push edx
lea ecx, [ebp - 0x514]
call fcn.00404670
push 0x425560
lea eax, [ebp - 0x514]
push eax
call fcn.00421a10
jmp 0x40a40b
mov dword [ebp - 4], 7
mov eax, dword [ebp - 0x84]
cmp dword [eax], 0x4550
je 0x40a497
mov ecx, dword [ebp + 8]
call fcn.00404020
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x54c], esp
push 0x42b520
call fcn.00401d10
lea ecx, [ebp - 0x550]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x7fc], eax
mov edx, dword [ebp - 0x7fc]
mov dword [ebp - 0x800], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x800]
push eax
lea ecx, [ebp - 0x548]
call fcn.00405dd0
lea ecx, [ebp - 0x548]
push ecx
lea ecx, [ebp - 0x544]
call fcn.00404670
push 0x425560
lea edx, [ebp - 0x544]
push edx
call fcn.00421a10
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x10c], 0
jmp 0x40a4c1
mov edx, dword [ebp - 0x10c]
add edx, 1
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x84]
xor ecx, ecx
mov cx, word [eax + 6]
cmp dword [ebp - 0x10c], ecx
jae 0x40a604
mov edx, dword [ebp - 0x10c]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x84]
xor ecx, ecx
mov cx, word [eax + 0x14]
mov eax, dword [ebp - 0x84]
lea ecx, [eax + ecx + 0x18]
add ecx, edx
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x110]
mov eax, dword [edx + 0xc]
cmp eax, dword [ebp - 0x108]
ja 0x40a5ff
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x110]
add edx, dword [eax + 0x10]
cmp edx, dword [ebp - 0x108]
jbe 0x40a5ff
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0xdc]
add edx, dword [ecx + 0x14]
add edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x110]
sub edx, dword [eax + 0xc]
sub edx, 8
mov dword [ebp - 0x114], edx
mov ecx, 2
mov edi, 0x42b4f8
mov esi, dword [ebp - 0x114]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x40a586
mov ecx, 2
mov edi, 0x42b4ec
mov esi, dword [ebp - 0x114]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x40a5fd
mov ecx, dword [ebp + 8]
call fcn.00404020
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x568], esp
push 0x42b4bc
call fcn.00401d10
lea ecx, [ebp - 0x56c]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x804], eax
mov edx, dword [ebp - 0x804]
mov dword [ebp - 0x808], edx
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x808]
push eax
lea ecx, [ebp - 0x564]
call fcn.00405dd0
lea ecx, [ebp - 0x564]
push ecx
lea ecx, [ebp - 0x560]
call fcn.00404670
push 0x425560
lea edx, [ebp - 0x560]
push edx
call fcn.00421a10
jmp 0x40a604
jmp 0x40a4b2
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x11c]
call fcn.00408e50
mov dword [ebp - 0x80c], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xe0]
call fcn.00401f50
mov dword [ebp - 0x810], eax
push 0
push 0
push 3
push 0
push 0
push 0x80000000
mov eax, dword [ebp - 0x810]
push eax
call dword [0x425048]
push eax
lea ecx, [ebp - 0x11c]
call fcn.00408ec0
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0x814]
call fcn.0040e640
mov byte [ebp - 0x815], al
mov cl, byte [ebp - 0x815]
mov byte [ebp - 0x570], cl
push 0xaf
push 0x42b624
push 0x42b464
lea edx, [ebp - 0x570]
push edx
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0x11c]
call fcn.00408ee0
mov dword [ebp - 0x81c], eax
push 0
mov eax, dword [ebp - 0x81c]
push eax
call dword [0x42504c]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00404010
add esp, 4
mov dword [ebp - 0x820], eax
mov edx, dword [ebp - 0x820]
mov dword [ebp - 0x574], edx
mov eax, dword [ebp - 0x574]
push eax
lea ecx, [ebp - 0x58]
call fcn.0040e5d0
lea ecx, [ebp - 0x58]
call fcn.00408e30
mov dword [ebp - 0x824], eax
mov ecx, dword [ebp - 0x824]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x58]
call fcn.00408e30
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x11c]
call fcn.00408ee0
mov dword [ebp - 0x82c], eax
push 0
lea edx, [ebp - 0x118]
push edx
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x828]
push ecx
mov edx, dword [ebp - 0x82c]
push edx
call dword [0x425058]
mov dword [ebp - 0x578], eax
push 0xb4
push 0x42b624
push 0x42b424
lea eax, [ebp - 0x578]
push eax
call fcn.00409550
add esp, 0x10
mov ecx, dword [ebp - 0x118]
xor edx, edx
cmp ecx, dword [ebp - 0x24]
sete dl
mov byte [ebp - 0x57c], dl
push 0xb5
push 0x42b624
push 0x42b40c
lea eax, [ebp - 0x57c]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x50]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0xe4], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x11c]
call fcn.00408e70
jmp 0x40a7f3
mov dword [ebp - 4], 7
mov eax, dword [ebp - 0xe4]
cmp dword [eax], 0x4550
je 0x40a876
push ecx
mov ecx, esp
mov dword [ebp - 0x5a8], esp
push 0x42b3d4
call fcn.00401d10
lea ecx, [ebp - 0x5ac]
push ecx
call dword [0x42526c]
add esp, 8
mov dword [ebp - 0x830], eax
mov edx, dword [ebp - 0x830]
mov dword [ebp - 0x834], edx
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x834]
push eax
lea ecx, [ebp - 0x5a4]
call fcn.00405dd0
lea ecx, [ebp - 0x5a4]
push ecx
lea ecx, [ebp - 0x5a0]
call fcn.00404670
push 0x425560
lea edx, [ebp - 0x5a0]
push edx
call fcn.00421a10
mov byte [ebp - 4], 0x11
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x5b4], esp
push 0x42b3bc
call fcn.00401d10
lea edx, [ebp - 0x5b8]
push edx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x838], eax
mov eax, dword [ebp - 0x838]
mov dword [ebp - 0x83c], eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x83c]
push ecx
lea ecx, [ebp - 0x5b0]
call fcn.00405dd0
push 0xc9
lea edx, [ebp - 0x5b0]
push edx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x5b8]
call dword [0x425270]
mov eax, dword [ebp - 0x68]
add eax, dword [ebp - 0x24]
shl eax, 1
mov dword [ebp - 0x100], eax
push 0
push 0
push 2
push 0
push 0
push 0xc0000000
mov ecx, dword [ebp + 0xc]
call fcn.00408410
push eax
call dword [0x425048]
push eax
lea ecx, [ebp - 0x54]
call fcn.00408ec0
mov dword [ebp - 0x840], eax
mov ecx, dword [ebp - 0x840]
call fcn.0040e640
mov byte [ebp - 0x841], al
mov cl, byte [ebp - 0x841]
mov byte [ebp - 0x5bc], cl
push 0xc9
push 0x42b624
push 0x42b360
lea edx, [ebp - 0x5bc]
push edx
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0x54]
call fcn.00408ee0
mov dword [ebp - 0x848], eax
push 0
mov eax, dword [ebp - 0x100]
push eax
push 0
push 4
push 0
mov ecx, dword [ebp - 0x848]
push ecx
call dword [0x4250a0]
push eax
lea ecx, [ebp - 0x60]
call fcn.00408ec0
mov dword [ebp - 0x84c], eax
mov ecx, dword [ebp - 0x84c]
call fcn.0040e640
mov byte [ebp - 0x84d], al
mov dl, byte [ebp - 0x84d]
mov byte [ebp - 0x5c0], dl
push 0xca
push 0x42b624
push 0x42b30c
lea eax, [ebp - 0x5c0]
push eax
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0x60]
call fcn.00408ee0
mov dword [ebp - 0x854], eax
mov ecx, dword [ebp - 0x100]
push ecx
push 0
push 0
push 0xf001f
mov edx, dword [ebp - 0x854]
push edx
call dword [0x425054]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040e710
mov dword [ebp - 0x858], eax
mov ecx, dword [ebp - 0x858]
call fcn.0040e770
mov dword [ebp - 0x85c], eax
xor eax, eax
cmp dword [ebp - 0x85c], 0
setne al
mov byte [ebp - 0x5c4], al
push 0xcb
push 0x42b624
push 0x42b2b8
lea ecx, [ebp - 0x5c4]
push ecx
call fcn.004094d0
add esp, 0x10
lea ecx, [ebp - 0x6c]
call fcn.0040e780
mov dword [ebp - 0x860], eax
mov edx, dword [ebp - 0x860]
mov dword [ebp - 0x2c], edx
lea ecx, [ebp - 0x60]
call fcn.0040e660
mov ecx, dword [ebp - 0x100]
xor eax, eax
mov edi, dword [ebp - 0x2c]
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x40ab02
mov dword [ebp - 4], 7
mov ecx, dword [ebp - 0x84]
mov edx, dword [ecx + 0x54]
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0xdc]
mov edi, dword [ebp - 0x2c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0xf0]
mov dx, word [ecx + 6]
add dx, 3
mov eax, dword [ebp - 0xf0]
mov word [eax + 6], dx
mov ecx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xf0]
mov eax, dword [ecx + 0x50]
xor edx, edx
div dword [esi + 0x38]
test edx, edx
je 0x40aba4
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x50]
xor edx, edx
div dword [ecx + 0x38]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x50]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x38]
sub ecx, edx
mov dword [ebp - 0x86c], ecx
jmp 0x40abb3
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0x86c], edx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x86c]
mov dword [eax + 0x50], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x50]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0xe4]
xor edx, edx
mov dx, word [ecx + 0x14]
mov eax, dword [ebp - 0xe4]
lea ecx, [eax + edx + 0x18]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0xe4]
xor eax, eax
mov ax, word [edx + 6]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x128]
add ecx, eax
mov dword [ebp - 0x12c], ecx
jmp 0x40ac1b
mov edx, dword [ebp - 0x128]
add edx, 0x28
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x128]
cmp eax, dword [ebp - 0x12c]
je 0x40adf1
mov ecx, 2
mov edi, 0x42b294
mov esi, dword [ebp - 0x128]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x40ad41
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x50]
add ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0xe4]
add ecx, dword [edx + 0x28]
mov eax, dword [ebp - 0x128]
sub ecx, dword [eax + 0xc]
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x13c]
add ecx, 0x40
mov dword [ebp - 0x144], ecx
mov byte [ebp - 0x140], 0
push 0x42b280
call dword [0x42505c]
mov dword [ebp - 0x134], eax
jmp 0x40aca3
mov edx, dword [ebp - 0x13c]
add edx, 1
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x144]
je 0x40accc
mov ecx, dword [ebp - 0x134]
mov edi, 0x42b280
mov esi, dword [ebp - 0x13c]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40acca
jmp 0x40accc
jmp 0x40ac94
mov eax, dword [ebp - 0x13c]
xor ecx, ecx
cmp eax, dword [ebp - 0x144]
setne cl
mov byte [ebp - 0x5e4], cl
push 0xf5
push 0x42b624
push 0x42b264
lea edx, [ebp - 0x5e4]
push edx
call fcn.004094d0
add esp, 0x10
mov eax, dword [ebp - 0x13c]
add eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x50]
add eax, 0x400
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x34]
add edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x128]
sub edx, dword [eax + 0x14]
add edx, dword [ebp - 0x130]
mov dword [ebp - 0x48], edx
jmp 0x40adf1
mov ecx, 2
mov edi, 0x42b258
mov esi, dword [ebp - 0x128]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x40ad83
mov ecx, 2
mov edi, 0x42b24c
mov esi, dword [ebp - 0x128]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x40ad83
mov ecx, 2
mov edi, 0x42b240
mov esi, dword [ebp - 0x128]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x40adec
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x10]
xor edx, edx
div dword [ecx + 0x38]
test edx, edx
je 0x40adcb
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x38]
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x38]
sub ecx, edx
mov dword [ebp - 0x870], ecx
jmp 0x40adda
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x870], edx
mov eax, dword [ebp - 0x130]
add eax, dword [ebp - 0x870]
mov dword [ebp - 0x130], eax
jmp 0x40ac0c
push 0xa
call fcn.00407610
add esp, 4
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x10], 0
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x24], 0
mov eax, dword [ebp - 0xf0]
mov byte [eax + 0x1a], 6
mov ecx, dword [ebp - 0xf0]
mov byte [ecx + 0x1b], 0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40ae86
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x874], ecx
jmp 0x40ae8f
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x874], edx
mov eax, dword [ebp - 0x874]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x4c]
mov dword [ecx + 0x54], edx
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x84]
cmp dword [eax + 0xc0], 0
je 0x40af97
mov dword [ebp - 0x148], 0
jmp 0x40aed9
mov ecx, dword [ebp - 0x148]
add ecx, 1
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0x84]
xor eax, eax
mov ax, word [edx + 6]
cmp dword [ebp - 0x148], eax
jae 0x40af97
mov ecx, dword [ebp - 0x148]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x84]
xor eax, eax
mov ax, word [edx + 0x14]
mov edx, dword [ebp - 0x84]
lea eax, [edx + eax + 0x18]
add eax, ecx
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x84]
mov eax, dword [ecx + 0xc]
cmp eax, dword [edx + 0xc0]
ja 0x40af92
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x14c]
add edx, dword [eax + 0x10]
mov ecx, dword [ebp - 0x84]
cmp edx, dword [ecx + 0xc0]
jbe 0x40af92
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14c]
mov ecx, dword [edx + 0xc0]
sub ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0xdc]
add eax, dword [edx + 0x14]
add eax, ecx
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x84]
mov eax, dword [ecx + 8]
sub eax, dword [edx + 0x34]
mov dword [ebp - 0x20], eax
jmp 0x40af97
jmp 0x40aeca
push 0x42c9e8
lea ecx, [ebp - 0x5e8]
call fcn.00401d10
lea ecx, [ebp - 0x5e8]
push ecx
call fcn.00404090
add esp, 4
mov edx, dword [ebp - 0x84]
xor eax, eax
mov ax, word [edx + 6]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x5f0], esp
push 0x42b21c
call fcn.00401d10
lea ecx, [ebp - 0x5f4]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x878], eax
mov edx, dword [ebp - 0x878]
mov dword [ebp - 0x87c], edx
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x5ec]
call fcn.00405dd0
push 0xc9
lea ecx, [ebp - 0x5ec]
push ecx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x5f4]
call dword [0x425270]
mov dword [ebp - 0xac], 0xffffffff
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x78]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x70], 0
jmp 0x40b05a
mov ecx, dword [ebp - 0x70]
add ecx, 1
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x84]
xor eax, eax
mov ax, word [edx + 6]
cmp dword [ebp - 0x70], eax
jae 0x40c043
call fcn.004072c0
mov byte [ebp - 0x15c], 0
xor ecx, ecx
mov dword [ebp - 0x15b], ecx
mov dword [ebp - 0x157], ecx
mov byte [ebp - 0x174], 0
mov edx, dword [ebp - 0x70]
imul edx, edx, 0x28
mov eax, dword [ebp - 0xf0]
xor ecx, ecx
mov cx, word [eax + 0x14]
mov eax, dword [ebp - 0xf0]
lea ecx, [eax + ecx + 0x18]
add ecx, edx
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x24]
and eax, 0xfdffffff
mov ecx, dword [ebp - 0xec]
mov dword [ecx*4 + 0x42ca58], eax
mov edx, dword [ebp - 0xec]
add edx, 1
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax]
mov dword [ebp - 0x15c], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x170]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x170]
mov dword [ecx + 0x1c], 0
mov edx, dword [ebp - 0x170]
mov word [edx + 0x20], 0
mov eax, dword [ebp - 0x170]
mov word [eax + 0x22], 0
lea ecx, [ebp - 0x15c]
push ecx
mov edx, dword [ebp - 0x70]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x5fc], esp
push 0x42b208
call fcn.00401d10
lea eax, [ebp - 0x600]
push eax
call dword [0x42526c]
add esp, 0x10
mov dword [ebp - 0x880], eax
mov ecx, dword [ebp - 0x880]
mov dword [ebp - 0x884], ecx
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x884]
push edx
lea ecx, [ebp - 0x5f8]
call fcn.00405dd0
push 0xc9
lea eax, [ebp - 0x5f8]
push eax
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x600]
call dword [0x425270]
mov ecx, dword [0x42ad2c]
push ecx
lea ecx, [ebp - 0x604]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x888], eax
push 0
lea edx, [ebp - 0x604]
push edx
mov ecx, dword [ebp - 0x888]
mov eax, dword [ebp - 0x888]
mov edx, dword [eax]
call dword [edx + 0x14]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x184], al
mov eax, dword [0x42ad2c]
push eax
lea ecx, [ebp - 0x608]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x88c], eax
push 0
lea ecx, [ebp - 0x608]
push ecx
mov ecx, dword [ebp - 0x88c]
mov edx, dword [ebp - 0x88c]
mov eax, dword [edx]
call dword [eax + 0x14]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x168], al
mov ecx, dword [0x42ad30]
push ecx
lea ecx, [ebp - 0x60c]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x890], eax
push 0
lea edx, [ebp - 0x60c]
push edx
mov ecx, dword [ebp - 0x890]
mov eax, dword [ebp - 0x890]
mov edx, dword [eax]
call dword [edx + 0x14]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x16c], al
mov byte [ebp - 0x180], 0
cmp dword [ebp - 0xc8], 0xffffffff
jne 0x40b2fe
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x170]
mov edx, dword [eax + 0x28]
cmp edx, dword [ecx + 0xc]
jb 0x40b2fe
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x170]
add ecx, dword [edx + 8]
mov eax, dword [ebp - 0xf0]
cmp dword [eax + 0x28], ecx
jae 0x40b2fe
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x2c]
add ecx, dword [eax + 0x28]
mov edx, dword [ebp - 0x170]
sub ecx, dword [edx + 0xc]
mov eax, dword [ebp - 0x170]
add ecx, dword [eax + 0x14]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx]
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x90], ecx
mov byte [ebp - 0x180], 1
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx + 0xc]
cmp ecx, dword [eax + 0xa0]
jne 0x40b421
mov edx, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x38]
test edx, edx
je 0x40b361
mov edx, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x38]
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x38]
sub ecx, edx
mov dword [ebp - 0x894], ecx
jmp 0x40b370
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x894], edx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x24]
add ecx, dword [ebp - 0x894]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x24], ecx
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0x24]
and ecx, 0x80000000
or cl, 0x80
or ecx, 0x40000000
or ecx, 0x20000000
mov edx, dword [ebp - 0x170]
mov dword [edx + 0x24], ecx
mov eax, dword [ebp - 0x180]
and eax, 0xff
test eax, eax
jne 0x40b3fe
mov ecx, dword [ebp - 0x170]
mov dword [ecx + 0x10], 0
mov edx, dword [ebp - 0x170]
mov dword [edx + 0x14], 0
push 0x42b1fc
lea ecx, [ebp - 0x610]
call fcn.00401d10
push 0x4e
lea eax, [ebp - 0x610]
push eax
call fcn.004073b0
add esp, 8
jmp 0x40b051
push 0x42b1ec
lea ecx, [ebp - 0x614]
call fcn.00401d10
push 0x4e
lea ecx, [ebp - 0x614]
push ecx
call fcn.004073b0
add esp, 8
jmp 0x40b428
mov byte [ebp - 0x180], 0
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx + 0xc]
cmp ecx, dword [eax + 0x88]
ja 0x40b46d
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x170]
add eax, dword [ecx + 0x10]
mov edx, dword [ebp - 0xf0]
cmp eax, dword [edx + 0x88]
jbe 0x40b46d
mov byte [ebp - 0x184], 1
mov byte [ebp - 0x168], 1
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40b4a3
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x898], ecx
jmp 0x40b4ac
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x898], edx
mov eax, dword [ebp - 0x898]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0xdc]
add edx, dword [ecx + 0x14]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx + 0x10]
cmp ecx, dword [eax + 0x3c]
ja 0x40b50c
mov byte [ebp - 0x184], 1
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx + 0xc]
cmp ecx, dword [eax + 0xc0]
ja 0x40b574
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x170]
add eax, dword [ecx + 0x10]
mov edx, dword [ebp - 0xf0]
cmp eax, dword [edx + 0xc0]
jbe 0x40b574
push 0x42b1d0
lea ecx, [ebp - 0x618]
call fcn.00401d10
push 0x4e
lea eax, [ebp - 0x618]
push eax
call fcn.004073b0
add esp, 8
mov byte [ebp - 0x184], 1
mov byte [ebp - 0x168], 1
jmp 0x40b5e9
mov ecx, 0x42b1c8
lea edx, [ebp - 0x15c]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40b595
mov byte [ebp - 0x184], 1
mov byte [ebp - 0x168], 1
jmp 0x40b5e9
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0xc]
cmp edx, dword [ebp - 0x20]
ja 0x40b5e9
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x170]
add ecx, dword [edx + 0x10]
cmp ecx, dword [ebp - 0x20]
jbe 0x40b5e9
push 0x42b1b0
lea ecx, [ebp - 0x61c]
call fcn.00401d10
push 0x4e
lea eax, [ebp - 0x61c]
push eax
call fcn.004073b0
add esp, 8
mov byte [ebp - 0x184], 1
mov byte [ebp - 0x168], 1
push 0x42b1a8
lea ecx, [ebp - 0x62c]
call fcn.00401d10
push 0
lea ecx, [ebp - 0x62c]
push ecx
lea ecx, [ebp - 0x628]
call dword [0x425258]
mov dword [ebp - 0x89c], eax
mov edx, dword [ebp - 0x89c]
mov dword [ebp - 0x8a0], edx
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x15c]
push eax
mov ecx, dword [ebp - 0x8a0]
call fcn.0040e8c0
push eax
lea ecx, [ebp - 0x624]
call fcn.00405dd0
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x8a4], eax
push 0
lea ecx, [ebp - 0x624]
push ecx
mov ecx, dword [ebp - 0x8a4]
mov edx, dword [ebp - 0x8a4]
mov eax, dword [edx]
call dword [eax + 0x14]
mov dword [ebp - 0x620], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x628]
call dword [0x425270]
cmp dword [ebp - 0x620], 0
je 0x40b715
lea ecx, [ebp - 0x15c]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x634], esp
push str.ShowWindow
call fcn.00401d10
lea edx, [ebp - 0x638]
push edx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x8a8], eax
mov eax, dword [ebp - 0x8a8]
mov dword [ebp - 0x8ac], eax
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x8ac]
push ecx
lea ecx, [ebp - 0x630]
call fcn.00405dd0
push 0x4e
lea edx, [ebp - 0x630]
push edx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x638]
call dword [0x425270]
mov byte [ebp - 0x184], 1
mov byte [ebp - 0x168], 1
mov byte [ebp - 0x16c], 1
push 0x42b180
lea ecx, [ebp - 0x63c]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x8b0], eax
push 0
lea eax, [ebp - 0x63c]
push eax
mov ecx, dword [ebp - 0x8b0]
mov edx, dword [ebp - 0x8b0]
mov eax, dword [edx]
call dword [eax + 0x14]
test eax, eax
je 0x40b80a
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0xc]
cmp edx, dword [ebp - 0x44]
ja 0x40b80a
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x170]
add ecx, dword [edx + 0x10]
cmp ecx, dword [ebp - 0x44]
jbe 0x40b80a
lea eax, [ebp - 0x15c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x644], esp
push 0x42b168
call fcn.00401d10
lea ecx, [ebp - 0x648]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x8b4], eax
mov edx, dword [ebp - 0x8b4]
mov dword [ebp - 0x8b8], edx
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8b8]
push eax
lea ecx, [ebp - 0x640]
call fcn.00405dd0
push 0x4e
lea ecx, [ebp - 0x640]
push ecx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x648]
call dword [0x425270]
mov byte [ebp - 0x184], 1
mov byte [ebp - 0x168], 1
mov byte [ebp - 0x16c], 1
mov dword [ebp - 0x160], 0
cmp dword [ebp - 0x70], 0x20
jae 0x40ba7f
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x24]
and eax, 0x80
test eax, eax
jne 0x40b840
mov ecx, dword [ebp - 0x184]
and ecx, 0xff
test ecx, ecx
je 0x40b854
mov edx, dword [ebp - 0x180]
and edx, 0xff
test edx, edx
je 0x40ba7d
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0x24]
and ecx, 0x20
test ecx, ecx
je 0x40ba0e
mov edx, dword [ebp - 0x17c]
push edx
call fcn.00404010
add esp, 4
mov dword [ebp - 0x64c], eax
mov eax, dword [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x188]
call fcn.00408e00
mov byte [ebp - 4], 0x1a
push 0x28
call fcn.00401c00
add esp, 4
mov dword [ebp - 0x650], eax
mov ecx, dword [ebp - 0x650]
push ecx
lea ecx, [ebp - 0x18c]
call fcn.0040e790
mov byte [ebp - 4], 0x1b
mov ebx, dword [ebp - 0x17c]
mov esi, dword [ebp - 0x164]
lea ecx, [ebp - 0x188]
call fcn.00408e30
mov edi, eax
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x18c]
call fcn.0040e7f0
mov edi, eax
mov esi, dword [ebp - 0x170]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x18c]
call fcn.0040e7e0
mov esi, eax
lea ecx, [ebp - 0x188]
call fcn.00408e30
sub eax, dword [ebp - 0x2c]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x16c]
and eax, 0xff
test eax, eax
jne 0x40b97a
push 0x42b158
lea ecx, [ebp - 0x654]
call fcn.00401d10
push 0x53
lea ecx, [ebp - 0x654]
push ecx
call fcn.004073b0
add esp, 8
mov edx, dword [ebp + 0x14]
push edx
push 0
mov eax, dword [ebp - 0xf0]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x48]
push edx
lea ecx, [ebp - 0x18c]
call fcn.0040e800
push eax
call fcn.0040ecf0
add esp, 0x18
mov byte [ebp - 0x174], 1
push str.CharUpperBuffA
lea ecx, [ebp - 0x658]
call fcn.00401d10
lea eax, [ebp - 0x658]
push eax
call fcn.00407520
add esp, 4
push 6
mov ecx, dword [ebp - 0x17c]
push ecx
mov edx, dword [ebp - 0x178]
push edx
lea ecx, [ebp - 0x188]
call fcn.00408e30
push eax
call fcn.0040ebd0
add esp, 0x10
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x660], 0
lea eax, [ebp - 0x660]
push eax
lea ecx, [ebp - 0x65c]
call fcn.00405f10
lea ecx, [ebp - 0x65c]
push ecx
call fcn.00407520
add esp, 4
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x18c]
call fcn.0040e7b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x188]
call fcn.00408e10
jmp 0x40ba7d
push str.CharUpperBuffA
lea ecx, [ebp - 0x664]
call fcn.00401d10
lea edx, [ebp - 0x664]
push edx
call fcn.00407520
add esp, 4
push 6
mov eax, dword [ebp - 0x17c]
push eax
mov ecx, dword [ebp - 0x178]
push ecx
mov edx, dword [ebp - 0x164]
push edx
call fcn.0040ebd0
add esp, 0x10
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x66c], 0
lea eax, [ebp - 0x66c]
push eax
lea ecx, [ebp - 0x668]
call fcn.00405f10
lea ecx, [ebp - 0x668]
push ecx
call fcn.00407520
add esp, 4
jmp 0x40ba85
xor edx, edx
test edx, edx
jne 0x40ba7f
cmp dword [ebp - 0x160], 0
jne 0x40bb3e
mov ecx, dword [ebp - 0x17c]
mov esi, dword [ebp - 0x164]
mov edi, dword [ebp - 0x178]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0x24]
and edx, 0x20
test edx, edx
je 0x40bb2d
mov eax, dword [ebp - 0x16c]
and eax, 0xff
test eax, eax
jne 0x40bb2d
mov ecx, dword [ebp - 0x16c]
and ecx, 0xff
test ecx, ecx
jne 0x40bb2d
push 0x42b158
lea ecx, [ebp - 0x670]
call fcn.00401d10
push 0x53
lea edx, [ebp - 0x670]
push edx
call fcn.004073b0
add esp, 8
mov eax, dword [ebp + 0x14]
push eax
push 0
mov ecx, dword [ebp - 0xf0]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x170]
push ecx
call fcn.0040ecf0
add esp, 0x18
mov byte [ebp - 0x174], 1
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x160], edx
jmp 0x40bbd0
mov eax, 1
mov ecx, dword [ebp - 0x70]
shl eax, cl
mov ecx, dword [ebp - 0xb8]
or ecx, eax
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x160]
push edx
mov eax, dword [ebp - 0x17c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x678], esp
push 0x42b12c
call fcn.00401d10
lea ecx, [ebp - 0x67c]
push ecx
call dword [0x42526c]
add esp, 0x10
mov dword [ebp - 0x8bc], eax
mov edx, dword [ebp - 0x8bc]
mov dword [ebp - 0x8c0], edx
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x8c0]
push eax
lea ecx, [ebp - 0x674]
call fcn.00405dd0
push 0x43
lea ecx, [ebp - 0x674]
push ecx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x67c]
call dword [0x425270]
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x160]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x170]
mov esi, dword [ebp - 0xf0]
mov eax, dword [ecx + 0x10]
xor edx, edx
div dword [esi + 0x3c]
test edx, edx
je 0x40bc27
mov edx, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x8c4], ecx
jmp 0x40bc36
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x8c4], edx
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x8c4]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0x168]
and edx, 0xff
test edx, edx
jne 0x40be66
cmp dword [ebp - 0x70], 0x20
jae 0x40be66
mov eax, 1
mov ecx, dword [ebp - 0x70]
shl eax, cl
mov ecx, dword [ebp - 0xb4]
or ecx, eax
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x684], esp
push str.GetEnvironmentVariableA
call fcn.00401d10
lea ecx, [ebp - 0x688]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x8c8], eax
mov edx, dword [ebp - 0x8c8]
mov dword [ebp - 0x8cc], edx
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x8cc]
push eax
lea ecx, [ebp - 0x680]
call fcn.00405dd0
push 0x53
lea ecx, [ebp - 0x680]
push ecx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x688]
call dword [0x425270]
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x10]
shr eax, 3
mov dword [ebp - 0x264], eax
mov ecx, dword [0x42ad3c]
push ecx
lea ecx, [ebp - 0x68c]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x8d0], eax
lea edx, [ebp - 0x268]
push edx
lea eax, [ebp - 0x68c]
push eax
lea ecx, [ebp - 0x260]
push ecx
mov ecx, dword [ebp - 0x8d0]
mov edx, dword [ebp - 0x8d0]
mov eax, dword [edx]
call dword [eax + 0x20]
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x260]
call fcn.00401f50
mov dword [ebp - 0x26c], eax
lea ecx, [ebp - 0x260]
call fcn.00404040
cmp eax, 0x10
je 0x40bde3
mov ecx, dword [0x42ad3c]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x6a4], esp
push 0x42b0ec
call fcn.00401d10
lea edx, [ebp - 0x6a8]
push edx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x8d4], eax
mov eax, dword [ebp - 0x8d4]
mov dword [ebp - 0x8d8], eax
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x8d8]
push ecx
lea ecx, [ebp - 0x6a0]
call fcn.00405dd0
lea edx, [ebp - 0x6a0]
push edx
lea ecx, [ebp - 0x69c]
call fcn.00404670
push 0x425560
lea eax, [ebp - 0x69c]
push eax
call fcn.00421a10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40bde3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
test edx, edx
jne 0x40bdf5
mov eax, dword [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x25c]
call fcn.0041b450
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40be19
mov edx, dword [ebp - 0x264]
push edx
mov eax, dword [ebp - 0x178]
push eax
lea ecx, [ebp - 0x25c]
call fcn.0041b700
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40be44
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x260]
call dword [0x425270]
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x6b0], esp
push 0x42b0d8
call fcn.00401d10
lea ecx, [ebp - 0x6b4]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x8dc], eax
mov edx, dword [ebp - 0x8dc]
mov dword [ebp - 0x8e0], edx
mov byte [ebp - 4], 0x20
mov eax, dword [ebp - 0x8e0]
push eax
lea ecx, [ebp - 0x6ac]
call fcn.00405dd0
push 0x41
lea ecx, [ebp - 0x6ac]
push ecx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6b4]
call dword [0x425270]
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x24]
and eax, 0x20
test eax, eax
je 0x40bf61
mov ecx, dword [ebp - 0x174]
and ecx, 0xff
test ecx, ecx
jne 0x40bf1a
cmp dword [ebp - 0x70], 0x20
jae 0x40bf1a
mov edx, 1
mov ecx, dword [ebp - 0x70]
shl edx, cl
mov eax, dword [ebp - 0xb0]
or eax, edx
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0x24]
and edx, 0x80000000
or edx, 0x40
or edx, 0x40000000
or edx, 0x20000000
mov eax, dword [ebp - 0x170]
mov dword [eax + 0x24], edx
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x20]
mov eax, dword [ebp - 0x170]
add edx, dword [eax + 0x10]
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x20], edx
jmp 0x40c02f
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + 0x24]
and eax, 0x80
test eax, eax
jne 0x40bf7f
mov ecx, dword [ebp - 0x170]
cmp dword [ecx + 0x10], 0
jne 0x40bf8f
mov edx, dword [ebp - 0x180]
and edx, 0xff
test edx, edx
je 0x40bfd3
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0x24]
and ecx, 0x80000000
or ecx, 0x40
or ecx, 0x40000000
or ecx, 0x20000000
mov edx, dword [ebp - 0x170]
mov dword [edx + 0x24], ecx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x170]
add ecx, dword [edx + 0x10]
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0x20], ecx
jmp 0x40c02f
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x170]
add edx, dword [eax + 0x10]
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x24], edx
mov edx, dword [ebp - 0x170]
mov dword [edx + 0x10], 0
mov eax, dword [ebp - 0x170]
mov dword [eax + 0x14], 0
mov ecx, dword [ebp - 0x170]
mov edx, dword [ecx + 0x24]
and edx, 0x80000000
or dl, 0x80
or edx, 0x40000000
or edx, 0x20000000
mov eax, dword [ebp - 0x170]
mov dword [eax + 0x24], edx
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x4c]
add edx, dword [ecx + 0x10]
mov dword [ebp - 0x4c], edx
jmp 0x40b051
push 0x14
call fcn.00407610
add esp, 4
cmp dword [ebp - 0x5c], 0
jne 0x40c0ca
mov ecx, dword [ebp + 8]
call fcn.00404020
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x6cc], esp
push 0x42b0b4
call fcn.00401d10
lea eax, [ebp - 0x6d0]
push eax
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x8e4], eax
mov ecx, dword [ebp - 0x8e4]
mov dword [ebp - 0x8e8], ecx
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x8e8]
push edx
lea ecx, [ebp - 0x6c8]
call fcn.00405dd0
lea eax, [ebp - 0x6c8]
push eax
lea ecx, [ebp - 0x6c4]
call fcn.00404670
push 0x425560
lea ecx, [ebp - 0x6c4]
push ecx
call fcn.00421a10
push 0x42c9e8
lea ecx, [ebp - 0x6d4]
call fcn.00401d10
lea edx, [ebp - 0x6d4]
push edx
call fcn.00404090
add esp, 4
push 0x42b0a0
lea ecx, [ebp - 0x6d8]
call fcn.00401d10
push 0xc9
lea eax, [ebp - 0x6d8]
push eax
call fcn.004073b0
add esp, 8
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0xf0]
xor edx, edx
mov dx, word [ecx + 6]
imul edx, edx, 0x28
mov eax, dword [ebp - 0xf0]
xor ecx, ecx
mov cx, word [eax + 0x14]
mov eax, dword [ebp - 0xf0]
lea ecx, [eax + ecx + 0x18]
lea edx, [ecx + edx - 0x78]
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0xe4]
xor ecx, ecx
mov cx, word [eax + 0x14]
mov edx, dword [ebp - 0xe4]
lea eax, [edx + ecx + 0x18]
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0xe4]
xor edx, edx
mov dx, word [ecx + 6]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x270]
add eax, edx
mov dword [ebp - 0x280], eax
mov ecx, dword [ebp - 0xf0]
xor edx, edx
mov dx, word [ecx + 6]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x274]
add eax, edx
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0xf0]
xor edx, edx
mov dx, word [ecx + 6]
sub edx, 3
mov dword [ebp - 0x27c], edx
jmp 0x40c1e8
mov eax, dword [ebp - 0x270]
add eax, 0x28
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x270]
cmp ecx, dword [ebp - 0x280]
je 0x40c6a0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
mov ecx, 2
mov edi, 0x42b258
mov esi, dword [ebp - 0x270]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x40c24e
lea eax, [ebp - 0xfc]
mov dword [ebp - 0x288], eax
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x284], ecx
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 0x64], edx
mov eax, 1
test eax, eax
jne 0x40c2c4
mov ecx, 2
mov edi, 0x42b24c
mov esi, dword [ebp - 0x270]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x40c28b
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x288], eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x284], ecx
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 0xf8], edx
mov eax, 1
test eax, eax
jne 0x40c2c4
mov ecx, 2
mov edi, 0x42b240
mov esi, dword [ebp - 0x270]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x40c69b
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x288], eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x284], ecx
mov edx, 1
test edx, edx
je 0x40c69b
mov byte [ebp - 0x294], 0
xor eax, eax
mov dword [ebp - 0x293], eax
mov dword [ebp - 0x28f], eax
mov ecx, dword [ebp - 0x274]
xor edx, edx
cmp ecx, dword [ebp - 0x278]
setne dl
mov byte [ebp - 0x6dc], dl
push 0x25d
push 0x42b624
push 0x42b094
lea eax, [ebp - 0x6dc]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x288]
xor edx, edx
cmp dword [ecx], 0
sete dl
mov byte [ebp - 0x6e0], dl
push 0x25e
push 0x42b624
push 0x42b088
lea eax, [ebp - 0x6e0]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x284]
xor edx, edx
cmp dword [ecx], 0
sete dl
mov byte [ebp - 0x6e4], dl
push 0x25f
push 0x42b624
push 0x42b078
lea eax, [ebp - 0x6e4]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x288]
mov edx, dword [ebp - 0x274]
mov dword [ecx], edx
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x270]
mov dword [eax], ecx
mov ecx, 0xa
mov esi, dword [ebp - 0x270]
mov edi, dword [ebp - 0x274]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp - 0x274]
mov dword [edx + 0x24], 0xe0000040
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax]
mov dword [ebp - 0x294], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x290], edx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40c3fb
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x8ec], ecx
jmp 0x40c404
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x8ec], edx
mov eax, dword [ebp - 0x8ec]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0x4c]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x270]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x50]
add esi, dword [edx + 0x14]
mov edi, dword [ebp - 0x2c]
add edi, dword [ebp - 0x4c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x50]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x270]
mov edx, dword [ebp - 0x274]
mov eax, dword [ecx + 0x10]
cmp eax, dword [edx + 8]
jbe 0x40c479
mov ecx, dword [ebp - 0x270]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x8f0], edx
jmp 0x40c488
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x8f0], ecx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x8f0]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40c533
mov edx, dword [ebp - 0x270]
mov eax, dword [ebp - 0x274]
mov ecx, dword [edx + 0x10]
cmp ecx, dword [eax + 8]
jbe 0x40c4c6
mov edx, dword [ebp - 0x270]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x8f4], eax
jmp 0x40c4d5
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x8f4], edx
mov eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x274]
mov edx, dword [eax + 0x10]
cmp edx, dword [ecx + 8]
jbe 0x40c4fa
mov eax, dword [ebp - 0x270]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x8f8], ecx
jmp 0x40c509
mov edx, dword [ebp - 0x274]
mov eax, dword [edx + 8]
mov dword [ebp - 0x8f8], eax
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x8f8]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x8f4]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x8fc], ecx
jmp 0x40c573
mov edx, dword [ebp - 0x270]
mov eax, dword [ebp - 0x274]
mov ecx, dword [edx + 0x10]
cmp ecx, dword [eax + 8]
jbe 0x40c558
mov edx, dword [ebp - 0x270]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x900], eax
jmp 0x40c567
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x900], edx
mov eax, dword [ebp - 0x900]
mov dword [ebp - 0x8fc], eax
mov ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0x8fc]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x10]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x274]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x38]
test edx, edx
je 0x40c5d9
mov edx, dword [ebp - 0x274]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x38]
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x38]
sub ecx, edx
mov dword [ebp - 0x904], ecx
jmp 0x40c5e8
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x904], edx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x50]
add ecx, dword [ebp - 0x904]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x50], ecx
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x27c]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x6ec], esp
push 0x42b060
call fcn.00401d10
lea eax, [ebp - 0x6f0]
push eax
call dword [0x42526c]
add esp, 0x10
mov dword [ebp - 0x908], eax
mov ecx, dword [ebp - 0x908]
mov dword [ebp - 0x90c], ecx
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x90c]
push edx
lea ecx, [ebp - 0x6e8]
call fcn.00405dd0
push 0x41
lea eax, [ebp - 0x6e8]
push eax
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6f0]
call dword [0x425270]
mov ecx, dword [ebp - 0x27c]
add ecx, 1
mov dword [ebp - 0x27c], ecx
mov edx, dword [ebp - 0x274]
add edx, 0x28
mov dword [ebp - 0x274], edx
jmp 0x40c1d9
xor eax, eax
cmp dword [ebp - 0xfc], 0
setne al
mov byte [ebp - 0x6f4], al
push 0x281
push 0x42b624
push 0x42b050
lea ecx, [ebp - 0x6f4]
push ecx
call fcn.004094d0
add esp, 0x10
xor edx, edx
cmp dword [ebp - 0x1c], 0
setne dl
mov byte [ebp - 0x6f8], dl
push 0x282
push 0x42b624
push 0x42b040
lea eax, [ebp - 0x6f8]
push eax
call fcn.004094d0
add esp, 0x10
xor ecx, ecx
cmp dword [ebp - 0x7c], 0
setne cl
mov byte [ebp - 0x6fc], cl
push 0x283
push 0x42b624
push 0x42b030
lea edx, [ebp - 0x6fc]
push edx
call fcn.004094d0
add esp, 0x10
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x24]
or ecx, 0xe0000000
mov edx, dword [ebp - 0xfc]
mov dword [edx + 0x24], ecx
push 0x1e
call fcn.00407610
add esp, 4
mov dword [ebp - 0xf4], 0
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x84]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + 0xc]
sub eax, dword [edx + 0xc]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x14]
sub eax, dword [edx + 0xc]
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x2a8], edx
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x2ac], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0xdc]
mov dword [edx + 0xdc], ecx
mov edx, dword [ebp - 0x2a8]
add edx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0xd8], edx
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x84]
mov dword [ecx + 0x84], eax
mov ecx, dword [ebp - 0x2ac]
add ecx, dword [ebp - 0x2a4]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x80], ecx
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x84]
xor edx, edx
mov ecx, 0x14
div ecx
mov dword [ebp - 0x2a0], eax
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x2ac]
add edx, dword [ebp - 0x298]
mov dword [ebp - 0x29c], edx
mov dword [ebp - 0x2b0], 0
jmp 0x40c86d
mov eax, dword [ebp - 0x2b0]
add eax, 1
mov dword [ebp - 0x2b0], eax
mov ecx, dword [ebp - 0x2b0]
cmp ecx, dword [ebp - 0x2a0]
jae 0x40ca3a
call fcn.004072c0
mov edx, dword [ebp - 0x2b0]
imul edx, edx, 0x14
mov eax, dword [ebp - 0x29c]
cmp dword [eax + edx], 0
jne 0x40c89b
jmp 0x40c85e
xor ecx, ecx
test ecx, ecx
jne 0x40c89b
mov edx, dword [ebp - 0x2b0]
imul edx, edx, 0x14
mov eax, dword [ebp - 0x29c]
mov ecx, dword [ebp - 0x2c]
add ecx, dword [eax + edx]
add ecx, dword [ebp - 0x298]
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b0]
imul edx, edx, 0x14
mov eax, dword [ebp - 0x29c]
mov ecx, dword [ebp - 0x2c]
add ecx, dword [eax + edx + 0x10]
add ecx, dword [ebp - 0x298]
mov dword [ebp - 0x2b8], ecx
jmp 0x40c904
mov edx, dword [ebp - 0x2b4]
add edx, 4
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b8]
add eax, 4
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2b4]
cmp dword [ecx], 0
je 0x40c9b3
mov edx, dword [ebp - 0x2b4]
mov eax, dword [edx]
and eax, 0x80000000
test eax, eax
jne 0x40c99f
mov ecx, dword [ebp - 0x2b4]
mov edx, dword [ebp - 0x2c]
add edx, dword [ecx]
add edx, dword [ebp - 0x298]
mov dword [ebp - 0x2bc], edx
xor eax, eax
test eax, eax
jne 0x40c93b
mov ecx, dword [ebp - 0x2b4]
mov edx, dword [ebp - 0x2a4]
add edx, dword [ecx]
mov eax, dword [ebp - 0x2b4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2b8]
xor edx, edx
cmp dword [ecx], 0
setne dl
mov byte [ebp - 0x700], dl
push 0x2ae
push 0x42b624
push 0x42b024
lea eax, [ebp - 0x700]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x2a4]
add edx, dword [ecx]
mov eax, dword [ebp - 0x2b8]
mov dword [eax], edx
mov ecx, dword [ebp - 0xf4]
add ecx, 1
mov dword [ebp - 0xf4], ecx
jmp 0x40c8e6
mov edx, dword [ebp - 0x2b0]
imul edx, edx, 0x14
mov eax, dword [ebp - 0x2b0]
imul eax, eax, 0x14
mov ecx, dword [ebp - 0x29c]
mov esi, dword [ebp - 0x2a4]
add esi, dword [ecx + eax]
mov eax, dword [ebp - 0x29c]
mov dword [eax + edx], esi
mov ecx, dword [ebp - 0x2b0]
imul ecx, ecx, 0x14
mov edx, dword [ebp - 0x2b0]
imul edx, edx, 0x14
mov eax, dword [ebp - 0x29c]
mov esi, dword [ebp - 0x2a4]
add esi, dword [eax + edx + 0x10]
mov edx, dword [ebp - 0x29c]
mov dword [edx + ecx + 0x10], esi
mov eax, dword [ebp - 0x2b0]
imul eax, eax, 0x14
mov ecx, dword [ebp - 0x2b0]
imul ecx, ecx, 0x14
mov edx, dword [ebp - 0x29c]
mov esi, dword [ebp - 0x2a4]
add esi, dword [edx + ecx + 0xc]
mov ecx, dword [ebp - 0x29c]
mov dword [ecx + eax + 0xc], esi
jmp 0x40c85e
push 0x28
call fcn.00407610
add esp, 4
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0xa0]
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2e4], 0
jmp 0x40ca71
mov ecx, dword [ebp - 0x2e4]
add ecx, 1
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0xe4]
xor eax, eax
mov ax, word [edx + 6]
cmp dword [ebp - 0x2e4], eax
jge 0x40cafc
mov ecx, dword [ebp - 0x2e4]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0xe4]
xor eax, eax
mov ax, word [edx + 0x14]
mov edx, dword [ebp - 0xe4]
lea eax, [edx + eax + 0x18]
add eax, ecx
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
mov edx, dword [ebp - 0x2c4]
cmp edx, dword [ecx + 0xc]
jb 0x40caf7
mov eax, dword [ebp - 0x2e8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x2e8]
add ecx, dword [edx + 0x10]
cmp dword [ebp - 0x2c4], ecx
jae 0x40caf7
mov eax, dword [ebp - 0x2e8]
mov ecx, dword [ebp - 0x2c4]
sub ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x2e8]
add ecx, dword [edx + 0x14]
mov dword [ebp - 0x2c4], ecx
jmp 0x40cafc
jmp 0x40ca62
mov eax, dword [ebp - 0xe4]
xor ecx, ecx
mov cx, word [eax + 6]
xor edx, edx
cmp dword [ebp - 0x2e4], ecx
setne dl
mov byte [ebp - 0x704], dl
push 0x2c6
push 0x42b624
push str.FlushViewOfFile
lea eax, [ebp - 0x704]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0xa4]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [eax + 0xc]
sub edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [eax + 0x34]
sub edx, dword [ecx + 0x34]
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [eax + 0x14]
sub edx, dword [ecx + 0x14]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov edx, dword [eax + 0xc]
sub edx, dword [ecx + 0xc]
mov dword [ebp - 0x2d8], edx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x40]
mov edx, dword [eax + 0xc]
sub edx, dword [ecx + 0xc]
mov dword [ebp - 0x2d4], edx
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2dc]
add ecx, dword [ebp - 0x2c0]
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp - 0x2dc]
cmp edx, dword [ebp - 0x2d0]
je 0x40d044
mov eax, dword [ebp - 0x2dc]
cmp eax, dword [ebp - 0x2d0]
sbb ecx, ecx
neg ecx
mov byte [ebp - 0x708], cl
push 0x2d4
push 0x42b624
push 0x42afe4
lea edx, [ebp - 0x708]
push edx
call fcn.004094d0
add esp, 0x10
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [eax]
mov dword [ebp - 0x2f4], ecx
mov edx, dword [ebp - 0x2dc]
add edx, 4
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [eax]
mov dword [ebp - 0x2f0], ecx
mov edx, dword [ebp - 0x2dc]
add edx, 4
mov dword [ebp - 0x2dc], edx
mov eax, dword [ebp - 0x2f0]
sub eax, 8
mov dword [ebp - 0x2f0], eax
mov ecx, dword [ebp - 0x2dc]
add ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2dc]
cmp edx, dword [ebp - 0x2ec]
je 0x40d03f
mov eax, dword [ebp - 0x2dc]
cmp eax, dword [ebp - 0x2ec]
sbb ecx, ecx
neg ecx
mov byte [ebp - 0x70c], cl
push 0x2db
push 0x42b624
push 0x42afd0
lea edx, [ebp - 0x70c]
push edx
call fcn.004094d0
add esp, 0x10
mov eax, dword [ebp - 0x2dc]
movsx ecx, word [eax]
and ecx, 0xfff
mov dword [ebp - 0x308], ecx
mov edx, dword [ebp - 0x2dc]
movsx eax, word [edx]
sar eax, 0xc
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 0x2dc]
add ecx, 2
mov dword [ebp - 0x2dc], ecx
cmp dword [ebp - 0x300], 0
jne 0x40cd01
jmp 0x40cc77
xor edx, edx
cmp dword [ebp - 0x300], 3
sete dl
mov byte [ebp - 0x710], dl
push 0x2e0
push 0x42b624
push 0x42afc4
lea eax, [ebp - 0x710]
push eax
call fcn.004094d0
add esp, 0x10
mov dword [ebp - 0x2fc], 0
mov ecx, dword [ebp - 0x2f4]
add ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0xd4]
cmp ecx, dword [edx + 0xc]
jb 0x40cd97
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xd4]
add ecx, dword [edx + 0x10]
mov eax, dword [ebp - 0x2f4]
add eax, dword [ebp - 0x308]
cmp eax, ecx
jae 0x40cd97
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x2f4]
sub edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0xfc]
add edx, dword [eax + 0x14]
mov dword [ebp - 0x2fc], edx
jmp 0x40ceaa
mov ecx, dword [ebp - 0x2f4]
add ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0x40]
cmp ecx, dword [edx + 0xc]
jb 0x40cde4
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x40]
add ecx, dword [edx + 0x10]
mov eax, dword [ebp - 0x2f4]
add eax, dword [ebp - 0x308]
cmp eax, ecx
jae 0x40cde4
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x2f4]
sub edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x7c]
add edx, dword [eax + 0x14]
mov dword [ebp - 0x2fc], edx
jmp 0x40ceaa
mov ecx, dword [ebp - 0x2f4]
add ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0x18]
cmp ecx, dword [edx + 0xc]
jb 0x40ce2e
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x18]
add ecx, dword [edx + 0x10]
mov eax, dword [ebp - 0x2f4]
add eax, dword [ebp - 0x308]
cmp eax, ecx
jae 0x40ce2e
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2f4]
sub edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x1c]
add edx, dword [eax + 0x14]
mov dword [ebp - 0x2fc], edx
jmp 0x40ceaa
mov ecx, dword [ebp - 0x308]
push ecx
mov edx, dword [ebp - 0x2f4]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x728], esp
push 0x42afa0
call fcn.00401d10
lea eax, [ebp - 0x72c]
push eax
call dword [0x42526c]
add esp, 0x10
mov dword [ebp - 0x910], eax
mov ecx, dword [ebp - 0x910]
mov dword [ebp - 0x914], ecx
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x914]
push edx
lea ecx, [ebp - 0x724]
call fcn.00405dd0
lea eax, [ebp - 0x724]
push eax
lea ecx, [ebp - 0x720]
call fcn.00404670
push 0x425560
lea ecx, [ebp - 0x720]
push ecx
call fcn.00421a10
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x2fc]
add edx, dword [ebp - 0x308]
mov dword [ebp - 0x2f8], edx
xor eax, eax
test eax, eax
jne 0x40cebf
mov ecx, dword [ebp - 0x2f8]
mov edx, dword [ebp - 0xe4]
mov eax, dword [ecx]
sub eax, dword [edx + 0x34]
mov dword [ebp - 0x304], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x304]
cmp edx, dword [ecx + 0xc]
jb 0x40cf30
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xd4]
add ecx, dword [edx + 8]
cmp dword [ebp - 0x304], ecx
jae 0x40cf30
xor eax, eax
test eax, eax
jne 0x40cf07
mov ecx, dword [ebp - 0x2cc]
add ecx, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x2f8]
mov eax, dword [edx]
add eax, ecx
mov ecx, dword [ebp - 0x2f8]
mov dword [ecx], eax
jmp 0x40d03a
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x304]
cmp eax, dword [edx + 0xc]
jb 0x40cf7b
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x18]
add edx, dword [eax + 8]
cmp dword [ebp - 0x304], edx
jae 0x40cf7b
xor ecx, ecx
test ecx, ecx
jne 0x40cf52
mov edx, dword [ebp - 0x2d8]
add edx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2f8]
mov ecx, dword [eax]
add ecx, edx
mov edx, dword [ebp - 0x2f8]
mov dword [edx], ecx
jmp 0x40d03a
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x304]
cmp ecx, dword [eax + 0xc]
jb 0x40cfc3
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x40]
add eax, dword [ecx + 8]
cmp dword [ebp - 0x304], eax
jae 0x40cfc3
xor edx, edx
test edx, edx
jne 0x40cf9d
mov eax, dword [ebp - 0x2d4]
add eax, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x2f8]
mov edx, dword [ecx]
add edx, eax
mov eax, dword [ebp - 0x2f8]
mov dword [eax], edx
jmp 0x40d03a
mov ecx, dword [ebp - 0x2f8]
mov edx, dword [ecx]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x744], esp
push 0x42af78
call fcn.00401d10
lea eax, [ebp - 0x748]
push eax
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x918], eax
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x91c], ecx
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x91c]
push edx
lea ecx, [ebp - 0x740]
call fcn.00405dd0
lea eax, [ebp - 0x740]
push eax
lea ecx, [ebp - 0x73c]
call fcn.00404670
push 0x425560
lea ecx, [ebp - 0x73c]
push ecx
call fcn.00421a10
jmp 0x40cc77
jmp 0x40cbd6
push 0x32
call fcn.00407610
add esp, 4
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x31c], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x31c]
cmp edx, dword [ecx + 0xc]
jb 0x40d09b
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xd4]
add ecx, dword [edx + 0x10]
cmp dword [ebp - 0x31c], ecx
jae 0x40d09b
mov dword [ebp - 0x920], 1
jmp 0x40d0a5
mov dword [ebp - 0x920], 0
mov al, byte [ebp - 0x920]
mov byte [ebp - 0x74c], al
push 0x302
push 0x42b624
push 0x42af00
lea ecx, [ebp - 0x74c]
push ecx
call fcn.004094d0
add esp, 0x10
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x2c]
add eax, dword [edx + 0x28]
mov ecx, dword [ebp - 0xd4]
sub eax, dword [ecx + 0xc]
mov edx, dword [ebp - 0xfc]
add eax, dword [edx + 0x14]
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x318]
add eax, 0x40
mov dword [ebp - 0x32c], eax
mov byte [ebp - 0x328], 0
mov edi, 0x42b280
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffff
mov dword [ebp - 0x30c], ecx
jmp 0x40d131
mov ecx, dword [ebp - 0x318]
add ecx, 1
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp - 0x318]
cmp edx, dword [ebp - 0x32c]
je 0x40d15a
mov ecx, dword [ebp - 0x30c]
mov edi, 0x42b280
mov esi, dword [ebp - 0x318]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d158
jmp 0x40d15a
jmp 0x40d122
mov ecx, dword [ebp - 0x318]
xor edx, edx
cmp ecx, dword [ebp - 0x32c]
setne dl
mov byte [ebp - 0x750], dl
push 0x310
push 0x42b624
push 0x42b264
lea eax, [ebp - 0x750]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x318]
add ecx, dword [ebp - 0x30c]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x30c]
add edx, 0x400
mov dword [ebp - 0x30c], edx
mov eax, dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x318]
mov edx, dword [0x42b4ec]
mov dword [ecx + eax - 0xd], edx
mov edx, dword [0x42b4f0]
mov dword [ecx + eax - 9], edx
mov eax, dword [ebp - 0x318]
add eax, dword [ebp - 0x30c]
mov byte [eax - 5], 0xe8
mov ecx, dword [ebp - 0x318]
add ecx, dword [ebp - 0x30c]
mov dword [ecx - 4], 0
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x28]
mov ecx, dword [ebp - 0xf0]
add eax, dword [ecx + 0x34]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x34]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x318]
add ecx, dword [ebp - 0x30c]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x314], ecx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x320], eax
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x314]
sub edx, dword [ecx + 0x14]
mov eax, dword [ebp - 0xfc]
add edx, dword [eax + 0xc]
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x28], edx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x334], edx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x34]
add ecx, dword [ebp - 0x314]
mov edx, dword [ebp - 0xfc]
sub ecx, dword [edx + 0x14]
mov eax, dword [ebp - 0xfc]
add ecx, dword [eax + 0xc]
mov dword [ebp - 0x310], ecx
mov ecx, dword [ebp - 0x48]
xor edx, edx
cmp ecx, dword [ebp - 0x310]
sete dl
mov byte [ebp - 0x754], dl
push 0x32a
push 0x42b624
push 0x42aec4
lea eax, [ebp - 0x754]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x30c]
mov edx, dword [ebp - 0x318]
lea eax, [edx + ecx + 0x8c]
mov dword [ebp - 0x330], eax
mov ecx, dword [ebp - 0x330]
sub ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xfc]
sub ecx, dword [edx + 0x14]
mov eax, dword [ebp - 0xfc]
add ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xf0]
add ecx, dword [edx + 0x34]
mov dword [ebp - 0x324], ecx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x28]
sub ecx, 5
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x28], ecx
push 0x3c
call fcn.00407610
add esp, 4
mov eax, dword [ebp + 0x14]
push eax
push 0
mov ecx, dword [ebp - 0xf0]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x310]
push eax
mov ecx, dword [ebp - 0xfc]
push ecx
call fcn.0040ecf0
add esp, 0x18
push 0x46
call fcn.00407610
add esp, 4
mov edx, dword [ebp + 0x14]
push edx
push 0
mov eax, dword [ebp - 0x324]
push eax
mov ecx, dword [ebp - 0x330]
push ecx
call fcn.0040f6e0
add esp, 0x10
mov edx, dword [ebp - 0x324]
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x318]
lea edx, [ecx + eax + 6]
mov dword [ebp - 0x14], edx
mov ecx, 0x10
lea esi, [ebp - 0xc8]
mov edi, dword [ebp - 0x14]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xa4]
mov dword [eax + 0x82], ecx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40d3e4
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x924], ecx
jmp 0x40d3ed
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x924], edx
mov eax, dword [ebp - 0x924]
mov dword [ebp - 0xd0], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40d3f9
mov dword [ebp - 0x338], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
test edx, edx
jne 0x40d415
mov eax, dword [ebp - 0x14]
add eax, 0x71
mov dword [ebp - 0x338], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40d433
lea ecx, [ebp - 0x3b4]
call fcn.00421d30
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
test edx, edx
jne 0x40d450
lea eax, [ebp - 0x348]
push eax
call dword [0x425060]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40d46f
push 0x10
lea edx, [ebp - 0x348]
push edx
lea ecx, [ebp - 0x3b4]
call fcn.00421d40
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test eax, eax
jne 0x40d495
mov ecx, dword [ebp - 0x338]
push ecx
lea ecx, [ebp - 0x3b4]
call fcn.00421e10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
test edx, edx
jne 0x40d4b9
mov eax, dword [ebp - 0x338]
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x38], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x34], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x30], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test eax, eax
jne 0x40d4e8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40d4fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
test edx, edx
jne 0x40d50c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test eax, eax
jne 0x40d51e
mov ecx, dword [ebp - 0x14]
mov dl, byte [0x42ca40]
mov byte [ecx + 0x70], dl
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test eax, eax
jne 0x40d53c
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
add edx, dword [ecx + 0x14]
mov dword [ebp - 0x3c0], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3cc], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00404010
add esp, 4
mov dword [ebp - 0x758], eax
mov eax, dword [ebp - 0x758]
push eax
lea ecx, [ebp - 0x3c4]
call fcn.00408e00
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ecx + 0x10]
mov esi, dword [ebp - 0x3c0]
lea ecx, [ebp - 0x3c4]
call fcn.00408e30
mov edi, eax
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str.CharUpperBuffA
lea ecx, [ebp - 0x75c]
call fcn.00401d10
lea eax, [ebp - 0x75c]
push eax
call fcn.00407520
add esp, 4
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x3c0]
push eax
lea ecx, [ebp - 0x3c4]
call fcn.00408e30
push eax
call fcn.0040e8f0
add esp, 0xc
mov dword [ebp - 0x3c8], eax
mov dword [ebp - 0x764], 0
lea ecx, [ebp - 0x764]
push ecx
lea ecx, [ebp - 0x760]
call fcn.00405f10
lea edx, [ebp - 0x760]
push edx
call fcn.00407520
add esp, 4
cmp dword [ebp - 0x3c8], 0
jbe 0x40d658
mov eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x3c8]
cmp ecx, dword [eax + 0x10]
jae 0x40d658
mov dword [ebp - 0x928], 1
jmp 0x40d662
mov dword [ebp - 0x928], 0
mov dl, byte [ebp - 0x928]
mov byte [ebp - 0x768], dl
push 0x385
push 0x42b624
push 0x42ae94
lea eax, [ebp - 0x768]
push eax
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x3c8]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40d6cb
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x3c8]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x3c8]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x92c], ecx
jmp 0x40d6d7
mov edx, dword [ebp - 0x3c8]
mov dword [ebp - 0x92c], edx
mov eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x92c]
mov dword [eax + 0x10], ecx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3c4]
call fcn.00408e10
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
add eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x3bc], eax
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x34]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0xc]
mov dword [ebp - 0x3b8], eax
jmp 0x40d730
mov edx, dword [ebp - 0x3c0]
add edx, 4
mov dword [ebp - 0x3c0], edx
mov eax, dword [ebp - 0x3c0]
cmp eax, dword [ebp - 0x3bc]
jae 0x40d76e
mov ecx, dword [ebp - 0x3b8]
imul ecx, ecx, 0x19660d
add ecx, 0x3c6ef375
mov dword [ebp - 0x3b8], ecx
mov edx, dword [ebp - 0x3c0]
mov eax, dword [edx]
xor eax, dword [ebp - 0x3b8]
mov ecx, dword [ebp - 0x3c0]
mov dword [ecx], eax
jmp 0x40d721
mov edx, dword [ebp - 0xf0]
xor eax, eax
mov ax, word [edx + 6]
sub eax, 1
cmp dword [ebp - 0xf8], eax
je 0x40d7b8
push 0x42ae78
lea ecx, [ebp - 0x77c]
call fcn.00401d10
lea ecx, [ebp - 0x77c]
push ecx
lea ecx, [ebp - 0x778]
call fcn.00404670
push 0x425560
lea edx, [ebp - 0x778]
push edx
call fcn.00421a10
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40d7f7
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x930], ecx
jmp 0x40d803
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x930], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x14]
add ecx, dword [ebp - 0x930]
mov dword [ebp - 0x4c], ecx
xor edx, edx
test edx, edx
jne 0x40d812
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40d84e
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x934], ecx
jmp 0x40d857
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x934], edx
mov eax, dword [ebp - 0x934]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x54
mov dword [ebp - 0x3d4], ecx
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x2c]
add ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x3d4]
sub edx, ecx
mov dword [ebp - 0x3e8], edx
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [eax + 0x10]
sub ecx, dword [ebp - 0x3e8]
mov dword [ebp - 0x3e0], ecx
mov edx, dword [ebp - 0x3e0]
push edx
call fcn.00404010
add esp, 4
mov dword [ebp - 0x780], eax
mov eax, dword [ebp - 0x780]
push eax
lea ecx, [ebp - 0x3dc]
call fcn.00408e00
mov byte [ebp - 4], 0x26
mov ebx, dword [ebp - 0x3e0]
mov esi, dword [ebp - 0x3d4]
lea ecx, [ebp - 0x3dc]
call fcn.00408e30
mov edi, eax
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str.CharUpperBuffA
lea ecx, [ebp - 0x784]
call fcn.00401d10
lea eax, [ebp - 0x784]
push eax
call fcn.00407520
add esp, 4
mov ecx, dword [ebp - 0x3e0]
push ecx
mov edx, dword [ebp - 0x3d4]
push edx
lea ecx, [ebp - 0x3dc]
call fcn.00408e30
push eax
call fcn.0040e8f0
add esp, 0xc
mov dword [ebp - 0x3d0], eax
mov dword [ebp - 0x78c], 0
lea eax, [ebp - 0x78c]
push eax
lea ecx, [ebp - 0x788]
call fcn.00405f10
lea ecx, [ebp - 0x788]
push ecx
call fcn.00407520
add esp, 4
cmp dword [ebp - 0x3d0], 0
jbe 0x40d993
mov edx, dword [ebp - 0x3d0]
cmp edx, dword [ebp - 0x3e0]
jae 0x40d993
mov dword [ebp - 0x938], 1
jmp 0x40d99d
mov dword [ebp - 0x938], 0
mov al, byte [ebp - 0x938]
mov byte [ebp - 0x790], al
push 0x3af
push 0x42b624
push 0x42ae54
lea ecx, [ebp - 0x790]
push ecx
call fcn.004094d0
add esp, 0x10
mov edx, dword [ebp - 0x3f0]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x3e4], eax
mov eax, dword [ebp - 0x3d0]
add eax, dword [ebp - 0x3e8]
mov ecx, dword [ebp - 0xf0]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40da27
mov eax, dword [ebp - 0x3d0]
add eax, dword [ebp - 0x3e8]
mov ecx, dword [ebp - 0xf0]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x3d0]
add eax, dword [ebp - 0x3e8]
mov ecx, dword [ebp - 0xf0]
add eax, dword [ecx + 0x3c]
sub eax, edx
mov dword [ebp - 0x93c], eax
jmp 0x40da39
mov edx, dword [ebp - 0x3d0]
add edx, dword [ebp - 0x3e8]
mov dword [ebp - 0x93c], edx
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x93c]
mov dword [eax + 0x10], ecx
xor edx, edx
test edx, edx
jne 0x40da48
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [eax + 0x10]
sub ecx, dword [ebp - 0x3e8]
mov edx, dword [ebp - 0x3d4]
add edx, ecx
mov dword [ebp - 0x3ec], edx
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xfc]
sub eax, dword [ecx + 0x14]
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx + 0x34]
mov edx, dword [ebp - 0xfc]
add ecx, dword [edx + 0xc]
add ecx, eax
mov dword [ebp - 0x3d8], ecx
mov eax, dword [ebp - 0x3d4]
add eax, 0xc
and al, 0xfc
mov dword [ebp - 0x3d4], eax
jmp 0x40dab9
mov ecx, dword [ebp - 0x3d4]
add ecx, 4
mov dword [ebp - 0x3d4], ecx
mov edx, dword [ebp - 0x3d4]
cmp edx, dword [ebp - 0x3ec]
jae 0x40daf6
mov eax, dword [ebp - 0x3d8]
imul eax, eax, 0x19660d
add eax, 0x3c6ef375
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x3d4]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x3d8]
mov eax, dword [ebp - 0x3d4]
mov dword [eax], edx
jmp 0x40daaa
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3dc]
call fcn.00408e10
mov ecx, dword [ebp - 0xf0]
xor edx, edx
mov dx, word [ecx + 6]
sub edx, 1
cmp dword [ebp - 0x64], edx
je 0x40dc34
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xfc]
add ecx, dword [edx + 0x14]
mov dword [ebp - 0x3f8], ecx
mov eax, dword [ebp - 0x64]
add eax, 1
mov dword [ebp - 0x3f4], eax
jmp 0x40db52
mov ecx, dword [ebp - 0x3f4]
add ecx, 1
mov dword [ebp - 0x3f4], ecx
mov edx, dword [ebp - 0xf0]
xor eax, eax
mov ax, word [edx + 6]
cmp dword [ebp - 0x3f4], eax
jae 0x40dbe0
mov ecx, dword [ebp - 0x3f4]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0xf0]
xor eax, eax
mov ax, word [edx + 0x14]
mov edx, dword [ebp - 0xf0]
lea eax, [edx + eax + 0x18]
add eax, ecx
mov dword [ebp - 0x3fc], eax
mov ecx, dword [ebp - 0x3fc]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x2c]
add ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x3f8]
push edx
call dword [0x4251b4]
add esp, 0xc
mov eax, dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f8]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x3fc]
mov eax, dword [ebp - 0x3f8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x3f8], eax
jmp 0x40db43
mov ecx, dword [ebp - 0x3f8]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40dc1f
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x940], ecx
jmp 0x40dc28
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x940], edx
mov eax, dword [ebp - 0x940]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0x20]
mov eax, dword [ebp - 0x7c]
add edx, dword [eax + 0x10]
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x20], edx
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0xfc]
add eax, dword [ecx + 0x10]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x1c]
add ecx, dword [edx + 0x10]
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xfc]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xf0]
mov eax, dword [ecx + 0x10]
xor edx, edx
div dword [esi + 0x3c]
test edx, edx
je 0x40dcd9
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x944], ecx
jmp 0x40dce8
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x944], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40dd27
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x948], ecx
jmp 0x40dd33
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x948], edx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40dd72
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x94c], ecx
jmp 0x40dd7e
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x94c], edx
mov eax, dword [ebp - 0x944]
add eax, dword [ebp - 0x948]
add eax, dword [ebp - 0x94c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x798], esp
push 0x42ae34
call fcn.00401d10
lea ecx, [ebp - 0x79c]
push ecx
call dword [0x42526c]
add esp, 0xc
mov dword [ebp - 0x950], eax
mov edx, dword [ebp - 0x950]
mov dword [ebp - 0x954], edx
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x954]
push eax
lea ecx, [ebp - 0x794]
call fcn.00405dd0
push 0x43
lea ecx, [ebp - 0x794]
push ecx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x79c]
call dword [0x425270]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40de45
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x958], ecx
jmp 0x40de54
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x958], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40de93
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x95c], ecx
jmp 0x40de9f
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x95c], edx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [eax + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40dede
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x10]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf0]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x960], ecx
jmp 0x40deea
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x960], edx
mov eax, dword [ebp - 0x958]
add eax, dword [ebp - 0x95c]
add eax, dword [ebp - 0x960]
mov dword [0x42ca38], eax
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x58], 0
mov edx, dword [ebp - 0xf0]
mov ax, word [edx + 0x16]
or ax, 0x20d
mov ecx, dword [ebp - 0xf0]
mov word [ecx + 0x16], ax
mov edx, dword [ebp - 0xf0]
mov ax, word [edx + 0x16]
or al, 2
mov ecx, dword [ebp - 0xf0]
mov word [ecx + 0x16], ax
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0xa4], 0
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0xa0], 0
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0xac], 0
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0xa8], 0
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0xec]
mov dword [eax], edx
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ecx + 0xe8]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x74]
add eax, 8
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0xec], 0
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0xe8], 0
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0xf4], 0
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0xd4], 0
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0xd0], 0
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0xcc], 0
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0xc8], 0
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x9c], 0
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x98], 0
mov eax, dword [ebp - 0xf0]
xor ecx, ecx
mov cx, word [eax + 6]
mov dword [ebp - 0x40c], ecx
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x400], edx
mov eax, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x40c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x400]
add edx, 4
mov dword [ebp - 0x400], edx
mov eax, dword [ebp - 0x40c]
imul eax, eax, 0x28
cmp eax, 0x3e0
sbb ecx, ecx
neg ecx
mov byte [ebp - 0x7a0], cl
push 0x411
push 0x42b624
push 0x42adfc
lea edx, [ebp - 0x7a0]
push edx
call fcn.004094d0
add esp, 0x10
mov ecx, dword [ebp - 0x40c]
imul ecx, ecx, 0x28
mov eax, dword [ebp - 0xf0]
xor edx, edx
mov dx, word [eax + 0x14]
mov eax, dword [ebp - 0xf0]
lea esi, [eax + edx + 0x18]
mov edi, dword [ebp - 0x400]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x414], 0
jmp 0x40e0f4
mov eax, dword [ebp - 0x414]
add eax, 1
mov dword [ebp - 0x414], eax
mov ecx, dword [ebp - 0x414]
cmp ecx, dword [ebp - 0xec]
jae 0x40e124
mov edx, dword [ebp - 0x414]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x414]
mov ecx, dword [ecx*4 + 0x42ca58]
mov dword [eax + edx + 0x24], ecx
jmp 0x40e0e5
mov edx, dword [ebp - 0x400]
mov dword [ebp - 0x408], edx
mov eax, dword [ebp - 0xf0]
xor ecx, ecx
mov cx, word [eax + 6]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x408]
add edx, ecx
mov dword [ebp - 0x404], edx
jmp 0x40e15e
mov eax, dword [ebp - 0x408]
add eax, 0x28
mov dword [ebp - 0x408], eax
mov ecx, dword [ebp - 0x408]
cmp ecx, dword [ebp - 0x404]
je 0x40e1b2
mov edx, dword [ebp - 0x408]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx + 0xc]
cmp ecx, dword [eax + 0x88]
ja 0x40e1b0
mov edx, dword [ebp - 0x408]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x408]
add eax, dword [ecx + 0x10]
mov edx, dword [ebp - 0xf0]
cmp eax, dword [edx + 0x88]
jbe 0x40e1b0
mov eax, dword [ebp - 0x408]
mov dword [eax + 0xc], 0
jmp 0x40e14f
mov dword [ebp - 0x410], 0
jmp 0x40e1cd
mov ecx, dword [ebp - 0x410]
add ecx, 1
mov dword [ebp - 0x410], ecx
mov edx, dword [ebp - 0x410]
cmp edx, dword [ebp - 0x40c]
jae 0x40e216
mov eax, dword [ebp - 0x410]
push eax
push 0x42adf0
push 8
mov ecx, dword [ebp - 0x410]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0xf0]
xor eax, eax
mov ax, word [edx + 0x14]
mov edx, dword [ebp - 0xf0]
lea eax, [edx + eax + 0x18]
add eax, ecx
push eax
call dword [0x4251b0]
add esp, 0x10
jmp 0x40e1be
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
test edx, edx
je 0x40e24c
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x4c]
xor edx, edx
div dword [ecx + 0x3c]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + 0x3c]
sub ecx, edx
mov dword [ebp - 0x964], ecx
jmp 0x40e255
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x964], edx
mov eax, dword [ebp - 0x964]
mov dword [ebp - 0xd0], eax
push 0x46
call fcn.00407610
add esp, 4
mov ecx, dword [0x42ad34]
push ecx
lea ecx, [ebp - 0x7a4]
call fcn.00401d10
mov ecx, dword [ebp + 0x14]
call fcn.00404720
mov dword [ebp - 0x968], eax
push 0
lea edx, [ebp - 0x7a4]
push edx
mov ecx, dword [ebp - 0x968]
mov eax, dword [ebp - 0x968]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
je 0x40e2df
push 0x42addc
lea ecx, [ebp - 0x7a8]
call fcn.00401d10
lea eax, [ebp - 0x7a8]
push eax
call fcn.00404090
add esp, 4
mov ecx, dword [ebp - 0xf0]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004139c0
add esp, 0xc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40e2df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
test edx, edx
jne 0x40e2f1
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x418], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40e30c
xor edx, edx
test edx, edx
jne 0x40e31e
mov eax, dword [ebp - 0x418]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.0041b450
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40e336
push 8
mov edx, dword [ebp - 0x14]
push edx
lea ecx, [ebp - 0x4e8]
call fcn.0041b9a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test eax, eax
jne 0x40e359
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
test ecx, ecx
jne 0x40e36b
push 0x50
call fcn.00407610
add esp, 4
push 0
mov edx, dword [ebp - 0x2c]
push edx
call dword [0x425064]
lea ecx, [ebp - 0x6c]
call fcn.0040e740
lea ecx, [ebp - 0xcc]
call fcn.0040e740
mov eax, dword [ebp - 0xd0]
mov dword [0x42ca2c], eax
mov ecx, dword [0x42ca28]
push ecx
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x970], edx
mov dword [ebp - 0x96c], 0
fild qword [ebp - 0x970]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x978], eax
mov dword [ebp - 0x974], 0
fidivr dword [ebp - 0x978]
fmul qword [0x425390]
sub esp, 8
fstp qword [esp]
mov ecx, dword [ebp - 0xd0]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x7b0], esp
push 0x42ada4
call fcn.00401d10
lea edx, [ebp - 0x7b4]
push edx
call dword [0x42526c]
add esp, 0x18
mov dword [ebp - 0x97c], eax
mov eax, dword [ebp - 0x97c]
mov dword [ebp - 0x980], eax
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x980]
push ecx
lea ecx, [ebp - 0x7ac]
call fcn.00405dd0
push 0x54
lea edx, [ebp - 0x7ac]
push edx
call fcn.004073b0
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7b4]
call dword [0x425270]
push 0
push 0
mov eax, dword [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x54]
call fcn.00408ee0
push eax
call dword [0x425068]
lea ecx, [ebp - 0x54]
call fcn.00408ee0
push eax
call dword [0x42506c]
lea ecx, [ebp - 0x54]
call fcn.0040e610
push eax
call dword [0x425070]
push 0x64
call fcn.00407610
add esp, 4
push 0x42c9e8
lea ecx, [ebp - 0x7b8]
call fcn.00401d10
lea ecx, [ebp - 0x7b8]
push ecx
call fcn.00404090
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x6c]
call fcn.0040e6f0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x60]
call fcn.00408e70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x54]
call fcn.00408e70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xcc]
call fcn.0040e6f0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x88]
call fcn.00408e70
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x78]
call fcn.00408e70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x58]
call fcn.00408e10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call dword [0x425270]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret