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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1002b6cd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x30
mov eax, dword [0x1003e020]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.10009190
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp eax, 1
jne 0x10003b2f
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10040080]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10040cd8]
cmp eax, dword [ecx + 4]
jle 0x10003aa1
push 0x10040cd8
call fcn.1000d76e
add esp, 4
cmp dword [0x10040cd8], 0xffffffff
jne 0x10003aa1
push 0x10038c20
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x10040cd8
mov dword [0x10040cdc], eax
call fcn.1000d724
add esp, 4
mov edi, dword [0x10040cdc]
lea eax, [ebp - 0x18]
push eax
push 0x40
push 2
lea esi, [edi + 0xe40e]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 0x4e20
mov word [esi], ax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 2
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x18]
push eax
push 0x40
push 1
lea esi, [edi + 0x6240c]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x18]
mov byte [esi], 0xeb
push eax
push dword [ebp - 0x18]
push 1
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x18]
push eax
push 0x40
lea esi, [edi + 0x607c9]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 0x12
push esi
call edi
movaps xmm0, xmmword [0x10039d30]
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
movups xmmword [esi], xmm0
push 0x12
push esi
mov word [esi + 0x10], 0x9090
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 5
push 0x5b2bfd
call edi
mov eax, 0x5b2bfd
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 5
push 0x5b2bfd
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 1
push 0x590861
call edi
mov eax, 0x590861
mov byte [eax], 0x90
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 1
push 0x590861
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 6
push 0x59087a
call edi
mov eax, dword [0x1003888c]
mov ecx, 0x59087a
mov dword [ecx], eax
mov ax, word [0x10038890]
mov word [ecx + 4], ax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 6
push ecx
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 2
push 0x590a1b
call edi
mov eax, 0x590a1b
mov ecx, 0x90909090
mov word [eax], cx
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 2
push 0x590a1b
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 5
push 0x590a22
call edi
mov eax, dword [0x10038894]
mov ecx, 0x590a22
mov dword [ecx], eax
movzx eax, byte [0x10038898]
mov byte [ecx + 4], al
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 5
push ecx
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 5
push 0x590ae4
call edi
mov eax, dword [0x1003889c]
mov ecx, 0x590ae4
mov dword [ecx], eax
movzx eax, byte [0x100388a0]
mov byte [ecx + 4], al
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 5
push ecx
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 0x48
push 0x8d0444
call edi
movups xmm0, xmmword [str.6FEP_RES]
mov eax, 0x8d0444
movups xmmword [eax], xmm0
movups xmm0, xmmword [0x10038c40]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [0x10038c50]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x10038c60]
movups xmmword [eax + 0x30], xmm0
movq xmm0, qword [0x10038c70]
movq qword [eax + 0x40], xmm0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 0x48
push 0x8d0444
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 0x90
push 0x8d048c
call edi
push 0x90
push 0x90
push 0x8d048c
call fcn.10011b60
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 0x90
push 0x8d048c
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 1
push 0x8ce47b
call edi
lea eax, [ebp - 0x18]
mov byte [0x8ce47b], 1
push eax
push dword [ebp - 0x18]
push 1
push 0x8ce47b
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 1
push 0x8cfd33
call edi
lea eax, [ebp - 0x18]
mov byte [0x8cfd33], 2
push eax
push dword [ebp - 0x18]
push 1
push 0x8cfd33
call edi
lea eax, [ebp - 0x18]
push eax
push 0x40
push 1
push 0x8cfef7
call edi
lea eax, [ebp - 0x18]
mov byte [0x8cfef7], 3
push eax
push dword [ebp - 0x18]
push 1
push 0x8cfef7
call edi
push 0x10040c30
mov edx, 0x1000c160
mov ecx, 0x4c8220
call fcn.10007990
test eax, eax
jne 0x10003d72
lea edx, [eax + 1]
mov ecx, 0x4c8220
call fcn.10007c40
push 0x10040c2c
mov edx, 0x1000c3e0
mov ecx, 0x6d64f0
call fcn.10007990
test eax, eax
jne 0x10003d97
lea edx, [eax + 1]
mov ecx, 0x6d64f0
call fcn.10007c40
push 0x10040c28
mov edx, 0x1000c4c0
mov ecx, 0x6e2b40
call fcn.10007990
test eax, eax
jne 0x10003dbc
lea edx, [eax + 1]
mov ecx, 0x6e2b40
call fcn.10007c40
call fcn.10009190
mov esi, dword fs:[0x2c]
cmp eax, 1
jne 0x10003e42
mov eax, dword [0x10040080]
mov ecx, dword [esi + eax*4]
mov eax, dword [0x10040cd8]
cmp eax, dword [ecx + 4]
jle 0x10003e15
push 0x10040cd8
call fcn.1000d76e
add esp, 4
cmp dword [0x10040cd8], 0xffffffff
jne 0x10003e15
push 0x10038c20
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x10040cd8
mov dword [0x10040cdc], eax
call fcn.1000d724
add esp, 4
mov edi, dword [0x10040cdc]
mov edx, 0x1000aba0
push 0x10040bfc
lea ecx, [edi + 0xcab44]
call fcn.10007990
test eax, eax
jne 0x10003e42
lea edx, [eax + 1]
lea ecx, [edi + 0xcab44]
call fcn.10007c40
call fcn.10007cf0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], vtable.std::_Func_impl_no_alloc_class__lambda_984fa585ed37abefb8c6557551aad564___void___.0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov eax, dword [0x10040080]
mov ecx, dword [esi + eax*4]
mov eax, dword [0x10040c68]
cmp eax, dword [ecx + 4]
jle 0x10003f4e
push 0x10040c68
call fcn.1000d76e
add esp, 4
cmp dword [0x10040c68], 0xffffffff
jne 0x10003f4e
xorps xmm0, xmm0
mov dword [0x10040ca0], 0
movups xmmword [0x10040c80], xmm0
mov dword [0x10040c80], 0
movups xmmword [0x10040c90], xmm0
mov dword [0x10040c84], 0
mov dword [0x10040c88], 0
mov byte [ebp - 4], 2
push 0x38
mov dword [0x10040c8c], 0
mov byte [0x10040c90], 0
mov dword [0x10040c94], 0
mov dword [0x10040c98], 0
call fcn.1000d844
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [0x10040c94], eax
mov byte [ebp - 4], 3
push 0x38
mov dword [0x10040c9c], 0
mov dword [0x10040ca0], 0
call fcn.1000d844
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
push 0x1002c6a0
mov dword [0x10040c9c], eax
call fcn.1000db79
add esp, 4
mov byte [ebp - 4], 0
push 0x10040c68
call fcn.1000d724
add esp, 4
push ecx
lea eax, [ebp - 0x40]
mov ecx, 0x10040c80
push eax
push 0x10040c9c
call fcn.10004c00
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x10003f7a
mov edx, dword [ecx]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1000d62d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret