Function at 0x14021caf0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x3f]
sub rsp, 0xe0
mov rax, qword [0x1406836b8]
xor rax, rsp
mov qword [rbp - 0x51], rax
mov ebx, edx
xor edx, edx
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rdi, rax
cmp dword [rax + 0x24c], 0
jne 0x14021d077
mov qword [rsp + 0x108], r12
add ebx, 0xfffffff7
mov qword [rsp + 0x110], r13
xor r12d, r12d
mov qword [rsp + 0xd8], r14
xor r13d, r13d
mov qword [rsp + 0xd0], r15
xor r15d, r15d
lea r14d, [r12 + 1]
cmp ebx, 0x1f
ja case.0x14021cb7b.10
lea rdx, [0x140000000]
movzx eax, byte [rdx + rbx + 0x21d0bc]
mov ecx, dword [rdx + rax*4 + 0x21d0a0]
add rcx, rdx
jmp rcx
mov r12d, r14d
mov r15d, r14d
jmp case.0x14021cb7b.10
mov r12d, 0xffffffff
mov r15d, r14d
jmp case.0x14021cb7b.10
mov r13d, r14d
mov r15d, r14d
jmp case.0x14021cb7b.10
mov r13d, 0xffffffff
mov r15d, r14d
jmp case.0x14021cb7b.10
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
mov edx, dword [rdi + 0x250]
xor r8d, r8d
test ax, ax
mov r9d, r14d
mov rcx, rdi
sets r8b
call fcn.14021c980
jmp case.0x14021cb7b.10
mov eax, dword [rdi + 0x250]
cmp eax, r14d
jne 0x14021cc0c
cmp dword [rdi + 0x244], r12d
je 0x14021cbff
xor eax, eax
cmp dword [rdi + 0x248], eax
sete al
mov dword [rdi + 0x248], eax
mov rcx, rdi
call fcn.140217800
jmp 0x14021cc8e
cmp eax, 7
jne case.0x14021cb7b.10
lea rcx, [rdi + 0x30c]
test rcx, rcx
je 0x14021cc44
mov eax, dword [rcx]
mov dword [rdi + 0x268], eax
mov eax, dword [rcx + 4]
mov dword [rdi + 0x26c], eax
mov eax, dword [rcx + 8]
mov dword [rdi + 0x270], eax
mov eax, dword [rcx + 0xc]
mov dword [rdi + 0x274], eax
mov rcx, rdi
call fcn.140217800
mov rbx, qword [rdi + 8]
mov rcx, rbx
mov dword [rdi + 0x308], r12d
mov dword [rdi + 0x250], 8
mov dword [rdi + 0x24c], r12d
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
mov rcx, qword [rdi + 0x10]
mov r9, rbx
movzx r8d, ax
mov edx, 0x111
or r8, 0x7000000
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, qword [rdi + 8]
call fcn.14021c200
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.140217670
test eax, eax
je 0x14021d040
test r15d, r15d
je 0x14021d040
mov ecx, dword [rdi + 0x250]
sub ecx, 3
je 0x14021cfd0
sub ecx, r14d
je 0x14021cfb0
sub ecx, r14d
je 0x14021cf90
sub ecx, r14d
je 0x14021cf70
cmp ecx, 2
jne 0x14021d037
movsd xmm5, qword [0x140453a08]
movsd xmm3, qword [0x1404538b8]
movaps xmmword [rsp + 0xc0], xmm6
movss xmm6, dword [rdi + 0x26c]
movaps xmmword [rsp + 0xb0], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0x80], xmm10
movss xmm10, dword [rdi + 0x270]
movaps xmmword [rsp + 0x70], xmm11
movss xmm11, dword [rdi + 0x268]
movaps xmmword [rsp + 0x60], xmm12
cvtps2pd xmm10, xmm10
cvtps2pd xmm6, xmm6
movaps xmm0, xmm10
movaps xmm1, xmm10
cvtps2pd xmm11, xmm11
minsd xmm0, xmm6
maxsd xmm1, xmm6
minsd xmm0, xmm11
maxsd xmm1, xmm11
movaps xmm12, xmm0
addsd xmm12, xmm1
mulsd xmm12, qword [0x140452130]
comisd xmm7, xmm12
jb 0x14021cd88
movaps xmm4, xmm3
movaps xmm2, xmm5
subsd xmm4, xmm12
jmp 0x14021ce7a
movaps xmm4, xmm1
subsd xmm4, xmm0
comisd xmm4, xmm7
jbe 0x14021ce64
ucomisd xmm10, xmm1
movaps xmmword [rsp + 0xa0], xmm8
movaps xmm2, xmm1
movaps xmmword [rsp + 0x90], xmm9
subsd xmm2, xmm11
movaps xmm9, xmm1
movaps xmm8, xmm1
subsd xmm9, xmm6
subsd xmm8, xmm10
divsd xmm2, xmm4
divsd xmm9, xmm4
divsd xmm8, xmm4
jp 0x14021cdf8
jne 0x14021cdf8
ucomisd xmm6, xmm0
jp 0x14021cdee
jne 0x14021cdee
addsd xmm2, qword [0x1404541e0]
jmp 0x14021ce48
movaps xmm2, xmm3
subsd xmm2, xmm9
jmp 0x14021ce48
ucomisd xmm6, xmm1
jp 0x14021ce24
jne 0x14021ce24
ucomisd xmm11, xmm0
jp 0x14021ce13
jne 0x14021ce13
movaps xmm2, xmm8
addsd xmm2, xmm3
jmp 0x14021ce48
movsd xmm0, qword [0x1404538c0]
subsd xmm0, xmm2
movaps xmm2, xmm0
jmp 0x14021ce48
ucomisd xmm10, xmm0
jp 0x14021ce3b
jne 0x14021ce3b
movaps xmm2, xmm9
addsd xmm2, qword [0x1404538c0]
jmp 0x14021ce48
movsd xmm2, qword [0x1404541e0]
subsd xmm2, xmm8
divsd xmm2, qword [0x1404541e8]
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
jmp 0x14021ce67
movaps xmm2, xmm5
ucomisd xmm5, xmm2
movaps xmm4, xmm3
subsd xmm4, xmm12
jp 0x14021ce77
je 0x14021ce7a
xor r14d, r14d
movaps xmm12, xmmword [rsp + 0x60]
xorps xmm0, xmm0
movaps xmm11, xmmword [rsp + 0x70]
movaps xmm10, xmmword [rsp + 0x80]
cvtsi2ss xmm0, r12d
mulss xmm0, dword [0x1404541d8]
cvtps2pd xmm6, xmm0
xorps xmm0, xmm0
addsd xmm6, xmm2
cvtsi2ss xmm0, r13d
mulss xmm0, dword [0x1404541d8]
cvtps2pd xmm1, xmm0
subsd xmm4, xmm1
test r14d, r14d
jne 0x14021cedb
comisd xmm7, xmm6
movaps xmm5, xmm6
jbe 0x14021ced1
addsd xmm5, xmm3
jmp 0x14021cedb
comisd xmm6, xmm3
jbe 0x14021cedb
subsd xmm5, xmm3
comisd xmm7, xmm4
movaps xmm6, xmmword [rsp + 0xc0]
jbe 0x14021ceee
xorps xmm4, xmm4
jmp 0x14021cef7
comisd xmm4, xmm3
jbe 0x14021cef7
movaps xmm4, xmm3
xor eax, eax
xorps xmm0, xmm0
comisd xmm7, xmm5
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x79], rax
maxsd xmm0, xmm5
movsd qword [rbp - 0x71], xmm0
jbe 0x14021cf1b
movsd qword [rbp - 0x69], xmm7
jmp 0x14021cf20
movsd qword [rbp - 0x69], xmm3
test byte [rdi + 4], 0x80
movaps xmm0, xmm3
movaps xmm7, xmmword [rsp + 0xb0]
subsd xmm0, xmm4
movsd qword [rbp - 0x61], xmm0
je 0x14021cf4c
movss xmm0, dword [rdi + 0x274]
cvtps2pd xmm0, xmm0
movsd qword [rbp - 0x59], xmm0
jmp 0x14021cf51
movsd qword [rbp - 0x59], xmm3
lea rdx, [rbp - 0x71]
lea rcx, [rsp + 0x20]
call sym.ErrorReportClient.exe_SFHSL_To_SFRGBAFLOAT
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi + 0x268], xmm0
jmp 0x14021cffd
movss xmm1, dword [rbp - 0x75]
movd xmm0, r13d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1404541d8]
addss xmm1, xmm0
movss dword [rbp - 0x75], xmm1
jmp 0x14021cff0
movss xmm1, dword [rbp - 0x79]
movd xmm0, r12d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1404541d8]
addss xmm1, xmm0
movss dword [rbp - 0x79], xmm1
jmp 0x14021cff0
movss xmm1, dword [rbp - 0x7d]
movd xmm0, r12d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1404541d8]
addss xmm1, xmm0
movss dword [rbp - 0x7d], xmm1
jmp 0x14021cff0
movss xmm1, dword [rsp + 0x20]
movd xmm0, r12d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1404541d8]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.140217340
mov rcx, rdi
call fcn.140217800
mov rcx, rdi
call fcn.140218c50
mov rbx, qword [rdi + 8]
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
mov rcx, qword [rdi + 0x10]
mov r9, rbx
movzx r8d, ax
mov edx, 0x111
or r8, 0x7000000
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, qword [rdi + 8]
call fcn.14021c200
mov r14, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x110]
mov r12, qword [rsp + 0x108]
mov r15, qword [rsp + 0xd0]
mov rcx, qword [rbp - 0x51]
xor rcx, rsp
call fcn.14039bbb0
add rsp, 0xe0
pop rdi
pop rbx
pop rbp
ret
cmp ebx, 0x1b
jne 0x14021d060
movups xmm0, xmmword [rax + 0x278]
mov rcx, qword [rax + 8]
mov dword [rax + 0x24c], 0
movups xmmword [rax + 0x268], xmm0
call fcn.14021c200
jmp 0x14021d060