Function at 0x4188a2
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x1bc
mov eax, dword [0x4b6084]
xor eax, ebp
mov dword [ebp + 0x60], eax
push esi
and dword [ebp - 0x44], 0
and dword [ebp - 0x80], 0
and dword [ebp - 0x4c], 0
and dword [ebp - 0x48], 0
and dword [ebp - 0x94], 0
and dword [ebp - 0xe8], 0
and dword [ebp - 0x58], 0
push 5
push 0
lea eax, [ebp + 0x58]
push eax
call fcn.00483bf0
add esp, 0xc
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x54], eax
cmp dword [ebp + 0x74], 0
jne 0x418901
push 7
pop eax
jmp 0x419afa
mov eax, dword [ebp + 0x6c]
movzx eax, byte [eax + 1]
mov ecx, dword [ebp + 0x6c]
movzx ecx, word [ecx + 0x12]
add eax, ecx
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 2
jge 0x418920
and dword [ebp - 0x68], 0
jmp 0x418953
cmp dword [ebp + 0x70], 0
jne 0x41892c
and dword [ebp - 0x68], 0
jmp 0x41894a
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp - 0x3c]
jne 0x418943
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebp - 0x3c]
lea eax, [ecx + eax - 2]
mov dword [ebp - 0x68], eax
jmp 0x41894a
mov eax, dword [ebp + 0x70]
dec eax
mov dword [ebp - 0x68], eax
push 2
pop eax
sub eax, dword [ebp + 0x7c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x68]
mov ecx, dword [ebp + 0x6c]
movzx ecx, byte [ecx + 1]
sub eax, ecx
mov ecx, dword [ebp + 0x6c]
movzx ecx, word [ecx + 0x12]
cmp eax, ecx
jne 0x41898d
mov eax, dword [ebp + 0x6c]
movzx eax, byte [eax + 6]
mov ecx, dword [ebp + 0x6c]
mov ecx, dword [ecx + 0x38]
lea eax, [ecx + eax + 8]
mov dword [ebp - 0xd8], eax
jmp 0x4189eb
mov eax, dword [ebp + 0x6c]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x68]
mov edx, dword [ebp + 0x6c]
movzx edx, byte [edx + 1]
sub ecx, edx
mov edx, dword [ebp + 0x6c]
mov edx, dword [edx + 0x40]
lea ecx, [edx + ecx*2]
xor edx, edx
inc edx
imul edx, edx, 0
movzx ecx, byte [ecx + edx]
shl ecx, 8
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x68]
mov esi, dword [ebp + 0x6c]
movzx esi, byte [esi + 1]
sub edx, esi
mov esi, dword [ebp + 0x6c]
mov esi, dword [esi + 0x40]
lea edx, [esi + edx*2]
xor esi, esi
inc esi
shl esi, 0
movzx edx, byte [edx + esi]
or ecx, edx
and eax, ecx
mov ecx, dword [ebp + 0x6c]
add eax, dword [ecx + 0x38]
mov dword [ebp - 0xd8], eax
push dword [ebp - 0xd8]
call fcn.00447024
pop ecx
mov dword [ebp - 0x7c], eax
xor eax, eax
inc eax
je 0x418c5e
push 0
mov eax, dword [ebp - 0x3c]
lea eax, [ebp + eax*4 + 0x40]
push eax
push dword [ebp - 0x7c]
push dword [ebp - 0x54]
call fcn.00427b28
add esp, 0x10
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x418a42
mov eax, dword [ebp - 0x3c]
lea eax, [eax*4 + 4]
push eax
push 0
lea eax, [ebp + 0x40]
push eax
call fcn.00483bf0
add esp, 0xc
jmp 0x419aa6
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x40]
movzx eax, word [eax + 0x12]
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp + ecx*4 + 0x40]
movzx ecx, byte [ecx + 1]
add ecx, dword [ebp - 0x80]
lea eax, [ecx + eax + 1]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x130], 0
jne 0x418a80
jmp 0x418c5e
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x68]
push 2
pop ecx
imul ecx, ecx, 0
mov edx, dword [ebp + 0x6c]
movzx ecx, word [edx + ecx + 0x16]
cmp eax, ecx
jne 0x418af7
mov eax, dword [ebp + 0x6c]
movzx eax, byte [eax + 1]
test eax, eax
je 0x418af7
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp + 0x6c]
mov eax, dword [edx + eax + 0x20]
mov dword [ebp + ecx*4 - 0xb0], eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 - 0xb0]
call fcn.00447024
pop ecx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 - 0xb0]
push dword [ebp + 0x6c]
call fcn.0041b59d
pop ecx
pop ecx
movzx eax, ax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + ecx*4 + 0x18], eax
mov eax, dword [ebp + 0x6c]
mov byte [eax + 1], 0
jmp 0x418c59
mov eax, dword [ebp + 0x6c]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x68]
mov edx, dword [ebp + 0x6c]
movzx edx, byte [edx + 1]
sub ecx, edx
mov edx, dword [ebp + 0x6c]
mov edx, dword [edx + 0x40]
lea ecx, [edx + ecx*2]
xor edx, edx
inc edx
imul edx, edx, 0
movzx ecx, byte [ecx + edx]
shl ecx, 8
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x68]
mov esi, dword [ebp + 0x6c]
movzx esi, byte [esi + 1]
sub edx, esi
mov esi, dword [ebp + 0x6c]
mov esi, dword [esi + 0x40]
lea edx, [esi + edx*2]
xor esi, esi
inc esi
shl esi, 0
movzx edx, byte [edx + esi]
or ecx, edx
and eax, ecx
mov ecx, dword [ebp + 0x6c]
add eax, dword [ecx + 0x38]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + ecx*4 - 0xb0], eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 - 0xb0]
call fcn.00447024
pop ecx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 - 0xb0]
push dword [ebp + 0x6c]
call fcn.0041b59d
pop ecx
pop ecx
movzx eax, ax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + ecx*4 + 0x18], eax
mov eax, dword [ebp - 0x54]
movzx eax, word [eax + 0x16]
and eax, 4
je 0x418c33
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [ebp + eax*4 - 0xb0]
sub eax, dword [ecx + 0x38]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xfc]
add ecx, dword [ebp + eax*4 + 0x18]
mov eax, dword [ebp - 0x54]
cmp ecx, dword [eax + 0x24]
jle 0x418bf3
push 0xe80b
call fcn.0043d776
pop ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x3c]
lea eax, [eax*4 + 4]
push eax
push 0
lea eax, [ebp + 0x40]
push eax
call fcn.00483bf0
add esp, 0xc
jmp 0x419aa6
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 + 0x18]
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 - 0xb0]
mov eax, dword [ebp + 0x74]
add eax, dword [ebp - 0xfc]
push eax
call fcn.00483670
add esp, 0xc
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [ebp + eax*4 - 0xb0]
sub eax, dword [ecx + 0x38]
add eax, dword [ebp + 0x74]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + ecx*4 - 0xb0], eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 + 0x18]
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x68]
mov ecx, dword [ebp + 0x6c]
movzx ecx, byte [ecx + 1]
sub eax, ecx
push eax
push dword [ebp + 0x6c]
call fcn.00421c0a
add esp, 0x10
jmp 0x4189fa
mov eax, dword [ebp - 0x80]
add eax, 3
and eax, 0xfffffffc
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
shl eax, 1
mov ecx, dword [ebp - 0x80]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx + 0x20]
mov dword [ebp - 0x134], eax
push dword [ebp - 0x134]
call fcn.00454ea1
pop ecx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
jne 0x418ca2
mov dword [ebp - 0x48], 7
jmp 0x419aa6
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x58]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x50]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x114], eax
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax + 0x40]
movzx eax, byte [eax + 5]
shl eax, 2
mov word [ebp - 0x5c], ax
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax + 0x40]
movzx eax, byte [eax + 3]
mov dword [ebp - 0x74], eax
and dword [ebp - 0x3c], 0
jmp 0x418cf0
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x70]
jge 0x418f68
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x40]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
movzx eax, word [eax + 0x12]
mov ecx, dword [ebp - 0x6c]
movzx ecx, byte [ecx + 1]
add eax, ecx
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x6c]
movzx eax, byte [eax + 1]
test eax, eax
jle 0x418d80
and dword [ebp - 0x40], 0
jmp 0x418d34
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x108]
jge 0x418d7b
push dword [ebp - 0x40]
push dword [ebp - 0x6c]
call fcn.00424ca6
pop ecx
pop ecx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x58]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x58]
push dword [ecx + eax*4]
push dword [ebp - 0x6c]
call fcn.0041b59d
pop ecx
pop ecx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
jmp 0x418d2d
jmp 0x418e44
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x6c]
mov ax, word [eax + 0x14]
mov word [ebp - 0xcc], ax
mov eax, dword [ebp - 0x6c]
mov ax, word [eax + 0xe]
mov word [ebp - 0x9c], ax
and dword [ebp - 0x40], 0
jmp 0x418db5
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x108]
jge 0x418e44
movzx eax, word [ebp - 0xcc]
movzx ecx, word [ebp - 0x9c]
add ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x40]
lea ecx, [ecx + edx*2]
xor edx, edx
inc edx
imul edx, edx, 0
movzx ecx, byte [ecx + edx]
shl ecx, 8
movzx edx, word [ebp - 0x9c]
add edx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0x40]
lea edx, [edx + esi*2]
xor esi, esi
inc esi
shl esi, 0
movzx edx, byte [edx + esi]
or ecx, edx
and eax, ecx
add eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x58]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x58]
push dword [ecx + eax*4]
push dword [ebp - 0x6c]
call fcn.0041b59d
pop ecx
pop ecx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
jmp 0x418dae
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x38], ecx
mov eax, dword [ebp - 0x70]
dec eax
cmp dword [ebp - 0x3c], eax
jge 0x418f63
cmp dword [ebp - 0x74], 0
jne 0x418f63
mov eax, dword [ebp - 0x3c]
mov ax, word [ebp + eax*4 + 0x18]
mov word [ebp - 0x88], ax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
mov dx, word [ebp - 0x88]
mov word [ecx + eax*2], dx
mov eax, dword [ebp - 0x114]
add eax, dword [ebp - 0x94]
mov dword [ebp - 0x110], eax
movzx eax, word [ebp - 0x88]
add eax, dword [ebp - 0x94]
mov dword [ebp - 0x94], eax
movzx eax, word [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 - 0xb0]
push dword [ebp - 0x110]
call fcn.00483670
add esp, 0xc
movzx eax, word [ebp - 0x5c]
add eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x58]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
movzx ecx, word [ebp - 0x5c]
sub eax, ecx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x6c]
movzx eax, byte [eax + 5]
test eax, eax
jne 0x418f24
push 4
xor eax, eax
inc eax
shl eax, 3
mov ecx, dword [ebp - 0x6c]
add eax, dword [ecx + 0x38]
push eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x58]
push dword [ecx + eax*4]
call fcn.00483670
add esp, 0xc
jmp 0x418f5c
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
cmp eax, 4
jge 0x418f5c
mov eax, dword [ebp - 0x114]
add eax, dword [ebp - 0x94]
mov byte [eax], 0
mov eax, dword [ebp - 0x94]
inc eax
mov dword [ebp - 0x94], eax
push 4
pop eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
jmp 0x418ce9
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x24]
movzx ecx, word [ebp - 0x5c]
lea eax, [eax + ecx - 0xc]
mov dword [ebp - 0x104], eax
and dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x98], eax
jmp 0x418f98
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x44]
jge 0x41902a
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x98]
lea eax, [ecx + eax + 2]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x104]
jle 0x419025
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x98]
sub ecx, eax
dec ecx
dec ecx
mov eax, dword [ebp - 0x64]
mov dword [ebp + eax*4 + 0x18], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + eax*4 + 4], ecx
cmp dword [ebp - 0x74], 0
je 0x418ffe
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x3c], eax
and dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 4
jle 0x419025
push 0xe895
call fcn.0043d776
pop ecx
mov dword [ebp - 0x48], eax
jmp 0x419aa6
jmp 0x418f91
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x98]
mov dword [ebp + eax*4 + 0x18], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x44]
mov dword [ebp + eax*4 + 4], ecx
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x3c], eax
jmp 0x419058
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jle 0x41916a
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x18]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x14]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4]
dec eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
inc eax
sub eax, dword [ebp - 0x74]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xa4], 0
je 0x4190df
cmp dword [ebp + 0x7c], 0
jne 0x41914b
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xa4]
lea eax, [ecx + eax + 2]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x50]
movzx ecx, word [edx + ecx*2]
inc ecx
inc ecx
mov edx, dword [ebp - 0xb8]
sub edx, ecx
cmp eax, edx
jg 0x41914b
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xa4]
lea eax, [ecx + eax + 2]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
inc eax
inc eax
mov ecx, dword [ebp - 0xb8]
sub ecx, eax
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4]
dec eax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + ecx*4], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4]
dec eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
inc eax
sub eax, dword [ebp - 0x74]
mov dword [ebp - 0xd4], eax
jmp 0x41909a
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xa4]
mov dword [ebp + eax*4 + 0x18], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xb8]
mov dword [ebp + eax*4 + 0x14], ecx
jmp 0x419051
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax + 0x40]
cmp dword [eax + 0x48], 1
ja 0x41918d
push 0xe8d0
call fcn.0043d776
pop ecx
mov dword [ebp - 0x48], eax
jmp 0x419aa6
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax + 0x40]
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + ecx]
mov dword [ebp - 0x11c], eax
and dword [ebp - 0x3c], 0
jmp 0x4191b7
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x64]
jge 0x4192ca
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x70]
jge 0x419217
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp + ecx*4 + 0x40]
mov dword [ebp + eax*4 + 0x2c], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x3c]
and dword [ebp + eax*4 + 0x40], 0
mov eax, dword [ebp - 0xa8]
push dword [eax + 0x44]
call fcn.0044e7cd
pop ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x48], 0
je 0x419212
jmp 0x419aa6
jmp 0x4192c5
cmp dword [ebp + 0x7c], 0
je 0x419229
mov dword [ebp - 0x118], 1
jmp 0x419232
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x118], eax
push 0
push dword [ebp - 0x118]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x54]
call fcn.004164b0
add esp, 0x14
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x41925e
jmp 0x419aa6
push dword [ebp - 0x11c]
push dword [ebp - 0xa8]
call fcn.0047c5d2
pop ecx
pop ecx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xa8]
mov dword [ebp + eax*4 + 0x2c], ecx
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x38], ecx
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax + 0x11]
test eax, eax
je 0x4192c5
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp + 0x6c]
push dword [eax + 0x48]
push 5
mov eax, dword [ebp - 0xa8]
push dword [eax + 0x48]
push dword [ebp - 0x54]
call fcn.004312b3
add esp, 0x14
cmp dword [ebp - 0x48], 0
je 0x4192c5
jmp 0x419aa6
jmp 0x4191b0
and dword [ebp - 0x3c], 0
jmp 0x4192d7
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x4c]
jge 0x419350
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + 0x48]
mov dword [ebp + ecx*4 - 0x24], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp + ecx*4 - 0x24]
mov dword [ebp + eax*4 - 0x10], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
mov eax, dword [eax + 0x44]
mov ecx, dword [ebp - 0x3c]
mov ax, word [eax + 0x18]
mov word [ebp + ecx*2 + 0x4c], ax
and dword [ebp - 0x40], 0
jmp 0x419321
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x3c]
jge 0x41934e
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x24]
cmp eax, dword [ebp + ecx*4 - 0x24]
jne 0x41934c
push 0xe907
call fcn.0043d776
pop ecx
mov dword [ebp - 0x48], eax
jmp 0x419aa6
jmp 0x41931a
jmp 0x4192d0
and dword [ebp - 0x3c], 0
jmp 0x41935d
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x4c]
jge 0x419411
and dword [ebp - 0x78], 0
mov dword [ebp - 0x40], 1
jmp 0x41937d
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x4c]
jge 0x41939d
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp + eax*4 - 0x10]
cmp eax, dword [ebp + ecx*4 - 0x10]
jae 0x41939b
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x78], eax
jmp 0x419376
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp + eax*4 - 0x10]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x78]
or dword [ebp + eax*4 - 0x10], 0xffffffff
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x3c]
je 0x41940c
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x3c]
jle 0x4193e1
push 0
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x2c]
mov ecx, dword [ebp - 0x78]
lea eax, [eax + ecx + 1]
push eax
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp + eax*4 + 0x2c]
push dword [eax + 0x44]
call fcn.0044dd3b
add esp, 0xc
mov eax, dword [ebp - 0x78]
movzx eax, word [ebp + eax*2 + 0x4c]
push eax
push dword [ebp - 0x7c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
push dword [eax + 0x44]
call fcn.0044dd3b
add esp, 0xc
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x48], ecx
jmp 0x419356
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 + 0x28]
push dword [eax + 0x48]
push dword [ebp - 0xd8]
call fcn.00452ce2
pop ecx
pop ecx
mov eax, dword [ebp - 0x11c]
and eax, 8
jne 0x419495
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x4c]
je 0x419495
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x70]
jle 0x41944e
lea eax, [ebp + 0x2c]
mov dword [ebp - 0x120], eax
jmp 0x419457
lea eax, [ebp + 0x40]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x120]
mov eax, dword [ecx + eax*4 - 4]
mov dword [ebp - 0x138], eax
push 4
xor eax, eax
inc eax
shl eax, 3
mov ecx, dword [ebp - 0x138]
add eax, dword [ecx + 0x38]
push eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp + eax*4 + 0x28]
xor ecx, ecx
inc ecx
shl ecx, 3
add ecx, dword [eax + 0x38]
push ecx
call fcn.00483670
add esp, 0xc
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax + 0x11]
test eax, eax
je 0x4196a3
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax + 0x2c]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x84]
movzx eax, word [eax + 0x12]
mov ecx, dword [ebp - 0x84]
movzx ecx, byte [ecx + 1]
add eax, ecx
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x13c], eax
and dword [ebp - 0xbc], 0
and dword [ebp - 0x8c], 0
and dword [ebp - 0x3c], 0
jmp 0x419506
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x44]
jge 0x4196a3
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0xdc]
jne 0x4195c6
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x4c]
jge 0x41955a
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp + eax*4 + 0x2c]
mov dword [ebp - 0x124], eax
jmp 0x41956a
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp + eax*4 + 0x40]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0x74], 0
jne 0x419588
mov dword [ebp - 0x128], 1
jmp 0x41958f
and dword [ebp - 0x128], 0
mov eax, dword [ebp - 0xe0]
movzx eax, word [eax + 0x12]
mov ecx, dword [ebp - 0xe0]
movzx ecx, byte [ecx + 1]
add eax, dword [ebp - 0x128]
add ecx, eax
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xdc], ecx
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp + eax*4 + 4]
jne 0x4195fd
mov eax, dword [ebp - 0xbc]
inc eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [ebp + eax*4 + 0x2c]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x74], 0
jne 0x4195fd
jmp 0x4194ff
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x4c]
jge 0x41963f
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax + 0x48]
cmp eax, dword [ebp + ecx*4 - 0x24]
jne 0x41963f
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0xe4]
jb 0x41963f
mov eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x13c]
cmp dword [ebp - 0xc0], eax
jb 0x41969e
movzx eax, word [ebp - 0x5c]
test eax, eax
jne 0x41966e
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x84]
push dword [eax + 0x48]
push 5
push dword [ebp - 0xc0]
call fcn.00447024
pop ecx
push eax
push dword [ebp - 0x54]
call fcn.004312b3
add esp, 0x14
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x84]
movzx ecx, word [ecx + 0xc]
cmp eax, ecx
jle 0x41969e
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0xc0]
push dword [ebp - 0x84]
call fcn.004313ba
add esp, 0xc
jmp 0x4194ff
and dword [ebp - 0x3c], 0
jmp 0x4196b0
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x4c]
dec eax
cmp dword [ebp - 0x3c], eax
jge 0x41982f
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
movzx ecx, word [ebp - 0x5c]
add eax, ecx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x74]
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xc4]
movzx eax, byte [eax + 5]
test eax, eax
jne 0x41973b
push 4
push dword [ebp - 0x90]
xor eax, eax
inc eax
shl eax, 3
mov ecx, dword [ebp - 0xc4]
add eax, dword [ecx + 0x38]
push eax
call fcn.00483670
add esp, 0xc
jmp 0x4197dc
cmp dword [ebp - 0x74], 0
je 0x4197a5
mov eax, dword [ebp - 0x40]
dec eax
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x158]
push eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x58]
push dword [ecx + eax*4]
push dword [ebp - 0xc4]
call fcn.0041aec6
add esp, 0xc
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x90], eax
push dword [ebp - 0x154]
push dword [ebp - 0x158]
xor eax, eax
inc eax
shl eax, 2
add eax, dword [ebp - 0x90]
push eax
call fcn.00452d2b
add esp, 0xc
add eax, 4
mov dword [ebp - 0xb4], eax
and dword [ebp - 0xec], 0
jmp 0x4197dc
mov eax, dword [ebp - 0x90]
sub eax, 4
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x50]
movzx eax, word [ecx + eax*2]
cmp eax, 4
jne 0x4197dc
push dword [ebp - 0x90]
push dword [ebp + 0x6c]
call fcn.0041b59d
pop ecx
pop ecx
movzx eax, ax
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xe8]
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xe8], eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x48]
push dword [ebp - 0xec]
push dword [ebp - 0xb4]
push dword [ebp - 0x90]
mov eax, dword [ebp - 0x68]
add eax, dword [ebp - 0x3c]
push eax
push dword [ebp + 0x6c]
call fcn.00428a60
add esp, 0x1c
cmp dword [ebp - 0x48], 0
je 0x41982a
jmp 0x419aa6
jmp 0x4196a9
xor eax, eax
inc eax
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
jmp 0x419841
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x4c]
jge 0x4199a6
cmp dword [ebp - 0x3c], 0
jge 0x419860
mov eax, dword [ebp - 0x3c]
neg eax
mov dword [ebp - 0x12c], eax
jmp 0x419869
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
movzx eax, byte [ebp + eax + 0x58]
test eax, eax
je 0x419880
jmp 0x41983a
cmp dword [ebp - 0x3c], 0
jge 0x41989a
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0x3c]
cmp eax, dword [ebp + ecx*4]
jl 0x4199a1
cmp dword [ebp - 0x60], 0
jne 0x4198c8
and dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xf0], eax
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax + 4]
mov dword [ebp - 0x100], eax
jmp 0x419952
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x70]
jge 0x4198fe
cmp dword [ebp - 0x74], 0
jne 0x4198e2
mov dword [ebp - 0xf4], 1
jmp 0x4198e9
and dword [ebp - 0xf4], 0
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0x3c]
add eax, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], eax
jmp 0x419907
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0x74], 0
jne 0x419925
mov dword [ebp - 0x10c], 1
jmp 0x41992c
and dword [ebp - 0x10c], 0
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4]
add eax, dword [ebp - 0x10c]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 + 4]
sub eax, dword [ebp - 0xf0]
mov dword [ebp - 0x100], eax
push dword [ebp - 0x50]
push dword [ebp - 0x58]
push dword [ebp - 0x100]
push dword [ebp - 0xf0]
push dword [ebp - 0xc8]
mov eax, dword [ebp - 0x60]
push dword [ebp + eax*4 + 0x2c]
call fcn.00421f05
add esp, 0x18
mov eax, dword [ebp - 0x60]
mov al, byte [ebp + eax + 0x58]
add al, 1
mov ecx, dword [ebp - 0x60]
mov byte [ebp + ecx + 0x58], al
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x104]
sub ecx, dword [ebp + eax*4 + 0x18]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 + 0x2c]
mov word [eax + 0x10], cx
jmp 0x41983a
cmp dword [ebp + 0x78], 0
je 0x419a13
mov eax, dword [ebp + 0x6c]
movzx eax, word [eax + 0x12]
test eax, eax
jne 0x419a13
mov eax, dword [ebp + 0x6c]
movzx eax, byte [eax + 6]
push 4
pop ecx
imul ecx, ecx, 0
mov ecx, dword [ebp + ecx + 0x2c]
movzx ecx, word [ecx + 0x10]
cmp eax, ecx
jg 0x419a13
push 4
pop eax
imul eax, eax, 0
push dword [ebp + eax + 0x2c]
call fcn.004211fb
pop ecx
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
push eax
push dword [ebp + 0x6c]
push 4
pop eax
imul eax, eax, 0
push dword [ebp + eax + 0x2c]
call fcn.00420847
add esp, 0xc
lea eax, [ebp - 0x48]
push eax
push 4
pop eax
imul eax, eax, 0
push dword [ebp + eax + 0x2c]
call fcn.004265d5
pop ecx
pop ecx
jmp 0x419a7b
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax + 0x11]
test eax, eax
je 0x419a7b
movzx eax, word [ebp - 0x5c]
test eax, eax
jne 0x419a7b
and dword [ebp - 0x3c], 0
jmp 0x419a33
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x4c]
jge 0x419a7b
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
xor ecx, ecx
inc ecx
shl ecx, 3
add ecx, dword [eax + 0x38]
push ecx
call fcn.00447024
pop ecx
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 + 0x2c]
push dword [eax + 0x48]
push 5
push dword [ebp - 0x140]
push dword [ebp - 0x54]
call fcn.004312b3
add esp, 0x14
jmp 0x419a2c
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
jmp 0x419a8a
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x70]
jge 0x419aa6
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 + 0x40]
call fcn.004265d5
pop ecx
pop ecx
jmp 0x419a83
push dword [ebp - 0x58]
call fcn.00454dc5
pop ecx
and dword [ebp - 0x3c], 0
jmp 0x419abc
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x70]
jge 0x419ad3
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 + 0x40]
call fcn.0043245e
pop ecx
jmp 0x419ab5
and dword [ebp - 0x3c], 0
jmp 0x419ae0
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x4c]
jge 0x419af7
mov eax, dword [ebp - 0x3c]
push dword [ebp + eax*4 + 0x2c]
call fcn.0043245e
pop ecx
jmp 0x419ad9
mov eax, dword [ebp - 0x48]
pop esi
mov ecx, dword [ebp + 0x60]
xor ecx, ebp
call fcn.00481163
add ebp, 0x64
leave
ret