Function at 0x10001640
Capabilities:
Check for debugger via api
Create thread
Download url
Enumerate processes
Get common file path
Inject dll
Inject thread
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x644
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x1000192f
mov dword [ebp - 0x418], eax
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_CheckRemoteDebuggerPresent]
cmp dword [ebp - 0x418], 0
jne 0x1000192f
call fcn.100012a0
test al, al
jne 0x1000192f
lea eax, [ebp - 0x414]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x414]
push eax
push str._s_system32.dll
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.10001010
add esp, 0x10
lea eax, [ebp - 0x20c]
push 0
push 0
push eax
push esi
push 0
call dword [sym.imp.urlmon.dll_URLDownloadToFileW]
test eax, eax
jns 0x10001707
push 0x10
push str.Error
push str.Failed_to_download_the_cheat_DLL.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10001f3e
mov esp, ebp
pop ebp
ret
push ebx
push edi
xor ebx, ebx
push ebx
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000191e
lea eax, [ebp - 0x644]
mov dword [ebp - 0x644], 0x22c
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x10001775
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov ebx, dword [sym.imp.KERNEL32.dll_Process32NextW]
nop word [eax + eax]
lea eax, [ebp - 0x620]
push str.csgo.exe
push eax
call edi
add esp, 8
test eax, eax
je 0x100017c1
lea eax, [ebp - 0x644]
push eax
push esi
call ebx
test eax, eax
jne 0x10001750
xor ebx, ebx
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call edi
test ebx, ebx
je 0x1000191e
push ebx
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
jne 0x100017c9
push 0x10
push str.Error
push str.Failed_to_open_the_CS:GO_process.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10001f3e
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x63c]
jmp 0x10001775
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100017d2
sub ecx, edx
sar ecx, 1
push 4
push 0x1000
lea eax, [ecx*2 + 2]
push eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov ebx, eax
test ebx, ebx
jne 0x10001828
push 0x10
push str.Error
push str.Failed_to_allocate_memory_in_the_CS:GO_process.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
push esi
call edi
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10001f3e
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10001831
sub ecx, edx
sar ecx, 1
push 0
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x20c]
push eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x1000186b
push 0x10
push str.Error
push str.Failed_to_write_DLL_path_to_the_CS:GO_process_memory.
jmp 0x100018bb
push str.LoadLibraryW
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10001894
push 0x10
push str.Error
push str.Failed_to_get_the_address_of_LoadLibraryW_function.
jmp 0x100018bb
push 0
push 0
push ebx
push eax
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov dword [ebp - 0x418], eax
test eax, eax
jne 0x100018e8
push 0x10
push str.Error
push str.Failed_to_create_a_remote_thread_in_the_CS:GO_process.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x8000
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push esi
call edi
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10001f3e
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x418]
call edi
push 0x8000
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push esi
call edi
pop edi
pop ebx
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10001f3e
mov esp, ebp
pop ebp
ret
push 0x10
push str.Error
push str.Failed_to_find_the_CS:GO_process.
jmp 0x100017a6
push 0x10
push str.Error
push str.Debugger_detected_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 4]
xor al, al
xor ecx, ebp
pop esi
call fcn.10001f3e
mov esp, ebp
pop ebp
ret