Function at 0x1400015a5
Capabilities:
Create thread
Get common file path
Inject dll
Inject thread
Set console window title

Disassembly:
push rbp
sub rsp, 0x290
lea rbp, [rsp + 0x80]
call dbg.__main
lea rax, str.Smeg_Injector_
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
call rax
mov ecx, 0xfffffff5
mov rax, qword [sym.imp.KERNEL32.dll_GetStdHandle]
call rax
mov qword [0x14000e030], rax
mov rax, qword [0x14000e030]
mov edx, 9
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.___Waiting_for_Gmod.exe..._n
mov rcx, rax
call sym.printf
mov dword [rbp + 0x20c], 0xffffffff
lea rax, str.gmod.exe
mov rcx, rax
call sym.GetPID
mov dword [rbp + 0x20c], eax
mov ecx, 0x3e8
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
cmp dword [rbp + 0x20c], 0xffffffff
je 0x140001613
mov rax, qword [0x14000e030]
mov edx, 0xa
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
mov eax, dword [rbp + 0x20c]
mov edx, eax
lea rax, str.___Successfully_got_PID:__lu_n
mov rcx, rax
call sym.printf
lea rax, [rbp + 0xd0]
mov rdx, rax
mov ecx, 0x104
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
call rax
lea rdx, [rbp + 0xd0]
lea rax, [rbp - 0x40]
mov r8, rdx
lea rdx, str.C:_Program_Files_smeg_smeg.dll
mov rcx, rax
call sym.sprintf
lea rax, [0x14000a077]
mov rdx, rax
lea rax, str.C:_Program_Files_smeg_smeg.dll
mov rcx, rax
call sym.fopen
mov qword [rbp + 0x200], rax
cmp qword [rbp + 0x200], 0
jne 0x140001768
mov rax, qword [0x14000e030]
mov edx, 0xc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.____Couldnt_Find_Smeg_._n
mov rcx, rax
call sym.printf
movzx eax, byte [section..data]
test al, al
je 0x140001759
mov rax, qword [0x14000e030]
mov edx, 0xc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.____Dev__Smegs_dll_isnt_in_the_folder_next_to_loader_._n
mov rcx, rax
call sym.printf
lea rax, [rbp + 0xd0]
mov rdx, rax
lea rax, str.____Dev__Current_Dir:_s_._n
mov rcx, rax
call sym.printf
lea rax, [rbp - 0x40]
mov rdx, rax
lea rax, str.____Dev__Current_FilePath:_s_._n
mov rcx, rax
call sym.printf
call sym.getchar
mov eax, 0
jmp 0x1400019ee
mov rax, qword [rbp + 0x200]
mov rcx, rax
call sym.fclose
lea rax, str.C:_Program_Files_smeg_smeg.dll
mov qword [rbp + 0x1f8], rax
mov eax, dword [rbp + 0x20c]
mov r8d, eax
mov edx, 0
mov ecx, 0x1fffff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x1f0], rax
cmp qword [rbp + 0x1f0], 0xffffffffffffffff
jne 0x1400017e8
mov rax, qword [0x14000e030]
mov edx, 0xc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.____Couldnt_create_a_handle_to_Garrys_Mod._n
mov rcx, rax
call sym.printf
call sym.getchar
mov eax, 0
jmp 0x1400019ee
mov rax, qword [rbp + 0x1f8]
mov rcx, rax
call sym.strlen
mov rdx, rax
mov rax, qword [rbp + 0x1f0]
mov dword [rsp + 0x20], 4
mov r9d, 0x3000
mov r8, rdx
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call rax
mov qword [rbp + 0x1e8], rax
cmp qword [rbp + 0x1e8], 0
jne 0x14000186a
mov rax, qword [0x14000e030]
mov edx, 0xc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.____Couldnt_call_VirtualAllocEx._n
mov rcx, rax
call sym.printf
call sym.getchar
mov eax, 0
jmp 0x1400019ee
mov rax, qword [rbp + 0x1f8]
mov rcx, rax
call sym.strlen
mov rcx, rax
mov r8, qword [rbp + 0x1f8]
mov rdx, qword [rbp + 0x1e8]
mov rax, qword [rbp + 0x1f0]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
test eax, eax
jne 0x1400018e3
mov rax, qword [0x14000e030]
mov edx, 0xc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.____Couldnt_call_WriteProcessMemory._n
mov rcx, rax
call sym.printf
call sym.getchar
mov eax, 0
jmp 0x1400019ee
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.LoadLibraryA
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x1e0], rax
mov rcx, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1f0]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov rdx, qword [rbp + 0x1e8]
mov qword [rsp + 0x20], rdx
mov r9, rcx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
call rax
mov qword [rbp + 0x1d8], rax
cmp qword [rbp + 0x1d8], 0xffffffffffffffff
jne 0x14000199c
mov rax, qword [0x14000e030]
mov edx, 0xc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.____Couldnt_call_CreateRemoteThread._n
mov rcx, rax
call sym.printf
call sym.getchar
mov eax, 0
jmp 0x1400019ee
mov rax, qword [rbp + 0x1f0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rdx, qword [rbp + 0x1e8]
mov rax, qword [rbp + 0x1f0]
mov r9d, 0x8000
mov r8d, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
call rax
lea rax, str.___Successfully_injected._n
mov rcx, rax
call sym.printf
call sym.getchar
mov eax, 0
add rsp, 0x290
pop rbp
ret