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

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
mov esi, ecx
push edi
add dword [esi + 0x2cc4], 0x10
cmp dword [esi + 0x2cc4], 0xff
mov dword [esi + 0x2cb0], 0
jbe 0x100987d6
shr dword [esi + 0x2cc0], 1
mov dword [esi + 0x2cc4], 0x90
mov ebp, dword [esi + 0x2ca4]
mov dword [esp + 0x20], ebp
cmp ebp, 0x7a
jb 0x100987f7
push 0x100d9130
call fcn.100981f0
mov ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x10098866
cmp ebp, 0x40
jb 0x1009880e
push 0x100d90f8
call fcn.100981f0
mov ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x10098866
mov edx, dword [esi + 0x3c]
mov ecx, 8
sub ecx, dword [esi + 0x38]
shr edx, cl
shr edx, 8
and edx, 0xffff
cmp edx, 0x100
jae 0x10098838
add dword [esi + 0x38], 0x10
mov ebx, edx
mov dword [esp + 0x10], ebx
jmp 0x1009885e
xor ebx, ebx
mov dword [esp + 0x10], ebx
test edx, 0x8000
jne 0x10098858
inc ebx
mov eax, edx
mov ecx, ebx
shl eax, cl
test eax, 0x8000
je 0x10098846
mov dword [esp + 0x10], ebx
lea eax, [ebx + 1]
add dword [esi + 0x38], eax
lea ecx, [esi + 0x38]
call fcn.1000d5d2
mov ecx, dword [esi + 0x2ca4]
add ecx, ebx
mov eax, ecx
shr eax, 5
sub ecx, eax
mov eax, dword [esi + 0x2c9c]
mov dword [esi + 0x2ca4], ecx
cmp eax, 0x28ff
jbe 0x1009888f
push 0x100d91d8
jmp 0x100988a2
cmp eax, 0x6ff
jbe 0x1009889d
push 0x100d91a0
jmp 0x100988a2
push 0x100d9168
mov ecx, esi
call fcn.100981f0
mov ecx, dword [esi + 0x2c9c]
mov edx, eax
add ecx, edx
mov dword [esp + 0x14], edx
mov eax, ecx
shr eax, 8
sub ecx, eax
movzx eax, dl
add eax, 0x225
mov dword [esi + 0x2c9c], ecx
mov edx, dword [esi + eax*4]
lea eax, [esi + eax*4]
mov dword [esp + 0x1c], eax
movzx eax, dl
inc edx
mov edi, dword [esi + eax*4 + 0x2494]
lea ecx, [esi + eax*4]
mov dword [esp + 0x18], edx
lea eax, [edi + 1]
mov dword [ecx + 0x2494], eax
test dl, dl
jne 0x10098941
lea ebp, [esi + 0x2494]
lea eax, [esi + 0x894]
push ebp
push eax
mov ecx, esi
call fcn.10098150
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax]
movzx eax, bl
inc ebx
mov edi, dword [esi + eax*4 + 0x2494]
lea ecx, [esi + eax*4]
mov dword [esp + 0x18], ebx
lea eax, [edi + 1]
mov dword [ecx + 0x2494], eax
lea eax, [esi + 0x894]
test bl, bl
je 0x10098901
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov eax, dword [esi + edi*4 + 0x894]
mov ecx, dword [esp + 0x14]
mov dword [esi + ecx*4 + 0x894], eax
mov ecx, 8
mov dword [esi + edi*4 + 0x894], edx
mov eax, dword [esi + 0x38]
sub ecx, eax
mov edi, dword [esi + 0x3c]
add eax, 7
shr edi, cl
lea ecx, [esi + 0x38]
shr edi, 0x11
and edi, 0x7f
mov dword [esi + 0x38], eax
call fcn.1000d5d2
mov edx, dword [esp + 0x18]
shr edx, 1
and edx, 0x7f80
or edx, edi
mov edi, dword [esi + 0x2ca8]
cmp ebx, 1
je 0x100989c6
cmp ebx, 4
je 0x100989c6
test ebx, ebx
jne 0x100989b9
cmp edx, dword [esi + 0x2cc8]
ja 0x100989b9
lea ecx, [edi + 1]
mov eax, ecx
shr eax, 8
sub ecx, eax
mov dword [esi + 0x2ca8], ecx
jmp 0x100989c6
test edi, edi
je 0x100989c6
lea eax, [edi - 1]
mov dword [esi + 0x2ca8], eax
add ebx, 3
cmp edx, dword [esi + 0x2cc8]
jb 0x100989d2
inc ebx
cmp edx, 0x100
ja 0x100989dd
add ebx, 8
cmp edi, 0xb0
ja 0x10098a02
cmp dword [esi + 0x2c98], 0x2a00
jb 0x100989f6
cmp ebp, 0x40
jb 0x10098a02
mov dword [esi + 0x2cc8], 0x2001
jmp 0x10098a0c
mov dword [esi + 0x2cc8], 0x7f00
mov eax, dword [esi + 0x78]
dec edx
mov dword [esi + eax*4 + 0x68], edx
mov eax, dword [esi + 0x78]
inc eax
mov dword [esi + 0x80], ebx
and eax, 3
mov dword [esi + 0x7c], edx
mov dword [esi + 0x78], eax
test ebx, ebx
jne 0x10098a36
pop edi
pop esi
pop ebp
lea eax, [ebx + 1]
pop ebx
add esp, 0x14
ret
sub dword [esi + 0x88], ebx
lea ecx, [esi + 0x10]
push ebx
sbb dword [esi + 0x8c], 0
push edx
call fcn.1000cb5d
xor ecx, ecx
test al, al
pop edi
pop esi
sete cl
pop ebp
mov eax, ecx
pop ebx
add esp, 0x14
ret