Function at 0x10014820
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x100a900c]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x100b0238]
mov byte [0x100b0239], al
test al, al
je 0x10014dbc
mov eax, dword [0x100cab48]
lea ecx, [ebp - 8]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add eax, 0x191f9
push edi
push ecx
push 0x40
push 0x4c
push eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0x4c
call esi
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009dca8]
movups xmmword [eax], xmm0
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009dcb8]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009dcc8]
movups xmmword [eax + 0x20], xmm0
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009dcd8]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [ebp - 0x10]
movq xmm0, qword [0x1009dce8]
movq qword [eax + 0x40], xmm0
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x1009dcf0]
mov dword [eax + 0x48], ecx
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call esi
mov eax, dword [0x100cab48]
lea ecx, [ebp - 8]
push ecx
push 0x40
add eax, 0x19426
mov dword [ebp - 0xc], 0x1ad
push 0x1ad
push eax
mov dword [ebp - 0x10], eax
call esi
xor edx, edx
nop
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d44c]
movups xmmword [ecx + edx], xmm0
mov eax, dword [0x1009d45c]
mov dword [ecx + edx + 0x10], eax
mov ax, word [0x1009d460]
mov word [ecx + edx + 0x14], ax
add edx, 0x4b
cmp edx, 0xe1
jl 0x100148f0
xor edx, edx
nop
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d5d4]
add ecx, edx
add edx, 0x3c
movups xmmword [ecx + 0xe0], xmm0
movq xmm0, qword [0x1009d5e4]
movq qword [ecx + 0xf0], xmm0
mov eax, dword [0x1009d5ec]
mov dword [ecx + 0xf8], eax
mov al, byte [0x1009d5f0]
mov byte [ecx + 0xfc], al
cmp edx, 0x79
jl 0x10014920
mov ecx, dword [ebp - 0x10]
movq xmm0, qword [0x1009ec30]
movq qword [ecx + 0x19e], xmm0
mov eax, dword [0x1009ec38]
mov dword [ecx + 0x1a6], eax
mov ax, word [0x1009ec3c]
mov word [ecx + 0x1aa], ax
mov al, byte [0x1009ec3e]
mov byte [ecx + 0x1ac], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call esi
mov eax, dword [0x100cab48]
lea ecx, [ebp - 8]
push ecx
push 0x40
add eax, 0x186bb
mov dword [ebp - 0xc], 0x16b
push 0x16b
push eax
mov dword [ebp - 0x10], eax
call esi
xor edx, edx
nop word [eax + eax]
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d6e4]
movups xmmword [ecx + edx], xmm0
mov ax, word [0x1009d6f4]
mov word [ecx + edx + 0x10], ax
mov al, byte [0x1009d6f6]
mov byte [ecx + edx + 0x12], al
add edx, 0x3d
cmp edx, 0x7b
jl 0x100149d0
mov eax, dword [ebp - 0x10]
xor edx, edx
mov byte [eax + 0x16], 0x10
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x20], 0x14
nop word [eax + eax]
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d5d4]
add ecx, edx
add edx, 0x34
movups xmmword [ecx + 0xb6], xmm0
movq xmm0, qword [0x1009d5e4]
movq qword [ecx + 0xc6], xmm0
mov eax, dword [0x1009d5ec]
mov dword [ecx + 0xce], eax
mov al, byte [0x1009d5f0]
mov byte [ecx + 0xd2], al
cmp edx, 0x69
jl 0x10014a10
mov ecx, dword [ebp - 0x10]
movq xmm0, qword [0x1009ec30]
movq qword [ecx + 0x15c], xmm0
mov eax, dword [0x1009ec38]
mov dword [ecx + 0x164], eax
movzx eax, word [0x1009ec3c]
mov word [ecx + 0x168], ax
movzx eax, byte [0x1009ec3e]
mov byte [ecx + 0x16a], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call esi
mov eax, dword [0x100cab48]
lea ecx, [ebp - 8]
push ecx
push 0x40
add eax, 0x18959
mov dword [ebp - 0xc], 0x16a
push 0x16a
push eax
mov dword [ebp - 0x10], eax
call esi
mov eax, dword [ebp - 0x10]
xor edx, edx
mov byte [eax + 0x16], 0xc
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x20], 0x10
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d370]
movups xmmword [ecx], xmm0
movzx eax, word [0x1009d380]
mov word [ecx + 0x10], ax
movzx eax, byte [0x1009d382]
mov byte [ecx + 0x12], al
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d370]
movups xmmword [ecx + 0x3c], xmm0
movzx eax, word [0x1009d380]
mov word [ecx + 0x4c], ax
movzx eax, byte [0x1009d382]
mov byte [ecx + 0x4e], al
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d370]
movups xmmword [ecx + 0x79], xmm0
movzx eax, word [0x1009d380]
mov word [ecx + 0x89], ax
movzx eax, byte [0x1009d382]
mov byte [ecx + 0x8b], al
nop dword [eax]
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d5d4]
add ecx, edx
add edx, 0x34
movups xmmword [ecx + 0xb5], xmm0
movq xmm0, qword [0x1009d5e4]
movq qword [ecx + 0xc5], xmm0
mov eax, dword [0x1009d5ec]
mov dword [ecx + 0xcd], eax
mov al, byte [0x1009d5f0]
mov byte [ecx + 0xd1], al
cmp edx, 0x69
jl 0x10014b40
mov ecx, dword [ebp - 0x10]
movq xmm0, qword [0x1009ec30]
movq qword [ecx + 0x15b], xmm0
mov eax, dword [0x1009ec38]
mov dword [ecx + 0x163], eax
mov ax, word [0x1009ec3c]
mov word [ecx + 0x167], ax
mov al, byte [0x1009ec3e]
mov byte [ecx + 0x169], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call esi
mov eax, dword [0x100cab48]
lea ecx, [ebp - 8]
push ecx
push 0x40
add eax, 0x5a16f
mov dword [ebp - 0xc], 0x2f2
push 0x2f2
push eax
mov dword [ebp - 0x10], eax
call esi
mov eax, dword [ebp - 0x10]
mov edi, 0x1689
xor edx, edx
mov dword [eax], 0x66666667
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009dc8c]
movups xmmword [ecx + 7], xmm0
mov eax, dword [0x1009dc9c]
mov dword [ecx + 0x17], eax
mov eax, dword [ebp - 0x10]
mov word [eax + 0x3a], di
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009eec0]
movups xmmword [eax + 0x3c], xmm0
movq xmm0, qword [0x1009eed0]
movq qword [eax + 0x4c], xmm0
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009eec0]
movups xmmword [eax + 0x64], xmm0
movq xmm0, qword [0x1009eed0]
movq qword [eax + 0x74], xmm0
nop dword [eax + eax]
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d5d4]
add ecx, edx
movups xmmword [ecx + 0xc0], xmm0
movq xmm0, qword [0x1009d5e4]
movq qword [ecx + 0xd0], xmm0
mov eax, dword [0x1009d5ec]
mov dword [ecx + 0xd8], eax
movzx eax, byte [0x1009d5f0]
mov byte [ecx + 0xdc], al
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009d5d4]
add ecx, edx
add edx, 0x2f
movups xmmword [ecx + 0x277], xmm0
movq xmm0, qword [0x1009d5e4]
movq qword [ecx + 0x287], xmm0
mov eax, dword [0x1009d5ec]
mov dword [ecx + 0x28f], eax
movzx eax, byte [0x1009d5f0]
mov byte [ecx + 0x293], al
cmp edx, 0x64
jl 0x10014c50
mov ecx, dword [ebp - 0x10]
movq xmm0, qword [0x1009ec30]
movq qword [ecx + 0x9a], xmm0
mov eax, dword [0x1009ec38]
mov dword [ecx + 0xa2], eax
movzx eax, word [0x1009ec3c]
mov word [ecx + 0xa6], ax
movzx eax, byte [0x1009ec3e]
mov byte [ecx + 0xa8], al
mov ecx, dword [ebp - 0x10]
movq xmm0, qword [0x1009ec30]
movq qword [ecx + 0x24b], xmm0
mov eax, dword [0x1009ec38]
mov dword [ecx + 0x253], eax
movzx eax, word [0x1009ec3c]
mov word [ecx + 0x257], ax
movzx eax, byte [0x1009ec3e]
mov byte [ecx + 0x259], al
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x1b0], 0x66666667
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1e0], di
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009ca00]
movups xmmword [ecx + 0x1b7], xmm0
mov eax, dword [0x1009ca10]
mov dword [ecx + 0x1c7], eax
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009ca00]
movups xmmword [ecx + 0x1e2], xmm0
mov eax, dword [0x1009ca10]
mov dword [ecx + 0x1f2], eax
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [0x1009ca00]
movups xmmword [ecx + 0x20e], xmm0
mov eax, dword [0x1009ca10]
mov dword [ecx + 0x21e], eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call esi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007491a
mov esp, ebp
pop ebp
ret