Function at 0x14003fca0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x128]
sub rsp, 0x220
mov rax, qword [0x140052098]
xor rax, rsp
mov qword [rbp + 0x50], rax
movsxd rax, dword [0x140052200]
xor ecx, ecx
mov qword [rbp + 0x18], rax
mov rax, qword [0x140052208]
add rax, 0xe93ccd8
mov qword [r11 + 0x10], rsi
mov qword [rbp + 0x20], rax
xor esi, esi
mov qword [r11 + 0x18], rdi
lea rax, [rbp - 0x20]
mov qword [rbp + 0x28], rax
lea rdi, [rbp + 0x10]
xor eax, eax
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [r11 - 0x18], r13
mov qword [rbp - 0x20], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x20]
lea rdi, [rbp + 0x10]
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov qword [0x140052250], rcx
lea rax, [rcx + 0x1b8]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x20]
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x20], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x20]
lea rdi, [rbp + 0x10]
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov qword [0x140052258], rcx
lea rax, [rcx + 0x38]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x20]
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x20], rsi
call qword [0x1400521f8]
movsxd rax, dword [0x140052200]
lea rdi, [rbp - 0x50]
mov qword [rbp - 0x48], rax
xor ecx, ecx
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x40], rax
lea rax, [rbp - 0x10]
mov qword [rbp - 0x38], rax
xor eax, eax
mov qword [rbp - 0x50], 3
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x50]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov qword [0x140052260], rcx
lea rax, [rcx + 0x30]
mov qword [rbp - 0x10], rsi
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x20], rax
lea rdi, [rbp + 0x10]
lea rax, [rbp - 0x10]
mov qword [rbp + 0x30], 8
mov qword [rbp + 0x28], rax
xor ecx, ecx
xor eax, eax
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
lea rdi, [rbp + 0x10]
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov qword [0x140052268], rcx
lea rax, [rcx + 0x338]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x10]
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
mov qword [0x140052270], rcx
test rcx, rcx
je 0x140040038
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
mov qword [rbp + 0x18], rax
lea rax, [rcx + 0x198]
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x10]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
lea rdi, [rbp + 0x10]
movsxd rax, dword [0x140052200]
xorps xmm0, xmm0
mov qword [rbp + 0x18], rax
mov qword [0x140052278], rcx
lea rax, [rcx + 0x128]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rsp + 0x68]
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], 0x18
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
movsd qword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x68], xmm0
call qword [0x1400521f8]
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
movups xmm0, xmmword [rsp + 0x68]
mov qword [rbp + 0x18], rax
xor ecx, ecx
mov rax, qword [0x140052270]
add rax, 0x2b0
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x10]
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
movups xmmword [0x140052038], xmm0
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
movsd xmm0, qword [rsp + 0x78]
movsd qword [0x140052048], xmm0
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
lea rdi, [rbp + 0x10]
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov qword [0x140052280], rcx
lea rax, [rcx + 0x10d8]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x20]
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], 4
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov dword [rbp - 0x20], esi
call qword [0x1400521f8]
mov eax, dword [rbp - 0x20]
mov dword [0x140052288], eax
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
mov qword [rbp + 0x18], rax
xor ecx, ecx
mov rax, qword [0x140052250]
add rax, 0x158
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x10]
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
lea rdi, [rbp + 0x10]
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov qword [0x140052290], rcx
lea rax, [rcx + 0x2a8]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x10]
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov rax, qword [rbp - 0x10]
lea rdi, [rbp + 0x10]
mov qword [0x140052298], rax
xor ecx, ecx
movsxd rax, dword [0x140052200]
mov qword [rbp + 0x18], rax
mov rax, qword [0x140052290]
add rax, 0x2b0
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x20]
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 4
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov dword [rbp - 0x20], esi
call qword [0x1400521f8]
mov eax, dword [rbp - 0x20]
mov r13d, esi
mov dword [0x1400522a0], eax
mov dword [0x1400522a4], 0x7f7fffff
mov qword [0x1400522a8], rsi
test eax, eax
je 0x140040833
mov qword [rsp + 0x230], rbx
movaps xmmword [rsp + 0x180], xmm13
movss xmm13, dword [0x140046160]
movaps xmmword [rsp + 0x170], xmm14
movss xmm14, dword [0x140046148]
movaps xmmword [rsp + 0x160], xmm15
movsd xmm15, qword [0x14004a480]
mov qword [rsp + 0x218], r12
mov qword [rsp + 0x208], r14
mov qword [rsp + 0x200], r15
movaps xmmword [rsp + 0x1f0], xmm6
movaps xmmword [rsp + 0x1e0], xmm7
movaps xmmword [rsp + 0x1d0], xmm8
movaps xmmword [rsp + 0x1c0], xmm9
movaps xmmword [rsp + 0x1b0], xmm10
movaps xmmword [rsp + 0x1a0], xmm11
movaps xmmword [rsp + 0x190], xmm12
nop
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
mov qword [rbp + 0x18], rax
mov rax, qword [0x140052298]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
mov ecx, r13d
mov qword [rbp - 0x10], rsi
lea rcx, [rax + rcx*8]
mov qword [rbp + 0x20], rcx
lea rax, [rbp - 0x10]
mov qword [rbp + 0x28], rax
xor ecx, ecx
xor eax, eax
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
call qword [0x1400521f8]
mov rbx, qword [rbp - 0x10]
test rbx, rbx
je 0x1400407ab
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
mov qword [rbp + 0x18], rax
xor ecx, ecx
lea rax, [rbx + 0x10d8]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x20]
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 4
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov dword [rbp - 0x20], esi
call qword [0x1400521f8]
mov eax, dword [0x140052288]
cmp dword [rbp - 0x20], eax
je 0x1400407ab
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
mov qword [rbp + 0x18], rax
xor ecx, ecx
lea rax, [rbx + 0x308]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x10]
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x1400407ab
cmp rcx, qword [0x140052270]
je 0x1400407ab
movsxd rax, dword [0x140052200]
lea rdi, [rbp + 0x10]
mov qword [rbp + 0x18], rax
lea rax, [rcx + 0x318]
mov qword [rbp + 0x20], rax
xor ecx, ecx
lea rax, [rbp - 0x10]
mov qword [rbp + 0x10], 3
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x10]
mov qword [rbp - 0x10], rsi
call qword [0x1400521f8]
mov r14, qword [rbp - 0x10]
test r14, r14
je 0x1400407ab
mov r8d, 0x6d
lea rcx, [rbp - 0x70]
mov rdx, r14
call fcn.140040900
movups xmm0, xmmword [rbp - 0x70]
lea rdx, [rbp - 0x10]
movsd xmm1, qword [rbp - 0x60]
lea rcx, [rbp - 0x80]
movaps xmmword [rbp - 0x10], xmm0
movsd qword [rbp], xmm1
call fcn.140041070
xor r8d, r8d
lea rcx, [rbp - 0x50]
mov rdx, r14
call fcn.140040900
movups xmm6, xmmword [rbp - 0x50]
lea rdx, [rbp + 0x10]
movsd xmm7, qword [rbp - 0x40]
lea rcx, [rsp + 0x68]
movaps xmmword [rbp + 0x10], xmm6
movsd qword [rbp + 0x20], xmm7
call fcn.140041070
movsd xmm8, qword [rbp - 0x78]
movsd xmm11, qword [rsp + 0x70]
movaps xmm0, xmm8
movss xmm1, dword [0x140046194]
subsd xmm0, xmm11
andps xmm0, xmmword [0x14004a4b0]
cvtpd2ps xmm12, xmm0
movaps xmm0, xmm6
unpckhpd xmm0, xmm6
movaps xmm9, xmm12
subsd xmm0, qword [0x140052040]
mulss xmm9, xmm13
cvtsd2ss xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm6, qword [0x140052038]
movaps xmm10, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
movss xmm6, dword [0x140046194]
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm7, qword [0x140052048]
addss xmm10, xmm0
movaps xmm1, xmm6
cvtpd2ps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm10, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm10
ja 0x140040460
xorps xmm0, xmm0
sqrtss xmm0, xmm10
jmp 0x140040469
movaps xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cmp byte [0x140052246], 0
xorps xmm10, xmm10
movsd xmm6, qword [rbp - 0x80]
cvtss2sd xmm0, xmm0
divsd xmm0, xmm15
cvtsd2ss xmm10, xmm0
je 0x140040737
cmp byte [0x140052247], 0
je 0x140040596
cvttss2si r12d, xmm9
mov rcx, r14
mulss xmm9, xmm13
cvttss2si r15d, xmm12
cvtps2pd xmm7, xmm9
call fcn.140040b60
mov dword [rsp + 0x28], 1
test al, al
lea rax, [rbp - 0x10]
mov r9d, r15d
mov qword [rsp + 0x20], rax
mov r8d, r12d
movaps xmm1, xmm6
subsd xmm1, xmm7
cvttsd2si edx, xmm8
cvttsd2si ecx, xmm1
je 0x1400404e9
movaps xmm0, xmmword [0x14004a7e0]
jmp 0x1400404f0
movaps xmm0, xmmword [0x14004a7a0]
movaps xmmword [rbp - 0x10], xmm0
call fcn.14003f970
cmp byte [0x140052248], 0
je 0x140040596
movaps xmm0, xmmword [0x14004a780]
movaps xmm1, xmm6
subsd xmm1, xmm7
movaps xmmword [rbp - 0x10], xmm0
cvttsd2si ebx, xmm8
cvttsd2si edi, xmm1
call fcn.14000a7a0
lea rcx, [rbp - 0x10]
mov rsi, rax
call fcn.140007870
lea ecx, [r12 + rdi]
mov dword [rsp + 0x28], 0
lea r8, [rsp + 0x30]
mov r9d, eax
lea rdx, [rsp + 0x38]
movd xmm0, ecx
lea ecx, [rbx + r15]
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
mov rcx, rsi
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x34], xmm1
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x38], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x3c], xmm1
movss dword [rsp + 0x20], xmm0
call fcn.14001f4d0
xor esi, esi
cmp byte [0x140052249], 0
movsd xmm7, qword [rsp + 0x68]
je 0x140040683
mov rcx, r14
call fcn.140040b60
test al, al
je 0x140040614
movaps xmm0, xmmword [0x14004a7e0]
movaps xmmword [rbp - 0x10], xmm0
call fcn.14000a7a0
lea rcx, [rbp - 0x10]
mov rdi, rax
call fcn.140007870
cvtpd2ps xmm0, xmm7
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x48]
cvtpd2ps xmm1, xmm11
movss dword [rsp + 0x40], xmm0
movd xmm0, dword [0x140052238]
movss dword [rsp + 0x44], xmm1
movd xmm1, dword [0x140052234]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x4c], xmm1
jmp 0x140040671
movaps xmm0, xmmword [0x14004a7a0]
movaps xmmword [rbp - 0x10], xmm0
call fcn.14000a7a0
lea rcx, [rbp - 0x10]
mov rdi, rax
call fcn.140007870
cvtpd2ps xmm0, xmm7
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x58]
cvtpd2ps xmm1, xmm11
movss dword [rsp + 0x50], xmm0
movd xmm0, dword [0x140052238]
movss dword [rsp + 0x54], xmm1
movd xmm1, dword [0x140052234]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x58], xmm0
movss dword [rsp + 0x5c], xmm1
mov r9d, eax
movss dword [rsp + 0x20], xmm14
mov rcx, rdi
call fcn.14001e320
cmp byte [0x14005224a], 0
je 0x140040737
movaps xmm0, xmmword [0x14004a7e0]
lea rdx, str._.fm
cvtps2pd xmm2, xmm10
lea rcx, [rbp + 0x10]
movaps xmmword [rbp - 0x10], xmm0
movq r8, xmm2
call fcn.14003efa0
movss xmm0, dword [0x1400461dc]
lea rdx, [rbp + 0x10]
xor r9d, r9d
movss dword [rsp + 0x20], xmm0
xor r8d, r8d
lea rcx, [rbp - 0x58]
call fcn.140006840
call fcn.14000a7a0
lea rcx, [rbp - 0x10]
mov rdi, rax
call fcn.140007870
movss xmm0, dword [rbp - 0x58]
lea r9, [rbp + 0x10]
mulss xmm0, xmm13
lea rdx, [rsp + 0x60]
mov r8d, eax
mov qword [rsp + 0x20], rsi
mov rcx, rdi
cvtps2pd xmm1, xmm0
subsd xmm7, xmm1
movss xmm1, dword [rbp - 0x54]
mulss xmm1, xmm13
cvtpd2ps xmm0, xmm7
movss dword [rsp + 0x60], xmm0
cvtps2pd xmm0, xmm1
subsd xmm11, xmm0
cvtpd2ps xmm0, xmm11
movss dword [rsp + 0x64], xmm0
call fcn.14001f680
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, dword [0x140052238]
cvtsi2sd xmm1, dword [0x14005223c]
subsd xmm6, xmm0
xorps xmm0, xmm0
subsd xmm8, xmm1
mulsd xmm6, xmm6
mulsd xmm8, xmm8
addsd xmm8, xmm6
cvtpd2ps xmm1, xmm8
ucomiss xmm0, xmm1
ja 0x14004077a
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140040782
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x140052014]
comiss xmm1, xmm0
jb 0x1400407ab
movss xmm1, dword [0x1400522a4]
comiss xmm1, xmm0
jbe 0x1400407ab
movss dword [0x1400522a4], xmm0
mov qword [0x1400522a8], r14
inc r13d
cmp r13d, dword [0x1400522a0]
jb 0x1400401f0
movaps xmm15, xmmword [rsp + 0x160]
movaps xmm14, xmmword [rsp + 0x170]
movaps xmm13, xmmword [rsp + 0x180]
movaps xmm12, xmmword [rsp + 0x190]
movaps xmm11, xmmword [rsp + 0x1a0]
movaps xmm10, xmmword [rsp + 0x1b0]
movaps xmm9, xmmword [rsp + 0x1c0]
movaps xmm8, xmmword [rsp + 0x1d0]
movaps xmm7, xmmword [rsp + 0x1e0]
movaps xmm6, xmmword [rsp + 0x1f0]
mov r15, qword [rsp + 0x200]
mov r14, qword [rsp + 0x208]
mov r12, qword [rsp + 0x218]
mov rbx, qword [rsp + 0x230]
cmp byte [0x140052244], 0
mov r13, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x240]
mov rsi, qword [rsp + 0x238]
je 0x140040871
mov ecx, dword [0x140052034]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140040871
mov rcx, qword [0x1400522a8]
call fcn.14003f000
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.140042610
add rsp, 0x220
pop rbp
ret