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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x10015004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
test ebx, ebx
je 0x10001298
cmp dword [ebx + 0x10000], 0x19999999
push esi
push edi
jne 0x10001169
cmp dword [ebx + 0x10004], 0xce8b4072
jne 0x10001169
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 8]
push eax
push 0x40
push 1
lea esi, [ebx + 0x1e3e]
mov dword [ebp - 8], 0x20
push esi
call edi
lea eax, [ebp - 8]
mov byte [esi], 1
push eax
push dword [ebp - 8]
push 1
push esi
call edi
mov eax, dword [ebx + 0x103832]
lea esi, [ebx + 0x103832]
mov dword [0x10016188], eax
movzx eax, word [esi + 4]
mov word [0x1001618c], ax
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push esi
mov dword [ebp - 8], 0x20
call edi
lea eax, [ebp - 8]
mov byte [esi], 0x90
push eax
push dword [ebp - 8]
push 1
push esi
call edi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x20
push eax
push 0x40
push 5
lea esi, [ebx + 0x103833]
push esi
call edi
mov eax, section..text
mov byte [esi], 0xe8
sub eax, esi
sub eax, 5
mov dword [esi + 1], eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push esi
call edi
mov eax, dword [ebx + 0x103872]
lea esi, [ebx + 0x103872]
mov dword [0x10016180], eax
movzx eax, word [esi + 4]
mov word [0x10016184], ax
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push esi
mov dword [ebp - 8], 0x20
call edi
lea eax, [ebp - 8]
mov byte [esi], 0x90
push eax
push dword [ebp - 8]
push 1
push esi
call edi
lea esi, [ebx + 0x103873]
jmp 0x10001268
cmp dword [ebx + 0x10000], 0x5f653c06
jne 0x10001296
cmp dword [ebx + 0x10004], 0x453c0474
jne 0x10001296
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 8]
push eax
push 0x40
push 1
lea esi, [ebx + 0x1f16]
mov dword [ebp - 8], 0x20
push esi
call edi
lea eax, [ebp - 8]
mov byte [esi], 1
push eax
push dword [ebp - 8]
push 1
push esi
call edi
mov eax, dword [ebx + 0x110572]
lea esi, [ebx + 0x110572]
mov dword [0x10016188], eax
movzx eax, word [esi + 4]
mov word [0x1001618c], ax
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push esi
mov dword [ebp - 8], 0x20
call edi
lea eax, [ebp - 8]
mov byte [esi], 0x90
push eax
push dword [ebp - 8]
push 1
push esi
call edi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x20
push eax
push 0x40
push 5
lea esi, [ebx + 0x110573]
push esi
call edi
mov eax, section..text
mov byte [esi], 0xe8
sub eax, esi
sub eax, 5
mov dword [esi + 1], eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push esi
call edi
mov eax, dword [ebx + 0x1105b2]
lea esi, [ebx + 0x1105b2]
mov dword [0x10016180], eax
movzx eax, word [esi + 4]
mov word [0x10016184], ax
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push esi
mov dword [ebp - 8], 0x20
call edi
lea eax, [ebp - 8]
mov byte [esi], 0x90
push eax
push dword [ebp - 8]
push 1
push esi
call edi
lea esi, [ebx + 0x1105b3]
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x20
push eax
push 0x40
push 5
push esi
call edi
mov eax, 0x10001030
sub eax, esi
sub eax, 5
mov dword [esi + 1], eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
mov byte [esi], 0xe8
push 5
push esi
call edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.10001451
mov esp, ebp
pop ebp
ret