Function at 0x1800017c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
mov rax, qword [0x18004c040]
xor rax, rsp
mov qword [rbp + 0x1f], rax
xor r14d, r14d
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm8, dword [0x180044924]
mulss xmm0, xmm8
cvtps2pd xmm6, xmm0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm8
cvtps2pd xmm7, xmm0
movsd qword [0x180098788], xmm6
movsd qword [0x180098790], xmm7
cmp byte [0x1800987a0], r14b
je 0x1800018a7
mov r8, qword [0x1800987f8]
movdqa xmm0, xmmword [0x180044f50]
movups xmmword [rbp - 0x19], xmm0
lea rcx, [rbp - 0x19]
call fcn.18000bca0
cvtpd2ps xmm1, xmm7
cvtpd2ps xmm0, xmm6
movss dword [rbp - 0x19], xmm0
movss dword [rbp - 0x15], xmm1
movss xmm1, dword [0x180044950]
movss dword [rsp + 0x28], xmm1
mov r9d, eax
movss xmm2, dword [0x18004c0b4]
lea rdx, [rbp - 0x19]
lea rcx, [r8 + 0x1de8]
call fcn.180026240
call fcn.1800093a0
test al, al
je 0x18000198a
cmp byte [0x1800989f8], r14b
jne 0x18000198a
call fcn.180005450
test rax, rax
je 0x1800018dd
mov rax, qword [rax + 0xa58]
test rax, rax
je 0x1800018dd
mov rax, qword [rax + 0x78]
jmp 0x1800018e0
mov rax, r14
mov rax, qword [rax + 0x1b8]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x1800023aa
cmp dword [rax + 0x40], r14d
jle 0x1800023aa
mov rax, qword [rcx]
mov rcx, qword [rax + 0x78]
mov rax, qword [rcx]
mov rcx, qword [rax + 0x268]
mov qword [0x180098aa8], rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call fcn.18003b230
call fcn.18003ad10
lea rdx, [0x180035bf0]
lea rcx, [0x180098aa8]
call fcn.18003a2f0
call fcn.18003ad80
mov cl, 1
call fcn.180035f10
mov cl, 1
call fcn.180035fe0
mov byte [0x1800989f8], 1
call fcn.1800092a0
test al, al
je 0x18000233e
call fcn.180005450
test rax, rax
je 0x180001a36
mov rax, qword [rax + 0xa58]
test rax, rax
je 0x180001a36
mov rax, qword [rax + 0x78]
jmp 0x180001a39
call fcn.1800093a0
test al, al
jne 0x180001956
cmp byte [0x1800989f8], r14b
je 0x180001956
call fcn.180005450
test rax, rax
je 0x1800019b8
mov rax, qword [rax + 0xa58]
test rax, rax
je 0x1800019b8
mov rax, qword [rax + 0x78]
jmp 0x1800019bb
mov rax, r14
mov rax, qword [rax + 0x1b8]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x1800023c4
cmp dword [rax + 0x40], r14d
jle 0x1800023c4
mov rax, qword [rcx]
mov rcx, qword [rax + 0x78]
mov rax, qword [rcx]
mov rcx, qword [rax + 0x268]
mov qword [0x180098aa8], rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call fcn.18003b230
call fcn.18003ad10
lea rdx, [0x180035bf0]
lea rcx, [0x180098aa8]
call fcn.18003a970
call fcn.18003ad80
xor ecx, ecx
call fcn.180035f10
xor ecx, ecx
call fcn.180035fe0
mov byte [0x1800989f8], r14b
jmp 0x180001956
mov rax, r14
mov rax, qword [rax + 0x1b8]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x180002390
cmp dword [rax + 0x40], r14d
jle 0x180002390
mov rax, qword [rcx]
mov rcx, qword [rax + 0x30]
mov qword [0x180098748], rcx
call fcn.180005450
test rax, rax
je 0x180001ab2
mov rax, qword [rax + 0xa58]
test rax, rax
je 0x180001ab2
mov rax, qword [rax + 0x78]
test rax, rax
je 0x180001ab2
mov rax, qword [rax + 0x1b8]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x1800023de
cmp dword [rax + 0x40], r14d
jle 0x1800023de
mov rax, qword [rcx]
mov rcx, qword [rax + 0x30]
mov rcx, qword [rcx + 0x340]
jmp 0x180001ab5
mov rcx, r14
mov qword [0x180098750], rcx
cmp byte [0x1800987a3], r14b
je 0x180001bbd
call fcn.180008f90
mov rdi, rax
test rax, rax
je 0x180001bb6
call fcn.1800012b0
call fcn.180001200
mov rcx, qword [0x180098748]
lea rdx, [rbp - 1]
mov rcx, qword [rcx + 0x350]
call fcn.180005900
mov rbx, qword [rdi + 0x320]
lea rax, str.Head
mov qword [rbp - 0x19], rax
mov dword [rbp - 0x11], 5
mov dword [rbp - 0xd], 5
lea rcx, [rbp - 0x19]
call fcn.1800055f0
mov rdx, rax
mov rcx, rbx
call fcn.180004e50
mov rbx, qword [rdi + 0x320]
test rbx, rbx
jne 0x180001b4b
xorps xmm1, xmm1
xorps xmm0, xmm0
movsd qword [rbp - 0x29], xmm0
xorps xmm2, xmm2
jmp 0x180001b72
mov r8d, eax
lea rdx, [rbp - 0x19]
mov rcx, rbx
call fcn.180005140
mov r8, qword [rax]
lea rdx, [rbp - 0x39]
mov rcx, rbx
call fcn.180003ea0
movups xmm1, xmmword [rbp - 0x39]
movsd xmm2, qword [rbp - 0x29]
movups xmmword [rbp - 0x39], xmm1
movsd qword [rbp - 0x29], xmm2
lea r8, [rbp - 0x39]
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x19]
call fcn.180006250
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x39], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x29], xmm1
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180001bb6
lea rdx, [rbp - 0x39]
call fcn.180006f80
mov rcx, qword [0x180098750]
cmp byte [0x180098798], r14b
je 0x180001be3
movss xmm0, dword [0x18009879c]
movss dword [rcx + 0x64], xmm0
mov byte [0x18004c0b9], r14b
cmp byte [0x180098798], r14b
jmp 0x180001bea
cmp byte [0x18004c0b9], r14b
jne 0x180001bfa
mov dword [rcx + 0x64], 0x3f800000
mov byte [0x18004c0b9], 1
cmp byte [0x1800987a1], r14b
je 0x180001d50
mov ecx, 0x61
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180001d49
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], rax
call fcn.1800015b0
mov rdx, rax
lea rcx, [rbp - 0x19]
call fcn.180008da0
nop
mov esi, r14d
mov rdx, qword [rbp - 0x11]
mov rax, rdx
mov r8, qword [rbp - 0x19]
sub rax, r8
sar rax, 3
test rax, rax
je 0x180001cf5
mov rdi, r14
nop word [rax + rax]
mov rbx, qword [rdi + r8]
movzx eax, byte [rbx + 0xf71]
sub al, 3
cmp al, 1
ja 0x180001cd9
call fcn.180005450
test rax, rax
je 0x180001cbe
mov rcx, qword [rax + 0xa58]
test rcx, rcx
je 0x180001cbe
mov rax, qword [rcx + 0x78]
test rax, rax
je 0x180001cbe
mov rax, qword [rax + 0x1b8]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x1800023f8
cmp dword [rax + 0x40], 0
jle 0x1800023f8
mov rax, qword [rcx]
mov rcx, qword [rax + 0x30]
mov rdx, qword [rcx + 0x340]
jmp 0x180001cc1
mov rdx, r14
mov rcx, rbx
call fcn.180006c90
mov rdx, rbx
call fcn.180007290
mov rdx, qword [rbp - 0x11]
mov r8, qword [rbp - 0x19]
inc esi
add rdi, 8
mov rcx, rdx
sub rcx, r8
sar rcx, 3
movsxd rax, esi
cmp rax, rcx
jb 0x180001c60
test r8, r8
je 0x180001d49
mov rax, qword [rbp - 9]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x180001d35
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180001d35
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.18003c804
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], r14
mov rcx, qword [0x180098750]
cmp byte [0x180098799], 0
je 0x180001e91
lea rdx, [rbp - 0x39]
call fcn.180004850
mov rax, qword [0x180098750]
mov rbx, qword [rax + 0x328]
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180001db0
movups xmm0, xmmword [rbp - 0x39]
movups xmmword [rbp - 1], xmm0
movss xmm0, dword [0x18009877c]
mulss xmm0, dword [0x18004499c]
mulss xmm0, xmm8
cvtps2pd xmm0, xmm0
addsd xmm0, qword [rbp - 0x29]
movsd qword [rbp + 0xf], xmm0
jmp 0x180001dee
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180001df7
movups xmm0, xmmword [rbp - 0x39]
movups xmmword [rbp - 1], xmm0
movss xmm0, dword [0x18009877c]
mulss xmm0, dword [0x18004499c]
mulss xmm0, xmm8
cvtps2pd xmm0, xmm0
movsd xmm1, qword [rbp - 0x29]
subsd xmm1, xmm0
movsd qword [rbp + 0xf], xmm1
lea rdx, [rbp - 1]
call fcn.1800041c0
mov byte [rbx + 0x201], 5
movss xmm0, dword [0x18009877c]
movss xmm2, dword [0x180044a04]
mulss xmm0, xmm2
movss dword [rbx + 0x254], xmm0
movss xmm0, dword [0x18009877c]
mulss xmm0, xmm2
movss dword [rbx + 0x248], xmm0
movss xmm1, dword [0x18009877c]
mulss xmm1, xmm2
movss dword [rbx + 0x25c], xmm1
mov rcx, qword [0x180098750]
cmp byte [0x1800987a2], 0
je 0x180001e6d
and byte [rcx + 0x5c], 0x7f
mov byte [0x18004c0bb], 0
mov byte [0x18004c0ba], 0
cmp byte [0x180098799], 0
jmp 0x180001e98
cmp byte [0x18004c0bb], 0
jne 0x180001e81
or byte [rcx + 0x5c], 0x80
mov byte [0x18004c0bb], 1
mov byte [0x18004c0ba], 0
cmp byte [0x180098799], 0
jmp 0x180001e98
cmp byte [0x18004c0ba], 0
jne 0x180001ed5
mov rax, qword [rcx + 0x328]
mov byte [rax + 0x201], 3
mov dword [rax + 0x254], r14d
mov dword [rax + 0x248], 0x438c0000
mov dword [rax + 0x25c], 0x43e10000
or byte [rcx + 0x5c], 0x80
mov byte [0x18004c0bb], 1
mov byte [0x18004c0ba], 1
cmp byte [0x180098778], 0
je 0x180001fb1
mov ecx, 0x62
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180001faa
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 1], xmm0
mov qword [rbp + 0xf], rax
call fcn.180001660
mov rdx, rax
lea rcx, [rbp - 1]
call fcn.180008da0
nop
mov edi, r14d
mov rax, qword [rbp + 7]
mov r8, qword [rbp - 1]
sub rax, r8
sar rax, 3
test rax, rax
je 0x180001f56
mov rbx, r14
nop
mov rcx, qword [rbx + r8]
call fcn.180008aa0
inc edi
lea rbx, [rbx + 8]
mov rcx, qword [rbp + 7]
mov r8, qword [rbp - 1]
sub rcx, r8
sar rcx, 3
movsxd rax, edi
cmp rax, rcx
jb 0x180001f30
test r8, r8
je 0x180001faa
mov rax, qword [rbp + 0xf]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x180001f96
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180001f96
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.18003c804
xorps xmm0, xmm0
movdqu xmmword [rbp - 1], xmm0
mov qword [rbp + 0xf], r14
mov rcx, qword [0x180098750]
cmp byte [0x180098780], 0
je 0x180002094
mov ecx, 0x63
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18000208d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], rax
call fcn.180001710
mov rdx, rax
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov r9d, r14d
mov rax, qword [rbp - 0x31]
mov r8, qword [rbp - 0x39]
sub rax, r8
sar rax, 3
test rax, rax
je 0x180002039
mov rdx, r14
nop dword [rax]
mov rax, qword [rdx + r8]
mov byte [rax + 0x329], 2
inc r9d
lea rdx, [rdx + 8]
mov rcx, qword [rbp - 0x31]
mov r8, qword [rbp - 0x39]
sub rcx, r8
sar rcx, 3
movsxd rax, r9d
cmp rax, rcx
jb 0x180002010
test r8, r8
je 0x18000208d
mov rax, qword [rbp - 0x29]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x180002079
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180002079
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.18003c804
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], r14
mov rcx, qword [0x180098750]
cmp byte [0x180098781], 0
je 0x1800020c7
test rcx, rcx
je 0x1800020ba
call fcn.1800078a0
test rax, rax
je 0x1800020ba
or byte [rax + 0x14c4], 1
mov byte [0x18004c0b8], 0
cmp byte [0x180098781], 0
jne 0x180002220
cmp byte [0x18004c0b8], 0
jne 0x180002220
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], rax
mov rax, qword [0x1800987b0]
test rax, rax
jne 0x180002176
movups xmmword [rbp - 1], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xf], xmm1
lea rdx, str.BaseMagazineWeapon
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180002110
lea rcx, [rbp - 1]
call fcn.1800013c0
nop
lea rcx, [rbp - 1]
call fcn.180002f40
mov qword [0x1800987b0], rax
mov rdx, qword [rbp + 0x17]
cmp rdx, 0xf
jbe 0x180002176
inc rdx
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000216a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002211
call fcn.18003c804
mov rax, qword [0x1800987b0]
mov rdx, rax
lea rcx, [rbp - 0x39]
call fcn.180008da0
mov r9d, r14d
mov r10, qword [rbp - 0x31]
mov rax, r10
mov r8, qword [rbp - 0x39]
sub rax, r8
sar rax, 3
test rax, rax
je 0x1800021d8
mov rdx, r14
nop
mov rax, qword [rdx + r8]
test rax, rax
je 0x1800021bf
and byte [rax + 0x14c4], 0xfe
mov byte [0x18004c0b8], 1
mov r10, qword [rbp - 0x31]
mov r8, qword [rbp - 0x39]
inc r9d
add rdx, 8
mov rcx, r10
sub rcx, r8
sar rcx, 3
movsxd rax, r9d
cmp rax, rcx
jb 0x1800021a0
test r8, r8
je 0x180002220
mov rax, qword [rbp - 0x29]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x180002218
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180002218
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.18003c804
mov ecx, 0x68
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18000233e
call fcn.180005450
test rax, rax
je 0x180002280
mov rcx, qword [rax + 0xa58]
test rcx, rcx
je 0x180002280
mov rax, qword [rcx + 0x78]
test rax, rax
je 0x180002280
mov rax, qword [rax + 0x1b8]
mov rcx, qword [rax + 0x38]
test rcx, rcx
je 0x180002376
cmp dword [rax + 0x40], 0
jle 0x180002376
mov rax, qword [rcx]
mov rcx, qword [rax + 0x30]
mov rdi, qword [rcx + 0x340]
jmp 0x180002283
mov rdi, r14
test rdi, rdi
je 0x18000233e
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x29], xmm1
mov r8d, 0x2a
lea rdx, str.Material_M_SWAT_Balaclava.M_SWAT_Balaclava
lea rcx, [rbp - 0x39]
call fcn.1800013c0
nop
lea rcx, [rbp - 0x39]
call fcn.1800035c0
mov rbx, rax
mov rdx, qword [rbp - 0x21]
cmp rdx, 0xf
jbe 0x1800022fc
inc rdx
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800022f7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800022f7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18003c804
or byte [rbx + 0x198], 1
mov word [rbx + 0x110], 0x300
or byte [rbx + 0x1a8], 0x10
or byte [rbx + 0x1b8], 1
mov qword [rbx + 0x68], 0x4479c000
mov rcx, rdi
call fcn.1800078a0
test rax, rax
je 0x18000233e
mov r8, rbx
mov rcx, qword [rax + 0x428]
call fcn.180004b60
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.18003c7a0
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rbp
ret
lea rcx, [rbp - 0x39]
call fcn.1800014c0
lea rdx, [0x18004a180]
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rbp - 0x39]
call fcn.1800014c0
lea rdx, [0x18004a180]
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rbp - 0x39]
call fcn.1800014c0
lea rdx, [0x18004a180]
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rbp - 0x39]
call fcn.1800014c0
lea rdx, [0x18004a180]
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rbp - 0x39]
call fcn.1800014c0
lea rdx, [0x18004a180]
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
lea rcx, [rbp - 0x39]
call fcn.1800014c0
lea rdx, [0x18004a180]
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll__CxxThrowException
int3