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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push edi
xor edi, edi
cmp ebx, edi
je 0x100051dc
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
push 0xc
lea eax, [ebp - 0x3c]
push eax
push ebx
mov dword [ebp - 0x3c], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.PSAPI.DLL_GetModuleInformation]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
cmp eax, edi
jbe 0x100051dc
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp byte [edi + ebx], 0x3e
jne 0x10004fa3
cmp dword [edi + ebx + 3], 0x7bc4f04
lea eax, [edi + ebx + 3]
jne 0x10004fa3
mov ecx, dword [0x10121f50]
lea edx, [ebp - 4]
push edx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], ecx
call esi
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 3]
lea edx, [ebp - 4]
push edx
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
push ecx
push 4
push eax
call esi
cmp byte [edi + ebx], 0x3b
jne 0x10004fe1
cmp dword [edi + ebx + 2], 0x7bc4f04
lea eax, [edi + ebx + 2]
jne 0x10004fe1
mov edx, dword [0x10121f50]
lea ecx, [ebp - 8]
push ecx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], edx
call esi
mov edx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 2]
lea ecx, [ebp - 8]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 8]
push edx
push 4
push eax
call esi
cmp byte [edi + ebx], 0x3e
jne 0x1000501f
cmp dword [edi + ebx + 3], 0x7bc4f04
lea eax, [edi + ebx + 3]
jne 0x1000501f
mov ecx, dword [0x10121f50]
lea edx, [ebp - 0xc]
push edx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], ecx
call esi
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 3]
lea edx, [ebp - 0xc]
push edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
push ecx
push 4
push eax
call esi
cmp byte [edi + ebx], 0x81
jne 0x1000509b
cmp dword [edi + ebx + 2], 0x7bc4f04
lea eax, [edi + ebx + 2]
jne 0x1000505d
mov edx, dword [0x10121f50]
lea ecx, [ebp - 0x10]
push ecx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], edx
call esi
mov edx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 2]
lea ecx, [ebp - 0x10]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x10]
push edx
push 4
push eax
call esi
cmp byte [edi + ebx], 0x81
jne 0x1000509b
cmp dword [edi + ebx + 3], 0x7bc4f04
lea eax, [edi + ebx + 3]
jne 0x1000509b
mov ecx, dword [0x10121f50]
lea edx, [ebp - 0x14]
push edx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], ecx
call esi
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 3]
lea edx, [ebp - 0x14]
push edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
push ecx
push 4
push eax
call esi
cmp byte [edi + ebx], 0x8b
jne 0x100050d9
cmp dword [edi + ebx + 2], 0x7bc4f04
lea eax, [edi + ebx + 2]
jne 0x100050d9
mov edx, dword [0x10121f50]
lea ecx, [ebp - 0x18]
push ecx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], edx
call esi
mov edx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 2]
lea ecx, [ebp - 0x18]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x18]
push edx
push 4
push eax
call esi
cmp byte [edi + ebx], 0xa1
jne 0x10005117
cmp dword [edi + ebx + 1], 0x7bc4f04
lea eax, [edi + ebx + 1]
jne 0x10005117
mov ecx, dword [0x10121f50]
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], ecx
call esi
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 1]
lea edx, [ebp - 0x1c]
push edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1c]
push ecx
push 4
push eax
call esi
cmp byte [edi + ebx], 0xb8
jne 0x10005155
cmp dword [edi + ebx + 1], 0x7bc4f04
lea eax, [edi + ebx + 1]
jne 0x10005155
mov edx, dword [0x10121f50]
lea ecx, [ebp - 0x20]
push ecx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], edx
call esi
mov edx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 1]
lea ecx, [ebp - 0x20]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call esi
cmp byte [edi + ebx], 0xb9
jne 0x10005193
cmp dword [edi + ebx + 1], 0x7bc4f04
lea eax, [edi + ebx + 1]
jne 0x10005193
mov ecx, dword [0x10121f50]
lea edx, [ebp - 0x24]
push edx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], ecx
call esi
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 1]
lea edx, [ebp - 0x24]
push edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x24]
push ecx
push 4
push eax
call esi
cmp byte [edi + ebx], 0xbf
jne 0x100051d1
cmp dword [edi + ebx + 1], 0x7bc4f04
lea eax, [edi + ebx + 1]
jne 0x100051d1
mov edx, dword [0x10121f50]
lea ecx, [ebp - 0x28]
push ecx
push 0x40
push 4
push eax
mov dword [ebp - 0x2c], edx
call esi
mov edx, dword [ebp - 0x2c]
lea eax, [edi + ebx + 1]
lea ecx, [ebp - 0x28]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x28]
push edx
push 4
push eax
call esi
inc edi
cmp edi, dword [ebp - 0x30]
jb 0x10004f65
pop esi
pop edi
mov esp, ebp
pop ebp
ret