Function at 0x401bb0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x406008]
xor eax, ebp
mov dword [ebp - 8], eax
mov ecx, dword [0x40640c]
mov eax, 0x2aaaaaab
sub ecx, dword [0x406408]
imul ecx
push ebx
sar edx, 2
push esi
mov eax, edx
mov byte [ebp - 0x20d], 1
push edi
xor edi, edi
shr eax, 0x1f
mov dword [ebp - 0x214], edi
add eax, edx
je 0x401e37
xor ebx, ebx
mov dword [ebp - 0x21c], ebx
lea eax, [ebp - 0x20c]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__getcwd]
mov eax, dword [0x406408]
add esp, 8
add eax, ebx
cmp dword [eax + 0x14], 0x10
jb 0x401c24
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x20c]
push eax
push str._s_s
push eax
call fcn.00401160
mov ebx, dword [ebp + 8]
lea edx, [ebp - 0x20c]
add esp, 0x10
mov ecx, ebx
call fcn.00401310
test eax, eax
jne 0x401db9
push ebx
push eax
push 0x42a
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x401d76
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x218], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401c80
sub ecx, edx
push 4
push 0x1000
lea edi, [ecx + 1]
push edi
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov ebx, eax
test ebx, ebx
je 0x401d27
push str.WriteProcessMemory
push str.Kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
push edi
lea ecx, [ebp - 0x20c]
push ecx
push ebx
push esi
call eax
test eax, eax
je 0x401d18
push str.LoadLibraryA
push str.Kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
push 0
push ebx
push eax
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov edi, eax
test edi, edi
je 0x401d18
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
mov dword [ebp - 0x218], 1
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x8000
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x218], 0
je 0x401d70
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Injection_successful_:
push 0x402a10
call fcn.004027e0
push ecx
lea edx, [ebp - 0x20c]
mov ecx, eax
call fcn.004027e0
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x214]
jmp 0x401df3
mov edi, dword [ebp - 0x214]
push 0x402a10
mov byte [ebp - 0x20d], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Injection_failed__
call fcn.004027e0
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
mov edx, str.__:
mov ecx, eax
call fcn.004027e0
lea edx, [ebp - 0x20c]
jmp 0x401de0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Dll
push 0x402a10
call fcn.004027e0
lea edx, [ebp - 0x20c]
mov ecx, eax
call fcn.004027e0
mov edx, str._already_injected__
push ecx
mov ecx, eax
call fcn.004027e0
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov ecx, dword [0x40640c]
mov eax, 0x2aaaaaab
sub ecx, dword [0x406408]
inc edi
mov ebx, dword [ebp - 0x21c]
imul ecx
add ebx, 0x18
mov dword [ebp - 0x214], edi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x21c], ebx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x401c00
cmp byte [ebp - 0x20d], 0
je 0x401e5c
mov eax, dword [0x4063f4]
cmp eax, dword [0x4063f8]
je 0x401e52
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
add dword [0x4063f4], 4
jmp 0x401e5c
lea ecx, [ebp + 8]
push ecx
push eax
call fcn.00402e40
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x402a10
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403032
mov esp, ebp
pop ebp
ret 4