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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x58fd93
sub esp, 0x60
mov edx, dword [esp + 0x74]
test edx, edx
jne 0x58fd82
mov eax, 0x20
mov edx, dword [esp + 0x68]
cmp edx, 1
jl 0x58fd6f
mov ebx, dword [esp + 0x70]
lea ebp, [ebx - 2]
cmp ebp, 0x22
ja 0x58fc52
mov ecx, edx
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x44], edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x30], ebx
cmp ebx, 2
jge 0x58fc04
xor esi, esi
xor edi, edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
cmp eax, 0x20
sbb esi, esi
mov ecx, eax
mov edi, 1
shl edi, cl
and edi, esi
mov esi, edi
add edi, 0xffffffff
lea ecx, [eax - 0x20]
mov dword [esp + 0x40], ecx
cmp ecx, 0x20
mov eax, edi
sbb edi, edi
neg ecx
mov dword [esp + 0x3c], ecx
cmp ecx, 0x20
sbb ebx, ebx
mov ecx, dword [esp + 0x40]
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0x3c]
mov edx, 1
shr edx, cl
and edx, ebx
and ebp, edi
or edx, ebp
add esi, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
jmp 0x58f9cf
mov ebx, dword [esp + 0x2c]
inc ebx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
cmp esi, edx
jle 0x58fbda
jbe 0x58fd89
movzx ebp, byte [ebp + edx]
lea esi, [ebp - 0x30]
xchg esi, eax
cmp al, 9
xchg esi, eax
ja 0x58fba3
xchg esi, eax
movzx ebp, al
xchg esi, eax
cmp ecx, ebp
jle 0x58fb90
xchg esi, eax
mov byte [esp + 0x1f], al
xchg esi, eax
mov ebp, dword [esp + 0x3c]
cmp ebp, edi
seta dl
mov esi, dword [esp + 0x40]
cmp esi, ebx
setae bl
cmp ebp, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and ebx, edi
or ebx, edx
test bl, bl
jne 0x58fb7a
mov edx, eax
mov eax, esi
mov ebx, edx
mul ecx
movzx edi, byte [esp + 0x1f]
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x40], edi
add edi, eax
imul ebp, ecx
add edx, ebp
mov ebp, ecx
sar ecx, 0x1f
imul esi, ecx
add edx, esi
mov esi, dword [esp + 0x40]
add esi, eax
mov esi, edx
adc edx, 0
cmp edx, esi
mov ecx, ebp
xchg ebp, ebx
setb bl
xchg ebp, ebx
cmp edi, eax
mov eax, ebx
setb bl
cmp edx, esi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x58faac
mov ebx, dword [esp + 0x38]
cmp edx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
cmp edi, eax
xchg esi, ebx
seta bl
xchg esi, ebx
cmp edx, ebx
sete bl
and ebx, esi
or ebx, ebp
test bl, bl
je 0x58f9a2
mov eax, dword [0x783400]
mov ecx, dword [0x783404]
mov edx, 0xffffffff
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], edx
lea ebx, [0x5f21c0]
mov dword [esp], ebx
call fcn.0040b8d0
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
mov dword [eax + 4], 9
lea ecx, [0x61020f]
mov dword [eax], ecx
mov dword [esp], 0
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 8], ecx
call fcn.00448630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x58fb70
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x58fb62
mov eax, dword [esp + 0x58]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
lea eax, [0x65eba4]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
add esp, 0x60
ret
lea edi, [edx + 0x14]
mov eax, dword [esp + 0x58]
call fcn.0045de10
jmp 0x58fb3e
lea edi, [edx + 8]
call fcn.0045de10
jmp 0x58fb26
mov eax, dword [0x783400]
mov ecx, dword [0x783404]
mov edx, 0xffffffff
jmp 0x58fabd
mov eax, dword [0x783408]
mov ecx, dword [0x78340c]
xor edx, edx
jmp 0x58fabd
lea esi, [ebp - 0x61]
xchg esi, eax
cmp al, 0x19
xchg esi, eax
ja 0x58fbb5
lea esi, [ebp - 0x57]
jmp 0x58f9f4
lea esi, [ebp - 0x41]
xchg esi, eax
cmp al, 0x19
xchg esi, eax
ja 0x58fbc7
lea esi, [ebp - 0x37]
jmp 0x58f9f4
mov eax, dword [0x783408]
mov ecx, dword [0x78340c]
xor edx, edx
jmp 0x58fabd
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
add esp, 0x60
ret
mov dword [esp + 0x74], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0xffffffff
mov eax, ebx
sar ebx, 0x1f
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
call fcn.00455540
mov eax, dword [esp + 0x10]
add eax, 1
mov edi, dword [esp + 0x14]
adc edi, 0
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x5c]
mov esi, eax
mov eax, dword [esp + 0x74]
jmp 0x58f916
test ebx, ebx
jne 0x58fce5
mov ebx, dword [esp + 0x64]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jne 0x58fcc6
cmp edx, 1
jle 0x58fcde
movzx esi, byte [ebx + 1]
xchg esi, eax
cmp al, 0x78
xchg esi, eax
jne 0x58fcba
mov ebp, dword [esp + 0x6c]
add ebp, 0xfffffffe
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebp, ebx
lea esi, [edx - 2]
cmp esi, 1
jl 0x58fca7
mov ecx, 0x10
mov ebx, ecx
mov edx, esi
mov ecx, dword [esp + 0x68]
jmp 0x58f8fd
mov eax, dword [0x783408]
mov ecx, dword [0x78340c]
xor edx, edx
jmp 0x58fabd
xchg esi, eax
cmp al, 0x58
xchg esi, eax
je 0x58fc78
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jne 0x58fcd3
mov ecx, 8
mov esi, edx
mov ebp, ebx
jmp 0x58fc9a
mov ecx, 0xa
mov esi, edx
mov ebp, ebx
jmp 0x58fc9a
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jmp 0x58fcc6
mov eax, ebx
sar ebx, 0x1f
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], 0xa
call fcn.0046cb40
mov dword [esp], 0
lea eax, [0x6116da]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xd
call fcn.004484b0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
lea edx, [0x5e46a0]
mov dword [esp], edx
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x28]
mov dword [edi + 4], eax
mov eax, dword [0x7a0970]
test eax, eax
jne 0x58fd64
mov eax, dword [esp + 0x50]
mov dword [edi], eax
xor edx, edx
mov ecx, edi
lea eax, [0x65e99c]
jmp 0x58fabd
mov eax, dword [esp + 0x50]
call fcn.0045de10
jmp 0x58fd55
mov eax, dword [0x783408]
mov ecx, dword [0x78340c]
xor edx, edx
jmp 0x58fabd
mov eax, edx
jmp 0x58f8da
mov eax, edx
mov ecx, esi
call fcn.0045de90
nop
call fcn.0045c8b0
jmp fcn.0058f8b0