Function at 0x401985
Capabilities:
Set console window title

Disassembly:
push rsi
push rbx
sub rsp, 0x1a8
call sym.__main
lea rcx, str.PG3D_Injector_by_Dari
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
lea rsi, [rsp + 0x90]
mov r8d, 0x104
mov rdx, rsi
mov ecx, 0
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rbx, [rsp + 0x70]
lea r8, [rsp + 0x19e]
mov rdx, rsi
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
mov r9d, 2
mov r8, 0xffffffffffffffff
lea rdx, [0x0041d220]
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.find_last_of_char_const__unsigned_long_long__unsigned_long_long__const
cmp rax, 0xffffffffffffffff
je 0x401a33
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x70]
mov r9, rax
mov r8d, 0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rbx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
mov rdx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
mov rcx, qword [rsp + 0x30]
add rbx, 0x10
cmp rcx, rbx
je 0x401a33
call sym.operator_delete_void_
lea rcx, [rsp + 0x30]
lea rax, [rcx + 0x10]
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x70]
mov r9d, 0
mov r8, rdx
add r8, qword [rsp + 0x78]
call dbg.void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag)
movabs rax, 0x7fffffffffffffff
cmp qword [rsp + 0x38], rax
je 0x401a83
lea rcx, [rsp + 0x30]
mov r8d, 1
lea rdx, [0x0041d238]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_append_char_const__unsigned_long_long_
jmp 0x401ac5
lea rcx, [0x0041d223]
call method.std.__throw_length_error_char_const_
mov rbx, rax
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x401aa6
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x80]
cmp rcx, rax
je 0x401abd
call sym.operator_delete_void_
mov rcx, rbx
call dbg._Unwind_Resume
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x38]
cmp rax, 0xe
jbe 0x401af3
lea rcx, [rsp + 0x30]
mov r8d, 0xf
lea rdx, str.astronomity.dll
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_append_char_const__unsigned_long_long_
jmp 0x401b18
lea rcx, [0x0041d223]
call method.std.__throw_length_error_char_const_
mov rbx, rax
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x401aa6
call sym.operator_delete_void_
jmp 0x401aa6
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x50], rdx
mov rcx, qword [rax]
lea rdx, [rax + 0x10]
cmp rcx, rdx
je 0x401b74
mov qword [rsp + 0x50], rcx
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rax + 8]
mov qword [rsp + 0x58], rcx
mov qword [rax], rdx
mov qword [rax + 8], 0
mov byte [rax + 0x10], 0
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x401b68
call sym.operator_delete_void_
lea rcx, [rsp + 0x50]
call dbg.fileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
jmp 0x401b80
movdqu xmm0, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x60], xmm0
jmp 0x401b3c
test al, al
je 0x401b92
lea rcx, str.Checking_if_Pixel_Gun_3D_is_already_running...
call dbg.void log<(ConsoleColor)11>(char const*)
jmp 0x401bad
lea rcx, str.DLL_file_not_found.
call dbg.void log<(ConsoleColor)12>(char const*)
mov ecx, 0xa
call dbg.countdown(int)
jmp 0x401d51
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x19f]
lea rdx, str.Pixel_Gun_3D.exe
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea rcx, [rsp + 0x30]
call dbg.GetProcessID(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
mov ebx, eax
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x401be6
call sym.operator_delete_void_
test ebx, ebx
jne 0x401c8d
lea rcx, str.Pixel_Gun_3D_not_found._Launching_the_game...
call dbg.void log<(ConsoleColor)14>(char const*)
call dbg.launchGame()
jmp 0x401c25
lea rcx, [rsp + 0x30]
call dbg.GetProcessID(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
mov ebx, eax
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x401c21
call sym.operator_delete_void_
test ebx, ebx
je 0x401c4f
test ebx, ebx
jne 0x401c8d
lea rcx, [rsp + 0x30]
lea rax, [rcx + 0x10]
mov qword [rsp + 0x30], rax
mov r9d, 0
lea r8, [0x0041d29f]
lea rdx, [r8 - 0x10]
call dbg.void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)
jmp 0x401c01
lea rcx, str.Waiting_for_Pixel_Gun_3D_to_start...
call dbg.void log<(ConsoleColor)14>(char const*)
mov qword [rsp + 0x20], 2
mov dword [rsp + 0x28], 0
jmp 0x401c7e
cmp eax, 0xffffffff
jne 0x401c25
call qword [sym.imp.msvcrt.dll__errno]
cmp dword [rax], 4
jne 0x401c25
lea rcx, [rsp + 0x20]
mov rdx, rcx
call sym.nanosleep
jmp 0x401c6e
lea rcx, str.Pixel_Gun_3D_process_found_
call dbg.void log<(ConsoleColor)11>(char const*)
mov r8d, ebx
mov edx, 0
mov ecx, 0x1f0fff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x401cc3
lea rdx, [rsp + 0x50]
mov rcx, rax
call dbg.injectDLL(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
jmp 0x401cdb
lea rcx, str.Error_opening_Pixel_Gun_3D_process.
call dbg.void log<(ConsoleColor)12>(char const*)
mov ecx, 0xa
call dbg.countdown(int)
jmp 0x401d58
test al, al
je 0x401cea
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x401d0b
lea rcx, str.DLL_injection_failed.
call dbg.void log<(ConsoleColor)12>(char const*)
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0xa
call dbg.countdown(int)
jmp 0x401d5f
mov ecx, 0xa
call dbg.countdown(int)
mov ebx, 0
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x401d2e
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x80]
cmp rcx, rax
je 0x401d45
call sym.operator_delete_void_
mov eax, ebx
add rsp, 0x1a8
pop rbx
pop rsi
ret
mov ebx, 1
jmp 0x401d1a
mov ebx, 1
jmp 0x401d1a
mov ebx, 1
jmp 0x401d1a