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

Disassembly:
sub esp, 0x58
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x18], ebp
cmp dword [ebp + 0x2c], 0
je 0x100c8c0b
cmp dword [ebp + 0x94], 0xffffffff
jne 0x100c8c0b
mov edx, dword [esp + 0x70]
test edx, edx
jns 0x100c8932
mov edx, dword [esp + 0x6c]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100c8923
sub edx, ecx
mov dword [esp + 0x70], edx
test edx, edx
je 0x100c8c0b
mov edi, dword [ebp + 0xdc]
lea esi, [ebp + 0xdc]
nop
test edi, edi
jne 0x100c8b88
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push 1
push 0xc
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov edi, eax
add esp, 8
test edi, edi
je 0x100c8b3b
mov dword [edi + 4], 0
xor ebx, ebx
mov dword [edi], 0
mov dword [edi + 8], 0
mov eax, dword [ebp + 0xd8]
test eax, eax
je 0x100c8b1b
nop
mov ecx, dword [ebp + 0x34]
cmp ecx, 0x10161c90
je 0x100c89a6
push eax
push ebx
call fcn.100cacd0
mov ecx, eax
jmp 0x100c89ea
mov eax, dword [ebp + 0xac]
xor ecx, ecx
sub eax, ecx
je 0x100c89e1
sub eax, 1
je 0x100c89cb
sub eax, 1
jne 0x100c89ea
cmp ebx, 0x57
jae 0x100c89dd
movzx ecx, word [ebx*2 + 0x101628c8]
jmp 0x100c89ea
cmp ebx, 0xa6
jae 0x100c89dd
movzx ecx, word [ebx*2 + 0x10162770]
jmp 0x100c89ea
xor ecx, ecx
jmp 0x100c89ea
cmp ebx, 0xe4
cmovbe ecx, ebx
mov word [esp + 0x3c], cx
cmp ecx, 0x187
jae 0x100c8a1c
mov eax, dword [ecx*4 + 0x1014ba38]
mov ecx, dword [ecx*4 + 0x1014ba3c]
sub ecx, eax
dec ecx
lea edx, [eax + 0x1014ac60]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
jmp 0x100c8a44
lea eax, [ecx - 0x187]
mov ecx, dword [ebp + 0x40]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.100a7a80
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], edx
test edx, edx
jne 0x100c8a68
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x1010d362
mov dword [esp + 0x34], edx
mov ecx, dword [edi + 4]
mov esi, dword [edi]
inc ecx
test esi, esi
js 0x100c8aee
cmp ecx, esi
jbe 0x100c8aad
nop word [eax + eax]
mov eax, esi
add esi, 8
shr eax, 1
add esi, eax
cmp ecx, esi
ja 0x100c8a80
cmp esi, 0xccccccc
jae 0x100c8ae8
mov ecx, dword [edi + 8]
test esi, esi
jne 0x100c8acf
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi], esi
inc dword [edi + 4]
mov eax, dword [edi + 4]
movups xmm0, xmmword [esp + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
movups xmmword [eax + ecx*4 - 0x14], xmm0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [ecx - 4], eax
jmp 0x100c8b06
lea eax, [esi + esi*4]
shl eax, 2
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 8
test eax, eax
jne 0x100c8aa8
cmp esi, dword [edi]
jbe 0x100c8aad
mov dword [edi], 0xffffffff
movups xmm0, xmmword [0x10161c90]
mov eax, dword [0x10161ca0]
mov dword [0x10168b80], eax
movups xmmword [0x10168b70], xmm0
mov eax, dword [ebp + 0xd8]
inc ebx
cmp ebx, eax
jb 0x100c8990
lea esi, [ebp + 0xdc]
mov eax, dword [edi + 4]
test eax, eax
je 0x100c8b35
push 0x100b8090
push 0x14
push eax
push dword [edi + 8]
call fcn.100a4230
add esp, 0x10
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, edi
xor eax, eax
lock cmpxchg dword [esi], ecx
test eax, eax
je 0x100c8b84
test edi, edi
je 0x100c8b79
mov eax, dword [edi + 4]
test eax, eax
je 0x100c8b5a
add eax, 0xffffffff
jne 0x100c8b52
mov dword [edi + 4], eax
push dword [edi + 8]
call ebx
push edi
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [edi + 8], 0
call ebx
add esp, 8
mov edi, dword [esi]
nop
test edi, edi
je 0x100c8953
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 0
mov word [esp + 0x50], ax
test edi, edi
je 0x100c8c0b
mov ecx, dword [edi + 8]
xor ebx, ebx
mov edi, dword [edi + 4]
sub edi, 1
mov dword [esp + 0x10], ecx
js 0x100c8c0b
lea esi, [edi + ebx]
shr esi, 1
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [ecx + 8]
lea ebp, [ecx + 8]
lea eax, [esp + 0x48]
mov dword [esp + 0x14], ecx
cmova eax, ebp
push dword [eax]
push dword [ecx + 4]
push dword [esp + 0x74]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov edx, dword [esp + 0x7c]
add esp, 0xc
test eax, eax
jne 0x100c8bf5
mov eax, edx
sub eax, dword [ebp]
test eax, eax
jns 0x100c8bfc
lea edi, [esi - 1]
jmp 0x100c8c03
test eax, eax
jle 0x100c8c17
lea ebx, [esi + 1]
mov ecx, dword [esp + 0x10]
cmp ebx, edi
jle 0x100c8bb8
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x58
ret 0xc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100c8c0b
movzx esi, word [eax + 0x10]
mov eax, dword [esp + 0x18]
mov edx, esi
mov ecx, dword [eax + 0x34]
cmp ecx, 0x10161c90
je 0x100c8c47
push dword [eax + 0xd8]
push edx
call fcn.100c7fd0
mov ecx, eax
jmp 0x100c8ccd
mov eax, dword [eax + 0xac]
xor ecx, ecx
sub eax, ecx
je 0x100c8cc4
sub eax, 1
je 0x100c8c8e
sub eax, 1
jne 0x100c8ccd
push eax
lea eax, [esp + 0x74]
mov dword [esp + 0x64], ecx
push eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x60], 0x10162c18
mov dword [esp + 0x64], 0x56
call fcn.1008ba60
test eax, eax
je 0x100c8cc0
movzx ecx, byte [eax + 2]
jmp 0x100c8ccd
push 0
lea eax, [esp + 0x74]
mov dword [esp + 0x64], ecx
push eax
lea ecx, [esp + 0x5c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x60], 0x10162978
mov dword [esp + 0x64], 0xa5
call fcn.1008ba60
test eax, eax
je 0x100c8cc0
movzx ecx, byte [eax + 2]
jmp 0x100c8ccd
xor ecx, ecx
jmp 0x100c8ccd
cmp edx, 0xe4
cmovbe ecx, edx
test ecx, ecx
jne 0x100c8cda
test si, si
jne 0x100c8c0b
mov eax, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
mov al, 1
pop ebx
add esp, 0x58
ret 0xc