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

Disassembly:
sub esp, 0xb0
mov eax, dword [0x10119540]
xor eax, esp
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0xc0]
push ebx
mov ebx, dword [esp + 0xb8]
push ebp
push esi
push edi
cmp dword [ebx + 0x7608], 0
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edi
jne 0x100c5779
mov eax, dword [esp + 0xcc]
add eax, edi
jmp 0x100c577f
mov eax, dword [ebx + 0x7600]
mov edx, dword [ebx + 0x7578]
mov ebp, edi
mov esi, dword [ebx + 0x7588]
mov dword [esp + 0x30], eax
add esi, edx
cmp dword [esp + 0xd8], 0
mov eax, dword [ebx + 0x74b0]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x74b4]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x74b8]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], eax
je 0x100c610c
push dword [esp + 0xd4]
mov dword [ebx + 0x750c], 1
mov eax, dword [ebx + 0x682c]
mov dword [esp + 0xb4], eax
mov eax, dword [ebx + 0x6830]
mov dword [esp + 0xb8], eax
mov eax, dword [ebx + 0x6834]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x88]
push ecx
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
jbe 0x100c5824
mov eax, 0xffffffec
jmp 0x100c6134
push dword [ebx]
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.100c63d0
push dword [ebx + 8]
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.100c63d0
push dword [ebx + 4]
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.100c63d0
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x3c], eax
nop word [eax + eax]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x34]
mov eax, dword [eax + edx*8 + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xa4]
mov esi, dword [ecx + ebp*8 + 4]
mov ecx, dword [esp + 0x9c]
mov al, byte [ecx + eax*8 + 2]
mov ecx, dword [esp + 0xa4]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0xac]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0x3c]
mov byte [esp + 0x13], al
mov al, byte [ecx + ebp*8 + 2]
mov ecx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x40]
movzx edx, word [ecx + edx*8]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x2c], edx
movzx edx, word [ecx + ebp*8]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x60], edx
movzx edx, word [ecx + ebp*8]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x3c]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x34], edx
movzx edx, byte [ecx + ebp*8 + 3]
mov ebp, dword [esp + 0x84]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x50], edx
cmp al, 1
jbe 0x100c5b3b
cmp dword [esp + 0xdc], 0
je 0x100c5a27
cmp al, 0x19
jb 0x100c5a27
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, ebp
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, esi
cmp ebx, 0x20
ja 0x100c5a10
cmp edi, dword [esp + 0x94]
jb 0x100c59d9
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c5a00
mov esi, dword [esp + 0x90]
cmp edi, esi
je 0x100c5a10
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c59f5
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x8c], edi
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x100c5a96
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
lea edx, [eax + esi]
mov dword [esp + 0x24], edx
cmp ebx, 0x20
ja 0x100c5a96
cmp edi, dword [esp + 0x94]
jb 0x100c5a5f
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c5a86
mov esi, dword [esp + 0x90]
cmp edi, esi
je 0x100c5a96
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100c5a7b
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x8c], edi
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ecx
mov al, byte [esp + 0x13]
test al, al
je 0x100c5aea
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x70], ecx
mov dl, byte [esp + 0x23]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100c5c21
cmp ebx, 0x20
ja 0x100c5c21
mov ebp, dword [esp + 0x90]
cmp edi, dword [esp + 0x94]
jb 0x100c5bf3
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x8c], edi
mov esi, dword [edi]
mov dword [esp + 0x84], esi
jmp 0x100c5c2f
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x100c5b76
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + edx*4 + 0xb0]
neg eax
mov dword [esp + 0x24], ecx
sbb eax, eax
and eax, 4
mov esi, dword [esp + eax + 0xb0]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ecx
jmp 0x100c5ab9
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0x88], ebx
lea ecx, [eax + edx]
xor edx, edx
add ecx, esi
cmp ecx, 3
jne 0x100c5bbe
mov ecx, dword [esp + 0xb0]
lea eax, [ecx - 1]
test eax, eax
sete dl
add edx, eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x24], edx
mov dword [esp + 0xb8], eax
jmp 0x100c5aab
mov eax, dword [esp + ecx*4 + 0xb0]
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x24], edx
cmp ecx, 1
je 0x100c5aa4
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb8], eax
jmp 0x100c5aab
cmp edi, ebp
je 0x100c5c28
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x100c5c08
mov ecx, edi
sub ecx, ebp
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x8c], edi
mov esi, dword [edi]
add ebx, eax
mov dword [esp + 0x84], esi
jmp 0x100c5c2f
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x84]
test dl, dl
je 0x100c5c58
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x28]
add ecx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x6c], ecx
cmp ebx, 0x20
ja 0x100c5c9e
cmp edi, dword [esp + 0x94]
jb 0x100c5c72
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c5c8e
cmp edi, ebp
je 0x100c5c9e
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x100c5c87
mov ecx, edi
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], edi
mov eax, dword [esp + 0x38]
lea edx, [ebx + eax]
mov ebx, esi
mov ecx, edx
mov dword [esp + 0x88], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x2c]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x98], ebx
lea ecx, [edx + eax]
lea ebx, [eax + edx]
neg ecx
and ecx, 0x1f
mov edx, esi
shr edx, cl
and edx, dword [eax*4 + 0x1000d870]
mov eax, dword [esp + 0x60]
movzx eax, ax
add edx, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0xa8], edx
cmp ebx, 0x20
ja 0x100c5d4a
cmp edi, dword [esp + 0x94]
jb 0x100c5d1a
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100c5d3a
cmp edi, ebp
je 0x100c5d4a
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x100c5d2f
mov ecx, edi
sub ecx, ebp
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], edi
mov edx, dword [esp + 0x50]
mov eax, esi
mov esi, dword [esp + 0x24]
add ebx, edx
movq xmm0, qword [esp + 0x6c]
mov ecx, ebx
neg ecx
mov dword [esp + 0x88], ebx
and ecx, 0x1f
movq qword [esp + 0x78], xmm0
shr eax, cl
and eax, dword [edx*4 + 0x1000d870]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
movzx ecx, cx
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x28]
add edx, ecx
add eax, ecx
mov dword [esp + 0x38], edx
add ecx, dword [esp + 0x1c]
mov ebp, edx
sub ebp, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], ecx
cmp ecx, dword [esp + 0x4c]
ja 0x100c5fe6
mov ecx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x30]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x100c5fe6
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
sub ecx, dword [esp + 0x18]
add eax, 0x20
cmp ecx, eax
jb 0x100c5fe6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x28]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x100c5e4c
mov edx, dword [esp + 0x1c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x24]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x100c5e48
mov eax, dword [esp + 0x54]
add ecx, 0x10
add edx, 0x20
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x100c5e30
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], eax
mov eax, edx
sub eax, ecx
cmp esi, eax
jbe 0x100c5ec6
mov eax, edx
sub eax, dword [esp + 0x5c]
cmp esi, eax
ja 0x100c581a
mov esi, dword [esp + 0x58]
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x14]
add ebp, eax
lea eax, [ecx + ebp]
cmp eax, esi
ja 0x100c5ea3
push ecx
push ebp
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov eax, dword [esp + 0x38]
add esp, 0xc
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x100c601d
sub esi, ebp
push esi
push ebp
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0x44]
add esp, 0xc
mov eax, dword [esp + 0x14]
add edx, esi
mov ebp, dword [esp + 0x44]
sub eax, esi
mov esi, dword [esp + 0x24]
jmp 0x100c5eca
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
cmp esi, 0x10
jb 0x100c5f19
lea esi, [eax + edx]
movups xmm0, xmmword [ebp]
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x100c5f08
lea eax, [edx + 0x10]
lea ecx, [ebp + 0x10]
nop dword [eax + eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, esi
jb 0x100c5ef0
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x100c601d
cmp esi, 8
jae 0x100c5f4f
movzx eax, byte [ebp]
mov byte [edx], al
movzx eax, byte [ebp + 1]
mov byte [edx + 1], al
movzx eax, byte [ebp + 2]
mov byte [edx + 2], al
movzx eax, byte [ebp + 3]
add ebp, dword [esi*4 + 0x1000e1a8]
mov byte [edx + 3], al
mov eax, dword [ebp]
sub ebp, dword [esi*4 + 0x1000e1c8]
mov dword [edx + 4], eax
jmp 0x100c5f5a
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x14]
cmp eax, 8
jbe 0x100c5f08
lea esi, [eax - 8]
add ebp, 8
lea eax, [edx + 8]
mov ecx, eax
add esi, eax
sub ecx, ebp
cmp ecx, 0x10
jge 0x100c5fa1
sub ebp, eax
nop dword [eax]
mov ecx, dword [eax + ebp]
mov edx, dword [eax + ebp + 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
add eax, 8
cmp eax, esi
jb 0x100c5f80
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x100c601d
mov ecx, dword [esp + 0x14]
movups xmm0, xmmword [ebp]
add ecx, 0xfffffff8
movups xmmword [eax], xmm0
cmp ecx, 0x10
jle 0x100c5f08
add eax, 0x10
lea ecx, [ebp + 0x10]
nop
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, esi
jb 0x100c5fc0
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x100c601d
push dword [esp + 0x58]
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push dword [esp + 0x60]
push dword [esp + 0x4c]
push dword [esp + 0x58]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x50]
movq qword [eax], xmm0
push ebp
mov dword [eax + 8], esi
call fcn.100c6160
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
cmp eax, 0xffffff88
ja 0x100c6134
add ebp, eax
sub dword [esp + 0xd8], 1
mov dword [esp + 0x18], ebp
je 0x100c60b1
cmp ebx, 0x20
ja 0x100c58a0
cmp edi, dword [esp + 0x94]
jb 0x100c606e
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], ebx
mov ebp, dword [edi]
mov dword [esp + 0x84], ebp
jmp 0x100c58a0
mov edx, dword [esp + 0x90]
cmp edi, edx
je 0x100c58a0
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x100c608e
mov ecx, edi
sub ecx, edx
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x8c], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebx
jmp 0x100c58a0
cmp ebx, 0x20
ja 0x100c60d9
cmp edi, dword [esp + 0x94]
jae 0x100c581a
cmp edi, dword [esp + 0x90]
jne 0x100c581a
cmp ebx, 0x20
jb 0x100c581a
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
mov edi, dword [esp + 0x68]
mov dword [esi + 0x6830], eax
mov eax, dword [esp + 0xb8]
mov dword [esi + 0x682c], ecx
mov dword [esi + 0x6834], eax
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
sub esi, edx
sub eax, ebp
cmp esi, eax
jbe 0x100c611f
mov eax, 0xffffffba
jmp 0x100c6134
test ebp, ebp
je 0x100c6130
push esi
push edx
push ebp
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add ebp, esi
sub ebp, edi
mov eax, ebp
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100913c0
add esp, 0xb0
ret 0x20