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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x432040]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x130], str.WAD_ForgeV8.exe
mov dword [ebp - 0x12c], str.legacy.exe
mov dword [ebp - 0x128], str.otclient_gl.exe
mov dword [ebp - 0x124], str.otclient_dx.exe
mov dword [ebp - 0x120], str.Cyntara.exe
mov dword [ebp - 0x11c], str.abaldar.exe
mov dword [ebp - 0x118], str.pstory_gl.exe
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x184]
call fcn.004032c0
lea edx, [ebp - 0x184]
mov dword [ebp - 0x144], edx
mov ecx, dword [ebp - 0x144]
call fcn.004060d0
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x144]
call fcn.00406130
mov dword [ebp - 0x150], eax
jmp 0x4012ab
mov eax, dword [ebp - 0x138]
add eax, 4
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
cmp ecx, dword [ebp - 0x150]
je 0x4012f5
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x154]
mov ecx, dword [eax]
push ecx
call fcn.00401100
add esp, 4
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0
je 0x4012f3
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x140], edx
jmp 0x4012f5
jmp 0x40129c
push str.process_id___
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x140]
push eax
mov ecx, dword [ebp - 0x158]
call fcn.00404050
mov dword [ebp - 0x15c], eax
push 0x402a90
mov ecx, dword [ebp - 0x15c]
call fcn.00404260
mov ecx, dword [str.botc.dll]
mov dword [ebp - 0x10], ecx
mov edx, dword [0x427274]
mov dword [ebp - 0xc], edx
mov al, byte [0x427278]
mov byte [ebp - 8], al
push 0x100
push 0
lea ecx, [ebp - 0x110]
push ecx
call fcn.0040b2d0
add esp, 0xc
push 0
lea edx, [ebp - 0x110]
push edx
push 0x100
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push str.dll_path___
push 0x433088
call fcn.004016a0
add esp, 8
lea ecx, [ebp - 0x110]
push ecx
push eax
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x160], eax
push 0x402a90
mov ecx, dword [ebp - 0x160]
call fcn.00404260
mov edx, dword [ebp - 0x140]
push edx
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
jne 0x40140a
push str.OpenProcess_failed
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x164], eax
push 0x402a90
mov ecx, dword [ebp - 0x164]
call fcn.00404260
mov eax, 1
jmp 0x4015ed
push 0x40
push 0x3000
lea eax, [ebp - 0x110]
push eax
call fcn.0040ecf0
add esp, 4
add eax, 1
push eax
push 0
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0
jne 0x401474
push str.VirtualAllocEx_failed
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x168], eax
push 0x402a90
mov ecx, dword [ebp - 0x168]
call fcn.00404260
mov eax, 1
jmp 0x4015ed
push 0
lea edx, [ebp - 0x110]
push edx
call fcn.0040ecf0
add esp, 4
push eax
lea eax, [ebp - 0x110]
push eax
mov ecx, dword [ebp - 0x13c]
push ecx
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0
jne 0x4014e2
push str.WriteProcessMemory_failed
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x170], eax
push 0x402a90
mov ecx, dword [ebp - 0x170]
call fcn.00404260
mov eax, 1
jmp 0x4015ed
push 0
push 0
mov eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push ecx
push 0
push 0
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jne 0x401546
push str.CreateRemoteThread_failed
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x174], eax
push 0x402a90
mov ecx, dword [ebp - 0x174]
call fcn.00404260
mov eax, 1
jmp 0x4015ed
push str.Thread_injected.
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x178], eax
push 0x402a90
mov ecx, dword [ebp - 0x178]
call fcn.00404260
push 0xffffffffffffffff
mov eax, dword [ebp - 0x134]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x8000
lea ecx, [ebp - 0x110]
push ecx
call fcn.0040ecf0
add esp, 4
add eax, 1
push eax
mov edx, dword [ebp - 0x13c]
push edx
mov eax, dword [ebp - 0x134]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x14c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.End.
push 0x433088
call fcn.004016a0
add esp, 8
mov dword [ebp - 0x17c], eax
push 0x402a90
mov ecx, dword [ebp - 0x17c]
call fcn.00404260
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00409dab
mov esp, ebp
pop ebp
ret