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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], ebx
test dl, dl
je 0x8bb034
add esp, 0xfffffff0
call fcn.00407a04
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov ebx, eax
mov esi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x8bb41c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, ebx
call fcn.00407440
mov ecx, dword [ebp - 0xc]
mov dl, 1
mov eax, dword [0x8a8054]
call fcn.008c87ac
mov edi, eax
mov dword [ebx + 0x7c], edi
test esi, esi
je 0x8bb079
lea eax, [edi + 0x58]
mov edx, dword [esi + 0x28]
call fcn.00409504
mov dword [ebx + 4], 1
mov dword [ebx + 8], 1
movzx eax, byte [ebp + 0x10]
mov byte [ebx + 0x34], al
cmp dword [ebp + 0xc], 0
je 0x8bb1cc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x8bb1cc
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
mov eax, edi
call fcn.0044ef5c
mov edi, eax
movzx eax, byte [edi + 4]
cmp eax, 0x1e
jg 0x8bb0f5
je 0x8bb1a2
sub eax, 5
je 0x8bb195
dec eax
je 0x8bb17d
sub eax, 0xf
je 0x8bb10d
sub eax, 8
je 0x8bb15b
jmp 0x8bb1c0
sub eax, 0x3f
je 0x8bb121
sub eax, 0xb
je 0x8bb1b2
sub eax, 0xb
je 0x8bb135
jmp 0x8bb1c0
mov eax, dword [edi + 0xc]
cmp eax, 1
jle 0x8bb1c0
mov dword [ebx + 4], eax
jmp 0x8bb1c0
mov eax, dword [edi + 0xc]
cmp eax, 1
jle 0x8bb1c0
mov dword [ebx + 8], eax
jmp 0x8bb1c0
cmp dword [edi + 0xc], 0
jl 0x8bb1c0
lea ecx, [ebp - 0x28]
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
call fcn.00896eb8
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x18], eax
jmp 0x8bb1c0
cmp dword [edi + 0xc], 0
jl 0x8bb1c0
lea ecx, [ebp - 0x28]
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
call fcn.00896eb8
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x20], eax
jmp 0x8bb1c0
mov eax, dword [ebx + 0x7c]
lea ecx, [eax + 0x2c]
mov eax, dword [edi + 0x1c]
xor edx, edx
call fcn.0087ac4c
mov edx, dword [ebx + 0x7c]
mov byte [edx + 0x28], al
jmp 0x8bb1c0
lea eax, [ebp - 4]
mov edx, dword [edi + 0x1c]
call fcn.0040954c
jmp 0x8bb1c0
mov eax, dword [ebx + 0x7c]
add eax, 0x5c
mov edx, dword [edi + 0x1c]
call fcn.00409504
jmp 0x8bb1c0
mov eax, dword [ebx + 0x7c]
add eax, 0x60
mov edx, dword [edi + 0x1c]
call fcn.00409504
inc dword [ebp - 0x10]
dec dword [ebp - 0x1c]
jne 0x8bb0b2
test esi, esi
je 0x8bb3f1
lea edx, [ebp - 0x15]
mov eax, esi
call fcn.00872cc4
test al, al
je 0x8bb1f6
movzx eax, byte [ebp - 0x15]
dec eax
sub al, 2
jb 0x8bb1ef
sub al, 1
jne 0x8bb1f6
movzx eax, byte [ebp - 0x15]
mov byte [ebx + 0x34], al
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x48], 0
je 0x8bb220
lea eax, [ebp - 0x38]
mov edx, 0xc0c0c0
mov cl, 0xfc
call fcn.004375c8
lea ecx, [ebp - 0x38]
lea edx, [ebx + 0x118]
mov eax, esi
call fcn.008773e4
jmp 0x8bb22d
lea edx, [ebx + 0x118]
mov eax, esi
call fcn.008774c0
mov eax, dword [esi + 0x3c]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x3c], eax
mov edx, dword [ebx + 0x38]
push edx
push eax
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebx + 0x94]
push eax
lea eax, [ebx + 0x118]
xor ecx, ecx
mov edx, 0x64
call fcn.00874084
lea eax, [ebx + 0x2b8]
call fcn.0043a128
test al, al
je 0x8bb2a0
cmp dword [ebx + 0xfc], 0
jl 0x8bb2a0
lea eax, [ebp - 0x3c]
lea edx, [ebx + 0x2b8]
call fcn.00436d14
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x28]
mov eax, dword [ebx + 0xfc]
call fcn.00896eb8
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x18], eax
lea eax, [ebx + 0x2c8]
call fcn.0043a128
test al, al
je 0x8bb2e3
cmp dword [ebx + 0x100], 0
jl 0x8bb2e3
lea eax, [ebp - 0x40]
lea edx, [ebx + 0x2c8]
call fcn.00436d14
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x28]
mov eax, dword [ebx + 0x100]
call fcn.00896eb8
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x20], eax
mov eax, esi
call fcn.008738a8
cmp eax, 0x1fffffff
je 0x8bb2fb
mov edx, dword [ebx + 0x7c]
mov byte [edx + 0x28], 1
mov dword [edx + 0x2c], eax
lea edx, [ebp - 4]
mov eax, esi
call fcn.008725e8
cmp dword [ebp - 4], 0
je 0x8bb335
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0xc]
mov dl, 1
mov eax, dword [0x8a1cb4]
call fcn.008ae568
mov dword [ebx + 0x84], eax
lea eax, [ebx + 0x40]
push eax
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x38]
mov eax, esi
call fcn.0087286c
lea eax, [ebx + 0x94]
push eax
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x38]
lea eax, [ebx + 0x118]
call fcn.00874894
mov eax, dword [ebx + 0xbc]
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0xc0]
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0xc4]
mov dword [ebx + 0x64], eax
mov eax, dword [ebx + 0xc8]
mov dword [ebx + 0x58], eax
mov byte [ebx + 0x78], 0
cmp byte [ebx + 0xec], 0
je 0x8bb38b
mov byte [ebx + 0x78], 1
mov eax, dword [ebx + 0xcc]
mov dword [ebx + 0x6c], eax
cmp byte [ebx + 0xf0], 0
je 0x8bb3a1
mov byte [ebx + 0x78], 1
mov eax, dword [ebx + 0xd0]
mov dword [ebx + 0x70], eax
cmp byte [ebx + 0xf4], 0
je 0x8bb3b7
mov byte [ebx + 0x78], 1
mov eax, dword [ebx + 0xd4]
mov dword [ebx + 0x74], eax
cmp byte [ebx + 0xf8], 0
je 0x8bb3cd
mov byte [ebx + 0x78], 1
mov eax, dword [ebx + 0xd8]
mov dword [ebx + 0x68], eax
lea eax, [ebx + 0x31b]
push eax
lea ecx, [ebx + 0x31a]
lea edx, [ebx + 0x319]
mov eax, esi
call fcn.00873778
mov eax, esi
call fcn.00873ca0
mov byte [ebx + 0x79], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x8bb423
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.00409184
lea eax, [ebp - 0x38]
call fcn.00431bbc
lea eax, [ebp - 4]
call fcn.00409124
ret