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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov ecx, dword [ebp + 0xc]
call 0x100c50b7
pop eax
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
movdqa xmm0, xmmword [0x10335cf0]
lea edi, [esp + 0xd8]
mov dword [esp + 0x130], 1
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], edi
mov eax, dword [ecx + 0x48]
movzx ebx, byte [ecx + 0x4d]
movzx ecx, byte [ecx + 0x4c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x138], eax
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], cl
mov byte [esp + 0x13c], cl
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 4
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 4
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 4
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 4
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 1
movdqu xmmword [esp + 0x120], xmm0
lea ecx, [esp + 0x140]
lea edx, [esp + 0x50]
call fcn.101002b0
mov esi, dword [ebp + 8]
cmp dword [esp + 0x140], 0x110015
jne 0x100c5262
movdqu xmm0, xmmword [esp + 0x144]
movdqu xmm1, xmmword [esp + 0x154]
movdqu xmm2, xmmword [esp + 0x164]
movdqu xmm3, xmmword [esp + 0x174]
jmp 0x100c534a
mov ebx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b8]
test ebx, ebx
mov dword [esp], eax
mov dword [esp + 8], ecx
je 0x100c52a9
mov eax, dword [esp]
mov esi, dword [0x1044eff8]
lea edi, [eax + 4]
jmp 0x100c5296
add edi, 0x24
dec ebx
je 0x100c52a9
cmp dword [edi], 0
je 0x100c5290
push dword [edi - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c5290
cmp dword [esp + 8], 0
je 0x100c52c1
mov eax, dword [0x1044eff8]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
movsd xmm7, qword [esp + 0x194]
movsd xmm6, qword [esp + 0x19c]
mov eax, dword [esp + 0x140]
movq xmm5, qword [esp + 0x18c]
movdqu xmm0, xmmword [esp + 0x144]
movdqu xmm1, xmmword [esp + 0x154]
movdqu xmm2, xmmword [esp + 0x164]
movdqu xmm3, xmmword [esp + 0x174]
movq xmm4, qword [esp + 0x184]
mov esi, dword [ebp + 8]
movsd qword [esp + 0x30], xmm7
movsd qword [esp + 0x38], xmm6
movsd xmm7, qword [esp + 0x1a4]
movq xmm6, qword [esp + 0x1ac]
cmp eax, 0x110015
movq qword [esp + 0x28], xmm5
movsd qword [esp + 0x40], xmm7
movq qword [esp + 0x48], xmm6
jne 0x100c53c3
movdqu xmmword [esi + 8], xmm0
movdqu xmmword [esi + 0x18], xmm1
movdqu xmmword [esi + 0x28], xmm2
movdqu xmmword [esi + 0x38], xmm3
mov dword [esi], 0
mov dword [esi + 4], 0
lea ecx, [esp + 0xd8]
call fcn.100abe10
mov ecx, 4
xor ebx, ebx
inc ebx
mov dword [esp], ecx
nop word cs:[eax + eax]
nop dword [eax]
cmp ebx, 1
je 0x100c53a2
lea edi, [ecx + 0x74]
dec ebx
call fcn.100ab340
mov ecx, edi
jmp 0x100c5390
cmp dword [esp + 0x14], 0
je 0x100c5dbd
mov eax, dword [0x1044eff8]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100c5dbd
movdqu xmmword [esp + 0x78], xmm1
movsd xmm1, qword [esp + 0x48]
lea ecx, [esp + 0xb0]
movdqu xmmword [esp + 0x88], xmm2
movdqu xmmword [esp + 0x98], xmm3
movq qword [esp + 0xa8], xmm4
mov dword [esp + 0x64], eax
movdqu xmmword [esp + 0x68], xmm0
movsd xmm2, qword [esp + 0x40]
movsd qword [esp + 0x160], xmm1
movsd qword [ecx + 0x20], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x158], xmm2
movsd qword [ecx + 0x18], xmm2
movq xmm2, qword [esp + 0x30]
movsd qword [esp + 0x150], xmm1
movsd qword [ecx + 0x10], xmm1
movq xmm1, qword [esp + 0x28]
movq qword [esp + 0x148], xmm2
movq qword [ecx + 8], xmm2
movq qword [esp + 0x140], xmm1
movq qword [ecx], xmm1
lea ecx, [esp + 0xd8]
call fcn.100abe10
lea edi, [esp + 0x140]
lea esi, [esp + 0x64]
mov ecx, 0x1d
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x10]
call fcn.100b04c0
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
imul eax, ebx, 0x74
add eax, esi
push 0x74
lea ecx, [esp + 0x144]
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
inc ebx
mov dword [esp + 0x18], ebx
jne 0x100c54ba
mov ebx, dword [ebp + 0xc]
mov esi, 4
mov dword [esp], 0
jmp 0x100c57de
mov ecx, dword [ebp + 0xc]
movzx eax, word [ecx + 0x45]
mov word [esp + 0x3c], ax
mov eax, dword [ecx + 0x41]
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 0x40]
movzx ecx, byte [ecx + 0x47]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x3f], al
mov byte [esp + 0x3e], cl
lea eax, [esp + 0x28]
mov dword [esp], esi
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.10113010
add esp, 0x14
mov ecx, dword [ebp + 8]
cmp byte [esp + 0x88], 7
jne 0x100c5623
mov eax, dword [esp + 0x7c]
movq xmm0, qword [esp + 0x74]
movq xmm2, qword [esp + 0x6c]
movq xmm1, qword [esp + 0x64]
mov dword [esp + 0x60], eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x2c]
movq qword [esp + 0x50], xmm2
movq qword [esp + 0x58], xmm0
movq qword [esp + 0xe0], xmm2
movq qword [esp + 0xe8], xmm0
movq qword [esp + 0xd8], xmm1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100c5726
mov edi, dword [esp + 8]
xor esi, esi
jmp 0x100c55b1
mov eax, dword [esp]
add edi, 0x1c
inc esi
dec eax
je 0x100c5726
mov dword [esp], eax
mov eax, dword [edi]
mov edx, 0
add eax, 0xfffffff8
movzx ecx, ax
lea eax, [ecx + 1]
cmp cx, 8
cmovae eax, edx
cmp eax, 3
ja 0x100c55a3
mov eax, dword [eax*4 + 0x100c6044]
lea ecx, [esi + esi*8]
lea ebx, [ecx + ecx*2]
add ebx, esi
add ebx, dword [esp + 8]
add eax, dword [esp + 0xc]
jmp eax
movsd xmm0, qword [esp + 0x84]
movsd xmm1, qword [esp + 0x6c]
mov esi, dword [esp + 0x34]
movsd qword [esp + 0x160], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 0x148], xmm1
movsd qword [esp + 0x58], xmm1
inc esi
movsd qword [esp + 0x158], xmm0
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [esp + 0x64]
mov eax, dword [esp + 0x150]
movsd qword [esp + 0x140], xmm0
movsd qword [esp + 0x50], xmm0
movsd xmm1, qword [esp + 0x174]
movsd xmm2, qword [esp + 0x15c]
mov dword [esp + 0x60], eax
movq xmm0, qword [esp + 0x16c]
mov eax, dword [esp + 0x60]
movsd qword [ecx + 0x40], xmm1
movsd xmm1, qword [esp + 0x164]
movsd qword [ecx + 0x28], xmm2
movq xmm2, qword [esp + 0x50]
movq qword [ecx + 0x38], xmm0
movsd qword [ecx + 0x30], xmm1
movsd xmm1, qword [esp + 0x154]
movsd qword [ecx + 0x20], xmm1
movq xmm1, qword [esp + 0x58]
mov dword [ecx + 8], 0x1f
movq qword [ecx + 0xc], xmm2
mov dword [ecx + 0x1c], eax
movq qword [ecx + 0x14], xmm1
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
nop dword [eax]
cmp esi, 1
je 0x100c5cc3
lea edi, [ecx + 0x1c]
dec esi
call fcn.100acd20
mov ecx, edi
jmp 0x100c5710
cmp dword [esp + 0x30], 0
je 0x100c573f
mov eax, dword [0x1044eff8]
push dword [esp + 8]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xf0]
movq xmm0, qword [esp + 0xe8]
movq xmm2, qword [esp + 0xd8]
movq xmm1, qword [esp + 0xe0]
mov dword [esp + 0x158], eax
movq qword [esp + 0x150], xmm0
movq qword [esp + 0x148], xmm1
movq qword [esp + 0x140], xmm2
lea ecx, [esp + 0x1c]
call fcn.100b0410
mov ebx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movq xmm0, qword [esp + 0x140]
movq xmm1, qword [esp + 0x148]
movq xmm2, qword [esp + 0x150]
mov ecx, dword [esp + 0x158]
lea eax, [edx + edx*8]
lea eax, [eax + eax*2]
add eax, edx
inc edx
mov dword [esi + eax + 0x18], ecx
movq qword [esi + eax + 0x10], xmm2
movq qword [esi + eax + 8], xmm1
movq qword [esi + eax], xmm0
mov dword [esp], edx
mov dword [esp + 0x24], edx
movzx eax, byte [ebx + 0x30]
movzx ecx, byte [ebx + 0x36]
movzx edx, byte [ebx + 0x37]
mov ah, byte [ebx + 0x38]
cmp al, 3
je 0x100c5810
cmp al, 2
je 0x100c5810
mov edi, dword [ebx + 0x28]
mov dword [esp + 8], edi
lock inc dword [edi]
jle 0x100c5dd4
mov edi, dword [ebx + 0x2c]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 8]
mov byte [esp + 0x9a], cl
mov byte [esp + 0x9b], dl
mov edx, dword [esp + 0xc]
movzx ecx, byte [ebx + 0x3e]
mov byte [esp + 0x9c], ah
mov dword [esp + 0x8c], edi
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x90], edx
mov edx, dword [ebx + 8]
mov byte [esp + 0x94], al
mov byte [esp + 0xa2], cl
mov ecx, dword [ebx + 0x10]
xor eax, eax
test edx, edx
setne al
cmp edx, 2
cmove eax, edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x6c], eax
xor eax, eax
test ecx, ecx
setne al
cmp ecx, 2
cmove eax, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
xor eax, eax
test edi, edi
mov edx, dword [ebx + 0x14]
setne al
cmp edi, 2
cmove eax, edi
mov edi, dword [ebx]
mov dword [esp + 0x78], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x64], edi
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x68], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x7c], eax
xor eax, eax
test edi, edi
setne al
cmp edi, 2
cmove eax, edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x39]
mov dword [esp + 0x9d], eax
movzx eax, byte [ebx + 0x3d]
mov byte [esp + 0xa1], al
movzx eax, word [ebx + 0x34]
mov word [esp + 0x98], ax
mov eax, dword [esp]
test eax, eax
je 0x100c59dd
lea ebx, [eax*4]
mov eax, dword [0x1044f00c]
mov edi, dword [0x1044eff8]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x100c5921
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100c5dc7
mov dword [edi], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100c5dc7
mov edi, eax
xor eax, eax
cmp dword [esp], 8
lea edx, [esp + 0x140]
jb 0x100c59c2
mov eax, dword [esp]
movdqa xmm0, xmmword [0x10335d00]
movdqa xmm1, xmmword [0x10335d10]
movdqa xmm3, xmmword [str.pppp_b_b_b_b]
movdqa xmm4, xmmword [0x10335d30]
movd xmm2, esi
xor ecx, ecx
pshufd xmm2, xmm2, 0
and eax, 0xfffffff8
nop word cs:[eax + eax]
nop
movdqa xmm5, xmm0
pshufd xmm6, xmm0, 0xf5
paddd xmm0, xmm4
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
paddd xmm5, xmm2
movdqu xmmword [edi + ecx*4], xmm5
paddd xmm5, xmm3
movdqu xmmword [edi + ecx*4 + 0x10], xmm5
add ecx, 8
cmp eax, ecx
jne 0x100c5980
cmp dword [esp], eax
je 0x100c59e9
lea ecx, [eax + eax*8]
add esi, eax
lea ecx, [ecx + ecx*2]
add esi, ecx
mov ecx, dword [esp]
nop
mov dword [edi + eax*4], esi
inc eax
add esi, 0x1c
cmp ecx, eax
jne 0x100c59d0
jmp 0x100c59e9
mov edi, 4
lea edx, [esp + 0x140]
movsd xmm1, qword [esp + 0x94]
movsd xmm2, qword [esp + 0x8c]
movq xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x84]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x7c]
movq qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x158], xmm2
movq xmm2, qword [esp + 0x64]
movsd qword [esp + 0x150], xmm1
movq xmm1, qword [esp + 0x6c]
movq qword [esp + 0x140], xmm2
movq qword [esp + 0x148], xmm1
mov ebx, dword [esp]
push ebx
push edi
push edx
call fcn.100c4880
add esp, 0xc
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push ebx
push edi
push eax
lea eax, [esp + 0x14c]
push eax
call fcn.100c78e0
add esp, 0x10
mov eax, dword [esp + 0x140]
cmp eax, 2
jne 0x100c5c22
mov esi, dword [esp + 0x144]
mov ebx, dword [esp + 0x148]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], ebx
lock inc dword [esi]
jle 0x100c5dd4
mov eax, dword [0x1044f00c]
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], ebx
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x100c5b08
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100c5dd8
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100c5dd8
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [esp + 0x438], 0
mov byte [esp + 0x43c], 0
mov dword [esp + 0x440], 4
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov dword [esp + 0x140], eax
mov eax, dword [0x1044f00c]
mov dword [esp + fcn.100aad60], 0x10337df0
mov dword [esp + 0x44c], 0
mov dword [esp + 0x148], 2
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x100c5ba3
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100c5de6
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0x310
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100c5de6
mov ecx, eax
push 0x310
lea eax, [esp + 0x144]
push eax
mov dword [esp + 0x10], ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x148], esi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], eax
mov eax, dword [0x1044f00c]
mov dword [esp + 0x140], 1
mov dword [esp + 0x144], 1
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
je 0x100c5ce7
mov esi, dword [ebp + 8]
jmp 0x100c5cff
movsd xmm1, qword [esp + 0x16c]
movsd xmm2, qword [esp + 0x174]
mov ecx, dword [esp + 0x184]
movq xmm0, qword [esp + 0x17c]
movsd qword [esi + 0x2c], xmm1
movsd xmm1, qword [esp + 0x15c]
movsd qword [esi + 0x34], xmm2
movsd xmm2, qword [esp + 0x164]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0xc]
movq qword [esi + 0x3c], xmm0
movsd qword [esi + 0x1c], xmm1
movsd xmm1, qword [esp + 0x154]
movsd qword [esi + 0x24], xmm2
movq xmm2, qword [esp + 0x14c]
movsd qword [esi + 0x14], xmm1
movq xmm1, qword [esp + 0x144]
movq qword [esi + 0xc], xmm2
mov dword [esi], eax
movq qword [esi + 4], xmm1
lock dec dword [ecx]
jne 0x100c5cac
call fcn.100af6b0
cmp dword [esp], 0
je 0x100c5d5b
mov eax, dword [0x1044eff8]
push edi
push 0
jmp 0x100c5d54
cmp dword [esp + 0x30], 0
je 0x100c5cdc
mov eax, dword [0x1044eff8]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp + 8]
mov ecx, dword [esp]
jmp 0x100c537e
call sub.KERNEL32.dll_GetProcessHeap
mov esi, dword [ebp + 8]
test eax, eax
je 0x100c5df7
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0x14
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100c5df7
mov ecx, dword [esp + 0x150]
cmp dword [esp], 0
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 8]
movq xmm0, qword [esp + 0x140]
movq xmm1, qword [esp + 0x148]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi], 2
je 0x100c5d5b
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.100abd10
cmp dword [esp + 0x20], 0
je 0x100c5d80
mov eax, dword [0x1044eff8]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp], ecx
nop dword [eax]
cmp esi, 1
je 0x100c5da2
lea edi, [ecx + 0x74]
dec esi
call fcn.100ab340
mov ecx, edi
jmp 0x100c5d90
cmp dword [esp + 0x14], 0
je 0x100c5dba
mov eax, dword [0x1044eff8]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp + 8]
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100c5e03
ud2
push 8
push 4
call fcn.1001ac80
add esp, 8
jmp 0x100c5e03
push 0x310
push 8
call fcn.1001ac80
add esp, 8
jmp 0x100c5e03
push 0x14
push 4
call fcn.1001ac80
add esp, 8
ud2