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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x18]
cmp eax, dword [ecx + 8]
jbe 0x458b3b
sub esp, 0x98
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x94], ecx
lea edx, [0x4a8140]
mov dword [esp], edx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
lea ebp, [esp + 0x90]
mov dword [esp + 8], ebp
call fcn.0040c8b0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4585cc
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x94], ecx
lea edx, [0x4a8140]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
lea ebx, [esp + 0x90]
mov dword [esp + 8], ebx
call fcn.0040cb70
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
je 0x4585bd
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
movzx ebp, byte [eax + 0xf]
and ebp, 0x1f
xchg ebp, eax
cmp al, dl
xchg ebp, eax
jne 0x4585ae
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], dl
mov dword [esp], ecx
call fcn.004568d0
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
call fcn.004568d0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
jne 0x4580db
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4580ea
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00456960
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
call fcn.00456960
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x458128
test eax, eax
je 0x4581c0
test ecx, ecx
je 0x45812c
test eax, eax
jne 0x45813b
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00456df0
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00457800
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov ecx, dword [esp + 4]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00456df0
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00457800
mov eax, dword [esp + 0x28]
cmp dword [esp + 8], eax
jne 0x45859f
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x45859f
movzx eax, byte [esp + 0x16]
lea ecx, [eax - 1]
cmp cl, 0xf
jbe 0x458590
cmp al, 0x15
ja 0x458436
cmp al, 0x12
jbe 0x458381
cmp al, 0x13
jne 0x458266
mov eax, dword [esp + 0x9c]
movzx ecx, word [eax + 0x22]
mov edx, dword [esp + 0xa0]
cmp word [edx + 0x22], cx
jne 0x458257
movzx ecx, word [eax + 0x20]
cmp word [edx + 0x20], cx
jne 0x458257
mov dword [esp], eax
call fcn.00457460
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
call fcn.00457460
mov ecx, dword [esp + 8]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x24]
xor esi, esi
jmp 0x458a1b
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
cmp al, 0x14
jne 0x45830b
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.00457800
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00457800
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
jne 0x4582fc
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x4582fc
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx + 0x28]
mov ebp, dword [esp + 0xa0]
cmp dword [ebp + 0x28], ebx
jne 0x4582ed
mov dword [esp + 0x44], ebx
xor eax, eax
jmp 0x45881b
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x458343
xor eax, eax
jmp 0x458373
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
cmp al, 0x11
je 0x4583d9
cmp al, 0x12
jne 0x4585db
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xa0]
cmp dword [edx + 0x24], ecx
je 0x4583a9
xor eax, eax
jmp 0x4583cb
mov eax, dword [eax + 0x20]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
test al, al
je 0x458426
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x28], eax
sete al
jmp 0x458428
xor eax, eax
mov byte [esp + 0xa8], al
add esp, 0x98
ret
cmp al, 0x17
ja 0x4584c0
cmp al, 0x16
jne 0x458482
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
cmp al, 0x18
je 0x458581
cmp al, 0x19
jne 0x45857c
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0x9c]
cmp dword [edx + 0x28], ecx
jne 0x45856d
mov eax, dword [edx + 0x20]
mov dword [esp], eax
call fcn.00457800
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00457800
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
jne 0x45855e
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x45855e
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0xa0]
xor eax, eax
jmp 0x458647
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
cmp al, 0x1a
jne 0x4585db
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
call fcn.004360d0
lea eax, [0x4b6a0e]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.004369a0
mov dword [esp + 4], 0
movzx eax, byte [esp + 0x17]
and eax, 0x1f
mov dword [esp], eax
call fcn.00436640
call fcn.004362e0
call fcn.00436130
lea eax, [0x4b65e2]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call fcn.00434a60
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
cmp eax, ebx
jge 0x4587e7
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp eax, ecx
jae 0x4587fd
lea edi, [eax + eax*2]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp eax, ebp
jae 0x4587f6
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edi
mov eax, dword [esi + edi*4]
mov dword [esp], eax
call fcn.00457800
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x88]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00457800
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x4587d8
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x4587d8
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x88]
mov ebp, dword [ebx + eax*4 + 4]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov edx, dword [esp + 0xa4]
mov dword [esp + 8], edx
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4587c9
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + eax*4]
mov dword [esp], edx
call fcn.004578b0
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x88]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.004578b0
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x4587ba
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x4587ba
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x84]
mov ebx, dword [ebx + edx*4 + 8]
mov ebp, dword [esp + 0x88]
lea edx, [ebp + edx*4 + 8]
cmp dword [edx], ebx
je 0x45862e
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov ecx, ebp
call fcn.0045d960
call fcn.0045d960
mov esi, dword [esp + 0x34]
lea eax, [esi + 1]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
cmp eax, ebx
jge 0x4589e2
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp eax, ecx
jae 0x4589f8
lea edi, [esi + eax*8]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp eax, ebp
jae 0x4589f1
mov dword [esp + 0x80], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x7c], edx
lea ecx, [esi + eax*8]
mov ecx, dword [ecx]
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.00456b50
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
lea edx, [ecx + eax*8]
mov dword [esp + 0x4c], edx
lea ebx, [ecx + eax*8]
mov ebx, dword [ebx]
mov ebp, dword [esp + 8]
mov dword [esp + 0x78], ebp
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.00456b50
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call fcn.00457800
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x74]
mov dword [esp], edx
call fcn.00457800
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x4589d3
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x4589d3
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.00457990
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x74]
mov dword [esp], edx
call fcn.00457990
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x4589c4
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x4589c4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x60]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00456e30
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
lea edx, [edx + ecx*8 + 4]
mov edx, dword [edx]
mov ebx, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.00456e30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x458802
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov ecx, ebp
call fcn.0045d960
call fcn.0045d960
mov edi, dword [esp + 0x38]
lea esi, [edi + 1]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x24]
cmp esi, ebp
jge 0x458a5f
jae 0x458b31
mov edi, dword [ebx + esi*4]
cmp esi, ecx
jae 0x458b2a
mov dword [esp + 0x38], esi
mov ecx, dword [eax + esi*4]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4589fd
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004574e0
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
call fcn.004574e0
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x5c]
xor esi, esi
jmp 0x458ace
mov edi, dword [esp + 0x2c]
lea esi, [edi + 1]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x5c]
cmp esi, edx
jge 0x458b0b
jae 0x458b21
mov edi, dword [ebp + esi*4]
cmp esi, ecx
jae 0x458b1a
mov dword [esp + 0x2c], esi
mov ecx, dword [eax + esi*4]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00457fa0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x458ab0
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov eax, esi
call fcn.0045d960
mov eax, esi
mov ecx, edx
call fcn.0045d960
mov eax, esi
call fcn.0045d960
mov eax, esi
mov ecx, ebp
call fcn.0045d960
nop
call fcn.0045c4a0
jmp fcn.00457fa0