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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
movaps xmm0, xmmword [0x1013a7a0]
lea eax, [ebp - 4]
movaps xmmword [0x1018e5e0], xmm0
movaps xmm0, xmmword [0x1013a8d0]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
movaps xmmword [0x1018e620], xmm0
movaps xmm0, xmmword [0x1013a8d0]
push edi
movaps xmmword [0x1018e660], xmm0
movaps xmm0, xmmword [0x1013a8d0]
push eax
movaps xmmword [0x1018e6a0], xmm0
movaps xmm0, xmmword [0x1013a8d0]
push 0x40
movaps xmmword [0x1018e6e0], xmm0
movaps xmm0, xmmword [0x1013a8d0]
push 4
push 0x4d7530
mov dword [0x1018e5f8], 0
mov word [0x1018e5fc], 0
mov dword [0x1018e5dc], 0xc942
mov dword [0x1018e5f0], 0x43980000
mov dword [0x1018e5f4], 0x43a40000
mov byte [0x1018e5fe], 0
mov dword [0x1018e638], 0
mov word [0x1018e63c], 0
mov dword [0x1018e61c], 0xc93f
mov dword [0x1018e630], 0x43150000
mov dword [0x1018e634], 0x42080000
mov byte [0x1018e63e], 0
mov dword [0x1018e678], 0
mov word [0x1018e67c], 0
mov dword [0x1018e65c], 0xc93f
mov dword [0x1018e670], 0x43150000
mov dword [0x1018e674], 0x42080000
mov byte [0x1018e67e], 0
mov dword [0x1018e6b8], 0
mov word [0x1018e6bc], 0
mov dword [0x1018e69c], 0xc93f
mov dword [0x1018e6b0], 0x43150000
mov dword [0x1018e6b4], 0x42080000
mov byte [0x1018e6be], 0
mov dword [0x1018e6f8], 0
mov word [0x1018e6fc], 0
mov dword [0x1018e6dc], 0xc93f
mov dword [0x1018e6f0], 0x43150000
mov dword [0x1018e6f4], 0x42080000
mov byte [0x1018e6fe], 0
mov dword [0x1018e738], 0
mov word [0x1018e73c], 0
mov dword [0x1018e71c], 0xc93f
movaps xmmword [0x1018e720], xmm0
mov dword [0x1018e730], 0x43150000
mov dword [0x1018e734], 0x42080000
mov byte [0x1018e73e], 0
mov dword [ebp - 4], 0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10040e69
mov eax, 0x4d7530
mov dword [eax], 0xc942
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 4
push 0x4d7530
call esi
test eax, eax
jne 0x10040e6b
call edi
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push 0x40
push 4
push 0x4d7564
call esi
test eax, eax
je 0x10040eab
mov eax, 0x4d7564
mov dword [eax], 0xc942
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 4
push 0x4d7564
call esi
test eax, eax
jne 0x10040ead
call edi
push 0x10040fd0
push 0x4d6c3e
push 0xe8
call fcn.100cc920
movsd xmm0, qword [0x101395e0]
lea eax, [ebp - 4]
add esp, 0xc
movsd qword [ebp - 0x10], xmm0
mov dword [ebp - 4], 0
push eax
push 0x40
push 8
push 0xd25508
call esi
test eax, eax
je 0x10040f12
mov eax, dword [ebp - 0x10]
mov ecx, 0xd25508
mov dword [ecx], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx + 4], eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 8
push ecx
call esi
test eax, eax
jne 0x10040f14
call edi
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push 0x40
push 4
push 0x4d6c73
call esi
test eax, eax
je 0x10040f54
mov eax, 0x4d6c73
mov dword [eax], 0
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 4
push 0x4d6c73
call esi
test eax, eax
jne 0x10040f56
call edi
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push 0x40
push 1
push 0x402106
xor bl, bl
call esi
test eax, eax
je 0x10040f94
mov eax, 0x402106
mov byte [eax], bl
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 1
push 0x402106
call esi
test eax, eax
jne 0x10040f96
call edi
lea eax, [ebp - 4]
push eax
push 0x40
push 4
push 0x56faed
call esi
lea eax, [ebp - 4]
mov dword [0x56faed], 0xaf
push eax
push dword [ebp - 4]
push 4
push 0x56faed
call esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret