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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x10048400]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 5
push 0x5cad4b
mov dword [ebp - 0x18], 0x5cad4b
call esi
test eax, eax
je 0x10001b7a
mov eax, dword [ebp - 0x18]
mov ecx, 0x10001a10
sub ecx, eax
sub ecx, 5
mov dword [eax], 0x90909090
mov eax, dword [ebp - 0x18]
mov byte [eax + 4], 0x90
mov eax, dword [ebp - 0x18]
mov byte [eax], 0xe9
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
dec dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 5
push dword [ebp - 0x18]
call esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0x60f200
push eax
push 0x40
push 5
push 0x60f200
call esi
test eax, eax
je 0x10001bcd
mov eax, dword [ebp - 0x18]
mov ecx, 0x10001a20
sub ecx, eax
sub ecx, 5
mov dword [eax], 0x90909090
mov eax, dword [ebp - 0x18]
mov byte [eax + 4], 0x90
mov eax, dword [ebp - 0x18]
mov byte [eax], 0xe9
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
dec dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 5
push dword [ebp - 0x18]
call esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0x60fe67
push eax
push 0x40
push 7
push 0x60fe67
call esi
test eax, eax
je 0x10001c27
mov eax, dword [ebp - 0x18]
mov edx, 0x90909090
mov ecx, 0x10001a30
sub ecx, eax
sub ecx, 5
mov dword [eax], edx
mov eax, dword [ebp - 0x18]
mov word [eax + 4], dx
mov eax, dword [ebp - 0x18]
mov byte [eax + 6], dl
mov eax, dword [ebp - 0x18]
mov byte [eax], 0xe9
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
dec dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 7
push dword [ebp - 0x18]
call esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0x5fba92
push eax
push 0x40
push 5
push 0x5fba92
call esi
test eax, eax
je 0x10001c7a
mov eax, dword [ebp - 0x18]
mov ecx, 0x10001a60
sub ecx, eax
sub ecx, 5
mov dword [eax], 0x90909090
mov eax, dword [ebp - 0x18]
mov byte [eax + 4], 0x90
mov eax, dword [ebp - 0x18]
mov byte [eax], 0xe9
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
dec dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 5
push dword [ebp - 0x18]
call esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0x7895d5
push eax
push 0x40
push 6
push 0x7895d5
call esi
test eax, eax
je 0x10001cce
mov eax, dword [ebp - 0x18]
mov edx, 0x90909090
mov ecx, 0x10001ae0
sub ecx, eax
sub ecx, 5
mov dword [eax], edx
mov eax, dword [ebp - 0x18]
mov word [eax + 4], dx
mov eax, dword [ebp - 0x18]
mov byte [eax], 0xe9
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
dec dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 6
push dword [ebp - 0x18]
call esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0xc], 0x90909090
push eax
push 0x40
push 6
push 0x6ef0f6
mov word [ebp - 8], 0x9090
call esi
test eax, eax
je 0x10001d1c
push 0
push 6
lea eax, [ebp - 0xc]
push eax
push 0x6ef0f6
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x10001d1c
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 6
push 0x6ef0f6
call esi
lea eax, [ebp - 0x10]
mov word [ebp - 0x14], 0xfe6a
push eax
push 0x40
push 2
push 0x6a95f0
call esi
test eax, eax
je 0x10001d63
push 0
push 2
lea eax, [ebp - 0x14]
push eax
push 0x6a95f0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x10001d63
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 2
push 0x6a95f0
call esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10017809
mov esp, ebp
pop ebp
ret