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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xb0]
cmp eax, dword [ecx + 8]
jbe 0x5f2e2c
sub esp, 0x130
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov eax, dword [esp + 0x134]
mov ecx, dword [eax]
mov dword [esp + 0xe8], ecx
test byte [ecx], al
mov edx, dword [eax + 0xb4]
mov dword [esp + 0x50], edx
mov ebx, dword [eax + 0xb8]
mov dword [esp + 0xf0], ebx
mov ebp, dword [esp + 0x138]
mov esi, dword [ebp + 0x58]
mov dword [esp + 0x100], esi
mov edi, dword [eax + 0xbc]
mov dword [esp + 0x38], edi
mov ebp, dword [eax + 0xc0]
mov dword [esp + 0x3c], ebp
lea ebx, [ecx + 0x30]
mov dword [esp + 0xfc], ebx
mov dword [esp], ebx
call fcn.004664f0
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0xa0]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0xfc]
mov dword [esp], edx
call fcn.00466890
mov eax, dword [esp + 0x38]
cmp eax, 0xffffffff
setne cl
mov edx, dword [esp + 0x3c]
cmp edx, 0xffffffff
setne bl
mov ebp, dword [esp + 0x64]
cmp ebp, 0x80000
xchg esi, ebx
seta bl
xchg esi, ebx
mov edi, ebp
sar ebp, 0x1f
test ebp, ebp
setg al
sete dl
or ebx, ecx
and esi, edx
or eax, esi
test al, al
je 0x5f24be
xor ebp, ebp
mov eax, 0x80000
jmp 0x5f24c0
mov eax, edi
mov byte [esp + 0x32], bl
mov ecx, dword [esp + 0x134]
mov edx, dword [ecx + 0xbc]
cmp edx, 0xffffffff
xchg esi, ebx
setne bl
xchg esi, ebx
mov edi, dword [ecx + 0xc0]
cmp edi, 0xffffffff
setne cl
or ecx, esi
test cl, cl
je 0x5f251e
add edx, 1
adc edi, 0
cmp ebp, edi
setg cl
cmp edx, eax
xchg esi, ebx
setb bl
xchg esi, ebx
cmp ebp, edi
sete bl
and ebx, esi
or ecx, ebx
test cl, cl
je 0x5f2519
movzx ebx, byte [esp + 0x32]
mov ebp, edi
mov eax, edx
jmp 0x5f251e
movzx ebx, byte [esp + 0x32]
test ebp, ebp
setl cl
cmp eax, 1
setb dl
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
or edx, ecx
test dl, dl
je 0x5f253f
mov eax, 1
mov dword [esp + 0x34], eax
lea ecx, [0x651b00]
mov dword [esp], ecx
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0x104], eax
mov dword [eax], 0
lea ecx, [0x860bf0]
mov dword [esp], ecx
call fcn.00466c40
mov eax, dword [esp + 8]
lea ecx, [0x64aaa0]
cmp dword [esp + 4], ecx
je 0x5f2585
mov eax, 0
jne 0x5f2657
mov edx, dword [esp + 0x34]
cmp dword [eax + 4], edx
jl 0x5f265b
mov dword [esp + 0xec], eax
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
lea edx, [0x5f2ed0]
mov dword [esp + 0x120], edx
lea edx, [0x860bf0]
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
lea ecx, [esp + 0x120]
mov dword [esp + 0xc4], ecx
lea ecx, [esp + 0xb8]
mov dword [esp], ecx
call fcn.004331b0
test eax, eax
jne 0x5f264b
mov ecx, dword [esp + 0xec]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov edi, dword [esp + 0x104]
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5f2641
mov dword [edi], eax
jmp 0x5f271b
call fcn.0045f750
jmp 0x5f271b
call fcn.004337a0
add esp, 0x130
ret
mov edx, dword [esp + 0x34]
lea eax, [0x659160]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.004483a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x104]
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5f2694
mov dword [edi], eax
jmp 0x5f2699
call fcn.0045f750
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
lea eax, [0x5f2e80]
mov dword [esp + 0x110], eax
lea eax, [0x860bf0]
mov dword [esp + 0x114], eax
lea eax, [0x64aaa0]
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], edi
lea eax, [esp + 0x110]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x94]
mov dword [esp], eax
call fcn.004331b0
test eax, eax
jne 0x5f2739
mov edi, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
test eax, eax
setne al
mov byte [esp + 0x31], al
xor ecx, ecx
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
xor ebp, ebp
jmp 0x5f2761
call fcn.004337a0
add esp, 0x130
ret
movzx eax, byte [esp + 0x31]
mov edi, dword [esp + 0x104]
movzx ecx, byte [esp + 0x30]
mov edx, esi
mov ebx, dword [esp + 0x38]
movzx ebp, byte [esp + 0x2f]
test cl, cl
jne 0x5f29ad
mov byte [esp + 0x30], cl
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edx
xchg ebp, eax
mov byte [esp + 0x2f], al
xchg ebp, eax
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x14]
mov edx, dword [edi]
mov ebx, dword [edi + 4]
mov ebp, dword [edi + 8]
mov esi, dword [esp + 0xf0]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
movzx ebx, byte [esp + 0x32]
test bl, bl
je 0x5f285a
mov ebp, dword [esp + 0x38]
mov esi, ebp
sub ebp, ecx
mov edi, ecx
sar ecx, 0x1f
sub esi, edi
mov esi, dword [esp + 0x3c]
sbb esi, ecx
test ebp, ebp
mov ecx, ebx
sete bl
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x5f2851
test eax, eax
jne 0x5f2851
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], esi
lea eax, [0x654840]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0xf0]
mov dword [esp], edx
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
mov edx, ecx
sub ecx, eax
mov ebx, eax
sar eax, 0x1f
sub edx, ebx
mov esi, dword [esp + 0x5c]
sbb esi, eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, ecx
movzx ecx, byte [esp + 0x32]
test esi, esi
jge 0x5f2864
jmp 0x5f293c
mov ecx, ebx
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], esi
test eax, eax
jne 0x5f287a
movzx ebx, byte [esp + 0x30]
jmp 0x5f290e
mov dword [esp + 0x4c], eax
mov dword [esp + 0xe4], edx
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
call fcn.004664f0
mov eax, dword [esp + 0x134]
movzx ecx, byte [eax + 0xc4]
mov byte [esp + 0x33], cl
mov edx, dword [esp + 0xfc]
mov dword [esp], edx
call fcn.00466890
movzx eax, byte [esp + 0x33]
test al, al
jne 0x5f2987
mov eax, dword [0x86044c]
mov ecx, dword [esp + 0x4c]
cmp dword [0x860448], ecx
jne 0x5f2966
mov dword [esp], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403430
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f2962
movzx ecx, byte [esp + 0x32]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
xor eax, eax
xor edx, edx
mov ebx, 1
mov byte [esp + 0x30], bl
mov edi, dword [esp + 0x104]
mov ebx, dword [edi + 8]
mov edi, dword [edi]
mov ebp, dword [esp + 0x48]
cmp ebx, ebp
jae 0x5f2c84
jmp 0x5f2e22
test eax, eax
je 0x5f2745
jmp 0x5f2dfa
mov eax, dword [0x860708]
mov ecx, dword [0x86070c]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
call fcn.004337a0
add esp, 0x130
ret
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x13c], ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x140], eax
call fcn.004337a0
add esp, 0x130
ret
mov eax, dword [0x860728]
mov ecx, dword [0x86072c]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
call fcn.004337a0
add esp, 0x130
ret
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5f2c08
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
call fcn.004664f0
mov eax, dword [esp + 0x138]
mov eax, dword [eax + 0x58]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x134]
mov edx, dword [ecx + 0x78]
mov ebx, dword [ecx + 0x7c]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], ebx
mov edx, dword [esp + 0xfc]
mov dword [esp], edx
call fcn.00466890
mov eax, dword [esp + 0x13c]
test eax, eax
jne 0x5f2bfc
mov eax, dword [esp + 0xe8]
lea ecx, [eax + 0xb8]
mov dword [esp + 0xfc], ecx
mov dword [esp], ecx
call fcn.004664f0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
lea eax, [0x5f2e40]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x108]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x70]
mov dword [esp], eax
call fcn.004331b0
test eax, eax
jne 0x5f2bf0
mov eax, dword [esp + 0xdc]
test eax, eax
je 0x5f2a8b
mov ecx, dword [eax]
jmp 0x5f2a8d
xor ecx, ecx
test ecx, ecx
jg 0x5f2a99
xor ebp, ebp
xor esi, esi
xor ebx, ebx
jmp 0x5f2ada
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005f4600
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
test edx, edx
jne 0x5f2be4
test ebp, ebp
je 0x5f2b2c
mov eax, dword [esp + 0x134]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], esi
call fcn.005f2200
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
jmp 0x5f2b9a
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0xc4]
mov edx, dword [esp + 0x134]
mov edx, dword [edx + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.005e7230
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ecx
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 0xc0]
mov dword [esp], eax
call fcn.00476f90
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
je 0x5f2bd8
mov eax, dword [esp + 0x13c]
test eax, eax
jne 0x5f2bd8
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], edx
call fcn.004337a0
add esp, 0x130
ret
call fcn.004337a0
add esp, 0x130
ret
call fcn.004337a0
add esp, 0x130
ret
call fcn.004337a0
add esp, 0x130
ret
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
call fcn.004337a0
add esp, 0x130
ret
mov dword [esp + 0xf4], eax
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp], edx
call fcn.00466890
mov eax, dword [esp + 0x134]
movzx ecx, byte [esp + 0x2f]
mov edx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
movzx ecx, byte [esp + 0x32]
mov esi, dword [esp + 0x3c]
mov ebp, edi
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0x58]
test ebp, ebp
je 0x5f292f
test eax, eax
jne 0x5f292f
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0xe0], edi
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.005f2f20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
test ecx, ecx
jne 0x5f2de0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xe8]
lea ecx, [eax + 0xb8]
mov dword [esp + 0xf8], ecx
mov dword [esp], ecx
call fcn.004664f0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
cmp edx, ecx
jb 0x5f2e1d
mov ebx, dword [esp + 0x40]
cmp ebx, ecx
jb 0x5f2e14
sub ebx, ecx
mov dword [esp + 0x40], ebx
mov eax, edx
sub edx, ecx
mov dword [esp + 0x44], edx
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, ecx
mov esi, dword [esp + 0xe0]
add edx, esi
mov dword [esp + 0xe0], edx
movzx edi, byte [esp + 0x30]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5f2d50
test ebx, ebx
jne 0x5f2d50
movzx edi, byte [esp + 0x31]
xor edi, 1
xchg edi, eax
mov byte [esp + 0x2f], al
xchg edi, eax
jmp 0x5f2d5e
mov dword [esp + 0x68], eax
xor eax, eax
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xe8]
mov ebx, dword [edx + 0xc4]
mov ebp, dword [esp + 0x134]
mov edi, dword [ebp + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], edi
movzx ebx, byte [esp + 0x2f]
mov byte [esp + 8], bl
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.005e7230
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x5f2c2a
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0xc0]
mov dword [esp], ecx
call fcn.00476f90
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x5f2c2a
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], ebx
call fcn.004337a0
add esp, 0x130
ret
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edx
call fcn.004337a0
add esp, 0x130
ret
mov eax, ecx
mov ecx, ebx
call fcn.0045f830
call fcn.0045f810
mov ecx, ebp
mov edx, ebx
call fcn.0045f810
nop
call fcn.0045e340
jmp fcn.005f23c0