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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea ebx, [esi + 0x18c]
xor edi, edi
cmp dword [ebx], edi
jne 0x45ecc2
push 0xf8
push 1
call fcn.0044e2b0
pop ecx
pop ecx
mov dword [ebx], eax
mov eax, dword [esi + 0x17c]
mov ebx, dword [ebx]
mov ecx, 0x1756
cmp eax, ecx
mov dword [ebp - 8], ebx
jg 0x45f20f
je 0x45ef42
sub eax, edi
je 0x45eeee
sub eax, 0x1617
je 0x45eece
sub eax, 0xa9
je 0x45ee8a
sub eax, 0x19
je 0x45ee0b
sub eax, 0x19
je 0x45edcd
sub eax, 0x1c
je 0x45edbf
sub eax, 0x25
jne 0x45f243
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x460198
cmp dword [eax + 8], 0x1f
je 0x45ed75
push 0x460ed4
call fcn.0044e6e5
push edi
mov dword [ebp + 8], eax
call fcn.00455564
push dword [ebp + 8]
lea ebx, [esi + 0xd4]
push dword [ebx]
call fcn.0047f12a
push dword [ebp + 8]
push 0x45ba30
push dword [ebx]
call fcn.0047fab2
push dword [ebp + 8]
call fcn.0044e370
add esp, 0x20
jmp 0x4602f2
call fcn.00454e1b
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 0x14]
call fcn.00454e1b
mov ecx, dword [ebx + 0x14]
cmp ecx, edi
mov dword [ebx + 0x18], eax
je 0x45edb5
cmp eax, edi
je 0x45edb5
push eax
push ecx
call fcn.00468095
pop ecx
mov dword [esi + 0xbc], eax
pop ecx
mov dword [ebx + 0x30], 0x20
mov dword [ebx + 0x34], 0x21
jmp 0x4601e2
push 0x460ea0
jmp 0x45ed38
cmp dword [ebp + 0x14], edi
je 0x4600e6
jmp 0x4600fb
cmp dword [ebp + 0x14], edi
jne 0x45ee8f
cmp dword [ebp + 0x10], edi
jg 0x45ee7b
mov eax, dword [esi + 0x2d6c]
mov dword [ebx + 0xec], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.0045554d
cmp dword [ebx + 0xec], edi
jne 0x46003b
mov eax, 0x460708
jmp 0x4602e1
cmp dword [ebp + 0x14], edi
jne 0x45ee8f
cmp dword [ebp + 0x10], edi
jg 0x46002c
mov eax, dword [esi + 0x2d6c]
mov dword [ebx + 0xec], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.0045554d
cmp dword [ebx + 0xec], edi
je 0x45ee01
cmp dword [ebx + 0x10], 0
je 0x46003b
mov esi, dword [ebp + 8]
xor edi, edi
inc edi
call fcn.0045554d
mov ecx, dword [ebx + 0x44]
mov eax, esi
push eax
push 0x41b064
push dword [ecx + 0x18]
push 0x460e88
push dword [eax + 0xd4]
call fcn.0047f3be
add esp, 0x14
test eax, eax
mov dword [ebx + 0xec], eax
jge 0x45edeb
mov dword [esi + 0x17c], 0x16f2
jmp 0x4608ac
cmp dword [ebp + 0x14], edi
je 0x45ee99
push 0x460728
jmp 0x45ed38
cmp dword [ebp + 0x10], edi
jg 0x45ffd9
mov eax, dword [esi + 0x2d6c]
mov dword [ebx + 0xec], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.0045554d
cmp dword [ebx + 0xec], edi
jne 0x45ffe8
mov eax, 0x460e6c
jmp 0x4602e1
cmp dword [ebp + 0x14], edi
je 0x45fad7
mov eax, dword [ebp + 0x14]
cmp dword [eax + 8], 0x14
je 0x45fae9
push 0x460e40
jmp 0x4606dc
mov dword [ebx + 0x44], edi
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x54], edi
mov dword [ebx + 0x50], edi
mov dword [ebx + 0xe4], edi
mov dword [ebx + 0xe0], edi
mov dword [ebx + 0xd8], edi
mov dword [ebx + 0xdc], edi
mov edi, dword [ebp + 8]
xor edx, edx
test byte [esi + 0x50], 2
mov dword [ebx + 0x3c], 3
je 0x45ef36
mov dword [ebx + 0x38], 0x471134
jmp 0x45f5a9
mov dword [ebx + 0x38], 0x471128
jmp 0x45f5a9
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x460278
mov eax, dword [eax + 8]
cmp eax, dword [ebx + 0x34]
je 0x45ef5f
push 0x460e10
jmp 0x45ed38
mov eax, dword [ebp + 8]
push 2
push dword [eax + 0xd4]
call fcn.0047fa89
mov eax, dword [ebp + 0x14]
lea esi, [ebx + 0x6c]
lea edi, [ebx + 0x58]
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x14], edi
call fcn.00454d4e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x94]
mov ecx, esi
push dword [ecx]
mov ecx, edi
push dword [ecx]
call dword [eax]
mov dword [ebx + 0x78], eax
mov eax, dword [ebp + 0x14]
add esp, 0x10
call fcn.00454e1b
test eax, eax
mov dword [ebx + 0x20], eax
jne 0x45efe4
push 0x460de4
call fcn.0044e6e5
mov esi, dword [ebp + 8]
push 0
mov edi, eax
call fcn.00455564
push edi
push dword [esi + 0xd4]
call fcn.0047f12a
push edi
push 0x45ba30
push dword [esi + 0xd4]
call fcn.0047fab2
push edi
jmp 0x460709
mov eax, dword [ebp + 0x14]
lea esi, [ebx + 0x70]
lea edi, [ebx + 0x5c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], edi
call fcn.00454d4e
push dword [ebx + 0x20]
mov esi, dword [ebp + 8]
push dword [esi + 0xbc]
call fcn.00468213
mov dword [ebx + 0x24], eax
push 0
push dword [esi + 0xd4]
call fcn.0047fa89
mov eax, dword [ebp - 0x14]
push dword [eax]
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp + 0xc]
push dword [esi + 0xc]
mov ebx, dword [ecx]
mov esi, dword [eax + 0x1c]
call fcn.004546b2
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x90]
mov edi, dword [ebp - 8]
add esp, 0x18
cmp dword [eax + 0xc], 0
jne 0x45f0a1
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x1c]
mov edx, ecx
shr edx, 0x18
mov byte [ebp + 0xc], dl
mov edx, ecx
shr edx, 0x10
mov byte [ebp + 0xd], dl
mov edx, ecx
mov byte [ebp + 0xf], cl
push 4
lea ecx, [ebp + 0xc]
push ecx
push dword [ebx + 0xc]
shr edx, 8
mov byte [ebp + 0xe], dl
call dword [eax + 4]
push dword [edi + 0x14]
mov eax, dword [ebx + 0x90]
push dword [ebx + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00454cc5
push dword [edi + 0x18]
mov eax, dword [ebx + 0x90]
push dword [ebx + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00454cc5
add esp, 0x1c
push dword [edi + 0x1c]
mov eax, dword [ebx + 0x90]
push dword [ebx + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00454cc5
push dword [edi + 0x20]
mov eax, dword [ebx + 0x90]
push dword [ebx + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00454cc5
push dword [ebx + 0xbc]
call fcn.004680c5
push dword [edi + 0x20]
call fcn.0046432c
mov eax, dword [ebx + 0x90]
add esp, 0x18
cmp dword [eax + 0xc], 0
jne 0x45f100
mov esi, dword [ebp - 8]
push dword [esi + 0x18]
call fcn.0046432c
push dword [esi + 0x14]
call fcn.0046432c
pop ecx
pop ecx
mov ebx, dword [ebp - 8]
mov edi, dword [ebp + 8]
push dword [ebx + 0x24]
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.00454cc5
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0xc], 0x20
pop ecx
pop ecx
jbe 0x45f142
push 0x17e1
push 0x45dd28
push 0x460db0
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
lea esi, [ebx + 0x80]
push esi
push dword [edi + 0xc]
call dword [eax + 8]
and dword [edi + 0xbc], 0
mov eax, dword [ebx + 0x78]
test eax, eax
pop ecx
pop ecx
je 0x4605e8
mov edx, dword [edi + 0x90]
mov edx, dword [edx + 0x1c]
push dword [edx + 0xc]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edi + 0x94]
push esi
push dword [edx]
mov edx, dword [ebp - 0xc]
push dword [edx]
push eax
call dword [ecx + 0x28]
add esp, 0x14
test eax, eax
je 0x4605e8
mov esi, dword [ebp + 8]
push dword [ebx + 0x78]
mov eax, dword [esi + 0x94]
call dword [eax + 8]
push dword [ebx + 0x78]
mov dword [ebx + 0x64], eax
mov eax, dword [esi + 0x94]
call dword [eax + 0x24]
xor edi, edi
inc edi
mov dword [ebx + 0x68], eax
call fcn.0045554d
mov eax, esi
mov ecx, dword [eax + 0x94]
push eax
push 0x41b064
push dword [ebx + 0x68]
push dword [ebx + 0x64]
push dword [ecx + 0x34]
push dword [eax + 0xc4]
push dword [eax + 0xc0]
push dword [eax + 0xd4]
call fcn.0047f29d
add esp, 0x28
test eax, eax
mov dword [ebx + 0xec], eax
jge 0x4602ca
mov dword [esi + 0x17c], 0x1801
jmp 0x4608ac
sub eax, 0x1782
je 0x46062d
sub eax, 0x52
je 0x4602fd
sub eax, 0x2d
je 0x4602a6
sub eax, 0x67
je 0x45f251
sub eax, 0x59
je 0x45f4bf
sub eax, 0x16
je 0x45f4ce
mov dword [esi + 0x17c], edi
xor eax, eax
inc eax
jmp 0x4608ae
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x4605d9
cmp dword [eax + 8], 0x15
je 0x45f26c
push 0x460d88
jmp 0x45ed38
mov eax, dword [esi + 0x6c]
cmp eax, edi
mov dword [esi + 0x318c], edi
je 0x45f281
mov ecx, dword [esi + 0x64]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x64], eax
call dword [eax]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x7c]
cmp eax, edi
je 0x45f29b
mov ecx, dword [esi + 0x74]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x4c]
mov dword [esi + 0x74], eax
call dword [eax]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x8c]
cmp eax, edi
je 0x45f2bb
mov ecx, dword [esi + 0x84]
push eax
call dword [ecx + 0x18]
pop ecx
mov eax, dword [ebx + 0x54]
mov dword [esi + 0x84], eax
call dword [eax + 0x14]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 1
cmp eax, 0x40
jbe 0x45f2f7
push 0x1888
push 0x45dd28
push 0x460d4c
call 0x48d940
add esp, 0xc
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x58]
push eax
push 0x44
lea esi, [ebx + 0x80]
push esi
push dword [ebx + 0x24]
call fcn.00455daf
mov eax, dword [edi + 0x64]
mov eax, dword [eax + 0x20]
add esp, 0x10
add eax, 7
push 8
cdq
pop ecx
idiv ecx
mov ecx, dword [edi + 0x90]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0xc]
shl ecx, 1
cmp eax, ecx
jle 0x45f34a
push 0x188b
push 0x45dd28
push 0x460d00
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x64]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x6c]
call dword [eax + 0xc]
lea eax, [ebp - 0x58]
push eax
push 0x42
push esi
push dword [ebx + 0x24]
call fcn.00455daf
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x64]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x1c], eax
jle 0x45f396
push 0x188f
push 0x45dd28
push 0x460cb8
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x64]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x6c]
call dword [eax + 8]
lea eax, [ebp - 0x58]
push eax
push 0x46
push esi
push dword [ebx + 0x24]
call fcn.00455daf
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x74]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x28], eax
jle 0x45f3e2
push 0x1893
push 0x45dd28
push 0x460c78
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x74]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x7c]
call dword [eax + 8]
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call 0x48d0e0
mov eax, dword [edi + 0x64]
push dword [eax + 0x28]
push 0x460c48
push edi
call fcn.004542c4
mov eax, dword [edi + 0x74]
push dword [eax + 0x2c]
push 0x460c18
push edi
call fcn.004542c4
mov eax, dword [edi + 0x84]
mov eax, dword [eax + 0x24]
add esp, 0x2c
test eax, eax
je 0x45f43d
push eax
push 0x460bf8
push edi
call fcn.004542c4
add esp, 0xc
push dword [ebx + 0x24]
call fcn.0046432c
lea esi, [edi + 0x31a8]
mov eax, dword [esi]
test eax, eax
pop ecx
je 0x45f46c
push eax
push dword [edi + 0xd4]
call fcn.0047f12a
xor edx, edx
pop ecx
pop ecx
mov dword [ebp + 0x14], edx
mov dword [esi], edx
jmp 0x45f5a9
and dword [edi + 0x319c], 0
call dword [fcn.004552bc]
mov dword [edi + 0x31a4], eax
mov eax, dword [edi + 0xf40]
test eax, eax
je 0x45f4a4
imul eax, eax, 0xea60
push edi
push 0x412aae
push eax
call fcn.004793ff
add esp, 0xc
mov dword [edi + 0x31a0], eax
cmp dword [ebx + 0xe4], 0
je 0x45f4bf
mov eax, dword [ebp + 8]
mov dword [eax + 0x17c], 0x18c1
jmp 0x4608ac
mov esi, dword [ebp + 8]
mov dword [ebx + 0xe4], 1
xor edi, edi
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x45f4ea
cmp dword [eax + 8], 0x14
je 0x45f4ef
mov dword [esi + 0x17c], 0x18d7
jmp 0x45f249
cmp dword [ebp + 0x10], edi
jge 0x45f4db
cmp eax, edi
je 0x45f50a
push 0x460bd4
push dword [esi + 0xd4]
call fcn.0047f12a
pop ecx
pop ecx
jmp 0x45f5a4
cmp dword [ebp + 0x10], 0xfffffffe
jne 0x45f545
cmp dword [ebx + 0xd8], edi
je 0x45f52f
push 0x18ef
push 0x45dd28
push 0x460bbc
call 0x48d940
add esp, 0xc
lea eax, [ebx + 0xdc]
cmp dword [eax], edi
mov dword [ebx + 0xd8], 1
je 0x45f4db
mov dword [eax], edi
test byte [esi + 0x50], 0x40
push dword [ebp + 0xc]
je 0x45f596
push 0x460b90
push esi
call fcn.004542c4
mov eax, dword [esi + 0xf40]
add esp, 0xc
cmp eax, edi
mov dword [esi + 0x3190], edi
mov dword [esi + 0x318c], edi
je 0x45f4db
imul eax, eax, 0xea60
push esi
push 0x412aae
push eax
call fcn.004793ff
add esp, 0xc
mov dword [esi + 0x31a0], eax
jmp 0x45f4db
push 0x460b70
push esi
call fcn.004542c4
add esp, 0xc
mov edi, dword [ebp + 8]
xor edx, edx
mov dword [edi + 0x140], edx
mov dword [ebx + 0xa0], edx
xor esi, esi
lea ecx, [edi + 0xf2c]
mov eax, dword [ecx]
sub eax, edx
je 0x45f61b
dec eax
je 0x45f608
dec eax
je 0x45f5f5
dec eax
je 0x45f5e2
dec eax
jne 0x45f633
mov eax, dword [ebx + 0xa0]
mov dword [ebx + eax*4 + 0xa4], 0x465e94
jmp 0x45f62d
mov eax, dword [ebx + 0xa0]
mov dword [ebx + eax*4 + 0xa4], 0x4659ac
jmp 0x45f62d
mov eax, dword [ebx + 0xa0]
mov dword [ebx + eax*4 + 0xa4], 0x46595c
jmp 0x45f62d
mov eax, dword [ebx + 0xa0]
mov dword [ebx + eax*4 + 0xa4], 0x465930
jmp 0x45f62d
cmp esi, 4
jge 0x45f633
mov eax, dword [ebx + 0xa0]
mov dword [ebx + eax*4 + 0xa4], edx
inc dword [ebx + 0xa0]
inc esi
add ecx, 4
cmp esi, 5
jl 0x45f5bd
mov dword [ebx + 0xb8], edx
xor esi, esi
lea ecx, [edi + 0xf60]
mov eax, dword [ecx]
sub eax, edx
je 0x45f6c6
dec eax
je 0x45f6b3
dec eax
je 0x45f6a0
dec eax
je 0x45f68d
dec eax
je 0x45f672
dec eax
jne 0x45f6de
mov eax, dword [ebx + 0xb8]
mov dword [ebx + eax*4 + 0xbc], 0x4635c8
jmp 0x45f6d8
cmp dword [edi + 0x1080], edx
je 0x45f6de
mov eax, dword [ebx + 0xb8]
mov dword [ebx + eax*4 + 0xbc], 0x4656c0
jmp 0x45f6d8
mov eax, dword [ebx + 0xb8]
mov dword [ebx + eax*4 + 0xbc], 0x463428
jmp 0x45f6d8
mov eax, dword [ebx + 0xb8]
mov dword [ebx + eax*4 + 0xbc], 0x4646e4
jmp 0x45f6d8
mov eax, dword [ebx + 0xb8]
mov dword [ebx + eax*4 + 0xbc], 0x4656b0
jmp 0x45f6d8
cmp esi, 5
jge 0x45f6de
mov eax, dword [ebx + 0xb8]
mov dword [ebx + eax*4 + 0xbc], edx
inc dword [ebx + 0xb8]
inc esi
add ecx, 4
cmp esi, 6
jl 0x45f64a
cmp dword [edi + 0xf28], edx
je 0x45f6ff
mov dword [ebx + 0xd4], 0x46688c
jmp 0x45f709
mov dword [ebx + 0xd4], 0x45d054
xor eax, eax
inc eax
push 0x14
mov dword [edi + 0x120], eax
mov dword [edi + 0x319c], eax
call fcn.00454979
pop ecx
push 0x10
mov dword [ebx + 0xe8], eax
pop esi
call fcn.0046b8e9
push eax
push dword [ebx + 0xe8]
call fcn.004547b7
dec esi
pop ecx
pop ecx
jne 0x45f729
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
xor eax, eax
cmp dword [ebx + 0xa0], eax
mov dword [ebp - 4], eax
jle 0x45f7bd
lea ecx, [ebx + 0xa4]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx]
test edi, edi
je 0x45f7ab
and dword [ebp + 0xc], 0
cmp dword [edi], 0
jle 0x45f7ab
test eax, eax
je 0x45f787
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
pop ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
push dword [eax]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
xor eax, eax
inc eax
inc dword [ebp + 0xc]
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [edi]
jl 0x45f772
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
add dword [ebp - 0xc], 4
cmp ecx, dword [ebx + 0xa0]
jl 0x45f760
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
xor edi, edi
mov eax, dword [edi + 0x471120]
push dword [eax + 0x30]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
cmp edi, 4
pop ecx
jae 0x45f7f5
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
pop ecx
add edi, 4
cmp edi, 8
jb 0x45f7ca
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
xor eax, eax
cmp dword [ebx + 0xb8], eax
mov dword [ebp - 4], eax
jle 0x45f87c
lea ecx, [ebx + 0xbc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx]
test edi, edi
je 0x45f86a
and dword [ebp + 0xc], 0
cmp dword [edi], 0
jle 0x45f86a
test eax, eax
je 0x45f845
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
pop ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x18]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
xor eax, eax
inc eax
inc dword [ebp + 0xc]
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [edi]
jl 0x45f830
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
add dword [ebp - 0xc], 4
cmp ecx, dword [ebx + 0xb8]
jl 0x45f81e
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
xor eax, eax
cmp dword [ebx + 0xb8], eax
mov dword [ebp - 4], eax
jle 0x45f8fb
lea ecx, [ebx + 0xbc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx]
test edi, edi
je 0x45f8e9
and dword [ebp + 0xc], 0
cmp dword [edi], 0
jle 0x45f8e9
test eax, eax
je 0x45f8c4
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
pop ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x18]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
xor eax, eax
inc eax
inc dword [ebp + 0xc]
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [edi]
jl 0x45f8af
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
add dword [ebp - 0xc], 4
cmp ecx, dword [ebx + 0xb8]
jl 0x45f89d
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
xor edi, edi
cmp dword [ebx + 0x3c], edi
jle 0x45f941
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
mov eax, dword [ebx + 0x3c]
dec eax
cmp edi, eax
pop ecx
jge 0x45f93b
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
pop ecx
inc edi
cmp edi, dword [ebx + 0x3c]
jl 0x45f90d
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
xor edi, edi
cmp dword [ebx + 0x3c], edi
jle 0x45f987
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edi*4]
push dword [eax + 0x24]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
mov eax, dword [ebx + 0x3c]
dec eax
cmp edi, eax
pop ecx
jge 0x45f981
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
pop ecx
inc edi
cmp edi, dword [ebx + 0x3c]
jl 0x45f953
mov dword [ebp - 0x14], 2
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
mov eax, dword [ebx + 0xd4]
push dword [eax]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
xor edi, edi
cmp dword [ebx + 0xd8], edi
pop ecx
je 0x45f9e8
mov eax, dword [ebx + 0xd4]
cmp dword [eax + 4], edi
je 0x45f9e8
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
mov eax, dword [ebx + 0xd4]
push dword [eax + 4]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
pop ecx
pop ecx
mov dword [ebp + 0xc], edi
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x471140]
cmp edi, dword [ebx + 0xd4]
je 0x45fa4a
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
push dword [edi]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
cmp dword [ebx + 0xd8], 0
pop ecx
pop ecx
je 0x45fa4a
cmp dword [edi + 4], 0
je 0x45fa4a
mov esi, dword [ebx + 0xe8]
push 0x45c358
call fcn.0045480e
push dword [edi + 4]
mov esi, dword [ebx + 0xe8]
call fcn.0045480e
pop ecx
pop ecx
add dword [ebp + 0xc], 4
cmp dword [ebp + 0xc], 8
jb 0x45f9eb
dec dword [ebp - 0x14]
jne 0x45f98e
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
mov esi, dword [ebx + 0xe8]
call fcn.004547ff
push 0
push dword [ebx + 0xe8]
call fcn.004547b7
push dword [ebx + 0xe8]
xor eax, eax
call fcn.004547cc
mov eax, dword [ebx + 0xe8]
mov eax, dword [eax]
add eax, 0xfffffffb
push 1
push eax
mov dword [ebx + 0x2c], eax
call fcn.0044e2b0
mov ecx, dword [ebx + 0xe8]
push dword [ebx + 0x2c]
mov dword [ebx + 0x28], eax
mov ecx, dword [ecx + 0x10]
add ecx, 5
push ecx
push eax
call 0x48d450
push dword [ebx + 0xe8]
push dword [ebp + 8]
call fcn.00460ac5
add esp, 0x28
cmp dword [ebp + 0x14], 0
jne 0x45eed7
mov eax, dword [ebp + 8]
mov dword [eax + 0x17c], 0x1617
jmp 0x4608ac
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ecx + 0x90], eax
mov dword [ecx + 0x94], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0x14]
add dword [eax + 0x18], 0x10
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
xor eax, eax
cmp dword [ebx + 0xa0], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], eax
jle 0x45fbb5
lea eax, [ebx + 0xa4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
xor edi, edi
cmp esi, edi
jne 0x45fb54
mov dword [ebx + 8], 1
jmp 0x45fb97
cmp dword [esi], edi
jle 0x45fb97
cmp dword [ebp - 0x14], 0
jne 0x45fb69
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
push dword [eax]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fb88
inc edi
cmp edi, dword [esi]
jl 0x45fb58
jmp 0x45fb97
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x90], 0
jne 0x45fbb5
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x10], 4
cmp eax, dword [ebx + 0xa0]
jl 0x45fb40
mov edi, dword [ebp + 8]
cmp dword [edi + 0x90], 0
jne 0x45fc0c
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x45fbcd
mov eax, 0x460b68
push eax
push 0x460b30
call fcn.0044e6e5
push 0
mov esi, edi
mov ebx, eax
call fcn.00455564
lea esi, [edi + 0xd4]
push ebx
push dword [esi]
call fcn.0047f12a
push ebx
push 0x45ba30
push dword [esi]
call fcn.0047fab2
push ebx
call fcn.0044e370
add esp, 0x24
jmp 0x460621
push dword [ebp - 4]
mov edi, dword [ebp + 0xc]
push dword [ebp - 0x14]
call fcn.00455d6b
pop ecx
mov dword [ebx + 0xf0], eax
mov eax, dword [ebp + 0x14]
pop ecx
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
mov edi, dword [ebp + 0xc]
xor esi, esi
mov eax, dword [esi*4 + 0x471120]
push dword [eax + 0x30]
mov eax, dword [ebp - 4]
mov ecx, edi
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fc56
inc esi
cmp esi, 2
jb 0x45fc35
jmp 0x45fc66
mov eax, dword [esi*4 + 0x471120]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x94], eax
cmp dword [ebx + 0xf0], 0
je 0x45fc8a
push dword [ebp - 4]
mov eax, dword [0x471120]
push dword [eax + 0x30]
call fcn.00455d6b
test eax, eax
pop ecx
pop ecx
je 0x45fc8a
xor eax, eax
inc eax
jmp 0x45fc8c
xor eax, eax
mov dword [ebx + 0xf0], eax
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
and dword [ebp - 0xc], 0
cmp dword [ebx + 0xb8], 0
jle 0x45fd0f
lea eax, [ebx + 0xbc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov esi, dword [eax]
xor edi, edi
cmp esi, edi
jne 0x45fcca
mov dword [ebx + 0xc], 1
jmp 0x45fcf7
cmp dword [esi], edi
jle 0x45fcf7
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
push dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fcee
inc edi
cmp edi, dword [esi]
jl 0x45fcce
jmp 0x45fcf7
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
mov dword [ebx + 0x40], eax
cmp dword [ebx + 0x40], 0
jne 0x45fd61
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x14], 4
cmp eax, dword [ebx + 0xb8]
jl 0x45fcb6
cmp dword [ebx + 0x40], 0
jne 0x45fd61
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x45fd21
mov eax, 0x460b68
push eax
push 0x460af4
call fcn.0044e6e5
mov esi, dword [ebp + 8]
push 0
mov edi, eax
call fcn.00455564
lea ebx, [esi + 0xd4]
push edi
push dword [ebx]
call fcn.0047f12a
push edi
push 0x45ba30
push dword [ebx]
call fcn.0047fab2
push edi
call fcn.0044e370
add esp, 0x24
jmp 0x460711
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
and dword [ebp - 0xc], 0
cmp dword [ebx + 0xb8], 0
jle 0x45fdde
lea eax, [ebx + 0xbc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov esi, dword [eax]
xor edi, edi
cmp esi, edi
jne 0x45fd99
mov dword [ebx + 0x10], 1
jmp 0x45fdc6
cmp dword [esi], edi
jle 0x45fdc6
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
push dword [eax + 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fdbd
inc edi
cmp edi, dword [esi]
jl 0x45fd9d
jmp 0x45fdc6
mov eax, dword [esi + 4]
mov eax, dword [eax + edi*4]
mov dword [ebx + 0x44], eax
cmp dword [ebx + 0x44], 0
jne 0x45fdfb
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x14], 4
cmp eax, dword [ebx + 0xb8]
jl 0x45fd85
cmp dword [ebx + 0x44], 0
jne 0x45fdfb
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x45fdf0
mov eax, 0x460b68
push eax
push 0x460ab8
jmp 0x45fd27
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
xor esi, esi
cmp dword [ebx + 0x3c], esi
jle 0x45fe3a
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*4]
push dword [eax + 0x24]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fe31
inc esi
cmp esi, dword [ebx + 0x3c]
jl 0x45fe10
jmp 0x45fe3a
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*4]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
xor esi, esi
cmp dword [ebx + 0x3c], esi
jle 0x45fe79
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*4]
push dword [eax + 0x24]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fe70
inc esi
cmp esi, dword [ebx + 0x3c]
jl 0x45fe4f
jmp 0x45fe79
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*4]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
xor edi, edi
test edi, edi
jne 0x45fe95
mov esi, dword [ebx + 0xd4]
jmp 0x45fe9c
mov esi, dword [edi*4 + 0x47113c]
push dword [esi]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45fedc
push dword [esi + 4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
je 0x45fed4
cmp dword [ebx + 0xd8], 0
jne 0x45fedc
mov dword [ebx + 0xdc], 1
inc edi
cmp edi, 3
jb 0x45fe89
jmp 0x45fedf
mov dword [ebx + 0x50], esi
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
xor edi, edi
test edi, edi
jne 0x45fefb
mov esi, dword [ebx + 0xd4]
jmp 0x45ff02
mov esi, dword [edi*4 + 0x47113c]
push dword [esi]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
jne 0x45ff42
push dword [esi + 4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
call fcn.00455d0f
test eax, eax
pop ecx
je 0x45ff3a
cmp dword [ebx + 0xd8], 0
jne 0x45ff42
mov dword [ebx + 0xdc], 1
inc edi
cmp edi, 3
jb 0x45feef
jmp 0x45ff45
mov dword [ebx + 0x54], esi
cmp dword [ebx + 0xdc], 0
je 0x45ff63
mov eax, dword [ebp + 8]
push 0x460a7c
push dword [eax + 0xd4]
call fcn.0047f12a
pop ecx
pop ecx
mov eax, dword [ebp + 0x14]
lea esi, [ebp - 4]
lea edi, [ebp + 0xc]
call fcn.00454d4e
call fcn.00454d4e
mov ecx, eax
call fcn.00454d2b
test eax, eax
je 0x45ff8f
cmp dword [ebx + 0xf0], 0
jne 0x45ff8f
xor eax, eax
inc eax
jmp 0x45ff91
xor eax, eax
cmp dword [ebx + 8], 0
mov dword [ebx + 0xf4], eax
je 0x45ffe8
mov esi, dword [ebp + 8]
xor edi, edi
inc edi
call fcn.0045554d
mov eax, esi
mov ecx, dword [eax + 0x90]
push eax
push 0x41b064
push dword [ecx]
push 0x460a64
push dword [eax + 0xd4]
call fcn.0047f3be
add esp, 0x14
test eax, eax
mov dword [ebx + 0xec], eax
jge 0x45eeae
mov dword [esi + 0x17c], 0x16c0
jmp 0x4608ac
cmp dword [ebx + 0xc], 0
je 0x45ee37
mov esi, dword [ebp + 8]
xor edi, edi
inc edi
call fcn.0045554d
mov ecx, dword [ebx + 0x40]
mov eax, esi
push eax
push 0x41b064
push dword [ecx + 0x18]
push 0x460a4c
push dword [eax + 0xd4]
call fcn.0047f3be
add esp, 0x14
test eax, eax
mov dword [ebx + 0xec], eax
jge 0x45ee25
mov dword [esi + 0x17c], 0x16d9
jmp 0x4608ac
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
call dword [eax]
push dword [esi + 4]
mov dword [esi + 0xc], eax
call 0x48d140
push dword [esi + 4]
mov ecx, dword [esi + 0x90]
push dword [esi + 0xc]
mov esi, dword [ecx + 0x1c]
mov ebx, eax
call fcn.004546b2
mov edi, dword [ebp + 8]
push dword [edi + 8]
call 0x48d140
push dword [edi + 8]
mov ecx, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [ecx + 0x1c]
mov ebx, eax
call fcn.004546b2
mov eax, dword [ebp - 8]
push dword [eax + 0x28]
mov ecx, dword [edi + 0x90]
push dword [edi + 0xc]
mov ebx, dword [eax + 0x2c]
mov esi, dword [ecx + 0x1c]
call fcn.004546b2
mov eax, dword [ebp - 8]
push dword [eax + 0x28]
call fcn.0044e370
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
add esp, 0x24
cmp eax, 5
jle 0x4600da
lea ebx, [eax - 5]
mov eax, dword [ecx + 0x10]
add eax, 5
push eax
mov eax, dword [edi + 0x90]
push dword [edi + 0xc]
mov esi, dword [eax + 0x1c]
call fcn.004546b2
pop ecx
pop ecx
mov eax, dword [ebp - 8]
cmp dword [eax + 0xf4], 0
je 0x4600f8
mov eax, dword [ebp + 8]
mov dword [eax + 0x17c], 0x170e
jmp 0x4608ac
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x90]
cmp dword [eax + 8], 0
jne 0x460283
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x44]
mov eax, dword [eax + 0x20]
mov ecx, dword [ecx + 0x20]
cmp eax, ecx
jle 0x460120
mov ecx, eax
mov dword [ebx], ecx
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 3
cmp ecx, eax
jle 0x460137
mov dword [ebx], eax
mov eax, dword [esi + 0x90]
cmp dword [eax + 0xc], 0
jne 0x4601a7
push 0x460a28
push dword [esi + 0xd4]
call fcn.0047f12a
mov dword [esi + 0x140], 2
mov eax, dword [ebx]
dec eax
push 0x40
cdq
pop ecx
idiv ecx
mov edx, 0x200
push 0x1e
mov ecx, eax
shl edx, cl
mov dword [ebx + 4], edx
call fcn.00454979
lea edi, [ebx + 0xe8]
mov dword [edi], eax
push eax
mov eax, dword [ebx + 4]
call fcn.004547cc
push dword [edi]
push esi
call fcn.00460ac5
mov esi, dword [ebp + 8]
add esp, 0x18
mov dword [esi + 0x17c], 0x1733
jmp 0x4608ac
push eax
mov dword [esi + 0x140], 1
call fcn.0046805b
mov dword [esi + 0xbc], eax
mov dword [ebx + 0x30], 0x1e
mov dword [ebx + 0x34], 0x1f
mov eax, dword [esi + 0x90]
push dword [eax + 4]
push 0x4609f8
push esi
call fcn.004542c4
add esp, 0x10
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x1c]
push dword [eax + 0x10]
push 0x4609c8
push esi
call fcn.004542c4
push 2
push dword [esi + 0xd4]
call fcn.0047fa89
mov eax, dword [ebx]
shl eax, 1
push eax
push dword [esi + 0xbc]
call fcn.00468104
push dword [ebx + 0x30]
mov dword [ebx + 0x1c], eax
call fcn.00454979
mov esi, eax
mov eax, dword [ebx + 0x1c]
lea ecx, [ebp - 0x14]
push ecx
push eax
mov dword [ebx + 0xe8], esi
call fcn.004548ce
mov dword [ebp + 0xc], eax
call fcn.004547ff
push dword [ebp + 0xc]
mov edi, dword [ebp - 0x14]
call fcn.0045486b
push dword [ebp + 0xc]
call fcn.0044e370
push dword [ebx + 0xe8]
mov esi, dword [ebp + 8]
push esi
call fcn.00460ac5
push 1
push dword [esi + 0xd4]
call fcn.0047fa89
add esp, 0x40
mov ecx, 0x1756
mov dword [esi + 0x17c], ecx
jmp 0x4608ac
mov eax, dword [eax + 0x1c]
push dword [eax + 0x10]
push 0x4609a4
push esi
call fcn.004542c4
add esp, 0xc
mov dword [esi + 0x140], 3
jmp 0x460634
cmp dword [ebp + 0x14], edi
je 0x4602b5
push 0x4606c0
jmp 0x45ed38
cmp dword [ebp + 0x10], edi
jg 0x45f200
mov eax, dword [esi + 0x2d6c]
mov dword [ebx + 0xec], eax
mov esi, dword [ebp + 8]
xor edi, edi
call fcn.0045554d
cmp dword [ebx + 0xec], edi
jne 0x460341
mov eax, 0x460698
mov esi, dword [ebp + 8]
xor edi, edi
push 1
push edi
push edi
call fcn.00457c5e
add esp, 0xc
mov dword [esi + 0x17c], edi
jmp 0x4608ac
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x4608a2
cmp dword [eax + 8], 0x20
je 0x460322
push dword [ebx + 0x60]
call fcn.0044e370
mov dword [esp], 0x46097c
jmp 0x45ed38
lea esi, [ebx + 0x70]
lea edi, [ebx + 0x5c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], edi
call fcn.00454d4e
push dword [ebx + 0x60]
call fcn.0044e370
pop ecx
jmp 0x45f103
cmp dword [ebx + 0xe0], 0
mov edi, dword [ebp + 8]
jne 0x46036c
lea esi, [edi + 0xd4]
push 0x46060c
push dword [esi]
call fcn.0047f12a
push dword [ebx + 0x68]
push dword [esi]
call fcn.0047f12a
add esp, 0x10
push dword [ebx + 0x68]
call fcn.0044e370
push dword [ebx + 0x64]
call fcn.0044e370
push dword [ebx + 0x78]
mov eax, dword [edi + 0x94]
call dword [eax + 4]
add esp, 0xc
cmp dword [ebx + 0xe0], 0
jne 0x4603e4
push 0x20
lea eax, [ebx + 0x80]
push eax
lea eax, [edi + 0x98]
push eax
call 0x48d450
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
add esp, 0xc
cmp eax, 0x20
mov dword [edi + 0xb8], eax
jbe 0x4603da
push 0x1822
push 0x45dd28
push 0x460944
call 0x48d940
add esp, 0xc
mov dword [ebx + 0xe0], 1
push 0x15
call fcn.00454979
push eax
push edi
mov dword [ebx + 0xe8], eax
call fcn.00460ac5
mov eax, dword [edi + 0x68]
and dword [edi + 0x3190], 0
add esp, 0xc
test eax, eax
je 0x460411
mov ecx, dword [edi + 0x60]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x40]
mov dword [edi + 0x60], eax
call dword [eax]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x78]
test eax, eax
je 0x46042b
mov ecx, dword [edi + 0x70]
push eax
call dword [ecx + 4]
pop ecx
mov eax, dword [ebx + 0x48]
mov dword [edi + 0x70], eax
call dword [eax]
mov dword [edi + 0x78], eax
mov eax, dword [edi + 0x88]
test eax, eax
je 0x46044b
mov ecx, dword [edi + 0x80]
push eax
call dword [ecx + 0xc]
pop ecx
mov eax, dword [ebx + 0x50]
mov dword [edi + 0x80], eax
call dword [eax + 8]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
shl eax, 1
cmp eax, 0x40
jbe 0x460487
push 0x1846
push 0x45dd28
push 0x460d4c
call 0x48d940
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
push 0x43
lea esi, [ebx + 0x80]
push esi
push dword [ebx + 0x24]
call fcn.00455daf
mov eax, dword [edi + 0x60]
mov eax, dword [eax + 0x20]
add esp, 0x10
add eax, 7
push 8
cdq
pop ecx
idiv ecx
mov ecx, dword [edi + 0x90]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0xc]
shl ecx, 1
cmp eax, ecx
jle 0x4604d7
push 0x1849
push 0x45dd28
push 0x4608f8
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x60]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x68]
call dword [eax + 0xc]
lea eax, [ebp - 0x58]
push eax
push 0x41
push esi
push dword [ebx + 0x24]
call fcn.00455daf
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x60]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x1c], eax
jle 0x460523
push 0x184d
push 0x45dd28
push 0x4608b0
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x60]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x68]
call dword [eax + 8]
lea eax, [ebp - 0x58]
push eax
push 0x45
push esi
push dword [ebx + 0x24]
call fcn.00455daf
mov eax, dword [edi + 0x90]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x70]
shl eax, 1
add esp, 0x18
cmp dword [ecx + 0x28], eax
jle 0x46056f
push 0x1851
push 0x45dd28
push 0x460870
call 0x48d940
add esp, 0xc
mov eax, dword [edi + 0x70]
lea ecx, [ebp - 0x58]
push ecx
push dword [edi + 0x78]
call dword [eax + 8]
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call 0x48d0e0
mov eax, dword [edi + 0x60]
push dword [eax + 0x28]
push 0x460840
push edi
call fcn.004542c4
mov eax, dword [edi + 0x70]
push dword [eax + 0x2c]
push 0x460810
push edi
call fcn.004542c4
mov eax, dword [edi + 0x80]
mov eax, dword [eax + 0x24]
add esp, 0x2c
test eax, eax
je 0x4605ca
push eax
push 0x4607f4
push edi
call fcn.004542c4
add esp, 0xc
mov esi, dword [ebp + 8]
and dword [esi + 0x120], 0
call fcn.00457b7d
mov dword [esi + 0x17c], 0x1868
jmp 0x4608ac
push 0x4607bc
call fcn.0044e6e5
push 0
mov esi, edi
mov ebx, eax
call fcn.00455564
lea esi, [edi + 0xd4]
push ebx
push dword [esi]
call fcn.0047f12a
push ebx
push 0x45ba30
push dword [esi]
call fcn.0047fab2
push ebx
call fcn.0044e370
add esp, 0x20
and dword [edi + 0x17c], 0
jmp 0x4608ac
mov eax, dword [ebp + 0x14]
cmp eax, edi
jne 0x460646
mov eax, dword [ebp + 8]
mov dword [eax + 0x17c], 0x1782
jmp 0x4608ac
cmp dword [eax + 8], 0x1e
je 0x460656
push 0x460790
jmp 0x4606dc
lea esi, [ebx + 0x6c]
lea edi, [ebx + 0x58]
mov dword [ebp + 0xc], esi
call fcn.00454d4e
push dword [edi]
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
mov eax, dword [eax + 0x90]
mov ebx, dword [esi]
mov esi, dword [eax + 0x1c]
call fcn.004546b2
mov ecx, dword [ebp + 0xc]
push dword [ecx]
mov eax, dword [ebp + 8]
push dword [edi]
mov eax, dword [eax + 0x94]
call dword [eax]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0x78], eax
mov eax, dword [ebp + 0x14]
lea esi, [ebx + 0x74]
lea edi, [ebp + 0xc]
call fcn.00454d4e
push 1
push dword [esi]
call fcn.0044e2b0
push dword [esi]
mov dword [ebx + 0x60], eax
push dword [ebp + 0xc]
push eax
call 0x48d450
push dword [esi]
push dword [ebx + 0x60]
call fcn.0046cf5a
add esp, 0x2c
test eax, eax
push dword [ebx + 0x60]
mov dword [ebx + 0x7c], eax
jne 0x46071d
call fcn.0044e370
mov dword [esp], 0x460764
call fcn.0044e6e5
mov esi, dword [ebp + 8]
push 0
mov ebx, eax
call fcn.00455564
lea edi, [esi + 0xd4]
push ebx
push dword [edi]
call fcn.0047f12a
push ebx
push 0x45ba30
push dword [edi]
call fcn.0047fab2
push ebx
call fcn.0044e370
add esp, 0x20
and dword [esi + 0x17c], 0
jmp 0x4608ac
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
mov eax, dword [eax + 0x90]
mov ebx, dword [esi]
mov esi, dword [eax + 0x1c]
call fcn.004546b2
mov edi, dword [ebp - 8]
push dword [edi + 0x7c]
call fcn.0046cf64
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x90]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0xc]
and dword [ebp - 0x14], 0
mov esi, eax
shl ecx, 4
sub esi, ecx
mov dword [ebp - 4], eax
sub esi, 0x31
lea eax, [esi - 1]
push eax
call fcn.004656d8
and dword [ebp + 0xc], 0
add esp, 0x10
test esi, esi
mov dword [edi + 0x24], eax
jle 0x4607aa
mov eax, dword [ebp + 0xc]
and eax, 7
mov dword [ebp - 0x10], eax
jne 0x460788
call fcn.0046b8e9
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
sar eax, cl
and eax, 1
push eax
push dword [ebp + 0xc]
push dword [edi + 0x24]
call fcn.00465088
add esp, 0xc
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], esi
jl 0x460775
lea eax, [ebp + 0xc]
push eax
push dword [edi + 0x24]
call fcn.004548ce
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
add eax, 4
push 1
push eax
mov dword [ebp - 0x10], eax
call fcn.0044e2b0
mov esi, eax
mov eax, dword [ebp + 0xc]
mov ecx, eax
sar ecx, 0x18
mov byte [esi], cl
mov ecx, eax
sar ecx, 0x10
push eax
push dword [ebp - 0xc]
mov byte [esi + 1], cl
mov ecx, eax
mov byte [esi + 3], al
lea eax, [esi + 4]
sar ecx, 8
push eax
mov dword [ebp - 0x18], esi
mov byte [esi + 2], cl
call 0x48d450
mov eax, dword [ebp - 4]
add eax, 7
push 8
pop ecx
cdq
idiv ecx
push 1
push eax
mov dword [ebp + 0xc], eax
call fcn.0044e2b0
push dword [edi + 0x7c]
mov dword [ebp - 0x14], eax
push dword [ebp + 0xc]
push eax
push dword [ebp - 0x10]
mov eax, dword [ebx + 0x90]
push esi
push dword [eax + 0x1c]
call fcn.0046d025
push 0x1f
call fcn.00454979
add edi, 0xe8
add esp, 0x40
mov esi, eax
mov dword [ebp - 0x10], edi
mov dword [edi], eax
call fcn.004547ff
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x14]
mov edi, dword [ebp + 0xc]
mov esi, dword [eax]
call fcn.0045486b
mov eax, dword [ebp - 0x10]
push dword [eax]
push ebx
call fcn.00460ac5
push dword [ebp - 0x14]
mov eax, dword [ebx + 0x90]
push dword [ebx + 0xc]
mov esi, dword [eax + 0x1c]
mov ebx, edi
call fcn.004546b2
push dword [ebp - 0x18]
call fcn.0044e370
push dword [ebp - 0xc]
call fcn.0044e370
push dword [ebp - 0x14]
call fcn.0044e370
mov eax, dword [ebp - 8]
push dword [eax + 0x7c]
call fcn.0046cf5f
add esp, 0x24
mov esi, dword [ebp + 8]
mov dword [esi + 0x17c], 0x17d4
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret