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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
mov eax, dword [ecx]
push ebx
push esi
mov esi, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
push edi
mov eax, dword [esi + 0x14]
mov dword [esp + 0x68], esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
test eax, eax
je 0x10058b5b
cmp byte [eax + 0x88], 0
je 0x10058b5b
mov ecx, dword [eax + 0xc]
jmp 0x10058b5d
xor ecx, ecx
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], ecx
test eax, eax
je 0x10058b70
mov ecx, dword [eax + 0x84]
jmp 0x10058b72
xor ecx, ecx
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push dword [ebp + 0xc]
call fcn.10097c50
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x18]
cmp edi, ecx
jbe 0x10058b91
mov edi, ecx
test al, al
je 0x10058e44
mov ebx, dword [esp + 0x1c]
cmp edi, ebx
jbe 0x10058e44
test edi, edi
je 0x10058e44
cmp edi, dword [esp + 0x20]
ja 0x10058e44
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x10058bc6
mov ecx, dword [ecx + 0x84]
jmp 0x10058bc8
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
mov edx, dword [ebp + 0xc]
sar eax, 2
cmp dx, ax
jae 0x10058e44
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
movzx edx, dx
sar eax, 2
cmp edx, eax
jae 0x10058bf5
mov eax, dword [ecx + 8]
mov ecx, dword [eax + edx*4]
jmp 0x10058bf7
xor ecx, ecx
cmp byte [ecx + 0x24], 0
mov eax, dword [ecx]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x4c], edx
je 0x10058c0f
mov eax, dword [ecx + 0x20]
jmp 0x10058c1f
call fcn.10097cc0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov eax, dword [eax + 0x20]
add eax, edx
mov dword [esp + 0x64], eax
cmp edx, eax
ja 0x10058e44
xor ecx, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], ecx
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.10095300
lea ecx, [eax + 0x3c]
lea eax, [esp + 0x5c]
push eax
call fcn.10094400
mov ecx, esi
call fcn.10095300
lea ecx, [eax + 0x18]
lea eax, [esp + 0x54]
push eax
call fcn.10094400
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x3c], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x14], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], 0
je 0x10058ccc
cmp dword [esp + 0x60], 0
je 0x10058ccc
mov byte [esp + 0x13], 1
cmp dword [esp + 0x54], 0
je 0x10058cdf
cmp dword [esp + 0x58], 0
je 0x10058cdf
mov byte [esp + 0x14], 1
mov eax, dword [esp + 0x30]
mov esi, dword [ebp + 8]
add eax, esi
mov cl, byte [eax]
cmp cl, 0xe9
jne 0x10059030
mov eax, dword [eax + 1]
test eax, eax
js 0x10058e44
mov ecx, dword [esp + 0x24]
add ecx, 5
add eax, ecx
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x4c]
jbe 0x10058d1b
cmp eax, dword [esp + 0x64]
jbe 0x10058e44
mov ebx, dword [esp + 0x68]
lea ecx, [esp + 0x18]
push 1
push ecx
lea ecx, [esp + 0x2c]
push ecx
push eax
mov ecx, ebx
call fcn.100951f0
test al, al
je 0x10058e44
mov esi, dword [esp + 0x18]
cmp si, word [ebp + 0xc]
je 0x10058f26
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.10095250
test al, al
je 0x10058e44
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x10058d72
mov ecx, dword [ecx + 0x84]
jmp 0x10058d74
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp si, ax
jae 0x10058e44
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
movzx esi, si
sar eax, 2
cmp esi, eax
jae 0x10058d9e
mov eax, dword [ecx + 8]
mov esi, dword [eax + esi*4]
jmp 0x10058da0
xor esi, esi
cmp byte [esi + 0x24], 0
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
jne 0x10058db2
mov ecx, esi
call fcn.10097cc0
mov eax, dword [esi + 0x20]
add eax, edi
cmp edi, eax
ja 0x10058e44
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov edx, dword [esp + 0x38]
sub eax, edx
mov dword [esp + 0x48], ecx
cmp eax, 0x3000
jb 0x10058e44
cmp ecx, edx
jbe 0x10058e44
test ecx, ecx
je 0x10058e44
cmp ecx, dword [esp + 0x20]
ja 0x10058e44
cmp byte [esp + 0x13], 1
jne 0x10058e4d
mov esi, dword [esp + 0x5c]
lea eax, [esp + 0x34]
push 1
push eax
lea eax, [esp + 0x58]
mov ecx, ebx
push eax
push esi
call fcn.100951f0
test al, al
je 0x10058e4d
lea eax, [esp + 0x2c]
mov ecx, ebx
push eax
lea eax, [esp + 0x74]
push eax
push dword [esp + 0x3c]
call fcn.10095250
test al, al
je 0x10058e4d
cmp edi, esi
jb 0x10058e4d
mov ecx, dword [esp + 0x60]
lea eax, [ecx + esi]
cmp edi, eax
jae 0x10058e4d
mov eax, dword [esp + 0x50]
add eax, 0x3000
add eax, ecx
cmp eax, dword [esp + 0x2c]
jbe 0x10058f26
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x14], 1
jne 0x10058ea9
mov esi, dword [esp + 0x54]
lea eax, [esp + 0x40]
push 1
push eax
lea eax, [esp + 0x4c]
mov ecx, ebx
push eax
push esi
call fcn.100951f0
test al, al
je 0x10058ea9
lea eax, [esp + 0x3c]
mov ecx, ebx
push eax
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x48]
call fcn.10095250
test al, al
je 0x10058ea9
cmp edi, esi
jb 0x10058ea9
mov ecx, dword [esp + 0x58]
lea eax, [ecx + esi]
cmp edi, eax
jae 0x10058ea9
mov eax, dword [esp + 0x44]
add eax, 0x3000
add eax, ecx
cmp eax, dword [esp + 0x3c]
jmp 0x10058e3e
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x10058eb8
mov edx, dword [ecx + 0x84]
jmp 0x10058eba
xor edx, edx
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 8]
sar eax, 2
dec eax
movzx edx, ax
lea eax, [edx - 1]
movzx esi, ax
mov eax, dword [esp + 0x18]
cmp ax, dx
jne 0x10058efe
test ecx, ecx
je 0x10058ee2
mov ecx, dword [ecx + 0x84]
jmp 0x10058ee4
xor ecx, ecx
push edx
call fcn.100955a0
mov eax, dword [eax]
cmp dword [eax + 0x10], 0x3000
jae 0x10058f26
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, si
jne 0x10058f26
test ecx, ecx
je 0x10058f0f
mov ecx, dword [ecx + 0x84]
jmp 0x10058f11
xor ecx, ecx
push esi
call fcn.100955a0
mov eax, dword [eax]
cmp dword [eax + 0x10], 0x3000
jb 0x10058e44
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
lea eax, [esi + 0xa0]
cmp eax, ecx
jae 0x10058e44
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x30]
cmp byte [esi + ebx], 0xeb
jne 0x10058f69
mov al, byte [esi + ebx + 1]
test al, 0x10
jne 0x10058e44
movzx eax, al
add eax, 2
add esi, eax
lea eax, [esi + 8]
cmp eax, ecx
jae 0x10058e44
cmp byte [esi + ebx], 0x60
jne 0x10058e44
cmp byte [esi + ebx + 1], 0xe8
jne 0x10058e44
cmp byte [esi + ebx + 2], 0
jne 0x10058e44
cmp byte [esi + ebx + 3], 0
jne 0x10058e44
cmp byte [esi + ebx + 4], 0
jne 0x10058e44
cmp byte [esi + ebx + 5], 0
jne 0x10058e44
cmp byte [esi + ebx + 6], 0x5d
jne 0x10058e44
cmp byte [esi + ebx + 7], 0x81
jne 0x10058e44
cmp byte [esi + ebx + 8], 0xed
jne 0x10058e44
xor al, al
mov byte [esp + 0x13], 0
mov byte [esp + 0x15], al
lea ecx, [esp + 0x78]
mov byte [esp + 0x16], al
add esi, 0xd
xor eax, eax
mov byte [esp + 0x17], 0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
push esi
mov byte [esp + 0x18], 0
push dword [eax + 4]
push dword [eax]
call fcn.1001d150
lea eax, [esi + 0xb]
cmp eax, edi
jae 0x10058e44
jmp 0x10059010
movzx eax, byte [esi + ebx]
add eax, 0xffffffa8
cmp eax, 0x93
ja case.0x10059029.92
movzx eax, byte [eax + 0x100591c0]
jmp dword [eax*4 + 0x100591a0]
sub ebx, edi
cmp cl, 0xeb
jne 0x1005906a
cmp ebx, 0x3000
jb 0x10058e44
mov al, byte [eax + 1]
test al, 0x10
jne 0x10058e44
mov ecx, dword [esp + 0x20]
add esi, 2
movzx eax, al
add esi, eax
lea eax, [esi + 8]
cmp eax, ecx
jae 0x10058e44
jmp 0x10058f40
cmp ebx, 0x3000
jb 0x10058e44
mov ecx, dword [esp + 0x20]
jmp 0x10058f40
mov al, byte [esi + ebx + 1]
test al, 0x10
jne 0x10058e44
cmp al, 0x40
ja 0x10058e44
mov byte [esp + 0x14], 1
movzx eax, al
lea ecx, [esp + 0x78]
inc eax
add esi, eax
lea eax, [esi + 1]
push eax
call fcn.1001d110
jmp 0x10059164
cmp byte [esi + ebx + 1], 0
jne 0x100590de
cmp byte [esi + ebx + 2], 0
jne 0x100590de
cmp byte [esi + ebx + 3], 0
jne 0x100590de
cmp byte [esi + ebx + 4], 0
jne 0x100590de
cmp byte [esp + 0x14], 1
jne 0x100590de
inc dword [esp + 0x18]
mov byte [esp + 0x13], 1
jmp case.0x10059029.92
mov eax, dword [esi + ebx + 1]
test eax, eax
js 0x10058e44
add eax, 4
lea ecx, [esp + 0x78]
add esi, eax
mov eax, dword [ebp + 0x10]
mov byte [eax], 1
lea eax, [esi + 1]
push eax
call fcn.1001d110
jmp 0x10059164
cmp byte [esp + 0x13], 1
jne case.0x10059029.92
mov byte [esp + 0x17], 1
jmp case.0x10059029.92
mov al, byte [esi + ebx + 1]
test al, 0x10
jne 0x10058e44
cmp al, 0x40
ja 0x10058e44
jmp 0x10059098
cmp byte [esi + ebx + 1], 0xbd
jne case.0x10059029.92
cmp byte [esp + 0x17], 1
jne case.0x10059029.92
mov byte [esp + 0x16], 1
jmp case.0x10059029.92
cmp byte [esp + 0x16], 1
jne case.0x10059029.92
mov byte [esp + 0x15], 1
lea edx, [esp + 0x2b]
lea ecx, [esp + 0x78]
call fcn.100ae1f0
test eax, eax
je 0x10058e44
dec esi
add esi, eax
inc esi
lea eax, [esi + 0xb]
cmp eax, edi
jb 0x10059010
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x15], 1
jne 0x10058e44
mov eax, dword [esp + 0x18]
cmp ax, 1
jb 0x10058e44
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret