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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5f2c03
sub esp, 0x70
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5f245e
mov ecx, dword [esp + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x7c85e4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.004b2980
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5f23ef
lea ecx, [eax + 1]
mov edx, dword [esp + 0x78]
cmp edx, ecx
je 0x5f23c3
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], ecx
lea eax, [0x7340a0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], edx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
cmp ecx, 0xffffffff
je 0x5f23b8
mov edx, dword [esp + 0x78]
cmp edx, ecx
jb 0x5f2bfd
mov ebx, dword [esp + 0x74]
mov ebp, edx
xor esi, esi
xor edi, edi
jmp 0x5f2b55
mov ecx, dword [esp + 0x78]
xor edx, edx
jmp 0x5f248b
mov eax, dword [esp + 0x74]
mov dword [esp + 0x7c], eax
lea eax, [edx - 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x70
ret
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f241a
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f2423
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x70
ret
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x2c]
xor edi, edi
mov edi, 0x48
mov dword [esp + 0x3c], edi
mov edi, pe_nt_image_headers32
mov dword [esp + 0x20], edi
xor edi, edi
jmp 0x5f24de
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x58]
mov dword [eax + edx*4], ebx
mov edx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x48]
mov edi, ecx
mov ecx, dword [esp + 0x48]
mov edx, esi
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x2c]
cmp ebx, esi
jle 0x5f26b6
mov dword [esp + 0x44], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x60], eax
mov eax, 1
mov dword [esp + 0x40], eax
mov eax, 0x24
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
jmp 0x5f2726
mov edx, dword [esp + 0x44]
cmp edx, 0x400
jge 0x5f28dd
mov ebx, dword [esp + 0x34]
mov ebp, edi
sub edi, ebx
test ebx, ebx
jne 0x5f2540
mov eax, 0x5d9f7391
mov ebx, edx
imul edi
sar edx, 8
sar edi, 0x1f
sub edx, edi
jmp 0x5f254f
mov ebx, edi
shr edi, 0x1f
add ebx, edi
sar ebx, 1
mov eax, ebx
mov ebx, edx
mov edx, eax
inc ebx
test ebx, ebx
je 0x5f2b3f
mov eax, edx
mov esi, eax
cmp ebx, 0xffffffff
je 0x5f2566
cdq
idiv ebx
jmp 0x5f2568
neg eax
lea edx, [esi + eax]
xor eax, eax
jmp 0x5f2aac
lea esi, [edx + edx*8]
cmp edx, 0xffffffda
je 0x5f2b3a
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x4c], edx
mov edi, eax
mov eax, ebp
cmp ebx, 0xffffffff
je 0x5f2594
cdq
idiv ebx
jmp 0x5f2596
neg eax
mov edx, dword [esp + 0x20]
add edx, eax
mov eax, ebp
mov ebp, edx
cmp ebx, 0xffffffff
je 0x5f25aa
cdq
idiv ebx
jmp 0x5f25ac
xor edx, edx
mov dword [esp + 0x34], edx
shl esi, 2
mov edx, dword [esp + 0x4c]
add edx, 0x26
mov eax, esi
mov ebx, edx
cmp ebx, 0xffffffff
je 0x5f25c8
cdq
idiv ebx
jmp 0x5f25ca
neg eax
lea edx, [eax + edi]
cmp ebp, 0x10ffff
ja 0x5f2ab9
mov dword [esp + 0x3c], edx
mov dword [esp + 0x58], ebp
mov ebx, dword [esp + 0x5c]
cmp ecx, ebx
jb 0x5f25ef
mov eax, dword [esp + 0x68]
jmp 0x5f2629
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x7340a0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x58]
mov dword [eax + ebx*4 - 4], 0
mov esi, dword [esp + 0x34]
lea edi, [esi + 1]
cmp ebx, edi
jb 0x5f2b31
mov dword [esp + 0x48], ecx
sub ecx, esi
lea edx, [ecx - 1]
neg edx
mov ecx, edi
shl edi, 2
sar edx, 0x1f
and edx, edi
add edx, eax
mov edi, ebx
sub ebx, esi
cmp edi, esi
jb 0x5f2b28
mov dword [esp + 0x5c], edi
dec ebx
sub edi, esi
mov ebp, dword [esp + 0x48]
sub ebp, esi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
shl esi, 2
sar ebp, 0x1f
and ebp, esi
add ebp, eax
cmp edi, ebx
jl 0x5f2686
mov edi, ebx
cmp ebp, edx
je 0x5f24af
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
shl edi, 2
mov dword [esp + 8], edi
call fcn.00457450
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x54]
jmp 0x5f24af
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.004459a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x70
ret
mov edx, dword [esp + 0x24]
add edx, 0x24
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x44]
cmp ebx, esi
je 0x5f2a2a
jbe 0x5f2b44
movzx edx, byte [ebp + esi]
lea ebp, [edx - 0x30]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x5f2750
add edx, 0xffffffea
movzx edx, dl
mov ebp, 1
jmp 0x5f277c
lea ebp, [edx - 0x41]
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
ja 0x5f2766
xchg ebp, eax
movzx edx, al
xchg ebp, eax
mov ebp, 1
jmp 0x5f277c
add edx, 0xffffff9f
cmp dl, 0x19
ja 0x5f2778
movzx edx, dl
mov ebp, 1
jmp 0x5f277c
xor edx, edx
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5f29bb
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x2c], esi
mov eax, edx
mov ebp, dword [esp + 0x40]
mul ebp
sar edi, 0x1f
mov ebx, 0x7fffffff
mov esi, dword [esp + 0x58]
sub ebx, esi
mov esi, 0
sbb esi, edi
mov edi, dword [esp + 0x38]
sar edi, 0x1f
imul edi, ebp
add edx, edi
sar ebp, 0x1f
mov edi, dword [esp + 0x38]
imul edi, ebp
add edx, edi
cmp esi, edx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp eax, ebx
seta bl
cmp esi, edx
setl dl
and ebx, edi
or ebx, edx
test bl, bl
jne 0x5f294c
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
mov esi, edx
sub edx, ebx
mov edi, dword [esp + 0x58]
add edi, eax
cmp esi, ebx
jg 0x5f2805
mov eax, ebx
mov edx, 1
jmp 0x5f2813
mov eax, ebx
add ebx, 0x1a
cmp esi, ebx
jl 0x5f2813
mov edx, 0x1a
mov ebx, dword [esp + 0x2c]
inc ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x38]
cmp edx, ebx
jg 0x5f2511
mov dword [esp + 0x58], edi
add edx, 0xffffffdc
neg edx
mov dword [esp + 0x28], edx
mov eax, edx
mov ebx, dword [esp + 0x40]
mul ebx
cmp eax, 0x7fffffff
xchg edi, ebx
seta bl
xchg edi, ebx
mov esi, dword [esp + 0x28]
imul ebp, esi
sar esi, 0x1f
imul ebx, esi
add edx, ebx
add edx, ebp
test edx, edx
sete dl
setg bl
and edx, edi
or ebx, edx
test bl, bl
je 0x5f26fb
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f2899
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f28a2
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f2908
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f2911
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f2977
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f2980
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f29e6
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f29ef
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f2a55
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f2a5e
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
mov esi, eax
mov eax, 0xea0ea0eb
mov edi, edx
imul edx
add edx, edi
sar edx, 5
lea eax, [esi + 0x24]
cmp edx, 0x1c7
jg 0x5f2a99
jmp 0x5f2572
lea eax, [0x74f1c0]
mov dword [esp], eax
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5f2ae4
mov eax, dword [esp + 0x74]
mov dword [edi], eax
jmp 0x5f2aed
mov eax, dword [esp + 0x74]
call fcn.00456ac0
mov dword [edi + 0xc], 2
lea eax, [0x769a08]
mov dword [edi + 8], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x7ca6fc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x70
ret
mov eax, esi
mov ecx, edi
call fcn.00456ba0
mov eax, edi
mov ecx, ebx
call fcn.00456ba0
call fcn.0042f690
call fcn.0042f690
mov eax, esi
mov ecx, ebx
call fcn.00456b40
mov dword [eax + edi*4 - 4], ebp
mov ebp, dword [esp + 0x78]
cmp esi, ecx
jge 0x5f2bf4
movzx ebp, byte [ebx + esi]
cmp ebp, 0x80
jge 0x5f2b6c
inc esi
jmp 0x5f2ba4
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x68], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00450500
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x44]
inc edi
cmp edx, edi
jae 0x5f2b4d
mov dword [esp + 0x30], ebp
mov dword [esp + 0x50], esi
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x7340a0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
jmp 0x5f2b4d
mov ecx, edx
mov edx, edi
jmp 0x5f248b
call fcn.00456b60
nop
call fcn.00455690
jmp fcn.005f2310