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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x1002a040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 8]
mov dword [ebp - 0x1c], 0x747483
push eax
lea ecx, [ebp - 0x1c]
call fcn.10003b70
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 0x14], 6
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push esi
mov dword [ebp - 0x18], esi
call edi
test eax, eax
mov dword [ebp - 0x1c], 0xc8d4c0
mov eax, 0x90909090
setne byte [ebp - 0xc]
mov dword [esi], eax
mov word [esi + 4], ax
cmp byte [ebp - 0xc], 0
je 0x10005883
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x1c]
call fcn.10003b70
push ecx
mov eax, dword [eax]
mov dword [ebp - 8], 0x590ae4
mov dword [eax], 5
mov eax, esp
push ecx
mov esi, esp
lea ecx, [ebp - 8]
mov dword [eax], 0x590c9e
lea eax, [ebp - 0x1c]
push eax
call fcn.10003b70
lea ecx, [ebp - 8]
mov eax, dword [eax]
mov dword [esi], eax
call fcn.10005750
add esp, 8
mov dword [ebp - 8], 0x5905b4
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 8]
push eax
call fcn.10003b70
mov dword [ebp - 0x14], 5
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 5
push esi
mov dword [ebp - 0x18], esi
call edi
test eax, eax
setne byte [ebp - 0xc]
mov dword [esi], 0x90909090
mov byte [esi + 4], 0x90
cmp byte [ebp - 0xc], 0
je 0x10005918
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
lea eax, [ebp - 0x1c]
mov dword [ebp - 8], 0x590d9f
push eax
lea ecx, [ebp - 8]
call fcn.10003b70
mov dword [ebp - 0x14], 5
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 5
push esi
mov dword [ebp - 0x18], esi
call edi
test eax, eax
setne byte [ebp - 0xc]
mov dword [esi], 0x90909090
mov byte [esi + 4], 0x90
cmp byte [ebp - 0xc], 0
je 0x1000596b
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
lea eax, [ebp - 0x1c]
mov dword [ebp - 8], 0x590d9f
push eax
lea ecx, [ebp - 8]
call fcn.10003b70
mov dword [ebp - 0x14], 1
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push esi
mov dword [ebp - 0x18], esi
call edi
test eax, eax
setne byte [ebp - 0xc]
mov byte [esi], 0xc3
cmp byte [ebp - 0xc], 0
je 0x100059b7
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
lea eax, [ebp - 0x1c]
mov dword [ebp - 8], 0x748cf6
push eax
lea ecx, [ebp - 8]
call fcn.10003b70
mov dword [ebp - 0x14], 5
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 5
push esi
mov dword [ebp - 0x18], esi
call edi
test eax, eax
setne byte [ebp - 0xc]
mov dword [esi], 0x90909090
mov byte [esi + 4], 0x90
cmp byte [ebp - 0xc], 0
je 0x10005a0a
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1000c824
mov esp, ebp
pop ebp
ret