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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x58f122
add esp, 0xffffff80
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x58f05a
nop
movzx edx, byte [0x753128]
test dl, dl
je 0x58f047
mov edx, dword [esp + 0x90]
mov dword [0x75312c], edx
mov ebx, dword [0x770e60]
test ebx, ebx
jne 0x58f030
mov eax, dword [esp + 0x94]
mov dword [0x753130], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x58f023
nop
movzx ebx, byte [ecx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x58e96b
or ebx, 0x80
mov ebp, eax
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
je 0x58eff4
nop
mov ebx, esi
and esi, 0x1f
lea edi, [esi - 2]
nop
cmp edi, 4
ja 0x58efc9
mov edi, 2
cmp edi, 1
je 0x58ef8f
mov dword [esp + 0x24], esi
cmp edi, 2
jne 0x58ef83
mov ebp, dword [esp + 0x84]
mov edx, dword [ebp]
movzx edx, byte [edx + 0xa]
test dl, dl
je 0x58ea63
cmp esi, 3
ja 0x58ea33
cmp esi, 2
jne 0x58ea20
mov eax, dword [eax]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x98]
mov dword [esp], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 8], edx
test eax, eax
setne al
test ecx, ecx
setne cl
or ecx, eax
mov byte [esp + 0xc], cl
call fcn.00487700
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
sub esp, 0xffffff80
ret
cmp esi, 3
jne 0x58f0e7
movsx eax, byte [eax]
mov ecx, eax
sar eax, 0x1f
jmp 0x58e9d1
cmp esi, 4
jne 0x58ea42
movsx eax, word [eax]
mov ecx, eax
sar eax, 0x1f
jmp 0x58e9d1
cmp esi, 5
jne 0x58ea50
mov eax, dword [eax]
mov ecx, eax
sar eax, 0x1f
jmp 0x58e9d1
cmp esi, 6
jne 0x58f0e7
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x58e9d1
cmp edi, 7
jne 0x58eb07
mov edx, dword [ebp]
movzx edx, byte [edx + 0xa]
test dl, dl
je 0x58eb07
cmp esi, 9
ja 0x58eadf
cmp esi, 7
jne 0x58eac3
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 8], edx
test eax, eax
setne al
test ecx, ecx
setne cl
or ecx, eax
mov byte [esp + 0xc], cl
call fcn.00487700
jmp 0x58ea06
cmp esi, 8
jne 0x58eacf
movzx eax, byte [eax]
xor ecx, ecx
jmp 0x58ea89
cmp esi, 9
jne 0x58f0ad
movzx eax, word [eax]
xor ecx, ecx
jmp 0x58ea89
cmp esi, 0xa
jne 0x58eaea
mov eax, dword [eax]
xor ecx, ecx
jmp 0x58ea89
cmp esi, 0xb
jne 0x58eaf8
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, edx
jmp 0x58ea89
cmp esi, 0xc
jne 0x58f0ad
mov eax, dword [eax]
xor ecx, ecx
jmp 0x58ea89
cmp edi, 0xd
jne 0x58eb70
mov edx, dword [ebp]
movzx edx, byte [edx + 0xa]
test dl, dl
je 0x58eb70
cmp esi, 0xd
jne 0x58eb61
movss xmm0, dword [eax]
cvtss2sd xmm0, xmm0
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
xorps xmm1, xmm1
ucomisd xmm0, xmm1
setne cl
setp al
or ecx, eax
mov byte [esp + 0xc], cl
call fcn.00487700
jmp 0x58ea06
cmp esi, 0xe
jne 0x58f073
movsd xmm0, qword [eax]
jmp 0x58eb24
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebx
cmp edi, 0x18
jne 0x58eb90
mov edx, dword [ebp]
movzx edx, byte [edx + 0xa]
test dl, dl
jne 0x58ecb4
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.00488490
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x28]
mov dword [esp], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 8], edx
call fcn.00488490
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
lea edi, [esp + 0x60]
xor eax, eax
call fcn.0045e1f8
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x58ec33
mov eax, dword [eax + 4]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x58ec4a
mov eax, dword [eax + 4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x7c], eax
lea eax, [0x5fbf8d]
mov dword [esp], eax
mov dword [esp + 4], 0x41
lea eax, [esp + 0x60]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
call fcn.004bdd90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
sub esp, 0xffffff80
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004883a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
cmp ecx, 1
je 0x58ef1d
cmp ecx, 4
jne 0x58eed6
cmp dword [eax], 0x45555254
jne 0x58ee37
xor eax, eax
mov ecx, 1
xor edx, edx
test eax, eax
je 0x58ee09
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
call fcn.004883a0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x58ed5e
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 0
call fcn.00487700
jmp 0x58ea06
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x58edb5
mov eax, dword [eax + 4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
lea eax, [0x5f4d84]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004bdd90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
sub esp, 0xffffff80
ret
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
mov byte [esp + 0xc], cl
call fcn.00487700
jmp 0x58ea06
cmp dword [eax], 0x65757254
je 0x58ecf2
cmp dword [eax], 0x65757274
je 0x58ecf2
nop
lea eax, [0x5d1120]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 9
lea ecx, [0x5ec715]
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x58eec4
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov ecx, dword [0x752f04]
mov edx, dword [0x752f00]
mov dword [eax + 0x10], edx
mov edx, dword [0x770e60]
test edx, edx
jne 0x58eeb4
mov dword [eax + 0x14], ecx
xor ecx, ecx
mov edx, eax
lea eax, [0x63a198]
jmp 0x58ecfb
lea edi, [eax + 0x14]
mov edx, eax
mov eax, ecx
call fcn.0045df70
mov eax, edx
jmp 0x58eea5
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x30]
call fcn.0045df70
mov eax, ecx
jmp 0x58ee89
cmp ecx, 5
jne 0x58ee4f
cmp dword [eax], 0x534c4146
jne 0x58eef8
cmp byte [eax + 4], 0x45
jne 0x58eef8
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x58ecfb
cmp dword [eax], 0x736c6146
jne 0x58ef06
cmp byte [eax + 4], 0x65
je 0x58eeed
cmp dword [eax], 0x736c6166
jne 0x58ee4f
cmp byte [eax + 4], 0x65
je 0x58eeed
jmp 0x58ee4f
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x5eb2c5]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.00402790
mov eax, dword [esp + 0x10]
test eax, eax
jg 0x58ef5f
mov eax, dword [esp + 0x30]
cmp byte [eax], 0x30
je 0x58eeed
cmp byte [eax], 0x31
je 0x58ecf2
cmp byte [eax], 0x46
je 0x58eeed
jmp 0x58ee4f
mov eax, dword [esp + 0x30]
cmp byte [eax], 0x54
je 0x58ecf2
cmp byte [eax], 0x66
je 0x58eeed
cmp byte [eax], 0x74
je 0x58ecf2
jmp 0x58ee4f
mov ebp, dword [esp + 0x84]
jmp 0x58ea63
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00485260
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.00487700
jmp 0x58ea06
lea edi, [esi - 7]
cmp edi, 4
ja 0x58efdb
mov edi, 7
jmp 0x58e994
lea edi, [esi - 0xd]
cmp edi, 1
ja 0x58efed
mov edi, 0xd
jmp 0x58e994
mov edi, esi
jmp 0x58e994
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00485c20
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
jmp 0x58e97c
mov ebp, eax
xor ebx, ebx
xor ecx, ecx
xor eax, eax
jmp 0x58e96d
lea edi, [0x753130]
mov eax, dword [esp + 0x94]
call fcn.0045df70
jmp 0x58e940
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
jmp 0x58e940
mov edx, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
xor ebx, ebx
xor ecx, ecx
xor eax, eax
jmp 0x58e96d
lea eax, [0x5ca5e0]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x5f0639]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
lea ecx, [0x5c2de0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00431a00
lea eax, [0x5ca5e0]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x5efe30]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
lea ecx, [0x5c2de0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00431a00
lea eax, [0x5ca5e0]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x11
lea ecx, [0x5ef70b]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
lea ecx, [0x5c2de0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00431a00
nop
call fcn.0045ca10
jmp fcn.0058e8e0