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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x58e04f
sub esp, 0xb8
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x58dfd3
lea ebx, [eax + 0x24]
test byte [ebx], al
mov ebp, dword [esp + 0xc0]
mov esi, dword [ebp]
mov edi, dword [ebp + 8]
mov ebp, dword [ebp + 4]
cmp edi, 5
jb 0x58e048
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xc4]
add ecx, 5
cmp ecx, ebp
ja 0x58e048
mov dword [esp + 0x84], ebp
mov edx, dword [edx + 0x10]
mov dword [esp + 0x80], edx
mov edx, dword [eax + 0x64]
mov ebp, dword [eax + 0x60]
mov eax, dword [eax + 0x5c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 8
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 5
mov dword [esp + 0x24], edi
sub edi, ecx
mov eax, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
lea edx, [esi + edi]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x84]
sub edx, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x60], edx
mov ebx, dword [esp + 0xc0]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x84], ebp
mov dword [esp], ebx
lea esi, [edx + ebp]
mov dword [esp + 4], esi
call fcn.0058e060
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov ebx, dword [eax]
mov ebp, dword [esp + 0x84]
cmp ebp, ecx
ja 0x58e041
sub edx, ebp
neg edx
sar edx, 0x1f
and edx, ebp
add edx, ebx
sub ecx, ebp
mov ebx, dword [esp + 0x60]
cmp ecx, ebx
jle 0x58dfc8
mov ecx, ebx
mov ebp, dword [esp + 0xa0]
cmp edx, ebp
je 0x58da47
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.0044d420
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xbc]
mov dword [edx + 0x60], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x64], ecx
mov ecx, dword [0xbc7270]
test ecx, ecx
jne 0x58dfb4
mov eax, dword [esp + 0xa0]
mov dword [edx + 0x5c], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
cmp ebx, 5
jb 0x58e03a
add ecx, 0xfffffffb
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 5
add ecx, ebp
mov ebp, dword [edx + 0x18]
mov edi, dword [edx + 0x14]
test edi, edi
je 0x58db2f
je 0x58e020
mov dword [esp + 0x84], ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x80], edi
lea eax, [0x7828e0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
call fcn.00407ce0
mov eax, dword [esp + 0x84]
add eax, 0xfffffffb
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x10]
test dl, dl
je 0x58db86
mov ecx, dword [ecx + 0x10]
mov edx, dword [esp + 0x9c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp edx, 3
jbe 0x58dfe1
add edx, 0xfffffffb
mov ebx, edx
sar edx, 8
mov byte [ecx + 3], dl
mov ecx, dword [eax + 4]
mov eax, dword [eax]
cmp ecx, 4
jbe 0x58dfda
mov byte [eax + 4], bl
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.0058cca0
mov byte [esp + 0xc8], 1
mov byte [esp + 0xc9], 0
add esp, 0xb8
ret
mov dword [esp + 0x54], eax
lea eax, [0x7a2340]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.00407ce0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
je 0x58dd91
mov dword [esp + 0x70], eax
mov dword [esp + 0xac], edx
mov ecx, dword [esp + 0xc0]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x84], ebx
mov ebp, dword [eax + 0x18]
mov dword [esp], edx
call ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc0]
mov dword [esp], ecx
mov edx, dword [esp + 0x84]
add eax, edx
mov dword [esp + 4], eax
call fcn.0058e060
mov eax, dword [esp + 0x84]
add eax, 0xfffffffb
mov ecx, dword [esp + 0xc4]
sub eax, ecx
mov edx, dword [esp + 0xc0]
mov ebx, dword [edx + 4]
mov ebp, dword [edx]
mov esi, dword [edx + 8]
lea edi, [ecx + 5]
test edi, edi
jl 0x58e019
cmp edi, 5
jb 0x58e019
cmp edi, esi
ja 0x58e019
lea edx, [esi - 5]
mov dword [esp + 0x5c], edx
neg edx
sar edx, 0x1f
and edx, 5
add edx, ebp
test ecx, ecx
jne 0x58dd6c
mov ecx, dword [esp + 0xbc]
lea edx, [ecx + 0x24]
test byte [edx], al
mov dword [esp + 0x90], eax
mov eax, 8
mov dword [esp + 0x5c], eax
mov eax, 8
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x90]
cmp edi, ebx
ja 0x58e012
sub esi, edi
mov ebx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add ebp, esi
test eax, eax
jl 0x58e00b
cmp eax, ebx
ja 0x58e00b
lea esi, [ecx + 0x30]
mov dword [esp + 0xb0], esi
test byte [esi], al
lea edi, [ecx + 0x24]
test byte [edi], al
mov edi, dword [ecx + 0x28]
mov esi, dword [ecx + 0x24]
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov esi, dword [esp + 0xc0]
mov edi, dword [esi]
mov esi, dword [esi + 8]
cmp esi, 3
jb 0x58e004
lea esi, [ecx + 0x38]
cmp edi, esi
je 0x58dcfc
movzx esi, word [edi]
movzx edi, byte [edi + 2]
mov word [ecx + 0x38], si
xchg edi, eax
mov byte [ecx + 0x3a], al
xchg edi, eax
mov esi, eax
sar eax, 8
mov byte [ecx + 0x3b], al
xchg esi, eax
mov byte [ecx + 0x3c], al
xchg esi, eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0xd
mov dword [esp + 0x30], 0xd
mov edx, dword [esp + 0xac]
mov dword [esp], edx
call eax
jmp 0x58db2f
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
jmp 0x58dc8a
lea eax, [0x78fe00]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00407ce0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test al, al
je 0x58e020
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x74], edx
mov eax, dword [edx + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0xc4]
test ecx, ecx
jle 0x58dfa0
mov edx, dword [esp + 0x7c]
cmp ecx, edx
ja 0x58dffd
mov eax, dword [esp + 0x74]
mov ebx, dword [eax + 0x18]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0xa8]
mov dword [esp], esi
call ebx
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x54]
cmp eax, ecx
ja 0x58dff6
sub ecx, eax
mov edx, dword [esp + 0x7c]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x9c]
add edx, ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
call fcn.0058d760
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x6c], ebx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x68], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xa4], esi
mov edi, dword [esp + 0xc0]
mov dword [esp], edi
mov ebx, dword [esp + 0xc4]
lea esi, [ecx + ebx]
lea esi, [ebp + esi + 5]
mov dword [esp + 4], esi
call fcn.0058e060
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
mov ebp, dword [esp + 0xc4]
lea esi, [ebp + 5]
cmp esi, edx
ja 0x58dfef
mov eax, dword [esp + 0x74]
mov ebp, dword [eax + 0x14]
sub ecx, esi
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
add ecx, ebx
mov dword [esp + 4], ecx
sub edx, esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
call ebp
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
lea ebp, [esi + ebp + 5]
cmp ebp, ecx
ja 0x58dfe8
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x14]
sub ebx, ebp
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
add edx, ebx
mov dword [esp + 4], edx
sub ecx, ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
call eax
jmp 0x58db2f
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x9c]
jmp 0x58de53
lea edi, [edx + 0x5c]
mov eax, dword [esp + 0xa0]
call fcn.0044cc20
jmp 0x58da74
mov ebx, ecx
mov ecx, dword [esp + 0x60]
jmp 0x58da2c
mov edx, eax
jmp 0x58da74
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
lea eax, [0x771de0]
mov dword [esp], eax
lea eax, [0x8f6ac8]
mov dword [esp + 4], eax
call fcn.00427510
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.0044b4c0
jmp fcn.0058d8b0