Function at 0x140031340
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x158]
sub rsp, 0x250
mov rax, qword [0x140043040]
xor rax, rsp
mov qword [rbp + 0x80], rax
movsxd rax, dword [0x140043888]
xor ecx, ecx
mov qword [rbp - 0x38], rax
mov rax, qword [0x140043890]
mov qword [r11 + 0x18], rdi
add rax, 0x117b7e88
mov qword [rbp - 0x30], rax
lea rdi, [rbp - 0x40]
lea rax, [rbp + 0x58]
mov qword [r11 - 0x10], r12
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [r11 - 0x18], r13
xor r13d, r13d
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x58], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x58]
lea rdi, [rbp - 0x40]
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov qword [0x140043960], rcx
lea rax, [rcx + 0x1d0]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x58]
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x58], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x58]
lea rdi, [rbp - 0x40]
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov qword [0x140043950], rcx
lea rax, [rcx + 0x38]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x58]
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x58], r13
call qword [0x140043880]
movsxd rax, dword [0x140043888]
lea rdi, [rbp + 0x28]
mov qword [rbp + 0x30], rax
xor ecx, ecx
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 0x40], rax
xor eax, eax
mov qword [rbp + 0x28], 3
mov qword [rbp + 0x50], r13
mov qword [rbp + 0x48], 8
rep stosb byte [rdi], al
lea rcx, [rbp + 0x28]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov qword [0x140043920], rcx
lea rax, [rcx + 0x30]
mov qword [rbp + 0x60], r13
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x30], rax
lea rdi, [rbp - 0x40]
lea rax, [rbp + 0x60]
mov qword [rbp - 0x20], 8
mov qword [rbp - 0x28], rax
xor ecx, ecx
xor eax, eax
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
lea rdi, [rbp - 0x40]
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov qword [0x140043958], rcx
lea rax, [rcx + 0x338]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x60]
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
mov qword [0x140043928], rcx
test rcx, rcx
je 0x1400316db
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x40]
mov qword [rbp - 0x38], rax
lea rax, [rcx + 0x198]
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x60]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
lea rdi, [rbp - 0x40]
movsxd rax, dword [0x140043888]
xorps xmm0, xmm0
mov qword [rbp - 0x38], rax
mov qword [0x140043908], rcx
lea rax, [rcx + 0x120]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rsp + 0x70]
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x20], 0x18
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
movsd qword [rbp - 0x80], xmm0
movups xmmword [rsp + 0x70], xmm0
call qword [0x140043880]
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x40]
movups xmm0, xmmword [rsp + 0x70]
mov qword [rbp - 0x38], rax
xor ecx, ecx
mov rax, qword [0x140043928]
add rax, 0x2b0
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
lea rax, [rbp + 0x60]
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
movups xmmword [0x1400430f0], xmm0
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x60], r13
movsd xmm0, qword [rbp - 0x80]
movsd qword [0x140043100], xmm0
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
lea rdi, [rbp - 0x40]
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov qword [0x140043910], rcx
lea rax, [rcx + 0x10f1]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x58]
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x20], 4
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov dword [rbp + 0x58], r13d
call qword [0x140043880]
mov eax, dword [rbp + 0x58]
mov dword [0x140043938], eax
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x40]
mov qword [rbp - 0x38], rax
xor ecx, ecx
mov rax, qword [0x140043960]
add rax, 0x158
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
lea rax, [rbp + 0x60]
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
lea rdi, [rbp - 0x40]
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov qword [0x140043940], rcx
lea rax, [rcx + 0x2a8]
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
xor ecx, ecx
lea rax, [rbp + 0x60]
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x20], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rax, qword [rbp + 0x60]
lea rdi, [rbp - 0x40]
mov qword [0x140043930], rax
xor ecx, ecx
movsxd rax, dword [0x140043888]
mov qword [rbp - 0x38], rax
mov rax, qword [0x140043940]
add rax, 0x2b0
mov qword [rbp - 0x40], 3
mov qword [rbp - 0x30], rax
lea rax, [rbp + 0x58]
mov qword [rbp - 0x28], rax
xor eax, eax
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], 4
rep stosb byte [rdi], al
lea rcx, [rbp - 0x40]
mov dword [rbp + 0x58], r13d
call qword [0x140043880]
mov eax, dword [rbp + 0x58]
mov r12d, r13d
mov dword [0x140043918], eax
mov dword [0x140043948], 0x7f7fffff
mov qword [0x140043900], r13
test eax, eax
jle 0x140031f19
mov qword [rsp + 0x260], rbx
movaps xmmword [rsp + 0x1d0], xmm11
movsd xmm11, qword [0x14003cbc0]
movaps xmmword [rsp + 0x1b0], xmm13
movss xmm13, dword [0x14003cb60]
movaps xmmword [rsp + 0x1a0], xmm14
movss xmm14, dword [0x14003cb3c]
movaps xmmword [rsp + 0x190], xmm15
movsd xmm15, qword [0x14003cbb8]
mov qword [rsp + 0x268], rsi
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 + 0x1c0], xmm12
nop dword [rax]
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x10]
mov qword [rbp - 8], rax
mov rax, qword [0x140043930]
mov qword [rbp - 0x10], 3
mov qword [rbp + 0x18], r13
mov qword [rbp + 0x10], 8
movsxd rcx, r12d
mov qword [rbp + 0x60], r13
lea rcx, [rax + rcx*8]
mov qword [rbp], rcx
lea rax, [rbp + 0x60]
mov qword [rbp + 8], rax
xor ecx, ecx
xor eax, eax
rep stosb byte [rdi], al
lea rcx, [rbp - 0x10]
call qword [0x140043880]
mov rbx, qword [rbp + 0x60]
test rbx, rbx
je 0x140031e91
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x10]
mov qword [rbp - 8], rax
xor ecx, ecx
lea rax, [rbx + 0x10f1]
mov qword [rbp - 0x10], 3
mov qword [rbp], rax
lea rax, [rbp + 0x58]
mov qword [rbp + 8], rax
xor eax, eax
mov qword [rbp + 0x18], r13
mov qword [rbp + 0x10], 4
rep stosb byte [rdi], al
lea rcx, [rbp - 0x10]
mov dword [rbp + 0x58], r13d
call qword [0x140043880]
mov eax, dword [0x140043938]
cmp dword [rbp + 0x58], eax
je 0x140031e91
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x10]
mov qword [rbp - 8], rax
xor ecx, ecx
lea rax, [rbx + 0x308]
mov qword [rbp - 0x10], 3
mov qword [rbp], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 8], rax
xor eax, eax
mov qword [rbp + 0x18], r13
mov qword [rbp + 0x10], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x10]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x140031e91
cmp rcx, qword [0x140043928]
je 0x140031e91
movsxd rax, dword [0x140043888]
lea rdi, [rbp - 0x10]
mov qword [rbp - 8], rax
lea rax, [rcx + 0x318]
mov qword [rbp], rax
xor ecx, ecx
lea rax, [rbp + 0x60]
mov qword [rbp - 0x10], 3
mov qword [rbp + 8], rax
xor eax, eax
mov qword [rbp + 0x18], r13
mov qword [rbp + 0x10], 8
rep stosb byte [rdi], al
lea rcx, [rbp - 0x10]
mov qword [rbp + 0x60], r13
call qword [0x140043880]
mov rsi, qword [rbp + 0x60]
test rsi, rsi
je 0x140031e91
mov r8d, 0x6d
lea rcx, [rbp - 0x70]
mov rdx, rsi
call fcn.1400300c0
xor r8d, r8d
lea rcx, [rbp - 0x40]
mov rdx, rsi
call fcn.1400300c0
lea rcx, [rbp - 0x10]
call fcn.14002fb20
movups xmm0, xmmword [rbp - 0x70]
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x70]
movaps xmmword [rbp + 0x60], xmm0
movsd xmm0, qword [rbp - 0x60]
addsd xmm0, qword [0x14003cbe8]
movsd qword [rbp + 0x70], xmm0
call fcn.14002fe80
xor r8d, r8d
lea rcx, [rbp + 0x28]
mov rdx, rsi
call fcn.1400300c0
movups xmm0, xmmword [rbp + 0x28]
lea rdx, [rbp - 0x70]
movsd xmm1, qword [rbp + 0x38]
lea rcx, [rbp - 0x50]
movaps xmmword [rbp - 0x70], xmm0
movsd qword [rbp - 0x60], xmm1
call fcn.14002fe80
cmp byte [0x1400438ec], r13b
movsd xmm6, qword [rsp + 0x78]
movsd xmm12, qword [rbp - 0x48]
movaps xmm0, xmm6
addsd xmm0, qword [0x14003cbb0]
movsd xmm7, qword [rsp + 0x70]
subsd xmm0, xmm12
andps xmm0, xmmword [0x14003ce00]
cvtpd2ps xmm10, xmm0
movaps xmm8, xmm10
mulss xmm8, dword [0x14003cb58]
je 0x140031e21
cmp byte [0x1400438ed], r13b
je 0x140031bfc
movaps xmm0, xmm8
mov rcx, rsi
mulss xmm0, xmm13
cvttss2si r14d, xmm10
cvtps2pd xmm9, xmm0
cvttss2si r15d, xmm8
call fcn.1400302d0
test al, al
lea rax, [rbp + 0x60]
mov r9d, r14d
mov r8d, r15d
mov qword [rsp + 0x20], rax
movaps xmm0, xmmword [0x14003cd70]
movaps xmm1, xmm6
movaps xmmword [rbp + 0x60], xmm0
addsd xmm1, xmm11
movaps xmm0, xmm7
subsd xmm0, xmm9
cvttsd2si edx, xmm1
cvttsd2si ecx, xmm0
call fcn.140030e10
cmp byte [0x1400438e9], r13b
je 0x140031bfc
movaps xmm0, xmmword [0x14003cd60]
lea r8, str.Foreground
mov rax, qword [0x1400437c0]
movaps xmm1, xmm6
movaps xmmword [rbp + 0x60], xmm0
addsd xmm1, xmm15
movaps xmm0, xmm7
mov edx, 1
subsd xmm0, xmm9
mov rcx, qword [rax + 0x48b0]
cvttsd2si ebx, xmm1
mov rcx, qword [rcx]
cvttsd2si edi, xmm0
call fcn.140006220
lea ecx, [rdi + r15]
mov r10, rax
movd xmm0, ecx
lea ecx, [r14 + rbx]
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
lea rcx, [rbp + 0x60]
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x34], xmm1
movd xmm1, ebx
movd xmm0, edi
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x3c], xmm1
movss dword [rsp + 0x38], xmm0
call fcn.140002f00
xorps xmm0, xmm0
mov dword [rsp + 0x28], r13d
mov r9d, eax
movss dword [rsp + 0x20], xmm0
lea r8, [rsp + 0x30]
mov rcx, r10
lea rdx, [rsp + 0x38]
call fcn.140024640
cmp byte [0x1400438eb], r13b
je 0x140031d1e
movaps xmm0, xmm8
mov rcx, rsi
mulss xmm0, xmm13
cvtps2pd xmm9, xmm0
call fcn.1400302d0
lea rcx, [rbp + 0x60]
movaps xmm0, xmmword [0x14003cd70]
movups xmmword [rbp + 0x60], xmm0
call fcn.140002f00
movaps xmm0, xmm6
mov dword [rsp + 0x20], eax
movaps xmm2, xmm7
addsd xmm0, xmm11
subsd xmm2, xmm9
movaps xmm3, xmm10
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
movaps xmm2, xmm8
call fcn.1400311d0
cmp byte [0x1400438e9], r13b
je 0x140031d1e
movaps xmm0, xmmword [0x14003cd60]
lea r8, str.Foreground
mov rax, qword [0x1400437c0]
movaps xmm1, xmm6
movaps xmmword [rbp + 0x60], xmm0
addsd xmm1, xmm15
movaps xmm0, xmm7
mov edx, 1
subsd xmm0, xmm9
mov rcx, qword [rax + 0x48b0]
cvttsd2si ebx, xmm1
mov rcx, qword [rcx]
cvttsd2si edi, xmm0
call fcn.140006220
lea rcx, [rbp + 0x60]
mov r10, rax
cvttss2si edx, xmm8
movd xmm1, edi
add edx, edi
cvtdq2ps xmm1, xmm1
movd xmm0, edx
cvtdq2ps xmm0, xmm0
cvttss2si edx, xmm10
movss dword [rsp + 0x40], xmm0
add edx, ebx
movss dword [rsp + 0x48], xmm1
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x44], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x4c], xmm0
call fcn.140002f00
xorps xmm0, xmm0
mov dword [rsp + 0x28], r13d
mov r9d, eax
movss dword [rsp + 0x20], xmm0
lea r8, [rsp + 0x40]
mov rcx, r10
lea rdx, [rsp + 0x48]
call fcn.140024640
cmp byte [0x1400438ea], r13b
je 0x140031e21
mov rcx, rsi
call fcn.1400302d0
movaps xmm0, xmmword [0x14003cda0]
lea r8, str.Foreground
test al, al
movaps xmmword [rbp + 0x60], xmm0
mov rax, qword [0x1400437c0]
mov edx, 1
mov rcx, qword [rax + 0x48b0]
mov rcx, qword [rcx]
je 0x140031db8
call fcn.140006220
movsd xmm0, qword [rbp - 0x50]
lea rcx, [rbp + 0x60]
cvtpd2ps xmm0, xmm0
mov rdi, rax
cvtpd2ps xmm1, xmm12
movss dword [rsp + 0x50], xmm0
movd xmm0, dword [0x140043978]
movss dword [rsp + 0x54], xmm1
movd xmm1, dword [0x140043984]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x58], xmm0
movss dword [rsp + 0x5c], xmm1
call fcn.140002f00
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x50]
jmp 0x140031e0f
call fcn.140006220
movsd xmm0, qword [rbp - 0x50]
lea rcx, [rbp + 0x60]
cvtpd2ps xmm0, xmm0
mov rdi, rax
cvtpd2ps xmm1, xmm12
movss dword [rsp + 0x60], xmm0
movd xmm0, dword [0x140043978]
movss dword [rsp + 0x64], xmm1
movd xmm1, dword [0x140043984]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x68], xmm0
movss dword [rsp + 0x6c], xmm1
call fcn.140002f00
lea rdx, [rsp + 0x68]
lea r8, [rsp + 0x60]
mov r9d, eax
movss dword [rsp + 0x20], xmm14
mov rcx, rdi
call fcn.1400243d0
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, dword [0x140043978]
cvtsi2sd xmm1, dword [0x140043980]
subsd xmm7, xmm0
xorps xmm0, xmm0
subsd xmm6, xmm1
mulsd xmm7, xmm7
mulsd xmm6, xmm6
addsd xmm6, xmm7
cvtpd2ps xmm1, xmm6
ucomiss xmm0, xmm1
ja 0x140031e60
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140031e68
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x14003cc58]
comiss xmm1, xmm0
jb 0x140031e91
movss xmm1, dword [0x140043948]
comiss xmm1, xmm0
jbe 0x140031e91
movss dword [0x140043948], xmm0
mov qword [0x140043900], rsi
inc r12d
cmp r12d, dword [0x140043918]
jl 0x1400318a0
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 rsi, qword [rsp + 0x268]
mov rbx, qword [rsp + 0x260]
cmp byte [0x1400438e8], 0
mov r13, qword [rsp + 0x240]
mov r12, qword [rsp + 0x248]
mov rdi, qword [rsp + 0x270]
je 0x140031f4f
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140031f4f
call fcn.140030bc0
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.140033ba0
add rsp, 0x250
pop rbp
ret