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

Disassembly:
sub esp, 0xbc
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x44], 1
mov ebx, dword [edi + 8]
mov esi, dword [edi]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x34], esi
movzx eax, byte [ebx + 0x10]
lea edx, [eax + eax*8]
mov eax, dword [esi + 4]
lea edx, [edx + 1]
test byte [eax + edx*8 + 0x28], 2
lea ecx, [eax + edx*8]
mov edx, dword [ecx + 0x10]
mov eax, dword [edi + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
je 0x100c8816
mov ebp, dword [ecx + 0x44]
jmp 0x100c88c6
test byte [edx + 0x1c], 0x80
je 0x100c8824
mov ebp, dword [edx + 8]
jmp 0x100c88c6
lea eax, [esp + 0x4c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], eax
xorps xmm0, xmm0
lea eax, [esp + 0x48]
movlpd qword [esp + 0x97], xmm0
mov dword [esp + 0x68], eax
mov eax, 3
or dword [esp + 0x98], eax
mov word [esp + 0x90], ax
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x88], xmm0
movlpd qword [esp + 0x9f], xmm0
mov byte [esp + 0xa7], 0
mov dword [esp + 0x92], 0x10001
mov byte [esp + 0x96], 5
mov dword [esp + 0x6c], edx
mov ax, word [edx + 0x26]
mov word [esp + 0x48], ax
xor eax, eax
mov word [esp + 0x4a], ax
test byte [ecx + 0x28], 1
jne 0x100c88c2
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x74], eax
lea ebp, [esp + 0x60]
mov eax, edx
mov edx, 0x1c
lea edi, [eax + edx]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], edi
movzx edx, word [eax + 0x26]
mov eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xc], 0
jne 0x100c8b07
mov eax, 0x1020
test word [esi + 0x28], ax
jne 0x100c8b07
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x8000
or eax, 0
je 0x100c8b07
test byte [ecx + 0x28], 0x4b
jne 0x100c8b07
test byte [edi], 0x80
jne 0x100c8b07
test byte [ecx + 0x24], 0x10
jne 0x100c8b07
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
mov dword [esp + 0x3c], eax
cmp dx, 0xa
jg 0x100c8951
xor edi, edi
jmp 0x100c896e
movsx eax, dx
cdq
push edx
push eax
call fcn.1002e440
mov ecx, dword [esp + 0x1c]
add esp, 8
sub ax, 0x21
movzx edi, ax
mov eax, dword [esp + 0x3c]
xor edx, edx
cmp esi, eax
jae 0x100c8b07
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [ebx + 8]
and eax, dword [ebx + 0xc]
or ecx, eax
mov ecx, dword [esp + 0x14]
jne 0x100c8aeb
mov edx, dword [ecx + 0x2c]
cmp dword [esi + 0x14], edx
jne 0x100c8ae7
test byte [esi + 0xc], 0x82
je 0x100c8ae7
mov cl, byte [ecx + 0x24]
test cl, 0x58
je 0x100c89d2
mov eax, dword [esi]
test byte [eax + 4], 3
je 0x100c8ae3
cmp dword [eax + 0x24], edx
jne 0x100c8ae3
test cl, 0x18
je 0x100c89d2
test byte [eax + 4], 2
jne 0x100c8ae3
mov edx, dword [esi + 0x18]
test edx, edx
js 0x100c8ae3
mov eax, dword [esp + 0x14]
add edx, edx
mov ecx, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + edx*8 + 8]
call fcn.100684e0
test eax, eax
je 0x100c8ae3
mov eax, dword [ebx + 0x38]
mov ecx, 1
mov edx, dword [esp + 0x38]
mov word [ebx + 0x18], cx
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x20], 0
mov dword [eax], esi
mov eax, dword [esp + 0x20]
add eax, edi
mov word [ebx + 0x12], ax
cmp byte [edx + 0x2b], 2
je 0x100c8a39
mov edx, dword [esp + 0x24]
test dword [edx], 0x4000
jne 0x100c8a39
add eax, 0x1c
jmp 0x100c8a3c
add eax, 0xffffffe7
movzx eax, ax
lea edx, [ebx + 0x12]
mov word [edx], ax
test ax, ax
jns 0x100c8a50
xor eax, eax
mov word [ebx + 0x12], ax
mov eax, 0x2b
movsx ecx, di
mov word [ebx + 0x16], ax
cmp di, ax
jl 0x100c8a81
cmp ecx, 0x5c
jle 0x100c8a6b
movzx eax, di
jmp 0x100c8ab0
cmp ecx, 0x4a
jle 0x100c8a75
lea eax, [edi + 1]
jmp 0x100c8aad
movzx eax, byte [ecx + 0x101664b5]
add ax, di
jmp 0x100c8aad
lea eax, [ecx + 0x31]
cmp eax, 0x2b
jge 0x100c8a90
mov eax, 0x2b
jmp 0x100c8ab0
lea eax, [ecx + 0x1f]
cmp eax, 0x2b
jge 0x100c8a9f
mov eax, 0x2c
jmp 0x100c8ab0
mov eax, 0x1016650b
sub eax, ecx
movzx eax, byte [eax]
add ax, 0x2b
movzx eax, ax
mov ecx, dword [esp + 0xd0]
mov edx, ebx
mov word [ebx + 0x14], ax
mov dword [ebx + 0x2c], 0x4000
or ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
or eax, dword [esp + 0xd4]
mov dword [ebx], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 4], eax
call fcn.100c6ec0
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add esi, 0x30
test edx, edx
je 0x100c8970
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov eax, dword [esp + 0x18]
nop dword [eax + eax]
test ebp, ebp
je 0x100c8f22
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x100c8b3a
mov dl, byte [ecx + 0x24]
mov ecx, dword [ecx + 0x2c]
push eax
push dword [esp + 0x44]
call fcn.100c81e0
add esp, 8
test eax, eax
je 0x100c8ef4
test dword [ebp + 0x38], 0x100
jne 0x100c8ef4
mov eax, dword [ebp + 8]
mov edx, ebp
mov ecx, dword [esp + 0x1c]
movzx edi, word [eax]
xor eax, eax
mov dword [ebx + 0x18], eax
mov word [ebx + 0x1c], ax
mov dword [ebx + 0x30], eax
mov byte [ebx + 0x11], al
mov word [ebx + 0x12], ax
mov eax, dword [esp + 0xd0]
mov dword [ebx], eax
mov eax, dword [esp + 0xd4]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x14]
mov word [ebx + 0x16], di
mov dword [ebx + 0x20], ebp
mov dword [esp + 0x20], edi
push dword [eax + 0x2c]
call fcn.100c8080
mov edx, dword [ebp + 0x38]
add esp, 4
mov ecx, edx
mov esi, eax
and ecx, 3
mov dword [esp + 0x24], esi
cmp cl, 3
jne 0x100c8bf0
mov eax, dword [esp + 0x44]
xor edx, edx
movzx ecx, al
test esi, esi
lea eax, [edi + 0x10]
mov dword [ebx + 0x2c], 0x100
cmovne edx, ecx
mov word [ebx + 0x14], ax
mov ecx, dword [esp + 0x40]
mov byte [ebx + 0x11], dl
mov edx, ebx
push edi
call fcn.100c7180
mov ecx, dword [esp + 0x20]
add esp, 4
mov edx, ebx
call fcn.100c6ec0
mov word [ebx + 0x16], di
test eax, eax
jne 0x100c8f22
jmp 0x100c8ec4
test dl, 0x20
je 0x100c8c0b
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x100c8cab
mov ecx, dword [esp + 0x14]
mov esi, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x24]
and esi, dword [ecx + 0x38]
and edi, dword [ecx + 0x3c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
test eax, eax
je 0x100c8c50
push 0
push 0
lea ecx, [esp + 0x30]
mov edx, ebp
push ecx
push eax
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
call fcn.100c8580
mov edi, dword [esp + 0x3c]
add esp, 0x10
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x2c], 0x200
test esi, esi
jne 0x100c8c63
cmp edi, 0x80000000
je 0x100c8c7a
mov eax, dword [ebp + 0x38]
test eax, 0x800
je 0x100c8ca5
test eax, 0x400
jne 0x100c8ca5
mov eax, esi
or eax, edi
je 0x100c8cab
push dword [ecx + 0x2c]
mov ecx, dword [esp + 0x38]
mov edx, ebp
call fcn.100c83e0
add esp, 4
test eax, eax
je 0x100c8c9b
or dword [ebx + 0x2c], eax
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x100c8cb2
mov eax, esi
or eax, edi
jne 0x100c8cb2
mov dword [ebx + 0x2c], 0x240
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x100c8d1d
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x1c], 0x80
jne 0x100c8d1d
cmp dword [ebp + 0x24], edx
jne 0x100c8d1d
mov eax, dword [esp + 0x14]
test byte [eax + 0x28], 2
jne 0x100c8d1d
mov eax, esi
or eax, edi
jne 0x100c8ec4
test byte [ebp + 0x38], 4
jne 0x100c8ec4
mov ax, word [ebp + 0x30]
cmp ax, word [ecx + 0x28]
jge 0x100c8ec4
mov eax, dword [esp + 0x34]
test byte [eax + 0x28], 4
jne 0x100c8ec4
cmp byte [0x10178a3f], dl
je 0x100c8ec4
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x50], 0x20
jne 0x100c8ec4
mov eax, dword [esp + 0x44]
xor ecx, ecx
movzx eax, al
test edx, edx
cmovne ecx, eax
mov byte [ebx + 0x11], cl
movsx ecx, word [ebp + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x38]
cdq
movsx ecx, word [ecx + 0x28]
idiv ecx
mov ecx, dword [esp + 0x20]
inc eax
add eax, ecx
or esi, edi
mov word [ebx + 0x14], ax
je 0x100c8e86
mov edx, dword [esp + 0x34]
lea eax, [ecx + 0x10]
movzx esi, ax
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x50], eax
cmp dword [edx + 0x5c], ecx
jle 0x100c8e22
mov ebx, dword [esp + 0x50]
xor eax, eax
mov dword [esp + 0x24], eax
mov edi, dword [edx + 0x68]
xorps xmm0, xmm0
mov edx, dword [edi + eax]
add edi, eax
mov dword [esp + 0xac], 0
lea eax, [esp + 0x58]
movlpd qword [esp + 0xb4], xmm0
movlpd qword [esp + 0xbc], xmm0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0xb0], 0x10072db0
mov dword [esp + 0xc4], eax
test edx, edx
je 0x100c8ddf
lea ecx, [esp + 0xac]
call fcn.10064a40
mov ecx, dword [esp + 0x3c]
cmp word [esp + 0xc0], 0
jne 0x100c8e1e
movzx eax, word [edi + 8]
test ax, ax
jg 0x100c8df7
add esi, eax
jmp 0x100c8e01
dec esi
test byte [edi + 0xc], 0x82
je 0x100c8e01
sub esi, 0x13
mov edx, dword [esp + 0x34]
inc ecx
mov eax, dword [esp + 0x24]
add eax, 0x30
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x24], eax
cmp ecx, dword [edx + 0x5c]
jl 0x100c8d85
mov ebx, dword [esp + 0x54]
movzx edi, word [ebx + 0x14]
movsx ecx, di
movsx edx, si
cmp di, si
jl 0x100c8e56
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x100c8e3c
mov eax, edi
jmp 0x100c8e7e
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x100c8e48
lea eax, [edi + 1]
jmp 0x100c8e7b
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
jmp 0x100c8e7b
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x100c8e62
movzx eax, si
jmp 0x100c8e7e
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x100c8e6f
inc esi
movzx eax, si
jmp 0x100c8e7e
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, si
movzx eax, ax
mov ecx, dword [esp + 0x20]
mov word [ebx + 0x14], ax
push ecx
mov ecx, dword [esp + 0x44]
mov edx, ebx
call fcn.100c7180
mov eax, dword [esp + 0x18]
add esp, 4
test byte [eax + 0x24], 0x10
je 0x100c8ea5
cmp dword [ebp + 0x28], 0
jne 0x100c8eb4
mov ecx, dword [esp + 0x1c]
mov edx, ebx
call fcn.100c6ec0
mov ecx, eax
jmp 0x100c8eb8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov word [ebx + 0x16], ax
test ecx, ecx
jne 0x100c8f20
mov edi, dword [esp + 0x1c]
mov ecx, edi
mov edx, dword [esp + 0x14]
push 0
push ebp
mov byte [edi + 0x10], 0
call fcn.100c75f0
add esp, 8
mov dword [esp + 0x18], eax
cmp byte [edi + 0x10], 1
jne 0x100c8ef8
mov ecx, dword [esp + 0x38]
or dword [ecx + 0x1c], 0x100
jmp 0x100c8ef8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x28], 2
je 0x100c8f06
xor ebp, ebp
jmp 0x100c8f09
mov ebp, dword [ebp + 0x14]
inc dword [esp + 0x44]
test eax, eax
je 0x100c8b10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret