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

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0xa8]
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov edx, 0x64
call fcn.25131e20
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
je 0x251322c2
push 0
call sub.kernel32.dll_SetLastError
mov eax, 1
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0x64]
call fcn.25126f50
call fcn.25127cb0
push eax
test eax, eax
jne 0x2513226a
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x40]
mov cl, 0
mov edx, 0x28
call fcn.25122150
mov eax, dword [ebp - 4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x40]
call fcn.25132640
test eax, eax
je 0x251322bd
cmp dword [ebp - 0x30], 0
jne 0x251322bd
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x4c]
mov ecx, 5
call fcn.25122110
mov eax, dword [ebp - 0x34]
add eax, 5
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
mov eax, 0x25136020
mov ecx, 4
call fcn.25122110
mov eax, dword [ebp - 0x34]
add eax, 4
add eax, 5
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0x4c]
mov ecx, 5
call fcn.25122110
cmp dword [0x25136030], 0
je 0x25132171
push 0x64
mov eax, dword [ebp - 0xc]
push dword [eax]
call sub.kernel32.dll_GetCurrentProcess
push eax
call dword [0x25136030]
lea eax, [ebp - 0x14]
push eax
push 0x40
push 5
push dword [ebp - 4]
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x251322bd
call sub.kernel32.dll_GetCurrentThread
push eax
call sub.kernel32.dll_GetThreadPriority
mov dword [ebp - 0x44], eax
cmp eax, 0x7fffffff
je 0x251321ab
push 0xf
call sub.kernel32.dll_GetCurrentThread
push eax
call sub.kernel32.dll_SetThreadPriority
mov eax, 1
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x8c]
call fcn.25126f50
call fcn.25127cb0
push eax
test eax, eax
jne 0x2513220b
mov byte [ebp - 0x54], 0xe9
mov eax, dword [ebp - 4]
lea edx, [eax + 5]
mov eax, dword [ebp - 0x34]
sub eax, edx
mov dword [ebp - 0x53], eax
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x54]
mov ecx, 5
call fcn.25122110
cmp dword [0x25136030], 0
je 0x25132207
push 5
push dword [ebp - 4]
call sub.kernel32.dll_GetCurrentProcess
push eax
call dword [0x25136030]
mov byte [ebp - 0x10], 1
call fcn.251271d0
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x44], 0x7fffffff
je 0x2513222f
push dword [ebp - 0x44]
call sub.kernel32.dll_GetCurrentThread
push eax
call sub.kernel32.dll_SetThreadPriority
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 5
push dword [ebp - 4]
call sub.kernel32.dll_VirtualProtect
test eax, eax
jne 0x25132252
cmp dword [ebp - 0x18], 0
jne 0x25132252
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x25132260
push dword [ebp - 0x18]
call sub.kernel32.dll_SetLastError
pop eax
test eax, eax
je 0x2513226a
call fcn.25127300
call fcn.251271d0
cmp byte [ebp - 0x10], 0
jne 0x251322ae
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x18], eax
push 0x8000
push 0
mov eax, dword [ebp - 0xc]
push dword [eax]
call sub.kernel32.dll_VirtualFree
test eax, eax
jne 0x251322a0
cmp dword [ebp - 0x18], 0
jne 0x251322a0
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x251322ae
push dword [ebp - 0x18]
call sub.kernel32.dll_SetLastError
pop eax
test eax, eax
je 0x251322c2
cmp eax, 2
je 0x251322c2
call fcn.25127300
pop eax
push 2
jmp 0x2513226a
mov al, byte [ebp - 0x10]
leave
ret