Function at 0x140038540
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x158]
sub rsp, 0x250
mov rax, qword [0x140049040]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov rcx, qword [0x1400498f0]
mov qword [r11 - 0x10], r12
add rcx, 0x170d9d88
mov qword [r11 - 0x18], r13
call fcn.140039fa0
mov qword [0x1400498b8], rax
lea rcx, [rax + 0x200]
call fcn.140039fa0
mov qword [0x1400498a8], rax
lea rcx, [rax + 0x38]
call fcn.140039fa0
mov rcx, rax
call fcn.140039fa0
mov qword [0x140049878], rax
lea rcx, [rax + 0x30]
call fcn.140039fa0
mov qword [0x1400498b0], rax
lea rcx, [rax + 0x350]
call fcn.140039fa0
mov qword [0x140049880], rax
test rax, rax
je 0x140038656
lea rcx, [rax + 0x1b0]
call fcn.140039fa0
xorps xmm0, xmm0
mov qword [0x140049860], rax
mov r8d, 0x18
movsd qword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [rax + 0x120]
movups xmmword [rsp + 0x50], xmm0
call fcn.140036b00
movups xmm0, xmmword [rsp + 0x50]
mov rcx, qword [0x140049880]
add rcx, 0x2c8
movups xmmword [0x140049100], xmm0
movsd xmm0, qword [rsp + 0x60]
movsd qword [0x140049110], xmm0
call fcn.140039fa0
mov qword [0x140049868], rax
lea rcx, [rax + 0x1261]
call fcn.14003a2f0
mov dword [0x140049890], eax
mov rcx, qword [0x1400498b8]
add rcx, 0x188
call fcn.140039fa0
mov qword [0x140049898], rax
lea rcx, [rax + 0x2c0]
call fcn.140039fa0
mov rcx, qword [0x140049898]
add rcx, 0x2c8
mov qword [0x140049888], rax
call fcn.14003a2f0
xor r13d, r13d
mov dword [0x140049870], eax
mov dword [0x1400498a0], 0x7f7fffff
mov r12d, r13d
mov qword [0x140049858], r13
test eax, eax
jle 0x140038f5d
mov qword [rsp + 0x260], rbx
movaps xmmword [rsp + 0x1b0], xmm13
movss xmm13, dword [0x1400423e8]
movaps xmmword [rsp + 0x1a0], xmm14
movdqa xmm14, xmmword [0x140042720]
movaps xmmword [rsp + 0x190], xmm15
movsd xmm15, qword [0x140042430]
mov qword [rsp + 0x268], rsi
mov qword [rsp + 0x270], rdi
mov qword [rsp + 0x238], r14
mov qword [rsp + 0x230], r15
movaps xmmword [rsp + 0x220], xmm6
movaps xmmword [rsp + 0x210], xmm7
movaps xmmword [rsp + 0x200], xmm8
movaps xmmword [rsp + 0x1f0], xmm9
movaps xmmword [rsp + 0x1e0], xmm10
movaps xmmword [rsp + 0x1d0], xmm11
movaps xmmword [rsp + 0x1c0], xmm12
nop word [rax + rax]
mov rax, qword [0x140049888]
movsxd rcx, r12d
lea rcx, [rax + rcx*8]
call fcn.140039fa0
mov rbx, rax
test rax, rax
je 0x140038ecd
lea rcx, [rax + 0x1261]
call fcn.14003a2f0
cmp eax, dword [0x140049890]
je 0x140038ecd
lea rcx, [rbx + 0x320]
call fcn.140039fa0
test rax, rax
je 0x140038ecd
cmp rax, qword [0x140049880]
je 0x140038ecd
lea rcx, [rax + 0x328]
call fcn.140039fa0
mov r15, rax
test rax, rax
je 0x140038ecd
mov r8d, 0x6e
lea rcx, [rsp + 0x50]
mov rdx, rax
call fcn.1400375f0
movups xmm0, xmmword [rsp + 0x50]
lea rdx, [rbp - 0x20]
movsd xmm1, qword [rsp + 0x60]
lea rcx, [rbp - 0x40]
movaps xmmword [rbp - 0x20], xmm0
movsd qword [rbp - 0x10], xmm1
call fcn.1400371c0
xor r8d, r8d
lea rcx, [rbp]
mov rdx, r15
call fcn.1400375f0
movups xmm6, xmmword [rbp]
lea rdx, [rbp + 0x20]
movsd xmm7, qword [rbp + 0x10]
lea rcx, [rbp - 0x30]
movaps xmmword [rbp + 0x20], xmm6
movsd qword [rbp + 0x30], xmm7
call fcn.1400371c0
movsd xmm8, qword [rbp - 0x38]
movsd xmm12, qword [rbp - 0x28]
movaps xmm0, xmm8
subsd xmm0, xmm12
andps xmm0, xmmword [0x140042890]
cvtpd2ps xmm11, xmm0
movaps xmm0, xmm6
unpckhpd xmm0, xmm6
movaps xmm9, xmm11
subsd xmm0, qword [0x140049108]
mulss xmm9, xmm13
movss xmm13, dword [0x140042448]
movaps xmm1, xmm13
cvtsd2ss xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm6, qword [0x140049100]
movaps xmm10, xmm0
movaps xmm1, xmm13
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm7, qword [0x140049110]
addss xmm10, xmm0
movaps xmm1, xmm13
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 0x1400388d0
xorps xmm0, xmm0
sqrtss xmm0, xmm10
jmp 0x1400388d9
movaps xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cmp byte [0x140049849], r13b
xorps xmm13, xmm13
movsd xmm7, qword [rbp - 0x40]
cvtss2sd xmm0, xmm0
divsd xmm0, qword [0x140042470]
cvtsd2ss xmm13, xmm0
je 0x140038e4d
cmp byte [0x1400498d4], r13b
je 0x140038a52
mov rcx, qword [0x1400498b8]
add rcx, 0x150
call fcn.14003a040
movaps xmm1, xmm9
lea rcx, [r15 + 0x30c]
mulss xmm1, dword [0x1400423e8]
movaps xmm6, xmm0
cvttss2si esi, xmm11
cvtps2pd xmm10, xmm1
cvttss2si r14d, xmm9
call fcn.14003a0f0
lea rax, [rsp + 0x50]
mov r9d, esi
mov qword [rsp + 0x20], rax
mov r8d, r14d
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
cvttsd2si edx, xmm8
subsd xmm6, xmm1
comisd xmm15, xmm6
jb 0x140038979
movdqa xmmword [rsp + 0x50], xmm14
jmp 0x140038987
movdqa xmm0, xmmword [0x140042710]
movdqa xmmword [rsp + 0x50], xmm0
movaps xmm0, xmm7
subsd xmm0, xmm10
cvttsd2si ecx, xmm0
call fcn.140038340
cmp byte [0x140049846], r13b
je 0x140038a52
movdqa xmm0, xmmword [0x1400425e0]
lea r8, str.Foreground
mov rax, qword [0x140049730]
mov edx, 1
movdqa xmmword [rsp + 0x50], xmm0
movaps xmm0, xmm7
subsd xmm0, xmm10
cvttsd2si edi, xmm8
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
cvttsd2si ebx, xmm0
call fcn.1400065b0
lea ecx, [r14 + rbx]
mov r10, rax
movd xmm0, ecx
lea ecx, [rsi + rdi]
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
lea rcx, [rsp + 0x50]
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x78], xmm0
movss dword [rsp + 0x7c], xmm1
movd xmm1, edi
movd xmm0, ebx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x7c], xmm1
movss dword [rbp - 0x80], xmm0
call fcn.1400030e0
xorps xmm10, xmm10
mov dword [rsp + 0x28], r13d
mov r9d, eax
movss dword [rsp + 0x20], xmm10
lea rdx, [rbp - 0x80]
mov rcx, r10
lea r8, [rsp + 0x78]
call fcn.140025610
jmp 0x140038a56
xorps xmm10, xmm10
cmp byte [0x140049849], r13b
je 0x140038e4d
cmp byte [0x140049848], r13b
je 0x140038ba9
mov rcx, qword [0x1400498b8]
add rcx, 0x150
call fcn.14003a040
cvttss2si r14d, xmm9
lea rcx, [r15 + 0x30c]
mulss xmm9, dword [0x1400423e8]
movaps xmm6, xmm0
cvttss2si esi, xmm11
cvtps2pd xmm9, xmm9
call fcn.14003a0f0
lea rax, [rsp + 0x50]
mov r9d, esi
mov qword [rsp + 0x20], rax
mov r8d, r14d
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
cvttsd2si edx, xmm8
subsd xmm6, xmm1
comisd xmm15, xmm6
jb 0x140038ad9
movdqa xmmword [rsp + 0x50], xmm14
jmp 0x140038ae7
movdqa xmm0, xmmword [0x140042710]
movdqa xmmword [rsp + 0x50], xmm0
movaps xmm0, xmm7
subsd xmm0, xmm9
cvttsd2si ecx, xmm0
call fcn.140037f80
cmp byte [0x140049846], r13b
je 0x140038ba9
movdqa xmm0, xmmword [0x1400425e0]
lea r8, str.Foreground
mov rax, qword [0x140049730]
mov edx, 1
movdqa xmmword [rsp + 0x50], xmm0
movaps xmm0, xmm7
subsd xmm0, xmm9
cvttsd2si edi, xmm8
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
cvttsd2si ebx, xmm0
call fcn.1400065b0
lea ecx, [r14 + rbx]
mov r10, rax
movd xmm0, ecx
lea ecx, [rsi + rdi]
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
lea rcx, [rsp + 0x50]
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x78], xmm0
movss dword [rbp - 0x74], xmm1
movd xmm1, edi
movd xmm0, ebx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x6c], xmm1
movss dword [rbp - 0x70], xmm0
call fcn.1400030e0
mov r9d, eax
mov dword [rsp + 0x28], r13d
lea rdx, [rbp - 0x70]
movss dword [rsp + 0x20], xmm10
lea r8, [rbp - 0x78]
mov rcx, r10
call fcn.140025610
cmp byte [0x140049847], r13b
movsd xmm9, qword [rbp - 0x30]
je 0x140038cd9
mov rcx, qword [0x1400498b8]
add rcx, 0x150
call fcn.14003a040
lea rcx, [r15 + 0x30c]
movaps xmm6, xmm0
call fcn.14003a0f0
mov rax, qword [0x140049730]
lea r8, str.Foreground
xorps xmm1, xmm1
mov edx, 1
cvtss2sd xmm1, xmm0
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
subsd xmm6, xmm1
comisd xmm15, xmm6
jb 0x140038c64
movdqa xmmword [rsp + 0x50], xmm14
call fcn.1400065b0
cvtpd2ps xmm0, xmm9
lea rcx, [rsp + 0x50]
mov r10, rax
cvtpd2ps xmm1, xmm12
movss dword [rbp - 0x68], xmm0
movd xmm0, dword [0x1400498d0]
movss dword [rbp - 0x64], xmm1
movd xmm1, dword [0x1400498f8]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x60], xmm0
movss dword [rbp - 0x5c], xmm1
call fcn.1400030e0
lea rdx, [rbp - 0x60]
lea r8, [rbp - 0x68]
jmp 0x140038cc0
movdqa xmm0, xmmword [0x140042710]
movdqa xmmword [rsp + 0x50], xmm0
call fcn.1400065b0
cvtpd2ps xmm0, xmm9
lea rcx, [rsp + 0x50]
mov r10, rax
cvtpd2ps xmm1, xmm12
movss dword [rbp - 0x58], xmm0
movd xmm0, dword [0x1400498d0]
movss dword [rbp - 0x54], xmm1
movd xmm1, dword [0x1400498f8]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbp - 0x50], xmm0
movss dword [rbp - 0x4c], xmm1
call fcn.1400030e0
lea rdx, [rbp - 0x50]
lea r8, [rbp - 0x58]
movss xmm0, dword [0x1400423c8]
mov r9d, eax
mov rcx, r10
movss dword [rsp + 0x20], xmm0
call fcn.1400253a0
cmp byte [0x14004984a], r13b
je 0x140038e4d
cvtps2pd xmm2, xmm13
lea rdx, str._.fm
lea rcx, [rbp + 0x40]
movdqa xmmword [rsp + 0x50], xmm14
movq r8, xmm2
call fcn.14003a290
mov rbx, qword [0x140049730]
lea rax, [rbp + 0x40]
movss xmm0, dword [0x140042504]
lea rdx, [rsp + 0x70]
movss xmm3, dword [0x1400424f8]
mov qword [rsp + 0x30], r13
movss xmm2, dword [rbx + 0x3c10]
mov rcx, qword [rbx + 0x3c08]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm0
call fcn.1400290d0
movss xmm0, dword [rsp + 0x70]
lea r8, str.Foreground
addss xmm0, dword [0x140042414]
mov edx, 1
cvttss2si eax, xmm0
movd xmm6, eax
mov rax, qword [rbx + 0x48b0]
cvtdq2ps xmm6, xmm6
mov rcx, qword [rax]
movss dword [rsp + 0x70], xmm6
call fcn.1400065b0
lea rcx, [rsp + 0x50]
mov r8, rax
call fcn.1400030e0
movss xmm13, dword [0x1400423e8]
mov r9d, eax
movss xmm1, dword [rsp + 0x74]
mulss xmm6, xmm13
mulss xmm1, xmm13
cvtps2pd xmm0, xmm6
subsd xmm9, xmm0
cvtpd2ps xmm0, xmm9
movss dword [rbp - 0x48], xmm0
cvtps2pd xmm0, xmm1
subsd xmm12, xmm0
cvtpd2ps xmm0, xmm12
movss dword [rbp - 0x44], xmm0
test eax, 0xff000000
je 0x140038e56
lea rcx, [rbp + 0x40]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], r13b
jne 0x140038de3
lea rcx, [rbp + 0x40]
add rcx, rax
lea rax, [rbp + 0x40]
cmp rax, rcx
je 0x140038e56
mov rax, qword [r8 + 0x38]
mov rdx, r8
movups xmm0, xmmword [r8 + 0x88]
mov byte [rsp + 0x48], r13b
movss dword [rsp + 0x40], xmm10
movss xmm2, dword [rax + 0x10]
mov qword [rsp + 0x38], rcx
lea rcx, [rbp + 0x40]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rax + 8]
mov dword [rsp + 0x20], r9d
lea r9, [rbp - 0x48]
movups xmmword [rsp + 0x50], xmm0
call fcn.1400292f0
jmp 0x140038e56
movss xmm13, dword [0x1400423e8]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [0x1400498ec]
cvtsi2sd xmm0, dword [0x1400498d0]
subsd xmm8, xmm1
xorps xmm1, xmm1
subsd xmm7, xmm0
xorps xmm0, xmm0
mulsd xmm8, xmm8
mulsd xmm7, xmm7
addsd xmm8, xmm7
cvtsd2ss xmm1, xmm8
ucomiss xmm0, xmm1
ja 0x140038e9c
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140038ea4
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x1400490b8]
comiss xmm1, xmm0
jb 0x140038ecd
movss xmm1, dword [0x1400498a0]
comiss xmm1, xmm0
jbe 0x140038ecd
movss dword [0x1400498a0], xmm0
mov qword [0x140049858], r15
inc r12d
cmp r12d, dword [0x140049870]
jl 0x140038760
movaps xmm15, xmmword [rsp + 0x190]
movaps xmm14, xmmword [rsp + 0x1a0]
movaps xmm13, xmmword [rsp + 0x1b0]
movaps xmm12, xmmword [rsp + 0x1c0]
movaps xmm11, xmmword [rsp + 0x1d0]
movaps xmm10, xmmword [rsp + 0x1e0]
movaps xmm9, xmmword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x200]
movaps xmm7, xmmword [rsp + 0x210]
movaps xmm6, xmmword [rsp + 0x220]
mov r15, qword [rsp + 0x230]
mov r14, qword [rsp + 0x238]
mov rdi, qword [rsp + 0x270]
mov rsi, qword [rsp + 0x268]
mov rbx, qword [rsp + 0x260]
cmp byte [0x140049845], 0
mov r13, qword [rsp + 0x240]
mov r12, qword [rsp + 0x248]
je 0x140038f8b
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140038f8b
call fcn.140037d00
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.14003a3a0
add rsp, 0x250
pop rbp
ret