Function at 0x455d10
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 0x456a10
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, [0xab3f20]
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.0040cda0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x456941
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x9c], ecx
lea edx, [0xab3f20]
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.0040d170
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
cmp eax, ecx
je 0x456932
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 0x456923
mov byte [esp + 0x17], bl
mov byte [esp + 0x16], dl
mov dword [esp], eax
call fcn.00454a30
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 dword [esp], edx
call fcn.00454a30
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
je 0x455e3e
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.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x455e2f
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
call fcn.00454ac0
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
call fcn.00454ac0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x45687e
test eax, eax
jne 0x45687c
movzx ebx, byte [esp + 0x16]
lea ebp, [ebx - 1]
xchg ebp, eax
cmp al, 0xf
xchg ebp, eax
jbe 0x45686d
cmp bl, 0x15
ja 0x45655e
cmp bl, 0x12
jbe 0x4564a9
cmp bl, 0x13
jne 0x456185
mov ebx, dword [esp + 0xa8]
movzx ebp, word [ebx + 0x22]
mov esi, dword [esp + 0xa4]
cmp word [esi + 0x22], bp
jne 0x456176
movzx ebp, word [esi + 0x20]
movzx edi, word [ebx + 0x20]
cmp bp, di
jne 0x456176
nop
mov eax, edi
movzx edi, byte [esi + 0xc]
xchg edi, eax
test al, 1
xchg edi, eax
je 0x45616c
mov ecx, 0x34
movzx ebp, bp
lea edi, [ecx + esi]
cmp ebp, 0x100000
ja 0x4569b0
nop
mov ecx, esi
movzx esi, byte [ebx + 0xc]
xchg esi, eax
test al, 1
xchg esi, eax
je 0x456162
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 0x455faf
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 ebp, ebx
jle 0x455ffe
jbe 0x4569a7
mov edi, dword [edi + ebx*4]
cmp esi, ebx
jbe 0x45699e
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.00455d10
movzx eax, byte [esp + 0xc]
test al, al
jne 0x455f67
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
nop
movzx ebx, byte [ecx + 0xc]
test bl, 1
je 0x456158
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 0x456992
movzx esi, si
cmp ebp, esi
jb 0x456989
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 0x45614e
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 0x45697d
movzx eax, di
cmp esi, eax
jb 0x456976
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
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
add ebx, eax
mov dword [esp + 0x50], ebx
mov edi, dword [esp + 0x60]
xor eax, eax
jmp 0x4560fb
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 ebp, eax
jle 0x45613f
jbe 0x45696f
mov edi, dword [edi + eax*4]
cmp esi, eax
jbe 0x456968
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.00455d10
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4560d3
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
mov ecx, 0x24
jmp 0x456070
mov ebx, 0x24
jmp 0x456011
mov edx, 0x24
jmp 0x455f33
mov ecx, 0x24
jmp 0x455f0a
mov byte [esp + 0xb0], 0
add esp, 0xa0
ret
cmp bl, 0x14
jne 0x456433
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.004555e0
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.004555e0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
je 0x4561de
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.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x4561cf
mov edx, dword [esp + 0xa4]
mov ebx, dword [edx + 0x28]
mov ebp, dword [esp + 0xa8]
cmp dword [ebp + 0x28], ebx
jne 0x456424
mov dword [esp + 0x44], ebx
xor eax, eax
jmp 0x45623b
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 ebx, eax
jle 0x456415
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp eax, ecx
jae 0x456963
lea edi, [esi + eax*8]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp ebp, eax
jbe 0x45695c
mov dword [esp + 0x88], edx
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.00454cf0
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.00454cf0
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
call fcn.004555e0
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.004555e0
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x456406
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x456406
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004556e0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call fcn.004556e0
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x4563f7
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x4563f7
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.00454fa0
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.00454fa0
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.00455d10
movzx eax, byte [esp + 0xc]
test al, al
jne 0x45621c
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.00455d10
movzx eax, byte [esp + 0xc]
test al, al
jne 0x456477
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.00455d10
movzx eax, byte [esp + 0xc]
jmp 0x456469
cmp bl, 0x11
je 0x456501
cmp bl, 0x12
jne 0x4569bc
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xa4]
cmp dword [edx + 0x24], ecx
je 0x4564dd
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.00455d10
movzx eax, byte [esp + 0xc]
jmp 0x4564cf
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.00455d10
movzx eax, byte [esp + 0xc]
test al, al
je 0x45655a
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 0x45654c
cmp bl, 0x17
ja 0x4565e8
cmp bl, 0x16
jne 0x4565aa
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.00455d10
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.00455d10
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xb0], al
add esp, 0xa0
ret
cmp bl, 0x18
jne 0x4565fc
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
cmp bl, 0x19
jne 0x45685f
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xa8]
cmp dword [edx + 0x28], ecx
jne 0x456850
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.004555e0
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.004555e0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
je 0x456668
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.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x456659
mov edx, dword [esp + 0xa4]
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0xa8]
xor eax, eax
jmp 0x4566bc
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 0x456841
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp ecx, eax
jbe 0x456957
lea edi, [eax + eax*2]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp ebp, eax
jbe 0x456950
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edi
mov eax, dword [esi + edi*4]
mov dword [esp], eax
call fcn.004555e0
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 + 0x70]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.004555e0
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x456832
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x456832
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x70]
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.00455d10
movzx eax, byte [esp + 0xc]
test al, al
je 0x456823
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx + eax*4]
mov dword [esp], edx
call fcn.00455660
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 + 0x70]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00455660
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x456814
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402a10
movzx eax, byte [esp + 0xc]
test al, al
je 0x456814
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
lea ebx, [ebx + edx*4 + 8]
mov ebp, dword [esp + 0x70]
mov edx, dword [ebp + edx*4 + 8]
cmp dword [ebx], edx
je 0x45669d
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 0x4565ed
jmp 0x4569bc
mov byte [esp + 0xb0], 1
add esp, 0xa0
ret
test ecx, ecx
je 0x456884
test eax, eax
jne 0x456893
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.00454cf0
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.004555e0
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.00454cf0
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.004555e0
mov eax, dword [esp + 0x28]
cmp dword [esp + 8], eax
jne 0x456914
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00402a10
movzx eax, byte [esp + 0xc]
test al, al
jne 0x455e98
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.00460bc0
call fcn.00460bc0
mov ecx, ebp
call fcn.00460bc0
call fcn.00460bc0
mov ecx, esi
call fcn.00460bc0
mov ecx, ebp
call fcn.00460bc0
mov ecx, esi
call fcn.00460c20
mov ecx, esi
mov edx, 0x100000
call fcn.00460be0
mov eax, esi
mov ecx, ebp
call fcn.00460c20
mov ecx, ebp
mov edx, 0x100000
call fcn.00460be0
mov eax, ebx
mov ecx, esi
call fcn.00460bc0
mov eax, ebx
mov ecx, ebp
call fcn.00460bc0
mov ecx, ebp
mov edx, 0x100000
call fcn.00460be0
call fcn.00435170
lea eax, [0xba9ea2]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00435a10
movzx eax, byte [esp + 0x17]
and eax, 0x1f
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00435710
call fcn.00435390
call fcn.004351e0
lea eax, [0xba8cd6]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call fcn.004338c0
nop
call fcn.0045f5f0
jmp fcn.00455d10