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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x7c0
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x60], ebx
mov byte [ebp - 0x19], bl
mov byte [ebp - 0x1b], bl
call fcn.00424549
lea ecx, [ebp - 0x594]
call fcn.0041bcc4
lea ecx, [ebp - 0x4bc]
call fcn.0041bcc4
lea ecx, [ebp - 0x5ec]
call fcn.0041bcc4
lea ecx, [ebp - 0x7bc]
call fcn.00435aa5
lea ecx, [ebp - 0x53c]
call fcn.0042d8db
push 0x58
pop ecx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x48], ebx
call fcn.004143f5
test eax, eax
je 0x45f1f3
mov ecx, eax
call fcn.00432edc
mov dword [ebp - 0x18], eax
jmp 0x45f1f8
mov eax, ebx
mov dword [ebp - 0x18], ebx
test eax, eax
jne 0x45f230
push 0x20d
push ecx
mov ecx, 0x40c274
call fcn.004173a3
pop ecx
push edx
push eax
mov eax, dword [ebp + 8]
push 0x401480
push 3
push 1
push 0x43c
push dword [eax + 0x34]
call fcn.00416d87
add esp, 0x20
jmp 0x45f5bd
mov edi, dword [ebp + 0x20]
mov dword [ebp - 0x10], edi
cmp byte [ebp + 0x24], bl
jne 0x45f906
test di, di
je 0x45f90b
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x34]
call fcn.00419b82
test al, al
je 0x45f58a
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x30], 3
jne 0x45f2bd
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov byte [ebp + 0x23], cl
mov edx, dword [eax + 0x14c]
test edx, edx
je 0x45f29a
mov eax, dword [edx]
lea ecx, [ebp + 0x23]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, edx
call dword [eax + 0x20]
mov ah, byte [ebp + 0x23]
xor ecx, ecx
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
jmp 0x45f2a2
mov esi, ecx
mov edx, ecx
mov ah, cl
mov al, 1
test al, al
je 0x45f2bd
test ah, ah
je 0x45f2bd
mov eax, esi
or eax, edx
je 0x45f2bd
push ecx
push dword [ebp - 0x34]
push edx
push esi
call sub.ntdll.dll__aulldiv
jmp 0x45f2c3
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x54], ecx
cmp ecx, edx
jb 0x45f2e1
ja 0x45f2d9
cmp esi, eax
jbe 0x45f2e1
mov esi, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x54], edx
mov eax, 0xffff
cmp di, ax
je 0x45f31c
movzx eax, di
cmp eax, dword [ebx + 0x3c]
jbe 0x45f31c
push eax
push 0x401458
push 0x6659
push dword [ebx + 0x34]
call fcn.00416cfc
movzx eax, word [ebx + 0x3c]
xor ecx, ecx
inc ecx
add esp, 0x10
mov edi, ecx
cmp cx, ax
ja 0x45f319
mov edi, eax
mov dword [ebp - 0x10], edi
mov ecx, dword [ebp - 0x34]
mov eax, ecx
push 0
add eax, 0xffffffff
mov dword [ebp - 0x48], eax
pop eax
push eax
push 9
push dword [ebp - 0x54]
mov edx, eax
adc edx, 0xffffffff
shl ecx, 3
push esi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x68], ecx
call sub.ntdll.dll__allmul
xor edi, edi
push edi
push 0xa
pop ecx
push ecx
push edx
push eax
call sub.ntdll.dll__alldiv
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], edx
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x44]
shld ecx, esi, 3
lea eax, [edx + eax*4]
xor edx, edx
shl eax, 2
shl esi, 3
add eax, esi
push edi
push dword [ebp - 0x34]
adc edx, ecx
mov ecx, dword [ebp - 0x48]
add ecx, eax
mov eax, dword [ebp - 0x28]
adc eax, edx
push eax
push ecx
call sub.ntdll.dll__aulldiv
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x28]
push 0x24
mov dword [ebp - 0x44], edx
pop ecx
mov al, byte [eax]
mov byte [ebp + 0x23], al
test al, al
je 0x45f3a4
push 4
pop ecx
mov eax, dword [ebx + 0x38]
lea ecx, [ecx*8 + 4]
push edi
cdq
push ecx
push edx
push eax
call sub.ntdll.dll__allmul
cmp byte [ebp + 0x23], 0
mov esi, eax
mov edi, edx
jne 0x45f3dd
lea ecx, [ebx + 0x78]
call fcn.00431e19
xor ecx, ecx
push ecx
push 0x180
push ecx
push eax
call sub.ntdll.dll__allmul
add esi, eax
adc edi, edx
mov ecx, dword [ebp - 0x68]
push 0
pop edx
add ecx, esi
mov eax, edx
push edx
push dword [ebp - 0x68]
adc eax, edi
sub ecx, 1
sbb eax, edx
push eax
push ecx
call sub.ntdll.dll__alldiv
push dword [ebp - 8]
mov ecx, edx
mov dword [ebp - 0x50], eax
push dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 0x30], ecx
add esi, dword [ebp - 0x58]
mov edi, ecx
push ecx
adc edi, dword [ebp - 0x44]
push eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], edi
call fcn.00412554
test al, al
je 0x45f44c
cmp byte [ebp + 0x23], 0
jne 0x45f44c
push 0x401054
push 0x666a
push dword [ebx + 0x34]
call fcn.00416cfc
mov eax, dword [ebp + 0x28]
xor ecx, ecx
inc ecx
add esp, 0xc
xor edi, edi
mov byte [eax], cl
jmp 0x45f358
push ecx
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x7c]
push eax
mov ecx, dword [ecx + 0x20]
call fcn.00410cbb
push edi
push esi
push dword [ebp - 8]
mov dword [ebp + 0x20], edi
mov edi, dword [ebp - 0x14]
push edi
call fcn.004124da
test al, al
je 0x45f478
mov ecx, dword [ebp - 8]
mov eax, edi
jmp 0x45f47d
mov ecx, dword [ebp + 0x20]
mov eax, esi
push ecx
push eax
push 0
push dword [ebp - 0x34]
call sub.ntdll.dll__allmul
mov edi, dword [ebp - 0x78]
cmp edx, edi
ja 0x45f4a7
mov ecx, dword [ebp - 0x7c]
jb 0x45f499
cmp eax, ecx
jae 0x45f4a7
sub ecx, eax
mov dword [ebp - 0x74], ecx
sbb edi, edx
xor ecx, ecx
mov dword [ebp - 0x70], edi
jmp 0x45f4af
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
mov edx, dword [eax + 0x14c]
test edx, edx
je 0x45f4cb
mov eax, dword [edx]
push ecx
lea ecx, [ebp - 0x74]
push ecx
mov ecx, edx
call dword [eax + 0x18]
mov edi, dword [ebp - 0x10]
xor eax, eax
inc eax
mov ecx, 0xffff
mov byte [ebp - 0x19], al
cmp di, cx
jne 0x45f872
push dword [ebp - 8]
mov edi, dword [ebp - 0x14]
push edi
push dword [ebp - 0x30]
push dword [ebp - 0x50]
call fcn.00412554
test al, al
je 0x45f6c2
push ecx
push ecx
mov ecx, dword [ebp - 0x20]
mov eax, esp
push dword [ebp - 0x3c]
xor esi, esi
push dword [ebp - 0x40]
mov dword [eax], ecx
mov edi, esi
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x10], edi
mov dword [eax + 4], ecx
call fcn.00412554
test al, al
je 0x45f60a
push 0x401054
push 0x665a
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0xc
mov esi, dword [ebp - 0x28]
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x2c]
mov dword [ebp + 0x30], esi
mov esi, dword [ebp - 0xc]
push dword [ebx + 0x38]
mov ecx, dword [ebp + 0xc]
call fcn.0043f5c5
test al, al
jne 0x45f950
push 0x32a
push ecx
mov ecx, 0x40c274
call fcn.004173a3
pop ecx
push edx
push eax
push 0x401480
xor eax, eax
push 3
inc eax
push eax
push 0x43c
push dword [ebx + 0x34]
call fcn.00416d87
add esp, 0x20
xor ebx, ebx
inc ebx
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x45f599
mov eax, dword [ecx]
push ebx
call dword [eax]
cmp byte [ebp - 0x19], 0
je 0x45f5ba
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + 0x14c]
test ecx, ecx
je 0x45f5ba
mov eax, dword [ecx]
lea edx, [ebp - 0x7c]
push 0
push edx
call dword [eax + 0x18]
mov bl, byte [ebp - 0x1b]
lea ecx, [ebp - 0x53c]
call fcn.0042d95d
lea ecx, [ebp - 0x7bc]
call fcn.00435b2a
lea ecx, [ebp - 0x5ec]
call fcn.0041bd3f
lea ecx, [ebp - 0x4bc]
call fcn.0041bd3f
lea ecx, [ebp - 0x594]
call fcn.0041bd3f
lea ecx, [ebp - 0x22c]
call fcn.004245b8
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
cmp byte [ebp + 0x30], 0
je 0x45f61f
push 0x401054
push 0x6679
jmp 0x45f52f
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
sbb dword [ebp - 0x3c], eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
cdq
push ecx
push edx
push eax
mov dword [ebp - 0x40], ecx
mov dword [ebp + 8], eax
mov dword [ebp + 0x30], edx
call sub.ntdll.dll__allmul
push esi
push 0x400
push edx
push eax
call sub.ntdll.dll__alldiv
push esi
push 0x400
push edx
push eax
call sub.ntdll.dll__alldiv
push edx
push eax
push ecx
push ecx
mov eax, esp
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
call fcn.00412554
test al, al
je 0x45f67b
xor eax, eax
mov edx, esi
inc eax
jmp 0x45f6a6
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x30]
push dword [ebp + 8]
call sub.ntdll.dll__allmul
push esi
push 0x400
push edx
push eax
call sub.ntdll.dll__alldiv
push esi
push 0x400
push edx
push eax
call sub.ntdll.dll__alldiv
push edx
push eax
push 0x401458
push 0x6656
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x14
jmp 0x45f53a
push dword [ebp - 8]
push edi
mov edi, dword [ebp - 0x3c]
push edi
push esi
call fcn.00412595
test al, al
jne 0x45f8f1
push ecx
push ecx
mov ecx, dword [ebp - 0x20]
mov eax, esp
push edi
push esi
mov dword [eax], ecx
mov ecx, dword [ebp - 0x54]
mov dword [eax + 4], ecx
call fcn.00412554
test al, al
je 0x45f6fe
push 0x401054
push 0x665a
jmp 0x45f70e
cmp byte [ebp + 0x30], 0
je 0x45f71e
push 0x401054
push 0x6679
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0xc
jmp 0x45f7b3
sub esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
sbb edi, dword [ebp - 8]
cdq
push edi
mov ecx, edx
mov dword [ebp - 0x40], esi
push esi
push ecx
push eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x30], ecx
call sub.ntdll.dll__allmul
xor esi, esi
push esi
push 0x400
push edx
push eax
call sub.ntdll.dll__alldiv
push esi
push 0x400
push edx
push eax
call sub.ntdll.dll__alldiv
push edx
push eax
push ecx
push ecx
mov eax, esp
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
call fcn.00412554
test al, al
je 0x45f776
xor eax, eax
mov edx, esi
inc eax
jmp 0x45f79c
push edi
push dword [ebp - 0x40]
push dword [ebp + 0x30]
push dword [ebp + 0x20]
call sub.ntdll.dll__allmul
push esi
mov edi, 0x400
push edi
push edx
push eax
call sub.ntdll.dll__alldiv
push esi
push edi
push edx
push eax
call sub.ntdll.dll__alldiv
push edx
push eax
push 0x401458
push 0x6656
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x14
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 8]
sbb esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push esi
cdq
push ecx
push edx
push eax
call sub.ntdll.dll__allmul
mov dword [ebp + 0x30], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x20], ecx
mov esi, edx
mov dword [ebp + 0x20], eax
mov dword [ebp - 8], esi
mov edx, ecx
lea edi, [eax + 1]
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x50], eax
test eax, eax
je 0x45f888
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x30], eax
movzx eax, word [eax]
push esi
push dword [ebp + 0x30]
lea eax, [eax*8 + 0x10]
add edx, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x20]
adc eax, ecx
mov dword [ebp - 0x48], edx
push eax
push edx
mov dword [ebp + 0x20], eax
call fcn.00412554
xor ecx, ecx
test al, al
je 0x45f856
mov edx, dword [ebp - 0x28]
mov eax, ecx
push 0xa
mov dword [ebp + 0x20], eax
inc edi
pop eax
mov dword [ebp - 0x10], edi
cmp di, ax
jbe 0x45f859
push eax
push 0x401458
push 0x665b
push dword [ebx + 0x34]
mov edi, ecx
mov dword [ebp - 0x10], edi
call fcn.00416cfc
add esp, 0x10
jmp 0x45f87f
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x30]
inc dword [ebp - 0x20]
add eax, 2
mov ebx, dword [ebp - 0x50]
cmp dword [ebp - 0x20], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x30], eax
jb 0x45f7fa
jmp 0x45f87f
cmp di, ax
je 0x45f8f4
or dword [ebp + 0x30], 0xffffffff
or dword [ebp - 8], 0xffffffff
test di, di
je 0x45f546
push dword [ebp - 0x44]
movzx ebx, di
push dword [ebp - 0x58]
mov eax, ebx
cdq
mov edi, eax
mov esi, edx
mov eax, dword [ebp - 0x34]
cdq
push edx
push eax
call sub.ntdll.dll__allmul
add eax, edi
push esi
push edi
adc edx, esi
push edx
push eax
call sub.ntdll.dll__alldiv
push ecx
push ecx
mov ecx, esp
mov esi, eax
push dword [ebp - 8]
mov edi, edx
push dword [ebp + 0x30]
or dword [ecx], 0xffffffff
or dword [ecx + 4], 0xffffffff
call fcn.00413079
push ebx
mov ebx, dword [ebp + 8]
push 0x401458
push 0x6657
mov dword [ebp + 0x30], esi
push dword [ebx + 0x34]
mov dword [ebp - 8], edi
call fcn.00416cfc
mov edi, dword [ebp - 0x10]
add esp, 0x10
jmp 0x45f546
xor eax, eax
inc eax
or dword [ebp + 0x30], 0xffffffff
mov edi, eax
or dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x10], edi
jmp 0x45f546
test di, di
jne 0x45f937
mov ebx, dword [ebp + 8]
push 0x401054
push 0x6658
push dword [ebx + 0x34]
call fcn.00416cfc
mov esi, dword [ebp - 0x28]
add esp, 0xc
mov edi, dword [ebp + 0x20]
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x2c]
mov dword [ebp + 0x30], esi
jmp 0x45f546
mov eax, dword [ebp - 0x28]
mov edi, ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x30], eax
jmp 0x45f549
movzx eax, byte [esi + 0x89]
push eax
push 2
push 0x401840
push 3
push 2
push 0x7bd9
push dword [ebx + 0x34]
call fcn.00416d87
add esp, 0x1c
test di, di
jne 0x45fa29
or dword [ebx + 0xd58], 0xffffffff
cmp byte [ebp + 0x24], 0
je 0x45f9be
mov ecx, dword [ebx + 0x38]
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
xor eax, eax
push ecx
push ecx
inc eax
lea ecx, [ebx + 0x230]
push eax
call fcn.00435b93
test al, al
jne 0x45f9b7
push 0x342
jmp 0x45f561
mov byte [ebx + 0x400], 0
lea ecx, [ebx + 0x78]
call fcn.00431e19
add eax, dword [ebx + 0x40]
push 0
pop ecx
adc ecx, dword [ebx + 0x44]
push ecx
push eax
push 5
mov ecx, ebx
call fcn.00450fa2
mov ecx, dword [0x40c544]
mov edx, 0x40c298
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
push dword [ebp + 0x2c]
mov edi, dword [ebp + 0x28]
mov esi, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0xc]
movzx eax, byte [edi]
push eax
push dword [ebp + 0x24]
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push ebx
call fcn.00461b19
test al, al
je 0x45f58a
jmp 0x4600cb
movzx esi, di
lea ecx, [ebx + 0x78]
mov dword [ebx + 0xd58], esi
call fcn.00431e19
mov edi, eax
mov eax, esi
push 0
cdq
push edi
push edx
push eax
call sub.ntdll.dll__allmul
add edi, dword [ebx + 0x38]
mov ecx, eax
push 0
pop eax
push eax
pop esi
adc eax, esi
add edi, ecx
mov ecx, ebx
adc eax, edx
push eax
push edi
push 5
call fcn.00450fa2
mov ecx, dword [0x40c544]
mov edx, 0x40c298
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
mov ecx, dword [ebx + 0x38]
push ecx
push ecx
mov eax, esp
push dword [ebp - 8]
push dword [ebp + 0x30]
mov dword [eax + 4], esi
mov esi, dword [ebp + 0x10]
push ecx
push ecx
mov dword [eax], ecx
push dword [esi + 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.00432fd8
test al, al
jne 0x45faab
push 0x3a5
jmp 0x45f561
mov edi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 0x58], eax
inc eax
mov dword [ebp - 0x30], eax
cmp ax, di
ja 0x4600c8
mov ecx, dword [0x40c544]
mov edx, 0x40c2b8
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
mov ecx, dword [ebp - 0x18]
call fcn.00433087
test al, al
je 0x4600be
mov ecx, dword [ebp - 0x64]
xor eax, eax
inc eax
mov byte [ebp + 0xb], al
mov eax, ecx
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebx + 0x38]
jae 0x45fcb5
push 5
mov ecx, ebx
call fcn.00450f65
test al, al
je 0x45f58a
cmp byte [ebp + 0xb], 0
mov eax, dword [ebp - 0x14]
movzx edx, al
jne 0x45fb1f
test al, al
jne 0x45fb44
push ecx
push ecx
mov ecx, esp
sub eax, edx
push esi
push ecx
and dword [ecx + 4], 0
mov dword [ecx], eax
lea ecx, [ebp - 0x22c]
call fcn.004246d9
test al, al
je 0x460082
mov byte [ebp + 0xb], 0
lea ecx, [ebp - 0x22c]
call fcn.00424787
test al, al
je 0x460078
mov esi, dword [ebp - 0x14]
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
and dword [eax + 4], 0
mov dword [eax], esi
call fcn.0042bed3
test al, al
jne 0x45fbd9
push ecx
push ecx
mov eax, esp
xor ecx, ecx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
push ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [ebx + 0x4c0]
mov dword [eax], esi
call fcn.0041b1a3
test al, al
jne 0x45fbaf
push esi
push 0x401458
push 0x659e
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x10
push ecx
push ecx
mov ecx, dword [ebp - 0x18]
mov eax, esp
mov dword [eax], esi
and dword [eax + 4], 0
call fcn.00433469
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebx + 0x38]
jae 0x45fcb5
mov esi, dword [ebp + 0x10]
jmp 0x45fafe
lea ecx, [ebp - 0x22c]
call fcn.0042243a
test al, al
je 0x45fbaf
mov eax, dword [ebp - 0x224]
xor ecx, ecx
inc ecx
test byte [eax + 0x16], cl
je 0x45fbaf
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
push ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [ebx + 0x800]
mov dword [eax], esi
call fcn.0041b1a3
mov byte [ebp - 0x28], al
test al, al
jne 0x45fc50
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], 0
je 0x45fc2c
mov ecx, dword [eax + 0x10]
xor eax, eax
jmp 0x45fc30
xor eax, eax
mov ecx, eax
push eax
push eax
push dword [ebp + 0x2c]
push dword [ebx + 0x34]
push dword [ebx + 0x30]
push ebx
push ecx
lea ecx, [ebp - 0x22c]
call fcn.00425253
test al, al
je 0x45f58a
mov eax, dword [ebp - 0x224]
xor ecx, ecx
inc ecx
mov al, byte [eax + 0x16]
shr al, 1
test cl, al
je 0x45fc81
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
push ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [ebx + 0x578]
mov dword [eax], esi
call fcn.004164ab
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x35]
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x22c]
push dword [ebx + 0x34]
push eax
call fcn.00433153
test al, al
jne 0x45fbc1
cmp byte [ebp - 0x35], al
je 0x45f58a
mov eax, dword [ebp - 0x14]
and dword [ebp - 0x48], 0
mov dword [ebp - 0x64], eax
push ecx
push ecx
mov ecx, esp
dec eax
and dword [ecx + 4], 0
mov dword [ecx], eax
mov ecx, dword [ebp - 0x18]
call fcn.00433469
mov ecx, dword [0x40c544]
mov edx, 0x40c2d4
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
or dword [ebp - 0x20], 0xffffffff
xor esi, esi
mov dword [ebp + 8], esi
cmp dword [ebx + 0x38], esi
jbe 0x460064
lea ecx, [ebx + 0x50]
push ecx
push ecx
mov eax, esp
xor edx, edx
push ecx
inc edx
push ecx
and dword [eax + 4], 0
mov dword [eax], edx
mov eax, esp
and dword [eax + 4], 0
mov dword [eax], esi
call fcn.004360d7
test al, al
jne 0x460054
push 5
mov ecx, ebx
call fcn.00450f65
test al, al
je 0x45f58a
mov eax, dword [ebp - 0x20]
mov ecx, esi
shr ecx, 8
shr eax, 8
cmp ecx, eax
je 0x45fd92
shl ecx, 8
xor esi, esi
push ecx
push ecx
mov eax, esp
mov dword [ebp - 0x20], ecx
push dword [ebp + 0x10]
push ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x22c]
mov dword [eax + 4], esi
call fcn.004246d9
test al, al
je 0x460096
lea ecx, [ebp - 0x22c]
call fcn.00424787
test al, al
je 0x46008c
mov ecx, dword [ebp - 0x20]
cmp dword [ebp + 8], ecx
je 0x45fd8f
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x22c]
mov dword [eax + 4], esi
call fcn.0042bed3
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x22c]
call fcn.00424787
test al, al
je 0x4600b4
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x22c]
and dword [ebp - 0x210], 0
mov dword [ebp - 0x214], esi
call dword [eax + 8]
test al, al
jne 0x45fe0a
push ecx
push ecx
mov eax, esp
xor ecx, ecx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
push ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [ebx + 0x4c0]
mov dword [eax], esi
call fcn.0041b1a3
test al, al
jne 0x460054
push esi
push 0x401458
push 0x659e
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x10
jmp 0x460054
cmp esi, dword [ebp - 0x58]
jbe 0x45fe4d
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
push 0
mov ecx, dword [ebp - 0xc]
movzx eax, byte [eax]
push eax
push dword [ebp + 0x24]
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x1c]
lea eax, [ebp - 0x22c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push eax
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.004607b3
test al, al
je 0x45f58a
mov dword [ebp - 0x58], esi
mov byte [ebp + 0xb], 0
mov byte [ebp - 0x1a], 0
cmp esi, 9
je 0x460054
cmp esi, 0xb
je 0x460054
push dword [ebx + 0xc]
push dword [ebx + 8]
push ecx
push ecx
mov eax, esp
and dword [eax + 4], 0
mov dword [eax], esi
call fcn.00412483
test al, al
jne 0x460054
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push ecx
push ecx
mov eax, esp
and dword [eax + 4], 0
mov dword [eax], esi
call fcn.00412483
test al, al
jne 0x460054
push dword [ebx + 0x24]
push dword [ebx + 0x20]
push ecx
push ecx
mov eax, esp
and dword [eax + 4], 0
mov dword [eax], esi
call fcn.00412483
test al, al
jne 0x460054
xor eax, eax
jmp 0x45ffd1
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], 0
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x48], ecx
je 0x45fed9
mov edx, dword [eax + 0x10]
jmp 0x45fedb
xor edx, edx
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + 0x4a]
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x22c]
push eax
mov eax, dword [ebp - 0x204]
shr eax, 1
push eax
push dword [ebp - 0x48]
movzx eax, cl
lea ecx, [ebp - 0x53c]
push edx
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x20]
call fcn.0042da8c
test al, al
je 0x4600a0
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
push dword [ebx + 0x34]
push dword [ebx + 0x30]
movzx eax, byte [eax]
push eax
push dword [ebp + 0x10]
lea eax, [ebp + 0x23]
push eax
lea eax, [ebp + 0x33]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x22c]
push dword [ebp - 0x18]
push ebx
push eax
lea eax, [ebp - 0x53c]
push eax
call fcn.00463c64
test al, al
je 0x45f58a
mov al, byte [ebp + 0x33]
test al, al
jne 0x45ff62
cmp byte [ebp + 0x23], al
je 0x45ffcd
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x30], ecx
je 0x45ff76
cmp dword [ebx + 0x30], 4
je 0x45ff76
cmp dword [ebx + 0x30], 3
jne 0x45ffbd
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x53c]
call fcn.0042e0fe
test al, al
jne 0x45ffb7
push dword [ebp - 0x50c]
push dword [ebp - 0x214]
push 0x40bc10
push 0x65b9
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x14
mov dword [ebx + 0xb44], 3
mov al, byte [ebp + 0x33]
xor ecx, ecx
inc ecx
test al, al
je 0x45ffc4
mov byte [ebp + 0xb], cl
cmp byte [ebp + 0x23], 0
je 0x45ffcd
mov byte [ebp - 0x1a], cl
mov eax, dword [ebp - 0x44]
inc eax
push eax
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x22c]
push 0x90
lea eax, [ebp - 0x21]
push eax
lea eax, [ebp - 0x4bc]
push eax
call fcn.00426f83
test al, al
jne 0x45fec5
cmp byte [ebp - 0x21], al
jne 0x4600aa
cmp byte [ebp + 0xb], al
je 0x460010
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
inc ecx
mov byte [eax], cl
jmp 0x460016
cmp byte [ebp - 0x1a], 0
je 0x460054
xor eax, eax
inc eax
cmp dword [ebx + 0x30], eax
je 0x46002a
cmp dword [ebx + 0x30], 4
je 0x46002a
cmp dword [ebx + 0x30], 3
jne 0x460054
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], 0
je 0x46003a
mov ecx, dword [eax + 0x10]
xor eax, eax
jmp 0x46003e
xor eax, eax
mov ecx, eax
push eax
push eax
push ecx
lea ecx, [ebp - 0x22c]
call fcn.00428647
test al, al
je 0x45f58a
inc esi
lea ecx, [ebx + 0x50]
mov dword [ebp + 8], esi
cmp esi, dword [ebx + 0x38]
jb 0x45fcf4
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp ax, di
ja 0x4600c8
mov esi, dword [ebp + 0x10]
jmp 0x45fac0
push 0x3da
jmp 0x45f561
push 0x3d3
jmp 0x45f561
push 0x447
jmp 0x45f561
push 0x442
jmp 0x45f561
push 0x49a
jmp 0x45f561
push 0x4bc
jmp 0x45f561
push 0x452
jmp 0x45f561
push 0x3b9
jmp 0x45f561
mov edi, dword [ebp + 0x28]
cmp byte [ebp + 0x24], 0
je 0x460620
and dword [ebx + 0xd58], 0
cmp byte [ebx + 0x400], 0
je 0x460620
lea ecx, [ebp - 0x464]
call fcn.0041a84b
lea ecx, [ebp - 0xd4]
call fcn.0041bcc4
lea ecx, [ebp - 0x12c]
call fcn.0041bcc4
lea ecx, [ebp - 0x3ac]
call fcn.00424549
lea ecx, [ebp - 0x2ac]
call fcn.0042d8db
mov ecx, dword [0x40c544]
mov edx, 0x40c304
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
xor ecx, ecx
mov esi, ecx
cmp dword [ebx + 0x38], ecx
jbe 0x460322
push ecx
push ecx
mov eax, esp
lea edx, [ebx + 0x230]
push ecx
push ecx
mov dword [eax + 4], ecx
mov dword [eax], 1
mov eax, esp
mov dword [eax + 4], ecx
mov ecx, edx
mov dword [eax], esi
call fcn.004360d7
test al, al
jne 0x4602df
cmp byte [edi], al
jne 0x46022c
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x464]
push eax
push esi
call fcn.0043f8c8
test al, al
je 0x46022c
push ecx
push ecx
mov eax, esp
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
push dword [ebp - 0x3b8]
push dword [ebp - 0x3bc]
call fcn.00413079
test al, al
je 0x46022c
push ecx
push ecx
mov eax, esp
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x464]
call fcn.0041b10e
mov ecx, dword [eax + 4]
mov edi, dword [eax]
push ecx
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x464]
push edi
call fcn.0041adf0
test al, al
je 0x4601f0
mov ecx, dword [ebp + 0xc]
push esi
push edi
call fcn.0043f796
test al, al
jne 0x46018f
lea ecx, [ebp - 0x2ac]
call fcn.0042d95d
lea ecx, [ebp - 0x3ac]
call fcn.004245b8
lea ecx, [ebp - 0x12c]
call fcn.0041bd3f
lea ecx, [ebp - 0xd4]
call fcn.0041bd3f
lea ecx, [ebp - 0x464]
call fcn.0041a905
jmp 0x45f58a
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x3ac]
push dword [ebp + 0x10]
and dword [eax + 4], 0
mov dword [eax], esi
call fcn.0042462e
test al, al
je 0x4602ef
lea ecx, [ebp - 0x3ac]
call fcn.0042be3f
test al, al
jne 0x460299
push ecx
push ecx
mov eax, esp
xor ecx, ecx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
push ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [ebx + 0x4c0]
mov dword [eax], esi
call fcn.0041b1a3
test al, al
jne 0x4602df
push esi
push 0x401458
push 0x659e
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x10
jmp 0x4602df
mov eax, dword [ebx + 0x48]
xor ecx, ecx
mov word [eax + esi*2], cx
xor eax, eax
mov edi, eax
push eax
jmp 0x4602b2
mov eax, dword [ebx + 0x48]
inc word [eax + esi*2]
inc edi
push edi
push 0x30
lea eax, [ebp + 0x33]
push eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x3ac]
call fcn.00426f83
test al, al
jne 0x4602a9
mov eax, dword [ebp - 0x3a4]
movzx ecx, word [eax + 0x12]
mov eax, dword [ebx + 0x4c]
mov word [eax + esi*2], cx
inc esi
cmp esi, dword [ebx + 0x38]
jae 0x460322
mov edi, dword [ebp + 0x28]
xor ecx, ecx
jmp 0x460144
push 0x4ff
push ecx
mov ecx, 0x40c274
call fcn.004173a3
pop ecx
push edx
push eax
push 0x401480
xor eax, eax
push 3
inc eax
push eax
push 0x43c
push dword [ebx + 0x34]
call fcn.00416d87
add esp, 0x20
jmp 0x4601f0
mov ecx, dword [0x40c544]
mov edx, 0x40c324
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
xor ecx, ecx
mov edi, ecx
cmp dword [ebx + 0x38], ecx
jbe 0x4605e9
push ecx
push ecx
mov eax, esp
lea edx, [ebx + 0x50]
push ecx
push ecx
mov dword [eax + 4], ecx
mov dword [eax], 1
mov eax, esp
mov dword [eax + 4], ecx
mov ecx, edx
mov dword [eax], edi
call fcn.004360d7
test al, al
jne 0x4605be
push dword [ebx + 0x14]
xor esi, esi
push dword [ebx + 0x10]
push ecx
push ecx
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], esi
call fcn.00412483
test al, al
jne 0x4605be
push dword [ebx + 0x24]
push dword [ebx + 0x20]
push ecx
push ecx
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], esi
call fcn.00412483
test al, al
jne 0x4605be
push dword [ebx + 0xc]
push dword [ebx + 8]
push ecx
push ecx
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], esi
call fcn.00412483
test al, al
jne 0x4605be
cmp edi, 9
je 0x4605be
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x3ac]
mov dword [eax + 4], esi
mov esi, dword [ebp + 0x10]
push esi
mov dword [eax], edi
call fcn.0042462e
test al, al
je 0x4605df
lea ecx, [ebp - 0x3ac]
call fcn.0042be3f
test al, al
jne 0x460441
push ecx
push ecx
mov eax, esp
xor ecx, ecx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
push ecx
mov dword [eax + 4], ecx
push ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [ebx + 0x4c0]
mov dword [eax], edi
call fcn.0041b1a3
test al, al
jne 0x4605be
push edi
push 0x401458
push 0x659e
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x10
jmp 0x4605be
xor eax, eax
mov byte [ebp + 0x27], al
mov byte [ebp + 0x23], al
jmp 0x460545
cmp byte [esi + 0x20], 0
je 0x460459
mov edx, dword [esi + 0x10]
jmp 0x46045b
xor edx, edx
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + 0x4a]
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x3ac]
push eax
mov eax, dword [ebp - 0x384]
shr eax, 1
push eax
push dword [esi + 0x14]
movzx eax, cl
lea ecx, [ebp - 0x2ac]
push edx
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x20]
call fcn.0042da8c
test al, al
je 0x4605cb
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
push dword [ebx + 0x34]
push dword [ebx + 0x30]
movzx eax, byte [eax]
push eax
push esi
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp + 0x1f]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x3ac]
push ebx
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.0046519d
test al, al
je 0x4601f0
cmp byte [ebp + 0x1f], 0
jne 0x4604dd
cmp byte [ebp + 0xb], 0
je 0x460541
xor eax, eax
inc eax
cmp dword [ebx + 0x30], eax
je 0x4604f1
cmp dword [ebx + 0x30], 4
je 0x4604f1
cmp dword [ebx + 0x30], 3
jne 0x460535
lea eax, [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x2ac]
call fcn.0042e0fe
test al, al
jne 0x460532
push dword [ebp - 0x27c]
push dword [ebp - 0x394]
push 0x40bc10
push 0x65b9
push dword [ebx + 0x34]
call fcn.00416cfc
add esp, 0x14
mov dword [ebx + 0xb44], 3
xor eax, eax
inc eax
cmp byte [ebp + 0xb], 0
mov byte [ebp + 0x27], al
je 0x460541
mov byte [ebp + 0x23], al
mov eax, dword [ebp + 0x18]
inc eax
push eax
mov dword [ebp + 0x18], eax
lea ecx, [ebp - 0x3ac]
push 0x90
lea eax, [ebp + 0x33]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.00426f83
test al, al
jne 0x46044e
cmp byte [ebp + 0x33], al
jne 0x4605d5
cmp byte [ebp + 0x27], al
je 0x460580
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
inc ecx
mov byte [eax], cl
jmp 0x460586
cmp byte [ebp + 0x23], 0
je 0x4605be
xor eax, eax
inc eax
cmp dword [ebx + 0x30], eax
je 0x46059a
cmp dword [ebx + 0x30], 4
je 0x46059a
cmp dword [ebx + 0x30], 3
jne 0x4605be
xor eax, eax
cmp byte [esi + 0x20], al
je 0x4605a6
mov ecx, dword [esi + 0x10]
jmp 0x4605a8
mov ecx, eax
push eax
push eax
push ecx
lea ecx, [ebp - 0x3ac]
call fcn.00428647
test al, al
je 0x4601f0
inc edi
cmp edi, dword [ebx + 0x38]
jae 0x4605e9
xor ecx, ecx
jmp 0x460346
push 0x550
jmp 0x4602f4
push 0x56d
jmp 0x4602f4
push 0x533
jmp 0x4602f4
lea ecx, [ebp - 0x2ac]
call fcn.0042d95d
lea ecx, [ebp - 0x3ac]
call fcn.004245b8
lea ecx, [ebp - 0x12c]
call fcn.0041bd3f
lea ecx, [ebp - 0xd4]
call fcn.0041bd3f
lea ecx, [ebp - 0x464]
call fcn.0041a905
push 5
mov ecx, ebx
call fcn.0044ebfa
test al, al
je 0x45f58a
push 3
pop edi
push 0x401054
push edi
push 2
push 0x65dd
cmp dword [ebx + 0x30], edi
jne 0x46064e
push dword [ebx + 0xdc8]
jmp 0x460651
push dword [ebx + 0x34]
call fcn.00416d87
mov ecx, dword [0x40c544]
add esp, 0x14
mov edx, 0x40c354
call fcn.00412500
mov ecx, ebx
call fcn.0044edc0
mov ecx, dword [ebp - 0x18]
xor edx, edx
inc edx
push edx
mov eax, dword [ecx]
call dword [eax]
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x18], ecx
cmp dword [ebx + 0x38], ecx
jbe 0x460753
mov eax, dword [ebx + 0x4c]
cmp word [eax + esi*2], cx
je 0x460749
xor eax, eax
push ecx
inc eax
push ecx
mov byte [0x47d164], al
mov eax, esp
push dword [ebp + 0x10]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x22c]
mov dword [eax], esi
call fcn.0042462e
test al, al
je 0x46077c
lea ecx, [ebp - 0x22c]
call fcn.0042be3f
test al, al
je 0x460747
mov eax, dword [ebx + 0x4c]
movsx ecx, word [eax + esi*2]
mov eax, dword [ebp - 0x224]
push ecx
push ecx
movzx eax, word [eax + 0x12]
cmp eax, ecx
mov eax, esp
lea ecx, [ebx + 0x748]
mov dword [eax], esi
jne 0x460703
and dword [eax + 4], 0
call fcn.0041a96b
test al, al
jne 0x460710
push 0x5b2
jmp 0x460781
and dword [eax + 4], 0
call fcn.0041adf0
test al, al
je 0x460775
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x224]
mov ax, word [eax + esi*2]
sub word [ecx + 0x12], ax
cmp dword [ebx + 0x30], edi
je 0x460747
xor eax, eax
inc eax
cmp dword [ebx + 0x30], eax
je 0x460734
cmp dword [ebx + 0x30], 4
jne 0x460747
lea ecx, [ebp - 0x22c]
call fcn.0042bf61
test al, al
je 0x45f599
xor ecx, ecx
inc esi
cmp esi, dword [ebx + 0x38]
jb 0x46068b
cmp dword [ebp - 0x60], 0
je 0x46076a
cmp dword [ebx + 0xb44], edi
je 0x46076a
xor eax, eax
inc eax
mov dword [ebx + 0xb44], eax
xor ebx, ebx
inc ebx
mov byte [ebp - 0x1b], bl
jmp 0x45f58d
push 0x5b7
jmp 0x460781
push 0x5a3
push ecx
mov ecx, 0x40c274
call fcn.004173a3
pop ecx
push edx
push eax
push 0x401480
xor eax, eax
push edi
inc eax
push eax
push 0x43c
push dword [ebx + 0x34]
call fcn.00416d87
add esp, 0x20
jmp 0x45f599