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

Disassembly:
mov eax, 0x1021a623
call fcn.10210210
sub esp, 0x78
push ebx
mov ebx, dword [esp + 0x98]
mov ecx, ebx
push ebp
push esi
push edi
call fcn.10003a2e
and dword [esp + 0x38], 0
lea ecx, [esp + 0x38]
push eax
call fcn.1000fd70
and dword [esp + 0x90], 0
mov esi, dword [esp + 0x38]
test esi, esi
je 0x1008c972
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x34]
test al, al
jne 0x1008c972
xor edi, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], edi
xor eax, eax
mov ecx, esi
inc eax
mov byte [esp + 0x90], al
mov eax, dword [esi]
call dword [eax + 0x18]
test al, al
je 0x1008c4ad
push esi
lea ecx, [esp + 0x38]
call fcn.1000fd16
mov edi, dword [esp + 0x34]
test edi, edi
je 0x1008c4ad
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x1008c4ad
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x44]
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], eax
call fcn.1000fd16
mov edi, dword [esp + 0x34]
mov ecx, dword [ebx + 8]
xor eax, eax
cmp ecx, 0x80000000
cmove ecx, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax]
mov ebp, ecx
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], ebx
mov ebx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], edx
cmp dword [eax + 0xc], 0x80000000
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x30], ecx
je 0x1008c55e
cmp dword [eax + 0xc], 0
je 0x1008c55e
mov ecx, dword [esp + 0x9c]
lea edx, [esp + 0x3c]
and dword [esp + 0x50], 0
and dword [esp + 0x54], 0
push edx
mov eax, dword [ecx]
call dword [eax + 0xa0]
push eax
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x80]
call fcn.1000e87b
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x60]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], eax
mov eax, dword [ecx]
push edx
call dword [eax + 0x2c]
mov eax, dword [esp + 0xa4]
and dword [esp + 0x14], 0
and dword [esp + 0x1c], 0
mov dword [esp + 0x3c], 0x64
lea ecx, [eax + 0x10]
cmp dword [ecx], 0
mov dword [esp + 0x50], ecx
jbe 0x1008c5f1
cmp dword [ecx], 3
jne 0x1008c5df
movzx eax, word [ecx + 4]
movsx ecx, ax
mov eax, dword [esp + 0x60]
imul eax, ecx
mov dword [esp + 0x14], ecx
push 0x64
pop ecx
cdq
idiv ecx
mov ecx, eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
inc eax
imul eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x3c]
sub eax, ecx
jmp 0x1008c5e6
push 0
call fcn.1002b1eb
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0x20], 0
jbe 0x1008c63e
cmp dword [eax + 0x20], 3
jne 0x1008c630
movzx eax, word [eax + 0x24]
movsx ecx, ax
mov eax, dword [esp + 0x64]
imul eax, ecx
mov dword [esp + 0x1c], ecx
push 0x64
pop ecx
cdq
idiv ecx
mov ecx, eax
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x20]
inc eax
imul eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x3c]
mov edx, eax
sub edx, ecx
jmp 0x1008c642
push 0
lea ecx, [eax + 0x20]
call fcn.1002b1eb
mov edx, eax
jmp 0x1008c642
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, ebx
sub eax, ebp
add edx, ecx
add dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x4c]
mov eax, edx
and eax, 0xf
sub eax, 0
je 0x1008c926
dec eax
je 0x1008c852
dec eax
je 0x1008c7f6
dec eax
je 0x1008c78b
dec eax
je 0x1008c76a
dec eax
jne 0x1008c95f
mov al, dl
xor ecx, ecx
and al, 0x25
cmp al, 0x25
push 1
pop eax
cmove ecx, eax
mov eax, edx
and eax, 0x85
mov dword [esp + 0x20], ecx
cmp al, 0x85
jne 0x1008c6b1
or ecx, 0x10
mov dword [esp + 0x20], ecx
mov eax, edx
and eax, 0x15
cmp al, 0x15
jne 0x1008c6c1
or ecx, 2
mov dword [esp + 0x20], ecx
mov eax, edx
and eax, 0x45
cmp al, 0x45
jne 0x1008c6d1
or ecx, 8
mov dword [esp + 0x20], ecx
mov eax, 0x105
and edx, eax
cmp edx, eax
jne 0x1008c6e3
or ecx, 4
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0xa4]
push 0
lea ecx, [ebx + 0x40]
call fcn.1002b1eb
push 0
lea ecx, [ebx + 0x30]
mov dword [esp + 0x50], eax
call fcn.1002b1eb
push 0
lea ecx, [ebx + 0x20]
mov ebp, eax
call fcn.1002b1eb
mov ecx, dword [esp + 0x50]
mov ebx, eax
push 0
call fcn.1002b1eb
push dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x40]
push eax
push esi
sub esp, 0x10
mov dword [esp + 0x5c], ebx
mov eax, esp
mov dword [esp + 0x60], ebp
mov dword [eax], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
call dword [eax + 0x70]
jmp 0x1008c95f
push dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 0xc], ecx
jmp 0x1008c918
mov ecx, dword [esp + 0x60]
push dword [esp + 0x18]
mov edx, dword [esp + 0x20]
dec ecx
add ecx, ebp
add ebp, dword [esp + 0x18]
add ecx, dword [esp + 0x18]
push ecx
push ecx
mov eax, esp
sub esp, 0x10
and dword [eax], 0
mov dword [eax + 4], edx
mov eax, esp
mov edx, dword [esp + 0x3c]
cmp ebx, edx
cmovg edx, ebx
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], edx
cmovl ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
cmp ebp, edx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x44]
cmovg edx, ebp
cmp ecx, ebx
mov dword [eax], edx
mov edx, dword [esp + 0x3c]
cmovl ebx, ecx
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov ecx, dword [esp + 0x2c]
jmp 0x1008c950
mov ecx, dword [esp + 0x64]
push dword [esp + 0x18]
mov edx, dword [esp + 0x18]
dec ecx
add ecx, ebx
add ebx, dword [esp + 0x20]
add ecx, dword [esp + 0x20]
push ecx
push ecx
mov eax, esp
sub esp, 0x10
and dword [eax + 4], 0
mov dword [eax], edx
mov eax, esp
mov edx, dword [esp + 0x3c]
cmp ebx, edx
cmovg edx, ebx
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
mov dword [eax + 4], edx
cmovl ebx, ecx
mov ecx, dword [esp + 0x40]
cmp ebp, ecx
mov dword [esp + 0x2c], ebx
cmovg ecx, ebp
mov ebp, dword [esp + 0x44]
cmp dword [esp + 0x48], ebp
mov dword [eax], ecx
cmovl ebp, dword [esp + 0x48]
mov dword [eax + 8], ebp
jmp 0x1008c7ed
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0xc], 0x80000000
je 0x1008c8e6
cmp dword [eax + 0xc], 0
je 0x1008c8e6
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
dec eax
mov ecx, dword [esp + 0xa0]
dec edx
add eax, ebp
add edx, ebx
add edx, dword [esp + 0x1c]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
add ebp, eax
add dword [esp + 0x30], eax
mov eax, dword [ecx]
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x68]
push edx
call dword [eax + 0xc4]
test al, al
je 0x1008c95f
push dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
sub esp, 0x10
mov eax, esp
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0xb4]
mov dword [eax], ebp
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0xc], ecx
mov ecx, ebx
mov eax, dword [ebx]
call dword [eax + 0x48]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc8]
jmp 0x1008c95f
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
dec edx
push dword [esp + 0x18]
dec ecx
add edx, ebx
add ebx, dword [esp + 0x20]
add ecx, ebp
add ebp, dword [esp + 0x18]
add ecx, dword [esp + 0x18]
add edx, dword [esp + 0x20]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx]
call dword [eax + 0x48]
jmp 0x1008c95f
push dword [esp + 0x18]
mov edx, dword [esp + 0x18]
push ecx
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
sub esp, 0x10
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax], edx
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
call dword [eax + 0x78]
mov byte [esp + 0x90], 0
test edi, edi
je 0x1008c972
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
or dword [esp + 0x90], 0xffffffff
test esi, esi
je 0x1008c985
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
leave
ret 0x14