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

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x1c]
push edi
mov edi, dword [esp + 0x24]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x10085878
cmp dword [ebx + 0x88], 4
jne 0x1008585f
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
test ebx, ebx
je 0x10085878
cmp dword [ebx + 0x88], 5
jne 0x10085878
pop edi
pop ebp
mov eax, 0x38
pop ebx
add esp, 0x10
ret
push esi
lea esi, [edi + 0x110]
nop
push 1
push 0
push edi
mov dword [esp + 0x24], esi
call fcn.10058150
add esp, 0xc
test edx, edx
jl 0x10085d4a
jg 0x100858a3
test eax, eax
je 0x10085d4a
mov eax, dword [ebx + 0x88]
lea ebp, [ebx + 0x88]
mov ecx, ebp
mov dword [esp + 0x14], ecx
cmp eax, 3
ja case.default.0x100858c6
mov esi, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
jmp dword [eax*4 + 0x10085dd0]
mov esi, dword [esp + 0x24]
push 0x100f7b4c
push esi
push edi
call fcn.10056b50
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], 0
push dword [eax]
call dword [0x1011b0b0]
mov eax, dword [esp + 0x28]
push 1
push edi
push esi
mov dword [eax], 0
lea eax, [esp + 0x30]
push eax
call fcn.10085380
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x10085968
mov eax, dword [esp + 0x14]
push dword [eax + 0x1c]
push 0x100f7960
push edi
call fcn.10056ac0
lea esi, [ebx + 0x60]
push esi
call fcn.10046150
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x74], 0
push esi
mov eax, dword [eax + 0xc]
cmp byte [eax + 0xc0], 1
setne cl
push ecx
push dword [esp + 0x2c]
call fcn.10094a20
add esp, 0x1c
mov esi, eax
test esi, esi
je 0x10085976
lea ebp, [ebx + 0x88]
push 0x100f7984
push edi
call fcn.100569f0
add esp, 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10085987
push eax
call fcn.10065330
add esp, 4
test esi, esi
jne 0x10085d5f
mov eax, dword [ebp]
cmp eax, 1
je case.0x100858c6.1
sub eax, 1
jne 0x100859a2
mov byte [edi + 0x141], al
push 0x100f78b8
push dword [esp + 0x28]
push edi
call fcn.10056b50
lea eax, [ebx + 0x50]
mov dword [ebp], 1
push eax
mov dword [ebx + 0x78], 1
call fcn.10046150
add esp, 0x10
mov ebp, dword [esp + 0x24]
push 0x100f7b5c
push ebp
push edi
call fcn.10056b50
lea esi, [ebx + 0x60]
push esi
call fcn.10046140
push esi
mov dword [esp + 0x28], eax
call fcn.10046130
mov ecx, dword [ebx + 0x70]
xor esi, esi
add esp, 0x14
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], esi
cmp eax, ecx
jbe 0x10085a6c
mov esi, dword [esp + 0x14]
sub eax, dword [ebx + 0x70]
add esi, ecx
mov ecx, dword [ebp + 4]
lea ebp, [esp + 0x10]
push ebp
push eax
push esi
mov edx, dword [ecx]
push edi
push ecx
mov eax, dword [edx + 0x24]
call eax
mov ebp, dword [esp + 0x38]
add esp, 0x14
test eax, eax
jns 0x10085a3a
mov esi, dword [esp + 0x10]
cmp esi, 0x51
jne 0x10085a4e
xor esi, esi
mov dword [esp + 0x10], esi
jmp 0x10085a68
add dword [ebx + 0x70], eax
push eax
push esi
push 2
push edi
call fcn.10056950
mov esi, dword [esp + 0x20]
add esp, 0x10
test esi, esi
je 0x10085a68
push 0x100f7984
push edi
call fcn.100569f0
mov esi, dword [esp + 0x18]
add esp, 8
test esi, esi
jne 0x10085a75
mov eax, dword [esp + 0x18]
cmp dword [ebx + 0x70], eax
jb 0x10085a75
mov al, 1
jmp 0x10085a77
xor al, al
mov byte [esp + 0x2c], al
test esi, esi
jne 0x10085d63
test al, al
je 0x10085dc4
mov eax, dword [ebx + 0x88]
cmp eax, 2
je 0x10085ac0
sub eax, 1
jne 0x10085aa1
mov byte [edi + 0x141], al
push 0x100f78d4
push ebp
push edi
call fcn.10056b50
add esp, 0xc
mov dword [ebx + 0x88], 2
jmp 0x10085ac0
mov ebp, dword [esp + 0x24]
push 0x100f7b6c
push ebp
push edi
call fcn.10056b50
lea eax, [esp + 0x38]
push eax
push ebx
push edi
push ebp
call fcn.10086190
push edi
mov esi, eax
call fcn.100676a0
add esp, 0x20
test eax, eax
jne 0x10085c64
test esi, esi
jne 0x10085d63
cmp byte [esp + 0x2c], al
je 0x10085dc4
mov eax, dword [ebx + 0x88]
cmp eax, 3
je 0x10085b33
sub eax, 1
jne 0x10085b14
mov byte [edi + 0x141], al
push 0x100f78f0
push ebp
push edi
call fcn.10056b50
add esp, 0xc
mov dword [ebx + 0x88], 3
jmp 0x10085b33
mov ebp, dword [esp + 0x24]
push 0x100f7b7c
push ebp
push edi
call fcn.10056b50
lea esi, [edi + 0x110]
add esp, 0xc
cmp dword [esi], 0
je 0x10085b9d
cmp byte [ebx + 0x8d], 0
jne 0x10085c6e
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x1e6], 0
jne 0x10085c6e
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x10085b9d
sub eax, 1
jne 0x10085b80
mov byte [edi + 0x141], al
push 0x100f78a0
push ebp
push edi
call fcn.10056b50
push ebx
push edi
push ebp
call fcn.100865e0
add esp, 0x18
lea esi, [edi + 0x110]
lea ecx, [ebx + 0x88]
mov dword [esp + 0x14], ecx
jmp 0x10085bad
mov ebp, dword [esp + 0x24]
cmp dword [esi], 0
jne 0x10085880
mov eax, dword [edi + 0xd7c]
sub eax, 0xc8
cmp eax, 0x64
jb 0x10085cb9
push 0
call dword [0x1011b0b0]
push 2
push dword [esp + 0x24]
mov dword [esi], 0
call fcn.10057f50
mov esi, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esi]
cmp eax, 5
je 0x10085c43
sub eax, 1
jne 0x10085bfc
mov byte [edi + 0x141], al
push 0x100f7944
push ebp
push edi
call fcn.10056b50
lea eax, [ebx + 0x50]
mov dword [esi], 5
push eax
call fcn.10046150
lea eax, [ebx + 0x60]
push eax
call fcn.10046150
push dword [edi + 0xd18]
mov dword [edi + 0xd78], 0
call dword [0x1011b0b0]
add esp, 0x18
mov dword [edi + 0xd18], 0
push dword [edi + 0xd8]
push 0x100f7bc4
push edi
call fcn.100569f0
add esp, 0xc
mov eax, 0x38
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x10
ret
mov esi, 0x2a
jmp 0x10085d63
push 0x100f7b90
push ebp
push edi
call fcn.10056b50
push 0x100f7bac
push edi
call fcn.10056ac0
push edi
push ebp
call fcn.10055d00
push 0
push dword [esp + 0x3c]
call fcn.10057f50
lea eax, [esp + 0x50]
push eax
push 0
push edi
push dword [ebp + 4]
call fcn.10055d80
add esp, 0x34
mov esi, eax
test esi, esi
je 0x10085dc4
jmp 0x10085d63
mov eax, dword [ecx]
cmp eax, 4
je 0x10085d2a
sub eax, 1
jne 0x10085ccb
mov byte [edi + 0x141], al
push 0x100f790c
push ebp
push edi
call fcn.10056b50
push 0x100f792c
push edi
call fcn.10056ac0
mov esi, dword [esp + 0x28]
lea eax, [ebx + 0x50]
mov word [edi + 0x98c], 1
push eax
mov dword [esi], 4
call fcn.10046150
lea eax, [ebx + 0x60]
push eax
call fcn.10046150
push dword [edi + 0xd18]
mov dword [edi + 0xd78], 0
call dword [0x1011b0b0]
add esp, 0x20
mov dword [edi + 0xd18], 0
push dword [edi + 0xd7c]
push 0x100f7be8
push edi
call fcn.10056ac0
add esp, 0xc
xor esi, esi
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x10
ret
push 0x100f7b24
push edi
call fcn.100569f0
add esp, 8
mov esi, 0x1c
jmp 0x10085d63
mov ebp, dword [esp + 0x24]
mov eax, dword [ebx + 0x88]
cmp eax, 5
je 0x10085dc4
sub eax, 1
jne 0x10085d79
mov byte [edi + 0x141], al
push 0x100f7944
push ebp
push edi
call fcn.10056b50
lea eax, [ebx + 0x50]
mov dword [ebx + 0x88], 5
push eax
call fcn.10046150
lea eax, [ebx + 0x60]
push eax
call fcn.10046150
push dword [edi + 0xd18]
mov dword [edi + 0xd78], 0
call dword [0x1011b0b0]
add esp, 0x18
mov dword [edi + 0xd18], 0
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x10
ret