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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x58d750
sub esp, 0xb4
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
cmp edx, 5
jb 0x58d749
add ebx, 0xfffffffb
mov dword [esp + 0x6c], ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 5
add ecx, ebx
mov dword [esp + 0x9c], ecx
mov ebx, dword [esp + 0xb8]
mov esi, dword [ebx + 0x20]
mov edi, dword [ebx + 0x1c]
test edi, edi
jne 0x58d6b8
xor esi, esi
mov dword [esp + 0x50], esi
add edx, 0xfffffffb
mov edi, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
test edi, edi
je 0x58d69f
je 0x58d72f
mov dword [esp + 0x5c], edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0xb0], eax
lea ecx, [0x7828e0]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00407ce0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test al, al
je 0x58d1f5
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x9c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
xchg ebp, eax
mov byte [esp + 0x4f], al
xchg ebp, eax
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0xb8]
mov ebp, dword [edi + 0x1c]
test ebp, ebp
je 0x58d18e
mov ebp, dword [esp + 0x50]
cmp ecx, ebp
jl 0x58d1d3
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x94], edx
sub ecx, ebp
sub ecx, ebx
mov ebx, ecx
shr ecx, 0x1f
mov esi, dword [esp + 0xbc]
mov edx, dword [esi]
mov edi, dword [esi + 4]
dec ecx
mov dword [esp + 0x88], ecx
and ecx, ebx
cmp edi, 3
jbe 0x58d705
mov edi, ecx
sar ecx, 8
mov byte [edx + 3], cl
mov ecx, dword [esi + 4]
mov edx, dword [esi]
cmp ecx, 4
jbe 0x58d6fe
xchg edi, eax
mov byte [edx + 4], al
xchg edi, eax
lea ecx, [ebp + edi]
test ecx, ecx
jl 0x58d6f7
cmp edi, ecx
ja 0x58d6f7
cmp ecx, eax
ja 0x58d6f7
mov dword [esp + 0x84], edi
mov dword [esp + 0x64], eax
mov edx, dword [esp + 0xb8]
lea ebp, [edx + 0x24]
test byte [ebp], al
sub eax, edi
mov dword [esp + 0x54], eax
neg eax
sar eax, 0x1f
and eax, edi
mov edi, dword [esp + 0x94]
add eax, edi
mov dword [esp + 0x90], eax
mov eax, dword [esi]
mov esi, dword [esi + 8]
cmp esi, 5
jb 0x58d6f0
mov edi, dword [esp + 0x88]
test ebx, edi
jl 0x58d6f0
mov ebx, dword [esp + 0x5c]
cmp ecx, ebx
ja 0x58d6f0
mov edi, dword [edx + 0x1c]
mov ebx, dword [edx + 0x20]
mov dword [esp + 0xb0], ebx
mov edi, dword [edi + 0x10]
mov dword [esp + 0x8c], edi
mov edi, dword [edx + 0x50]
mov ebx, dword [edx + 0x54]
mov edx, dword [edx + 0x58]
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 8
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 5
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x30], ebx
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
add eax, ebx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
sub eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
call eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xa0], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x14], ebx
call fcn.004e5cd0
mov eax, dword [esp + 0x18]
cmp eax, 1
je 0x58d139
mov byte [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xc8], 0x14
add esp, 0xb4
ret
movzx ecx, byte [esp + 0x4f]
cmp cl, 0xff
jne 0x58d117
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xb8]
mov dword [edx + 0x54], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 0x58], ecx
mov ecx, dword [0xbc7270]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x78]
lea ebx, [ebp + ebx + 5]
test ecx, ecx
jne 0x58d1c2
mov eax, dword [esp + 0xa0]
mov dword [edx + 0x50], eax
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0058e060
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call fcn.0058cca0
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x78]
add eax, 5
mov dword [esp + 0xc4], eax
mov byte [esp + 0xc8], 0
add esp, 0xb4
ret
lea edi, [edx + 0x50]
mov eax, dword [esp + 0xa0]
call fcn.0044cc20
jmp 0x58d17b
mov byte [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xc8], 0x14
add esp, 0xb4
ret
lea eax, [0x7a2340]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
call fcn.00407ce0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test al, al
je 0x58d470
mov dword [esp + 0x80], ecx
mov dword [esp + 0xa8], edx
mov eax, dword [ecx + 0x20]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x58d44e
test eax, eax
jl 0x58d728
mov edx, dword [esp + 0x6c]
cmp eax, edx
ja 0x58d728
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
mov esi, dword [esp + 0x9c]
add edx, esi
sub ecx, eax
test eax, eax
jne 0x58d43a
mov ebx, dword [esp + 0xb8]
lea esi, [ebx + 0x24]
test byte [esi], al
mov edi, 8
mov edi, 8
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x88], eax
lea eax, [ebx + 0x30]
mov dword [esp + 0xac], eax
test byte [eax], al
lea eax, [ebx + 0x24]
test byte [eax], al
mov eax, dword [ebx + 0x24]
mov edi, dword [ebx + 0x28]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edi
mov eax, dword [esp + 0xbc]
mov edi, dword [eax + 8]
mov eax, dword [eax]
cmp edi, 3
jb 0x58d721
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x9c], esi
lea edi, [ebx + 0x38]
cmp eax, edi
je 0x58d30b
movzx edi, word [eax]
movzx eax, byte [eax + 2]
mov word [ebx + 0x38], di
mov byte [ebx + 0x3a], al
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov edx, ecx
sub ecx, eax
mov eax, ecx
sar ecx, 8
mov ebx, dword [esp + 0xb8]
mov byte [ebx + 0x3b], cl
mov byte [ebx + 0x3c], al
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov ebp, dword [esp + 0x84]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 0xd
mov dword [esp + 0x30], 0xd
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x58d418
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov edx, dword [esp + 0x88]
lea ebx, [ecx + edx + 5]
mov dword [esp + 4], ebx
call fcn.0058e060
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x94]
xor ebx, ebx
mov ebp, 0xffffffff
mov esi, dword [esp + 0x88]
jmp 0x58cf38
mov byte [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xc8], 0x14
add esp, 0xb4
ret
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
jmp 0x58d2a0
mov byte [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xc8], 0x14
add esp, 0xb4
ret
lea eax, [0x78fe00]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
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 0x58d72f
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x7c], edx
mov eax, dword [edx + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xb8]
movzx edx, word [ecx + 0x10]
cmp dx, 0x302
jb 0x58d696
mov edx, eax
test edx, edx
je 0x58d71a
mov ebx, eax
mov eax, dword [esp + 0x5c]
mov ebp, edx
cmp ebp, 0xffffffff
je 0x58d4f2
cdq
idiv ebp
jmp 0x58d4f4
xor edx, edx
test edx, edx
je 0x58d51a
mov byte [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0xc8], 0x14
add esp, 0xb4
ret
mov edx, dword [esp + 0x50]
lea esi, [ebx + edx]
lea eax, [ebx + edx + 1]
cmp ebp, 0xffffffff
je 0x58d52f
cdq
idiv ebp
jmp 0x58d531
xor edx, edx
mov eax, ebp
sub eax, edx
cmp ebp, 0xffffffff
je 0x58d53f
cdq
idiv ebp
jmp 0x58d541
xor edx, edx
lea edx, [edx + esi + 1]
mov ebp, dword [esp + 0x5c]
cmp ebp, edx
jl 0x58d4f8
mov dword [esp + 0x88], ebx
test ebx, ebx
jle 0x58d684
mov eax, dword [esp + 0x6c]
cmp ebx, eax
ja 0x58d713
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x18]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xa4]
mov dword [esp], esi
call edx
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
ja 0x58d70c
sub ecx, eax
mov edx, dword [esp + 0x6c]
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 + 0x98], edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x14]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 0xb8]
movzx ecx, word [eax + 0x10]
cmp cx, 0x300
jne 0x58d64f
mov ecx, dword [esp + 0x58]
cmp ecx, 1
jge 0x58d62f
xor edx, edx
xor ebx, ebx
mov eax, dword [esp + 0x60]
mov ebp, ebx
mov esi, dword [esp + 0x88]
mov ebx, edx
mov edx, dword [esp + 0x98]
jmp 0x58cf38
mov edx, dword [esp + 0x98]
movzx ebx, byte [ecx + edx - 1]
inc ebx
cmp ebx, ecx
jle 0x58d646
xor edx, edx
xor ebx, ebx
jmp 0x58d614
mov edx, ebx
mov ebx, 0xffffffff
jmp 0x58d614
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edx
call fcn.0058cd10
mov edx, dword [esp + 0xc]
movzx ebx, byte [esp + 0x10]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x58]
jmp 0x58d614
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x6c]
mov ecx, ebp
jmp 0x58d5bb
mov edx, eax
xor eax, eax
jmp 0x58d4d8
mov eax, ebp
mov ecx, edx
mov edx, dword [esp + 0x9c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
jmp 0x58cf38
mov dword [esp + 0x84], edx
mov eax, dword [edi + 0x14]
mov dword [esp], esi
call eax
mov esi, dword [esp + 4]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x6c]
jmp 0x58ce99
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426830
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
lea eax, [0x771de0]
mov dword [esp], eax
lea eax, [0x8f6ac0]
mov dword [esp + 4], eax
call fcn.00427510
ud2
call fcn.00426730
ud2
call fcn.0044b4c0
jmp fcn.0058ce30