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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x20]
cmp eax, dword [ecx + 8]
jbe 0x453fee
sub esp, 0xa0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x9c], ecx
lea edx, [0x72ada0]
mov dword [esp], edx
mov ebx, dword [esp + 0xac]
mov dword [esp + 4], ebx
lea ebp, [esp + 0x98]
mov dword [esp + 8], ebp
call fcn.0040bcd0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x453f21
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x9c], ecx
lea edx, [0x72ada0]
mov dword [esp], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 4], edx
lea ebx, [esp + 0x98]
mov dword [esp + 8], ebx
call fcn.0040c0b0
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
cmp eax, ecx
je 0x453f12
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
movzx ebp, byte [ecx + 0xf]
and ebp, 0x1f
xchg ebp, eax
cmp dl, al
xchg ebp, eax
jne 0x453f03
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], dl
mov dword [esp], eax
call fcn.004520b0
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
call fcn.004520b0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
je 0x45341e
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x45340f
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
call fcn.00452140
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
call fcn.00452140
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x453e5e
test eax, eax
jne 0x453e5c
movzx ebx, byte [esp + 0x16]
cmp bl, 1
jb 0x45348b
cmp bl, 0x10
jbe 0x453e4d
cmp bl, 0x15
ja 0x453b3e
cmp bl, 0x12
jbe 0x453a89
cmp bl, 0x13
jne 0x453765
mov ebx, dword [esp + 0xa8]
movzx ebp, word [ebx + 0x22]
mov esi, dword [esp + 0xa4]
cmp word [esi + 0x22], bp
jne 0x453756
movzx ebp, word [esi + 0x20]
movzx edi, word [ebx + 0x20]
cmp di, bp
jne 0x453756
nop
mov eax, edi
movzx edi, byte [esi + 0xc]
xchg edi, eax
test al, 1
xchg edi, eax
je 0x45374c
mov ecx, 0x34
movzx ebp, bp
lea edi, [ecx + esi]
cmp ebp, 0x100000
ja 0x453f8e
nop
mov ecx, esi
movzx esi, byte [ebx + 0xc]
xchg esi, eax
test al, 1
xchg esi, eax
je 0x453742
mov edx, 0x34
mov dword [esp + 0x90], edi
mov dword [esp + 0x24], ebp
movzx esi, ax
mov dword [esp + 0x1c], esi
mov eax, ebx
add ebx, edx
mov dword [esp + 0x8c], ebx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
jmp 0x45358f
mov eax, dword [esp + 0x2c]
inc eax
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xac]
mov ebp, esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x2c]
cmp ebx, ebp
jge 0x4535de
jae 0x453f85
mov edi, dword [edi + ebx*4]
cmp ebx, esi
jae 0x453f7c
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + ebx*4]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004532f0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x453547
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
nop
movzx ebx, byte [ecx + 0xc]
test bl, 1
je 0x453738
mov ebx, 0x34
movzx ebp, word [ecx + 0x22]
and ebp, 0x7fff
movzx esi, word [ecx + 0x20]
add ebp, esi
movzx ebp, bp
add ebx, ecx
cmp ebp, 0x100000
ja 0x453f70
movzx esi, si
cmp esi, ebp
ja 0x453f67
nop
sub ebp, esi
lea edi, [esi - 0x100000]
xchg edi, ebx
neg ebx
xchg edi, ebx
xchg edi, ebx
neg ebx
xchg edi, ebx
shl esi, 2
sar edi, 0x1f
and esi, edi
add ebx, esi
movzx esi, byte [eax + 0xc]
xchg esi, eax
test al, 1
xchg esi, eax
je 0x45372e
mov ecx, 0x34
mov dword [esp + 0x60], ebx
movzx esi, word [eax + 0x22]
and esi, 0x7fff
movzx edi, word [eax + 0x20]
add esi, edi
movzx esi, si
lea ebx, [ecx + eax]
cmp esi, 0x100000
ja 0x453f5b
movzx eax, di
cmp eax, esi
ja 0x453f54
mov dword [esp + 0x20], ebp
sub esi, eax
mov dword [esp + 0x18], esi
lea edi, [eax - 0x100000]
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
add ebx, eax
mov dword [esp + 0x50], ebx
mov edi, dword [esp + 0x60]
xor eax, eax
jmp 0x4536db
mov eax, dword [esp + 0x34]
inc eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x60]
mov ebx, ebp
mov ebp, ecx
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x60]
cmp eax, ebp
jge 0x45371f
jae 0x453f4d
mov edi, dword [edi + eax*4]
cmp eax, esi
jae 0x453f46
mov dword [esp + 0x34], eax
mov ecx, dword [ebx + eax*4]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004532f0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4536b3
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
mov ecx, 0x24
jmp 0x453650
mov ebx, 0x24
jmp 0x4535f1
mov edx, 0x24
jmp 0x453513
mov ecx, 0x24
jmp 0x4534ea
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
cmp bl, 0x14
jne 0x453a13
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.00452bc0
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00452bc0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
je 0x4537be
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x4537af
mov edx, dword [esp + 0xa4]
mov ebx, dword [edx + 0x28]
mov ebp, dword [esp + 0xa8]
cmp dword [ebp + 0x28], ebx
jne 0x453a04
mov dword [esp + 0x44], ebx
xor eax, eax
jmp 0x45381b
mov esi, dword [esp + 0x38]
lea eax, [esi + 1]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
mov edx, ecx
mov ebx, esi
mov ebp, edi
cmp eax, ebx
jge 0x4539f5
mov ecx, dword [edx + 0x28]
mov esi, dword [edx + 0x24]
cmp eax, ecx
jae 0x453f41
lea edi, [esi + eax*8]
mov ecx, dword [ebp + 0x28]
mov ebp, dword [ebp + 0x24]
cmp eax, ecx
jae 0x453f3c
mov dword [esp + 0x88], ebp
mov dword [esp + 0x38], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x84], esi
lea ecx, [esi + eax*8]
mov ecx, dword [ecx]
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.004522d0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x88]
lea edx, [ecx + eax*8]
mov dword [esp + 0x54], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x80], ebx
lea ebp, [ecx + eax*8]
mov ebp, dword [ebp]
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.004522d0
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
call fcn.00452bc0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call fcn.00452bc0
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x4539e6
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x4539e6
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00452cc0
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call fcn.00452cc0
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x4539d7
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x4539d7
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x64]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00452580
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x88]
lea edx, [edx + ecx*8 + 4]
mov edx, dword [edx]
mov ebx, dword [esp + 0x54]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.00452580
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004532f0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4537fc
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
call fcn.004532f0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x453a57
xor eax, eax
mov byte [esp + 0xb0], al
add esp, 0xa0
ret
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004532f0
movzx eax, byte [esp + 0xc]
jmp 0x453a49
cmp bl, 0x11
je 0x453ae1
cmp bl, 0x12
jne 0x453f9a
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xa4]
cmp dword [edx + 0x24], ecx
je 0x453abd
xor eax, eax
mov byte [esp + 0xb0], al
add esp, 0xa0
ret
mov ecx, dword [edx + 0x20]
mov eax, dword [eax + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004532f0
movzx eax, byte [esp + 0xc]
jmp 0x453aaf
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
call fcn.004532f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x453b3a
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xa4]
cmp dword [ecx + 0x28], eax
sete al
mov byte [esp + 0xb0], al
add esp, 0xa0
ret
xor eax, eax
jmp 0x453b2c
cmp bl, 0x17
ja 0x453bc8
cmp bl, 0x16
jne 0x453b8a
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004532f0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xb0], al
add esp, 0xa0
ret
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004532f0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xb0], al
add esp, 0xa0
ret
cmp bl, 0x18
jne 0x453bdc
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
cmp bl, 0x19
jne 0x453e3f
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xa4]
cmp dword [edx + 0x28], ecx
jne 0x453e30
mov eax, dword [edx + 0x20]
mov dword [esp], eax
call fcn.00452bc0
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00452bc0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
je 0x453c48
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x453c39
mov edx, dword [esp + 0xa4]
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0xa8]
xor eax, eax
jmp 0x453c9c
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
mov edx, ecx
mov ebx, esi
mov ebp, edi
cmp eax, ebx
jge 0x453e21
mov ecx, dword [edx + 0x28]
mov esi, dword [edx + 0x24]
cmp eax, ecx
jae 0x453f37
lea edi, [eax + eax*2]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp eax, ebp
jae 0x453f30
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edi
mov eax, dword [esi + edi*4]
mov dword [esp], eax
call fcn.00452bc0
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00452bc0
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x453e12
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x453e12
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + eax*4 + 4]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov edx, dword [esp + 0xac]
mov dword [esp + 8], edx
call fcn.004532f0
movzx eax, byte [esp + 0xc]
test al, al
je 0x453e03
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + eax*4]
mov dword [esp], edx
call fcn.00452c40
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00452c40
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x453df4
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x453df4
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x70]
mov ebx, dword [ebx + edx*4 + 8]
mov ebp, dword [esp + 0x74]
mov edx, dword [ebp + edx*4 + 8]
cmp ebx, edx
je 0x453c7d
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
cmp bl, 0x1a
je 0x453bcd
jmp 0x453f9a
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
test ecx, ecx
je 0x453e64
test eax, eax
jne 0x453e73
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov dword [esp + 0x58], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004522d0
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00452bc0
mov eax, dword [esp + 8]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x58]
mov edx, dword [edx]
mov ebx, dword [esp + 0xa8]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.004522d0
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00452bc0
mov eax, dword [esp + 0x28]
cmp dword [esp + 8], eax
jne 0x453ef4
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
jne 0x453478
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
mov ecx, ebp
call fcn.00459a30
call fcn.00459a30
call fcn.00459a30
call fcn.00459a30
mov ecx, esi
call fcn.00459a30
mov ecx, ebp
call fcn.00459a30
mov ecx, esi
call fcn.00459a90
mov ecx, esi
mov edx, 0x100000
call fcn.00459a50
mov eax, esi
mov ecx, ebp
call fcn.00459a90
mov ecx, ebp
mov edx, 0x100000
call fcn.00459a50
mov eax, ebx
mov ecx, esi
call fcn.00459a30
mov eax, ebx
mov ecx, ebp
call fcn.00459a30
mov ecx, ebp
mov edx, 0x100000
call fcn.00459a50
call fcn.00432680
lea eax, [0x7857a3]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00432f20
movzx eax, byte [esp + 0x17]
and eax, 0x1f
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00432c30
call fcn.004328a0
call fcn.004326f0
lea eax, [0x784f2f]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call fcn.00430e00
nop
call fcn.00458170
jmp fcn.004532f0