Function at 0x58dc60
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 0x58e8c7
sub esp, 0xa0
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x58e7e9
nop
movzx edx, byte [0x753128]
test dl, dl
je 0x58e7d6
mov edx, dword [esp + 0xb0]
mov dword [0x75312c], edx
mov ebx, dword [0x770e60]
test ebx, ebx
jne 0x58e7bf
mov eax, dword [esp + 0xb4]
mov dword [0x753130], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x58e7b2
nop
movzx ebx, byte [ecx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x58dcf2
or ebx, 0x80
mov ebp, eax
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
je 0x58e783
nop
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x40], esi
lea edi, [esi - 2]
nop
cmp edi, 4
ja 0x58e758
mov edi, 2
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00488490
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
cmp edx, 2
jne 0x58def5
mov eax, dword [esp + 0x40]
cmp eax, 3
ja 0x58deb3
cmp eax, 2
jne 0x58de99
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov ecx, eax
sar eax, 0x1f
test eax, eax
jge 0x58dd8a
mov edx, dword [esp + 0xa4]
mov edx, dword [edx]
movzx edx, byte [edx + 0xa]
test dl, dl
je 0x58ddd4
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.00487f70
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
add esp, 0xa0
ret
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.00409090
mov eax, dword [esp + 8]
lea ecx, [0x5be340]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
lea eax, [0x5f7a81]
mov dword [esp], eax
mov dword [esp + 4], 0x24
lea eax, [esp + 0x70]
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 + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xa0
ret
cmp eax, 3
jne 0x58e88c
mov edx, dword [esp + 0x50]
movsx eax, byte [edx]
mov ecx, eax
sar eax, 0x1f
jmp 0x58dd75
cmp eax, 4
jne 0x58dec9
mov edx, dword [esp + 0x50]
movsx eax, word [edx]
mov ecx, eax
sar eax, 0x1f
jmp 0x58dd75
cmp eax, 5
jne 0x58dede
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
mov ecx, eax
sar eax, 0x1f
jmp 0x58dd75
cmp eax, 6
jne 0x58e88c
mov edx, dword [esp + 0x50]
mov ecx, dword [edx]
mov eax, dword [edx + 4]
jmp 0x58dd75
cmp edx, 7
jne 0x58df9f
mov eax, dword [esp + 0x40]
cmp eax, 9
ja 0x58df6a
cmp eax, 7
jne 0x58df46
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
call fcn.00487f70
jmp 0x58ddb7
cmp eax, 8
jne 0x58df56
mov edx, dword [esp + 0x50]
movzx eax, byte [edx]
xor ecx, ecx
jmp 0x58df14
cmp eax, 9
jne 0x58e852
mov edx, dword [esp + 0x50]
movzx eax, word [edx]
xor ecx, ecx
jmp 0x58df14
cmp eax, 0xa
jne 0x58df79
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
xor ecx, ecx
jmp 0x58df14
cmp eax, 0xb
jne 0x58df89
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
jmp 0x58df14
cmp eax, 0xc
jne 0x58e852
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
xor ecx, ecx
jmp 0x58df14
cmp edx, 0xd
jne 0x58e0f4
mov eax, dword [esp + 0x40]
cmp eax, 0xd
jne 0x58e0de
mov eax, dword [esp + 0x50]
movss xmm0, dword [eax]
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x58dfdb
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
movzx eax, byte [eax + 0xa]
test al, al
je 0x58e01f
movsd qword [esp], xmm0
call fcn.00455250
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
call fcn.00487f70
jmp 0x58ddb7
movsd qword [esp + 0x44], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
movsd xmm0, qword [esp + 0x44]
movsd qword [esp], xmm0
call fcn.00409090
mov eax, dword [esp + 8]
lea ecx, [0x5bd9c0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
lea eax, [0x5f7aa5]
mov dword [esp], eax
mov dword [esp + 4], 0x24
lea eax, [esp + 0x70]
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 + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xa0
ret
cmp eax, 0xe
jne 0x58e818
mov eax, dword [esp + 0x50]
movsd xmm0, qword [eax]
jmp 0x58dfc1
cmp edx, 1
jne 0x58e74c
mov ebx, dword [esp + 0xa4]
mov ebp, dword [ebx]
movzx ebp, byte [ebp + 0xa]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x58e6b3
cmp edx, 0x18
jne 0x58e127
mov edx, dword [ebx]
movzx edx, byte [edx + 0xa]
test dl, dl
jne 0x58e517
mov dword [esp + 0x38], eax
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 0x78]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 4]
cmp dword [esp + 8], 0xd
je 0x58e4fb
xor eax, eax
test al, al
jne 0x58e4c3
xor eax, eax
test al, al
je 0x58e37e
mov eax, dword [esp + 0xb0]
lea ecx, [0x5cc4a0]
cmp eax, ecx
jne 0x58e802
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
nop
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.0046d740
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x58e2c4
test ebp, ebp
jge 0x58e1cd
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
movzx eax, byte [eax + 0xa]
test al, al
je 0x58e1ff
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], esi
call fcn.00487f70
jmp 0x58ddb7
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409090
mov eax, dword [esp + 8]
lea ecx, [0x5be340]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
lea eax, [0x5f7a81]
mov dword [esp], eax
mov dword [esp + 4], 0x24
lea eax, [esp + 0x70]
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 + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xa0
ret
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x58e37a
mov ecx, dword [eax + 4]
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x7c], eax
lea eax, [0x5f846e]
mov dword [esp], eax
mov dword [esp + 4], 0x26
lea eax, [esp + 0x70]
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 + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xa0
ret
mov ecx, eax
jmp 0x58e323
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
call fcn.00488490
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call fcn.00488490
mov eax, dword [esp + 0xc]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
lea edi, [esp + 0x80]
xor eax, eax
call fcn.0045e1f8
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x58e42a
mov eax, dword [eax + 4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x58e447
mov eax, dword [eax + 4]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x9c], eax
lea eax, [0x5fbf8d]
mov dword [esp], eax
mov dword [esp + 4], 0x41
lea eax, [esp + 0x80]
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 + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xa0
ret
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
cmp dword [esp + 8], 6
jne 0x58e4f4
cmp dword [eax], 0x626d754e
jne 0x58e4f4
cmp word [eax + 4], 0x7265
sete al
jmp 0x58e152
xor eax, eax
jmp 0x58e152
mov dword [esp], eax
lea eax, [0x5edeab]
mov dword [esp + 4], eax
call fcn.00402890
movzx eax, byte [esp + 0xc]
jmp 0x58e148
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
call fcn.004883a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x58e54a
mov eax, 1
lea ecx, [0x5eb2be]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xc0]
mov dword [esp + 8], ebp
call fcn.00488490
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x54]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.0046cf70
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test eax, eax
je 0x58e681
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00409140
mov eax, dword [esp + 8]
lea ecx, [0x5beac0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x58e67d
mov ebx, dword [eax + 4]
mov dword [esp + 0x78], ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x7c], eax
lea eax, [0x5f4da1]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
lea eax, [esp + 0x70]
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 + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0xa0
ret
mov ebx, eax
jmp 0x58e626
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
call fcn.00487f70
jmp 0x58ddb7
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
call fcn.00485260
movzx eax, byte [esp + 0xc]
test al, al
je 0x58e712
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
call fcn.00487f70
jmp 0x58ddb7
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
call fcn.00487f70
jmp 0x58ddb7
mov ebx, dword [esp + 0xa4]
jmp 0x58e114
lea edi, [esi - 7]
cmp edi, 4
ja 0x58e76a
mov edi, 7
jmp 0x58dd1f
lea edi, [esi - 0xd]
cmp edi, 1
ja 0x58e77c
mov edi, 0xd
jmp 0x58dd1f
mov edi, esi
jmp 0x58dd1f
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 + 0xb0]
mov ebp, dword [esp + 0xb4]
jmp 0x58dd03
mov ebp, eax
xor ebx, ebx
xor ecx, ecx
xor eax, eax
jmp 0x58dcf4
lea edi, [0x753130]
mov eax, dword [esp + 0xb4]
call fcn.0045df70
jmp 0x58dcc7
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
jmp 0x58dcc7
mov edx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xb4]
xor ebx, ebx
xor ecx, ecx
xor eax, eax
jmp 0x58dcf4
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x5be3c0]
mov dword [esp + 8], eax
call fcn.00408df0
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 + 0x40]
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 + 0x40]
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 + 0x40]
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.0058dc60