Function at 0x14003d3c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x280
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
mov rax, qword [0x140093040]
xor rax, rsp
mov qword [rbp + 0xf8], rax
xor ebx, ebx
mov r14, rcx
mov qword [rcx], rbx
mov r13b, dl
mov dword [rcx + 8], ebx
or r15d, 0xffffffff
lea ecx, [rbx + 1]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
movd xmm13, eax
cvtdq2ps xmm13, xmm13
mulss xmm13, dword [0x14008cf00]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov rcx, qword [0x140093ff0]
xorps xmm10, xmm10
sub rcx, qword [0x140093fe8]
and dword [rsp + 0x20], ebx
and dword [rsp + 0x24], ebx
and dword [rsp + 0x30], ebx
and dword [rsp + 0x34], ebx
and dword [rsp + 0x38], ebx
movss xmm9, dword [0x14008d114]
movd xmm12, eax
movabs rax, 0x6806806806806807
imul rcx
cvtdq2ps xmm12, xmm12
sar rdx, 7
mulss xmm12, dword [0x14008cf00]
mov rax, rdx
shr rax, 0x3f
movss dword [rsp + 0x28], xmm10
add rdx, rax
je 0x14003dd89
movss xmm11, dword [0x14008cfd0]
mov r12d, ebx
mov esi, dword [rsp + 0x38]
mov edi, ebx
movsd xmm8, qword [rsp + 0x30]
cmp byte [0x140093cf6], bl
mov rcx, qword [0x140093fe8]
jne 0x14003d6d2
cmp byte [rdi + rcx + 0xd0], bl
je 0x14003d918
cmp byte [rdi + rcx + 0xd2], bl
je 0x14003d918
cmp byte [rdi + rcx + 0xd1], bl
je 0x14003d918
movsd xmm0, qword [rdi + rcx + 0xe7]
mov eax, dword [rdi + rcx + 0xef]
movaps xmm8, xmm0
movsd xmm6, qword [rdi + rcx + 0xf3]
mov esi, eax
mov ebx, dword [rdi + rcx + 0xfb]
movsd qword [rsp + 0x20], xmm0
movsd qword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x38], eax
test r13b, r13b
je 0x14003d5ab
lea rdx, [rbp - 0xc]
call fcn.140034218
lea rdx, [rbp]
call fcn.140034218
lea rdx, [rbp + 0xc]
call fcn.140034218
movss xmm3, dword [0x14008d0b0]
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x20]
movsd qword [rbp - 0x70], xmm6
mov dword [rbp - 0x68], ebx
call fcn.14003b7fc
movsd xmm0, qword [rsp + 0x20]
lea r8, [rbp - 0x60]
mov eax, dword [rsp + 0x28]
lea rdx, [rbp - 0x24]
movsd qword [rbp - 0x60], xmm0
mov dword [rbp - 0x58], eax
jmp 0x14003d5bb
movsd qword [rbp - 0x50], xmm0
lea r8, [rbp - 0x50]
mov dword [rbp - 0x48], eax
lea rdx, [rbp - 0x1c]
call fcn.1400343d8
movaps xmm1, xmm11
movss xmm0, dword [rax]
movss xmm7, dword [rax + 4]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm7, xmm13
movaps xmm6, xmm0
movaps xmm1, xmm11
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov al, byte [0x140093d2b]
xor ebx, ebx
movss xmm10, dword [rsp + 0x28]
movaps xmm1, xmm0
test al, al
je 0x14003d670
lea rdx, [rbp + 0x18]
call fcn.140034218
lea rdx, [rbp + 0x24]
movss xmm7, dword [rax + 8]
call fcn.140034218
lea rdx, [rbp + 0x30]
movss xmm6, dword [rax + 4]
call fcn.140034218
movss xmm0, dword [rsp + 0x20]
movaps xmm2, xmm10
movss xmm1, dword [rsp + 0x24]
subss xmm2, xmm7
subss xmm1, xmm6
subss xmm0, dword [rax]
mulss xmm2, xmm2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
addss xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov al, byte [0x140093d2b]
movaps xmm1, xmm0
comiss xmm9, xmm1
jbe 0x14003d6aa
movss xmm0, dword [0x1400930d8]
comiss xmm0, xmm1
jb 0x14003d6aa
test al, al
jne 0x14003d6b2
test r13b, r13b
lea rax, [rsp + 0x20]
lea rcx, [rsp + 0x30]
movaps xmm9, xmm1
cmove rax, rcx
movsd xmm0, qword [rax]
movsd qword [r14], xmm0
jmp 0x14003d90e
test al, al
je 0x14003d918
lea rdx, [rbp + 0x3c]
call fcn.140034218
lea rdx, [rbp + 0x48]
movss xmm7, dword [rax + 8]
call fcn.140034218
lea rdx, [rbp + 0x54]
jmp 0x14003d8ab
cmp byte [rdi + rcx + 0xd0], bl
je 0x14003d918
cmp byte [rdi + rcx + 0xd2], bl
jne 0x14003d918
cmp byte [rdi + rcx + 0xd1], bl
je 0x14003d918
mov rax, qword [0x140093450]
cmp qword [rdi + rcx], rax
je 0x14003d918
mov eax, dword [0x140093100]
cmp eax, 1
jne 0x14003d727
movsd xmm0, qword [rdi + rcx + 0xe7]
mov eax, dword [rdi + rcx + 0xef]
jmp 0x14003d753
cmp eax, 2
jne 0x14003d73e
movsd xmm0, qword [rdi + rcx + 0x117]
mov eax, dword [rdi + rcx + 0x11f]
jmp 0x14003d753
cmp eax, 3
jne 0x14003d772
movsd xmm0, qword [rdi + rcx + 0x123]
mov eax, dword [rdi + rcx + 0x12b]
movsd qword [rsp + 0x20], xmm0
movaps xmm8, xmm0
mov dword [rsp + 0x28], eax
mov esi, eax
movsd qword [rsp + 0x30], xmm0
mov dword [rsp + 0x38], eax
movd xmm10, eax
movsd xmm6, qword [rdi + rcx + 0xf3]
mov ebx, dword [rdi + rcx + 0xfb]
test r13b, r13b
je 0x14003d7ec
lea rdx, [rbp + 0x60]
call fcn.140034218
lea rdx, [rbp + 0x6c]
call fcn.140034218
lea rdx, [rbp + 0xd0]
call fcn.140034218
movss xmm3, dword [0x14008d0b0]
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x20]
movsd qword [rbp - 0x40], xmm6
mov dword [rbp - 0x38], ebx
call fcn.14003b7fc
movsd xmm0, qword [rsp + 0x20]
lea r8, [rsp + 0x60]
mov ebx, dword [rsp + 0x28]
lea rdx, [rbp - 0x14]
movsd qword [rsp + 0x60], xmm0
mov dword [rsp + 0x68], ebx
call fcn.1400343d8
movd xmm10, ebx
jmp 0x14003d806
lea r8, [rsp + 0x40]
movsd qword [rsp + 0x40], xmm8
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x48], esi
call fcn.1400343d8
movss xmm0, dword [rax]
movaps xmm1, xmm11
movss xmm7, dword [rax + 4]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm7, xmm13
movaps xmm6, xmm0
movaps xmm1, xmm11
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm2, xmm0
comiss xmm9, xmm2
jbe 0x14003d880
movss xmm1, dword [0x1400930d8]
comiss xmm1, xmm2
jb 0x14003d880
xor ebx, ebx
cmp byte [0x140093d2b], bl
jne 0x14003d88e
test r13b, r13b
lea rax, [rsp + 0x20]
lea rcx, [rsp + 0x30]
movaps xmm9, xmm2
cmove rax, rcx
movsd xmm0, qword [rax]
movsd qword [r14], xmm0
jmp 0x14003d90e
xor ebx, ebx
cmp byte [0x140093d2b], bl
je 0x14003d918
lea rdx, [rbp - 0x30]
call fcn.140034218
lea rdx, [rsp + 0x78]
movss xmm7, dword [rax + 8]
call fcn.140034218
lea rdx, [rsp + 0x50]
movss xmm6, dword [rax + 4]
call fcn.140034218
movss xmm1, dword [rsp + 0x24]
movaps xmm2, xmm10
movss xmm0, dword [rsp + 0x20]
subss xmm1, xmm6
subss xmm2, xmm7
subss xmm0, dword [rax]
mulss xmm1, xmm1
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm0, xmm1
addss xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm9, xmm0
jbe 0x14003d918
test r13b, r13b
lea rax, [rsp + 0x20]
lea rcx, [rsp + 0x30]
movaps xmm9, xmm0
cmove rax, rcx
movsd xmm1, qword [rax]
movsd qword [r14], xmm1
mov eax, dword [rax + 8]
mov r15d, r12d
mov dword [r14 + 8], eax
mov rcx, qword [0x140093ff0]
inc r12d
mov r8, qword [0x140093fe8]
movabs rax, 0x6806806806806807
sub rcx, r8
add rdi, 0x13b
imul rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r12d
cmp rax, rdx
jb 0x14003d4dd
cmp r15d, 0xffffffff
je 0x14003dd89
movsxd rax, r15d
imul rsi, rax, 0x13b
cmp byte [0x140093d41], bl
mov dword [0x140093118], r15d
movss xmm0, dword [rsi + r8 + 0xaa]
movss dword [0x140093d3c], xmm0
je 0x14003dcca
mov rax, qword [rsi + r8 + 0x70]
cmp rax, 0x16dd
je 0x14003dcca
cmp rax, 0x16ee
je 0x14003dcca
movabs rcx, 0xfd1ffffffffffcc9
add rcx, rax
cmp rcx, 0x2c
ja 0x14003d9d7
movabs rdx, 0x100800040025
bt rdx, rcx
jb 0x14003daee
movabs rcx, 0x2e000000000016c
cmp rax, rcx
je 0x14003daee
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0xf0], rax
mov rdi, rbx
movups xmmword [rbp + 0xe0], xmm0
mov rbx, qword [0x140093fe8]
lea rdx, [rbp + 0x80]
add rbx, rsi
mov rcx, rbx
call fcn.140036988
lea rdx, [rsp + 0x50]
mov rcx, rbx
mov r8d, dword [rax + rdi]
call fcn.140035878
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x70]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.1400343d8
movaps xmm1, xmm11
movss xmm0, dword [rax]
movss xmm7, dword [rax + 4]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm7, xmm13
movaps xmm6, xmm0
movaps xmm1, xmm11
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss dword [rbp + rdi + 0xd0], xmm0
add rdi, 4
cmp rdi, 0x28
jl 0x14003da07
xor r8d, r8d
lea rdx, [rbp + 0xf8]
lea rcx, [rbp + 0xd0]
call fcn.140053cf0
mov rdi, qword [0x140093fe8]
lea rdx, [rbp + 0x80]
add rdi, rsi
mov rbx, rax
mov rcx, rdi
call fcn.140036988
lea rcx, [rbp + 0xd0]
sub rbx, rcx
mov rcx, rdi
sar rbx, 2
movsxd r8, ebx
mov r8d, dword [rax + r8*4]
jmp 0x14003dc25
movdqa xmm1, xmmword [0x14008d220]
xorps xmm0, xmm0
xor eax, eax
mov dword [rbp - 0x78], 0x36
movups xmmword [rbp + 0xd0], xmm0
mov dword [rbp + 0xe0], eax
movdqu xmmword [rsp + 0x78], xmm1
mov rcx, qword [0x140093fe8]
lea rdx, [rsp + 0x50]
mov r8d, dword [rsp + rbx + 0x78]
add rcx, rsi
call fcn.140035878
mov rcx, qword [0x140093fe8]
movsd xmm0, qword [rax]
movsd qword [rsp + 0x40], xmm0
movss xmm0, dword [rsi + rcx + 0x10b]
ucomiss xmm0, dword [rsp + 0x40]
jp 0x14003db81
jne 0x14003db81
movss xmm0, dword [rsi + rcx + 0x10f]
ucomiss xmm0, dword [rsp + 0x44]
jp 0x14003db81
jne 0x14003db81
movss xmm1, dword [rsi + rcx + 0x113]
ucomiss xmm1, dword [rax + 8]
jp 0x14003db81
jne 0x14003db81
mov dword [rbp + rbx + 0xd0], 0x47c35000
jmp 0x14003dbe1
movsd xmm0, qword [rax]
lea r8, [rsp + 0x60]
mov eax, dword [rax + 8]
lea rdx, [rsp + 0x70]
movsd qword [rsp + 0x60], xmm0
mov dword [rsp + 0x68], eax
call fcn.1400343d8
movaps xmm1, xmm11
movss xmm0, dword [rax]
movss xmm7, dword [rax + 4]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm7, xmm13
movaps xmm6, xmm0
movaps xmm1, xmm11
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss dword [rbp + rbx + 0xd0], xmm0
add rbx, 4
cmp rbx, 0x14
jl 0x14003db15
xor r8d, r8d
lea rdx, [rbp + 0xe4]
lea rcx, [rbp + 0xd0]
call fcn.140053cf0
mov rcx, qword [0x140093fe8]
lea rdx, [rbp + 0xd0]
add rcx, rsi
sub rax, rdx
sar rax, 2
movsxd r8, eax
mov r8d, dword [rsp + r8*4 + 0x78]
lea rdx, [rsp + 0x50]
call fcn.140035878
xor ebx, ebx
movsd xmm2, qword [rax]
mov ecx, dword [rax + 8]
movsd qword [rsp + 0x30], xmm2
movss xmm1, dword [rsp + 0x34]
movss xmm0, dword [rsp + 0x30]
movsd qword [r14], xmm2
movss dword [rsp + 0x24], xmm1
movss dword [rsp + 0x20], xmm0
mov dword [r14 + 8], ecx
mov dword [rsp + 0x28], ecx
test r13b, r13b
je 0x14003dcca
mov rax, qword [0x140093fe8]
lea rdx, [rsp + 0x50]
movsd xmm6, qword [rsi + rax + 0xf3]
mov ebx, dword [rsi + rax + 0xfb]
call fcn.140034218
lea rdx, [rsp + 0x78]
call fcn.140034218
lea rdx, [rbp - 0x30]
call fcn.140034218
lea rdx, [rsp + 0x40]
movsd qword [rsp + 0x40], xmm6
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x48], ebx
call fcn.14003b484
movsd xmm0, qword [rsp + 0x20]
xor ebx, ebx
mov eax, dword [rsp + 0x28]
movsd qword [r14], xmm0
mov dword [r14 + 8], eax
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003dd89
cmp byte [0x140093cdc], bl
je 0x14003dd89
movss xmm1, dword [0x14008d0c8]
movss xmm0, dword [0x14008bc3c]
mov rcx, qword [0x140093fe8]
mulss xmm0, xmm1
mov rdx, qword [rsi + rcx + 0x38]
cvttss2si r8, xmm0
add rdx, 0x144
movss xmm0, dword [0x14008bc38]
mulss xmm0, xmm1
shl r8d, 8
cvttss2si rax, xmm0
movss xmm0, dword [0x14008bc34]
or r8d, eax
mulss xmm0, xmm1
shl r8d, 8
cvttss2si rax, xmm0
movss xmm0, dword [0x14008bc30]
or r8d, eax
mulss xmm0, xmm1
shl r8d, 8
cvttss2si rax, xmm0
or r8d, eax
mov dword [0x1400930ec], r8d
call fcn.1400509a0
mov rcx, qword [0x140093fe8]
mov r8d, dword [0x1400930ec]
mov rdx, qword [rsi + rcx + 0x38]
add rdx, 0x130
call fcn.1400509a0
mov rax, r14
mov rcx, qword [rbp + 0xf8]
xor rcx, rsp
call fcn.140052c20
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret