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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x58dd49
sub esp, 0x70
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.0058de60
mov eax, dword [esp + 4]
test eax, eax
jg 0x58d863
xor ecx, ecx
xor edx, edx
jmp 0x58d885
mov dword [esp + 0x40], eax
lea ecx, [0x60d840]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00447550
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov edx, eax
mov eax, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], edx
lea ebx, [0x62b840]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
call fcn.0040c160
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.0058afe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
jne 0x58d988
test ecx, ecx
jbe 0x58dd41
movzx eax, byte [edx]
cmp al, 0x20
je 0x58d8f2
cmp al, 9
jne 0x58d988
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.0058cb30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
test eax, eax
je 0x58d92d
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
add esp, 0x70
ret
mov dword [esp], 0
lea eax, [0x64918a]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x24
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.0044aa10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408eb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], ecx
lea ecx, [0x69fb90]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
add esp, 0x70
ret
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
jmp 0x58d998
mov edx, eax
mov eax, ecx
mov ecx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x74]
mov dword [esp], edx
lea ebx, [0x656474]
mov dword [esp + 4], ebx
call fcn.0058cd50
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x58dcd1
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ebx
nop
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov byte [esp + 0xc], 0x3a
call fcn.00402840
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x58dc6e
mov edx, dword [esp + 0x38]
cmp edx, ecx
jb 0x58dd3c
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0058e0b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x58da4d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
jmp 0x58d992
mov edx, dword [esp + 0x20]
inc edx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x58]
jmp 0x58dce9
cmp edx, ebx
ja 0x58dd2a
mov dword [esp + 0x3c], eax
mov dword [esp + 0x5c], ecx
mov dword [esp], 0
mov eax, dword [esp + 0x38]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
add eax, ebp
mov dword [esp + 4], eax
sub ebx, edx
mov dword [esp + 8], ebx
call fcn.0044acc0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
lea edx, [0x62b840]
mov dword [esp], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
call fcn.0040fae0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
test ecx, ecx
je 0x58dae3
mov ebx, dword [esp + 0x2c]
jmp 0x58db8a
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jle 0x58db8a
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x54]
mov dword [edi + 4], ecx
lea ecx, [ebx - 1]
mov dword [esp + 0x2c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 8
add ecx, edi
mov dword [esp + 0x64], ecx
mov ebx, dword [0x816df0]
test ebx, ebx
jne 0x58db21
mov eax, dword [esp + 0x50]
mov dword [edi], eax
jmp 0x58db2a
mov eax, dword [esp + 0x50]
call fcn.0045e5d0
lea eax, [0x62b840]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.00410170
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov eax, dword [0x816df0]
test eax, eax
jne 0x58db74
mov eax, dword [esp + 0x54]
mov dword [edi], eax
jmp 0x58db7d
mov eax, dword [esp + 0x54]
call fcn.0045e5d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
jmp 0x58dc5d
lea ebp, [edx + 1]
cmp eax, ebp
jae 0x58dbcc
mov dword [esp + 0x24], edx
lea ebx, [0x60d840]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
call fcn.004476d0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebp, [eax + 1]
mov ebx, dword [esp + 0x2c]
mov eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], eax
lea esi, [ecx + edx*8 + 4]
mov ebx, dword [esp + 0x28]
mov dword [esi], ebx
mov ebx, dword [0x816df0]
lea edx, [ecx + edx*8]
test ebx, ebx
jne 0x58dbf7
mov ebx, dword [esp + 0x50]
mov dword [edx], ebx
jmp 0x58dc02
mov edi, edx
mov eax, dword [esp + 0x50]
call fcn.0045e5d0
lea eax, [0x62b840]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.00410170
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x48]
mov dword [edi + 8], eax
mov eax, dword [0x816df0]
test eax, eax
jne 0x58dc4c
mov eax, dword [esp + 0x64]
mov dword [edi], eax
jmp 0x58dc55
mov eax, dword [esp + 0x64]
call fcn.0045e5d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
test edx, edx
je 0x58d992
jmp 0x58dd0b
mov dword [esp], 0
lea eax, [0x645a68]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
call fcn.0044aa10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408eb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], ecx
lea ecx, [0x69fb90]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
add esp, 0x70
ret
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
add esp, 0x70
ret
inc edx
cmp edx, ebx
jge 0x58da61
jae 0x58dd33
movzx esi, byte [ebp + edx]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x58dce8
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x58dce8
jmp 0x58da5f
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x80], eax
add esp, 0x70
ret
mov eax, edx
mov ecx, ebx
call fcn.0045e6b0
mov eax, edx
mov ecx, ebx
call fcn.0045e650
call fcn.0045e690
xor eax, eax
call fcn.0045e650
nop
call fcn.0045d190
jmp fcn.0058d830