Function at 0x418e00
Capabilities:
Allocate or change rwx memory
Create process on windows
Create process suspended
Execute shellcode via indirect call
Resume thread
Suspend thread
Terminate process
Use process replacement

Disassembly:
sub esp, 0x84c
mov eax, dword [0x4946c0]
xor eax, esp
mov dword [esp + 0x848], eax
mov eax, dword [esp + 0x864]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x85c]
push edi
mov edi, dword [esp + 0x864]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0x9090feeb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x86c]
push ecx
push edi
push esi
push str.InjectSuspended:_exe__s__dir__s__commit_x_n
mov dword [esp + 0x40], eax
xor ebx, ebx
call fcn.0041ab40
add esp, 0x10
push str.DxWndInjectCompleted
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x418eaf
call ebp
cmp eax, 0xb7
jne 0x418e9a
push str.DxWndInjectCompleted
push ebx
push 0x1f0003
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x418eaf
call ebp
push eax
push str.DxWndInjectCompleted
push str.CreateEvent__s_failed:_err_d_n
call fcn.0041ab40
add esp, 0xc
push 0x44
lea edx, [esp + 0x48]
push 0
push edx
call fcn.00451440
mov eax, dword [esp + 0x87c]
add esp, 0xc
test byte [eax + 0x190], 0x40
mov dword [esp + 0x44], 0x44
je 0x418eda
mov ebx, esi
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x48]
push edx
push edi
push 0
push 4
push 0
push 0
push 0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x418f6a
call ebp
mov ecx, eax
sub ecx, 2
je 0x418f1a
sub ecx, 0x109
je 0x418f13
mov ecx, 0x47ed45
jmp 0x418f1f
mov ecx, str._invalid_directory_name_
jmp 0x418f1f
mov ecx, str._file_not_found_
push ecx
push eax
push esi
lea eax, [esp + 0x360]
push str.CreateProcess___s___nerror_d__s
push eax
call fcn.00450b6c
add esp, 0x14
push 0
push 0x30
push str.Injection
lea ecx, [esp + 0x360]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxExA]
lea edx, [esp + 0x354]
push edx
push 0x4719a8
call fcn.0041ab40
add esp, 8
jmp 0x41951e
mov eax, dword [esp + 0x1c]
push eax
push 0
push 0xc38
mov dword [esp + 0x34], 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
push edi
push str.Target_handle_x_n
mov dword [esp + 0x18], edi
call fcn.0041ab40
mov ecx, dword [esp + 0x20]
push ecx
call sub.dxwnd.dll_Ordinal_8
mov ebx, dword [sym.imp.USER32.dll_MessageBoxExA]
mov esi, eax
add esp, 0xc
test esi, esi
je 0x41911b
lea edx, [esp + 0x40]
push edx
push 0x40
push 4
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
jne 0x41900e
call ebp
push eax
lea eax, [esp + 0x358]
push str.VirtualProtectEx_error_d
push eax
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea ecx, [esp + 0x360]
push ecx
push 0
call ebx
lea edx, [esp + 0x354]
push edx
push 0x4719a8
call fcn.0041ab40
add esp, 8
jmp 0x4194d9
lea eax, [esp + 0x24]
push eax
push 4
lea ecx, [esp + 0x44]
push ecx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x419071
call ebp
push eax
lea edx, [esp + 0x358]
push str.ReadProcessMemory_error_d
push edx
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea eax, [esp + 0x360]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxExA]
lea ecx, [esp + 0x354]
push ecx
push 0x4719a8
call fcn.0041ab40
add esp, 8
jmp 0x4194d9
lea edx, [esp + 0x24]
push edx
push 4
lea eax, [esp + 0x40]
push eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x4190d4
call ebp
push eax
push str.WriteProcessMemory_error_d
lea ecx, [esp + 0x35c]
push ecx
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea edx, [esp + 0x360]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxExA]
lea eax, [esp + 0x354]
push eax
push 0x4719a8
call fcn.0041ab40
add esp, 8
jmp 0x4194d9
push 4
push esi
push edi
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
test eax, eax
jne 0x4190ec
call ebp
push eax
push str.FlushInstructionCache_error_d
jmp 0x419091
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x41915a
push 0x6c
call ebp
push eax
lea edx, [esp + 0x35c]
push str.ResumeThread_error_d_at:_d
push edx
call fcn.00450b6c
add esp, 0x10
jmp 0x41903e
lea edx, [esp + 0x354]
push str.GetThreadStartAddress_failed
push edx
call fcn.00450b6c
add esp, 8
push 0
push 0x30
push str.Injection
lea eax, [esp + 0x360]
push eax
push 0
call ebx
lea ecx, [esp + 0x354]
push ecx
push 0x4719a8
call fcn.0041ab40
add esp, 8
cmp dword [esp + 0x868], 0
mov dword [esp + 0x140], 0
je 0x4191ed
push 0
push str.debug
push str.Click_when_the_debugger_is_attached
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x88]
push edx
push eax
mov dword [esp + 0x90], 0x10001
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x4192ab
call ebp
push eax
lea ecx, [esp + 0x358]
push str.GetThreadContext_error_d
push ecx
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea edx, [esp + 0x360]
push edx
push 0
call ebx
lea eax, [esp + 0x354]
push eax
push 0x4719a8
call fcn.0041ab40
jmp 0x4192a8
mov ebp, dword [sym.imp.KERNEL32.dll_GetThreadContext]
xor edi, edi
jmp 0x419200
cmp dword [esp + 0x140], esi
je 0x4192f9
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x88]
push ecx
push edx
mov dword [esp + 0x90], 0x10001
call ebp
test eax, eax
je 0x41925b
mov eax, dword [esp + 0x140]
push eax
push edi
push str.wait_cycle__d_eip_x_n
call fcn.0041ab40
inc edi
add esp, 0xc
cmp edi, 0x50
jb 0x419200
mov edi, dword [esp + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4192ab
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x358]
push str.GetThreadContext_error_d
push ecx
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea edx, [esp + 0x360]
push edx
push 0
call ebx
lea eax, [esp + 0x354]
push eax
push 0x4719a8
call fcn.0041ab40
mov edi, dword [esp + 0x18]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 8
mov eax, dword [esp + 0x140]
cmp eax, esi
je 0x419303
push esi
push eax
lea ecx, [esp + 0x35c]
push str.thread_blocked_eip_x_addr_x
push ecx
call fcn.00450b6c
add esp, 0x10
push 0
push 0x30
push str.Injection
lea edx, [esp + 0x360]
push edx
push 0
call ebx
lea eax, [esp + 0x354]
push eax
push 0x4719a8
call fcn.0041ab40
add esp, 8
jmp 0x419303
mov edi, dword [esp + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
lea ecx, [esp + 0x758]
push ecx
push 0x104
push 0x4766b8
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
cmp dword [esp + 0x86c], 0
je 0x419350
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0x580]
mov eax, dword [eax + 0x57c]
push edx
mov edx, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x75c]
push ecx
push edx
call sub.dxwnd.dll_Ordinal_14
add esp, 0x10
jmp 0x419365
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x754]
push eax
push ecx
call sub.dxwnd.dll_Ordinal_7
add esp, 8
test eax, eax
jne 0x4193b5
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x754]
push edx
push eax
lea ecx, [esp + 0x35c]
push str.Injection_error:_pid_x_dll_s
push ecx
call fcn.00450b6c
add esp, 0x10
push 0
push 0x30
push str.Injection
lea edx, [esp + 0x360]
push edx
push 0
call ebx
lea eax, [esp + 0x354]
push eax
push 0x4719a8
call fcn.0041ab40
add esp, 8
mov ecx, dword [esp + 0x2c]
push 0x1f4
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4193db
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x30]
push eax
push str.WaitForSingleObject_ok_after__d_mSec_n
jmp 0x4193e1
push eax
push str.WaitForSingleObject_returns__d_n
call fcn.0041ab40
mov edx, dword [esp + 0x20]
add esp, 8
push edx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
jne 0x41942b
call ebp
push eax
lea eax, [esp + 0x358]
push str.SuspendThread_error_d
push eax
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea ecx, [esp + 0x360]
push ecx
push 0
call ebx
jmp 0x418ff4
lea eax, [esp + 0x24]
push eax
push 4
lea ecx, [esp + 0x44]
push ecx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x419487
call ebp
push eax
push str.WriteProcessMemory_error_d
lea edx, [esp + 0x35c]
push edx
call fcn.00450b6c
add esp, 0xc
push 0
push 0x30
push str.Injection
lea eax, [esp + 0x360]
push eax
push 0
call ebx
lea ecx, [esp + 0x354]
push ecx
push 0x4719a8
call fcn.0041ab40
add esp, 8
jmp 0x4194d9
push 4
push esi
push edi
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
test eax, eax
jne 0x41949f
call ebp
push eax
push str.FlushInstructionCache_error_d
jmp 0x41944b
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x4194d1
push 0xcf
call ebp
push eax
lea eax, [esp + 0x35c]
push str.ResumeThread_error_d_at:_d
push eax
call fcn.00450b6c
add esp, 0x10
jmp 0x419411
mov dword [esp + 0x28], 0
test edi, edi
je 0x4194e4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x28], 0
je 0x419511
mov eax, dword [esp + 0x14]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x419511
call ebp
mov ecx, dword [esp + 0x14]
push eax
push ecx
push str.failed_to_kill_hproc_x_err_d_n
call fcn.0041ab40
add esp, 0xc
push str.InjectSuspended_done__n
call fcn.0041ab40
add esp, 4
mov ecx, dword [esp + 0x858]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00450c28
add esp, 0x84c
ret