Function at 0x180028820
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rdi
lea rbp, [rsp - 0x4f]
sub rsp, 0xa8
mov rax, qword [0x18003d3b0]
xor rax, rsp
mov qword [rbp + 0xf], rax
cmp byte [rcx + 0x5c8], 0
mov rdi, rcx
je 0x18002938d
cmp qword [0x180042888], 0
mov qword [rsp + 0xc8], rbx
jne 0x180028864
call fcn.180027e10
mov rcx, qword [0x180042870]
lea rdx, [rbp - 0x11]
mov rbx, qword [0x18003d400]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rbp - 9]
lea rcx, [rbp - 0x19]
sub eax, dword [rbp - 0x11]
movd xmm1, eax
mov eax, dword [rbp - 5]
sub eax, dword [rbp - 0xd]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbx + 8], xmm1
movss dword [rbx + 0xc], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbp - 0x19]
xorps xmm1, xmm1
sub rax, qword [0x180042860]
xorps xmm0, xmm0
cvtsi2ss xmm0, qword [0x180042868]
mov ecx, 0x11
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rbx + 0x10], xmm1
mov rax, qword [rbp - 0x19]
mov qword [0x180042860], rax
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x10
and al, 1
mov byte [rbx + 0x125], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x12
and al, 1
mov byte [rbx + 0x126], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
xor ecx, ecx
and al, 1
mov byte [rbx + 0x127], al
call qword [sym.imp.USER32.dll_SetCursor]
call fcn.180006110
mov rax, qword [0x18003d400]
mov ebx, 4
mov dword [rax + 0x1938], 0x44188000
mov dword [rax + 0x193c], 0x43af0000
mov dword [rax + 0x1914], ebx
cmp byte [rdi + 0x211], 1
jne 0x180028960
call fcn.180028530
xor edx, edx
lea rcx, str.GRIIMS_WWII_Tool
lea r8d, [rdx + 0x20]
call fcn.18000b870
test al, al
je 0x180029380
mov qword [rsp + 0xd0], rsi
lea rdx, [rbp - 0x19]
lea rcx, str.Host
movaps xmmword [rsp + 0x70], xmm7
mov dword [rbp - 0x19], 0x430e0000
mov dword [rbp - 0x15], 0x41c80000
call fcn.18000fb10
mov ecx, dword [0x18003d408]
test al, al
movss xmm7, dword [0x180037310]
mov edx, 1
cmovne ecx, edx
movaps xmm1, xmm7
xorps xmm0, xmm0
mov dword [0x18003d408], ecx
call fcn.1800179e0
lea rdx, [rbp - 0x19]
mov dword [rbp - 0x19], 0x430e0000
lea rcx, str.Console
mov dword [rbp - 0x15], 0x41c80000
call fcn.18000fb10
mov ecx, dword [0x18003d408]
test al, al
mov edx, 2
movaps xmm1, xmm7
cmovne ecx, edx
xorps xmm0, xmm0
mov dword [0x18003d408], ecx
call fcn.1800179e0
lea rdx, [rbp - 0x19]
mov dword [rbp - 0x19], 0x430e0000
lea rcx, str.Safe_Area
mov dword [rbp - 0x15], 0x41c80000
call fcn.18000fb10
mov ecx, dword [0x18003d408]
test al, al
mov edx, 3
movaps xmm1, xmm7
cmovne ecx, edx
xorps xmm0, xmm0
mov dword [0x18003d408], ecx
call fcn.1800179e0
lea rdx, [rbp - 0x19]
mov dword [rbp - 0x19], 0x430e0000
lea rcx, str.Hotkeys
mov dword [rbp - 0x15], 0x41c80000
call fcn.18000fb10
mov ecx, dword [0x18003d408]
test al, al
mov qword [rbp - 0x19], 0
cmovne ecx, ebx
mov rbx, qword [0x18003d400]
mov dword [0x18003d408], ecx
xor edx, edx
mov rax, qword [rbx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rbx + 0x1860]
movsxd rcx, dword [rax + 0x1d0]
mov rax, qword [rax + 0x1d8]
mov r8d, dword [rax + rcx*4 - 4]
lea rcx, str.Main
call fcn.180004c90
cmp dword [rbx + 0x1890], eax
jne 0x180028acf
mov byte [rbx + 0x189c], 1
xor esi, esi
lea r8, [rbp - 0x19]
xor r9d, r9d
mov dword [rsp + 0x20], esi
mov edx, eax
lea rcx, str.Main
call fcn.180009d10
test al, al
je 0x18002936e
mov ecx, dword [0x18003d408]
movaps xmmword [rsp + 0x80], xmm6
sub ecx, 1
je 0x180028dce
sub ecx, 1
je 0x180028be2
sub ecx, 1
je 0x180028b44
cmp ecx, 1
jne 0x180029361
lea rcx, str.HOME:_Toggle_Menu
call fcn.18000eef0
lea rcx, str.F4:_Change_to_spoofed_playlist
call fcn.18000eef0
lea rcx, str.F5:_Change_to_unspoofed_playlist
jmp 0x18002935c
movss xmm6, dword [0x180037298]
lea rbx, str._.3f
movss dword [rsp + 0x28], xmm6
lea rdx, [0x18003e1e8]
movaps xmm3, xmm6
mov qword [rsp + 0x20], rbx
xorps xmm2, xmm2
lea rcx, str.Safe_Area_Horz
call fcn.180010a40
movss dword [rsp + 0x28], xmm6
lea rdx, [0x18003e1ec]
movaps xmm3, xmm6
mov qword [rsp + 0x20], rbx
xorps xmm2, xmm2
lea rcx, str.Safe_Area_Vert
call fcn.180010a40
lea rdx, [rbp - 0x19]
mov qword [rbp - 0x19], rsi
lea rcx, str.Change_Safe_Area
call fcn.18000fb10
test al, al
je 0x180029361
mov rax, qword [0x1800426d0]
movss xmm0, dword [0x18003e1e8]
movss dword [rax], xmm0
mov rax, qword [0x1800426e0]
movss xmm1, dword [0x18003e1ec]
movss dword [rax], xmm1
jmp 0x180029361
mov rcx, qword [0x18003d400]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], sil
jne 0x180028c1e
xorps xmm1, xmm1
mov qword [rbp - 0x19], rsi
lea rcx, [rbp - 0x19]
call fcn.180005c10
mov rcx, qword [0x18003d400]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], sil
jne 0x180028c4c
xorps xmm1, xmm1
mov qword [rbp - 0x19], rsi
lea rcx, [rbp - 0x19]
call fcn.180005c10
mov qword [rsp + 0x30], rsi
lea r9, [rbp - 0x19]
mov qword [rsp + 0x28], rsi
lea rdx, [rdi + 0x8c]
mov r8d, 0x80
mov dword [rsp + 0x20], esi
lea rcx, str.CbufText
mov qword [rbp - 0x19], rsi
call fcn.180013300
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.1800179e0
lea rdx, [rbp - 0x19]
mov qword [rbp - 0x19], rsi
lea rcx, str.Send_Console_Command
call fcn.18000fb10
test al, al
je 0x180028caa
lea rdx, [rdi + 0x8c]
call fcn.180029410
mov rcx, qword [0x18003d400]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], sil
jne 0x180028cdf
xorps xmm1, xmm1
mov qword [rbp - 0x19], rsi
lea rcx, [rbp - 0x19]
call fcn.180005c10
mov qword [rsp + 0x30], rsi
lea r9, [rbp - 0x19]
mov qword [rsp + 0x28], rsi
lea rdx, [rdi + 0x10c]
mov r8d, 0x80
mov dword [rsp + 0x20], esi
lea rcx, str.CbufText1
mov qword [rbp - 0x19], rsi
call fcn.180013300
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.1800179e0
lea rdx, [rbp - 0x19]
mov qword [rbp - 0x19], rsi
lea rcx, str.Send_CMD_Lui
call fcn.18000fb10
test al, al
je 0x180028d5b
mov rax, qword [0x1800426b8]
lea r8, [rdi + 0x10c]
lea rdx, str.cmd_lui__i__1__i_n
lea rcx, [rbp - 0x11]
mov r9d, dword [rax]
call fcn.1800293b0
lea rdx, [rbp - 0x11]
call fcn.180029410
mov rcx, qword [0x18003d400]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], sil
jne 0x180028d97
xorps xmm1, xmm1
mov qword [rbp - 0x19], rsi
lea rcx, [rbp - 0x19]
call fcn.180005c10
mov rcx, qword [0x18003d400]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], sil
jne 0x180029361
xorps xmm1, xmm1
mov qword [rbp - 0x19], rsi
lea rcx, [rbp - 0x19]
call fcn.180005c10
jmp 0x180029361
mov qword [rsp + 0x98], r14
lea rdx, [rdi + 0x20e]
lea rcx, str.Force_Host
mov qword [rsp + 0x90], r15
call fcn.180010fc0
lea rdx, [rdi + 0x215]
lea rcx, str.Change_Map
call fcn.180010fc0
movss xmm6, dword [0x180037268]
cmp byte [rdi + 0x215], sil
je 0x180028e9e
mov rdx, qword [rdi + 0x438]
lea rcx, str.combo
call fcn.180016660
test al, al
je 0x180028e9e
mov qword [rbp - 0x19], rsi
lea rbx, [rdi + 0x4b8]
mov r15d, 0x21
mov rsi, qword [rbx]
lea r9, [rbp - 0x19]
mov r14, qword [rdi + 0x438]
mov rcx, rsi
cmp r14, rsi
sete dl
call fcn.180016fc0
test al, al
je 0x180028e6b
mov rax, qword [rbx]
mov qword [rdi + 0x438], rax
cmp r14, rsi
jne 0x180028e8f
mov rax, qword [0x18003d400]
mov rcx, qword [rax + 0x1860]
cmp byte [rcx + 0x95], 0
je 0x180028e8f
movaps xmm0, xmm6
call fcn.18000ed50
add rbx, 8
sub r15, 1
jne 0x180028e41
call fcn.180016f40
lea rdx, [rdi + 0x216]
lea rcx, str.Spoof_Playlist
call fcn.180010fc0
cmp byte [rdi + 0x216], 0
je 0x180029016
mov rdx, qword [rdi + 0x440]
lea rcx, str.combo1
call fcn.180016660
mov r15d, 6
test al, al
je 0x180028f65
mov qword [rsp + 0xa0], r12
lea rbx, [rdi + 0x450]
mov r12d, r15d
mov qword [rbp - 0x19], 0
nop dword [rax]
mov rsi, qword [rbx]
lea r9, [rbp - 0x19]
mov r14, qword [rdi + 0x440]
mov rcx, rsi
cmp r14, rsi
sete dl
call fcn.180016fc0
test al, al
je 0x180028f2a
mov rax, qword [rbx]
mov qword [rdi + 0x440], rax
cmp r14, rsi
jne 0x180028f4e
mov rax, qword [0x18003d400]
mov rcx, qword [rax + 0x1860]
cmp byte [rcx + 0x95], 0
je 0x180028f4e
movaps xmm0, xmm6
call fcn.18000ed50
add rbx, 8
sub r12, 1
jne 0x180028f00
call fcn.180016f40
mov r12, qword [rsp + 0xa0]
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.1800179e0
lea rcx, str.Original_Playlist
call fcn.18000eef0
mov rdx, qword [rdi + 0x448]
lea rcx, str.combo3
call fcn.180016660
test al, al
je 0x180028fff
mov qword [rbp - 0x19], 0
lea rbx, [rdi + 0x480]
mov rsi, qword [rbx]
lea r9, [rbp - 0x19]
mov r14, qword [rdi + 0x448]
mov rcx, rsi
cmp r14, rsi
sete dl
call fcn.180016fc0
test al, al
je 0x180028fcc
mov rax, qword [rbx]
mov qword [rdi + 0x448], rax
cmp r14, rsi
jne 0x180028ff0
mov rax, qword [0x18003d400]
mov rcx, qword [rax + 0x1860]
cmp byte [rcx + 0x95], 0
je 0x180028ff0
movaps xmm0, xmm6
call fcn.18000ed50
add rbx, 8
sub r15, 1
jne 0x180028fa2
call fcn.180016f40
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.1800179e0
lea rcx, str.Spoofed_Playlist
call fcn.18000eef0
mov rcx, qword [0x18003d400]
mov r15, qword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], 0
jne 0x18002905f
xorps xmm1, xmm1
mov qword [rbp - 0x19], 0
lea rcx, [rbp - 0x19]
call fcn.180005c10
movd xmm0, dword [rdi + 0x228]
lea rbx, str._.0f
movss xmm6, dword [0x180037298]
lea rdx, [rbp - 0x19]
movss xmm3, dword [0x1800372d4]
lea rcx, str.Min_Players
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x28], xmm6
movaps xmm2, xmm6
movss dword [rbp - 0x19], xmm0
mov qword [rsp + 0x20], rbx
call fcn.180010a40
cvttss2si eax, dword [rbp - 0x19]
lea rdx, [rbp - 0x19]
lea rcx, str.Max_Players
movss xmm3, dword [0x1800372e0]
movss xmm2, dword [0x1800372b0]
mov dword [rdi + 0x228], eax
movd xmm0, dword [rdi + 0x220]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x28], xmm6
movss dword [rbp - 0x19], xmm0
mov qword [rsp + 0x20], rbx
call fcn.180010a40
cvttss2si eax, dword [rbp - 0x19]
lea rdx, [rbp - 0x19]
lea rcx, str.Lobby_Intermission_Time
movss xmm3, dword [0x1800372ec]
movss xmm2, dword [0x1800372e8]
mov dword [rdi + 0x220], eax
movd xmm0, dword [rdi + 0x224]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x28], xmm6
movss dword [rbp - 0x19], xmm0
mov qword [rsp + 0x20], rbx
call fcn.180010a40
cvttss2si eax, dword [rbp - 0x19]
lea rdx, [rdi + 0x210]
lea rcx, str.Enable_DLC
mov dword [rdi + 0x224], eax
call fcn.180010fc0
mov rcx, qword [0x18003d400]
mov rax, qword [rcx + 0x1860]
mov byte [rax + 0x92], 1
mov rax, qword [rcx + 0x1860]
cmp byte [rax + 0x94], 0
jne 0x180029187
xorps xmm1, xmm1
mov qword [rbp - 0x19], 0
lea rcx, [rbp - 0x19]
call fcn.180005c10
lea rcx, str.I_have_made_it_so_you_cant_crash_end_9v9_lobbies
call fcn.18000eef0
lea rdx, [rbp - 0x19]
mov qword [rbp - 0x19], 0
lea rcx, str.Force_End_Game
call fcn.18000fb10
test al, al
je 0x1800291de
mov rax, qword [0x1800426c8]
cmp byte [rax], 0x12
je 0x1800291de
mov rax, qword [0x1800426b8]
lea rdx, str.cmd_lui_88__1__i_n
lea rcx, [rbp - 0x11]
mov r8d, dword [rax]
call fcn.1800293b0
lea rdx, [rbp - 0x11]
call fcn.180029410
lea rdx, [rbp - 0x19]
mov qword [rbp - 0x19], 0
lea rcx, str.Crash_lobby
call fcn.18000fb10
test al, al
je 0x180029326
mov rax, qword [0x1800426c8]
cmp byte [rax], 0x12
je 0x180029326
mov ecx, 0xc1
call qword [0x1800426b0]
mov rsi, qword [0x1800426a0]
lea rdx, str.say__
mov rbx, 0xffffffffffffffff
mov rdi, rbx
inc rdi
cmp byte [rdi + rdx], 0
jne 0x180029231
movsxd rcx, dword [rsi + 0xc]
lea eax, [rcx + rdi]
cmp eax, dword [rsi + 8]
jae 0x180029258
add rcx, qword [rsi]
lea eax, [rdi + 1]
movsxd r8, eax
call qword [0x180042698]
add dword [rsi + 0xc], edi
mov ecx, 0xc1
call qword [0x180042688]
mov rax, qword [0x1800426b8]
lea rdx, str.cmd_lui_88__1__i_n
lea rcx, [rbp - 0x11]
mov r8d, dword [rax]
call fcn.1800293b0
lea rdx, [rbp - 0x11]
call fcn.180029410
mov ecx, 0xc1
call qword [0x1800426b0]
mov rsi, qword [0x1800426a0]
lea rdx, str.cg_chattime_0
mov rdi, rbx
inc rdi
cmp byte [rdi + rdx], 0
jne 0x1800292a2
movsxd rcx, dword [rsi + 0xc]
lea eax, [rcx + rdi]
cmp eax, dword [rsi + 8]
jae 0x1800292c9
add rcx, qword [rsi]
lea eax, [rdi + 1]
movsxd r8, eax
call qword [0x180042698]
add dword [rsi + 0xc], edi
mov ecx, 0xc1
call qword [0x180042688]
mov ecx, 0xc1
call qword [0x1800426b0]
mov rdi, qword [0x1800426a0]
lea rdx, str.wait_2000__disconnect
nop dword [rax]
inc rbx
cmp byte [rbx + rdx], 0
jne 0x1800292f0
movsxd r9, dword [rdi + 0xc]
lea eax, [rbx + r9]
cmp eax, dword [rdi + 8]
jae 0x18002931b
lea eax, [rbx + 1]
mov rcx, r9
add rcx, qword [rdi]
movsxd r8, eax
call qword [0x180042698]
add dword [rdi + 0xc], ebx
mov ecx, 0xc1
call qword [0x180042688]
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.1800179e0
lea rcx, str.Dont_press_this_in_pregame_menu
call fcn.18000eef0
lea rcx, str.Change_to_spoofed_playlist_when_the_match
call fcn.18000eef0
lea rcx, str.is_about_to_begin_then_change_to_original_playlist
call fcn.18000eef0
lea rcx, str.when_the_match_has_started
call fcn.18000eef0
call fcn.180009f40
movaps xmm6, xmmword [rsp + 0x80]
call fcn.18000dfb0
movaps xmm7, xmmword [rsp + 0x70]
mov rsi, qword [rsp + 0xd0]
call fcn.180007f80
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.18002d2d0
add rsp, 0xa8
pop rdi
pop rbp
ret