Function at 0x140031df0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rsi
push r14
push r15
lea rbp, [rax - 0x118]
sub rsp, 0x1f8
cmp byte [0x140041d1c], 0
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xc8], xmm14
movsd xmm14, qword [0x14003acd0]
je 0x140031f18
mov eax, dword [0x1400412a0]
lea rcx, [rsp + 0x50]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mov eax, dword [0x1400412a4]
cvtsi2sd xmm1, rax
mov eax, dword [0x1400412a8]
divsd xmm0, xmm14
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm0
movss dword [rsp + 0x50], xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
mov eax, dword [0x1400412ac]
movss dword [rsp + 0x54], xmm0
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
movss dword [rsp + 0x58], xmm0
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
movd xmm1, dword [0x140041d2c]
movss dword [rsp + 0x5c], xmm0
movd xmm0, dword [0x140041d28]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x124], xmm0
movss dword [rbp + 0x120], xmm1
call fcn.140002c30
movd xmm2, dword [0x140041524]
lea rdx, [rbp + 0x120]
mov rcx, qword [0x140041d20]
mov r9d, eax
movss xmm9, dword [0x14003ac58]
add rcx, 0x1cc8
cvtdq2ps xmm2, xmm2
movss dword [rsp + 0x28], xmm9
call fcn.14001de60
jmp 0x140031f21
movss xmm9, dword [0x14003ac58]
cmp byte [0x140041d1f], 0
movaps xmmword [rsp + 0x1d0], xmm6
movaps xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x1b0], xmm8
je 0x140032195
movd xmm1, dword [0x140041d3c]
lea rcx, [rsp + 0x40]
movaps xmm0, xmmword [0x14003ae20]
mov eax, dword [0x140041d38]
movss xmm8, dword [0x14003acfc]
cdq
cvtdq2ps xmm1, xmm1
sub eax, edx
sar eax, 1
movups xmmword [rsp + 0x40], xmm0
divss xmm1, dword [0x14003ac88]
movaps xmm0, xmm1
subss xmm1, xmm8
addss xmm0, xmm9
movss dword [rbp + 0x128], xmm1
movss dword [rbp + 0x120], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x124], xmm0
movss dword [rbp + 0x12c], xmm0
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x120]
movss xmm10, dword [0x14003ac34]
lea rdx, [rbp + 0x128]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm10
mov r9d, eax
call fcn.14001d880
movd xmm1, dword [0x140041d3c]
lea rcx, [rsp + 0x40]
movaps xmm0, xmmword [0x14003ae20]
mov eax, dword [0x140041d38]
cvtdq2ps xmm1, xmm1
cdq
sub eax, edx
sar eax, 1
movups xmmword [rsp + 0x40], xmm0
divss xmm1, dword [0x14003ac80]
movaps xmm0, xmm1
addss xmm1, xmm8
addss xmm0, xmm9
movss dword [rbp + 0x128], xmm1
movss dword [rbp + 0x120], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x124], xmm0
movss dword [rbp + 0x12c], xmm0
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x120]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm10
mov r9d, eax
lea rdx, [rbp + 0x128]
call fcn.14001d880
movd xmm1, dword [0x140041d38]
lea rcx, [rsp + 0x40]
movaps xmm0, xmmword [0x14003ae20]
mov eax, dword [0x140041d3c]
cvtdq2ps xmm1, xmm1
cdq
sub eax, edx
sar eax, 1
movups xmmword [rsp + 0x40], xmm0
divss xmm1, dword [0x14003ac88]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x124], xmm1
subss xmm1, xmm8
movss dword [rbp + 0x120], xmm0
movss dword [rbp + 0x128], xmm0
movss dword [rbp + 0x12c], xmm1
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x120]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm10
mov r9d, eax
lea rdx, [rbp + 0x128]
call fcn.14001d880
movd xmm1, dword [0x140041d38]
lea rcx, [rsp + 0x40]
movaps xmm0, xmmword [0x14003ae20]
mov eax, dword [0x140041d3c]
cvtdq2ps xmm1, xmm1
cdq
sub eax, edx
sar eax, 1
movups xmmword [rsp + 0x40], xmm0
divss xmm1, dword [0x14003ac80]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x124], xmm1
addss xmm1, xmm8
movss dword [rbp + 0x120], xmm0
movss dword [rbp + 0x128], xmm0
movss dword [rbp + 0x12c], xmm1
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x120]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm10
mov r9d, eax
lea rdx, [rbp + 0x128]
call fcn.14001d880
cmp byte [0x140041d1d], 0
xorps xmm10, xmm10
je 0x14003225d
mov r9d, dword [0x140041524]
movaps xmm0, xmmword [0x14003ae20]
mov edx, dword [0x140041d28]
mov r8d, dword [0x140041d2c]
movups xmmword [rsp + 0x40], xmm0
xorps xmm0, xmm0
lea ecx, [r8 + r9]
sub r8d, r9d
cvtsi2ss xmm0, rcx
lea ecx, [rdx + r9]
mov eax, r8d
sub edx, r9d
movss dword [rbp + 0x120], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
lea rcx, [rsp + 0x40]
movss dword [rbp + 0x124], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov eax, edx
movss dword [rbp + 0x128], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [rbp + 0x12c], xmm0
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x120]
movss dword [rsp + 0x30], xmm9
lea rdx, [rbp + 0x128]
add rcx, 0x1cc8
mov dword [rsp + 0x28], 0xf
mov r9d, eax
movss dword [rsp + 0x20], xmm10
call fcn.14001da00
movss xmm12, dword [0x14003ad48]
xor r15d, r15d
mov esi, r15d
mov r14d, r15d
cmp dword [0x140041dfc], esi
jbe 0x140032afd
mov qword [rsp + 0x1f0], rbx
mov qword [rsp + 0x1e8], rdi
movaps xmmword [rsp + 0x180], xmm11
movaps xmmword [rsp + 0x160], xmm13
movaps xmmword [rsp + 0x140], xmm15
nop word [rax + rax]
mov rax, qword [0x140041e10]
mov ebx, r14d
lea rcx, [rax + rbx*8]
call fcn.140033fd0
mov qword [0x140041e28], rax
mov rax, qword [0x140041e10]
lea rcx, [rax + rbx*8]
call fcn.140033fd0
lea rcx, [rax + 0x308]
call fcn.140033fd0
mov rdi, rax
test rax, rax
je 0x140032ac2
mov rcx, qword [0x140041e28]
test rcx, rcx
je 0x140032ac2
add rcx, 0x10e0
call fcn.140033f30
cmp qword [0x140041e18], r15
je 0x140032323
cmp eax, dword [0x140041df8]
je 0x140032ac2
mov rcx, qword [0x140041e28]
add rcx, 0x308
call fcn.140033fd0
mov qword [0x140041e00], rax
test rax, rax
je 0x140032ac2
cmp rax, qword [0x140041e18]
je 0x140032ac2
lea rcx, [rax + 0x318]
call fcn.140033fd0
mov qword [0x140041e08], rax
test rax, rax
je 0x140032ac2
mov r8d, 0x6d
lea rcx, [rbp + 0x28]
mov rdx, rax
call fcn.1400301f0
mov rdx, qword [0x140041e08]
lea rcx, [rbp - 0x70]
xor r8d, r8d
call fcn.1400301f0
movups xmm9, xmmword [rbp - 0x70]
lea rdx, [rbp - 0x50]
movsd xmm11, qword [rbp - 0x60]
lea rcx, [rbp - 0x10]
movaps xmmword [rbp - 0x50], xmm9
movsd qword [rbp - 0x40], xmm11
call fcn.140030360
movsd xmm8, qword [rbp + 0x38]
lea rdx, [rbp - 0x70]
movsd xmm7, qword [rbp + 0x28]
lea rcx, [rbp - 0x30]
movsd xmm6, qword [rbp + 0x30]
movaps xmm0, xmm8
addsd xmm0, qword [0x14003aca8]
movsd qword [rbp - 0x70], xmm7
movsd qword [rbp - 0x68], xmm6
movsd qword [rbp - 0x60], xmm0
call fcn.140030360
movaps xmm0, xmm7
movsd qword [rbp - 0x40], xmm8
unpcklpd xmm0, xmm6
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x10]
movaps xmmword [rbp - 0x50], xmm0
call fcn.140030360
cmp byte [0x1400410c1], r15b
movsd xmm7, qword [rbp - 0x28]
movsd xmm13, qword [rbp - 8]
movaps xmm0, xmm7
subsd xmm0, xmm13
andps xmm0, xmmword [0x14003ae50]
cvtpd2ps xmm15, xmm0
cvtps2pd xmm0, xmm15
mulsd xmm0, qword [0x14003ac68]
cvtpd2ps xmm8, xmm0
movss dword [rbp + 0x120], xmm8
je 0x140032918
movss xmm1, dword [0x14003ac84]
movaps xmm0, xmm9
unpckhpd xmm0, xmm9
subsd xmm0, qword [0x140041ea8]
cvtsd2ss xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm9, qword [0x140041ea0]
movaps xmm6, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm9
movss xmm9, dword [0x14003ac84]
movaps xmm1, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subsd xmm11, qword [0x140041eb0]
addss xmm6, xmm0
movaps xmm1, xmm9
cvtpd2ps xmm0, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm6
ja 0x1400324cb
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x1400324d3
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
divsd xmm0, qword [0x14003acc0]
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x14003ad3c]
comiss xmm0, xmm1
jbe 0x14003282c
cmp byte [0x140041d1e], r15b
je 0x14003270f
movsd xmm2, qword [rbp - 0x30]
lea rcx, [rsp + 0x70]
mov eax, dword [0x140041180]
movaps xmm0, xmm8
mulss xmm0, dword [0x14003ac34]
movss xmm11, dword [0x14003ac58]
cvtpd2ps xmm9, xmm7
cvtps2pd xmm1, xmm0
xorps xmm0, xmm0
movaps xmm6, xmm9
cvtsi2sd xmm0, rax
mov eax, dword [0x140041184]
subsd xmm2, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
mov eax, dword [0x140041188]
addss xmm6, xmm15
divsd xmm0, xmm14
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm8, xmm2
movss dword [rsp + 0x70], xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movaps xmm7, xmm8
addss xmm7, dword [rbp + 0x120]
cvtsi2sd xmm1, rax
mov eax, dword [0x14004118c]
movss dword [rsp + 0x74], xmm0
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [rsp + 0x78], xmm0
cvtsi2sd xmm1, rax
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm9
movss dword [rsp + 0x7c], xmm0
addss xmm1, xmm11
movaps xmm0, xmm7
subss xmm0, xmm11
movss dword [rbp + 0x134], xmm1
movss dword [rbp + 0x128], xmm0
movaps xmm0, xmm6
subss xmm0, xmm11
movss dword [rbp + 0x12c], xmm0
movaps xmm0, xmm8
addss xmm0, xmm11
movss dword [rbp + 0x130], xmm0
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x128]
movss dword [rsp + 0x30], xmm11
lea rdx, [rbp + 0x130]
add rcx, 0x1cc8
mov dword [rsp + 0x28], 0xf
mov r9d, eax
movss dword [rsp + 0x20], xmm10
call fcn.14001da00
mov eax, dword [0x140041180]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mov eax, dword [0x140041184]
cvtsi2sd xmm1, rax
mov eax, dword [0x140041188]
divsd xmm0, xmm14
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm0
movss dword [rbp - 0x80], xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
mov eax, dword [0x14004118c]
movss dword [rbp - 0x7c], xmm0
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
movss dword [rbp - 0x78], xmm0
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
lea rcx, [rbp - 0x80]
movss dword [rbp + 0x138], xmm7
movss dword [rbp - 0x74], xmm0
movss dword [rbp + 0x13c], xmm6
movss dword [rsp + 0x60], xmm8
movss dword [rsp + 0x64], xmm9
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rbp + 0x138]
movss dword [rsp + 0x30], xmm11
lea rdx, [rsp + 0x60]
add rcx, 0x1cc8
mov dword [rsp + 0x28], 0xf
mov r9d, eax
movss dword [rsp + 0x20], xmm10
call fcn.14001da00
jmp 0x140032718
movss xmm11, dword [0x14003ac58]
cmp byte [0x140041d1a], r15b
je 0x140032817
mov eax, dword [0x1400412a0]
lea rcx, [rsp + 0x40]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mov eax, dword [0x1400412a4]
cvtsi2sd xmm1, rax
mov eax, dword [0x1400412a8]
divsd xmm0, xmm14
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
mov eax, dword [0x1400412ac]
movss dword [rsp + 0x44], xmm0
divsd xmm1, xmm14
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
cvttsd2si eax, qword [rbp - 0x10]
divsd xmm1, xmm14
movss dword [rsp + 0x48], xmm0
cvtpd2ps xmm0, xmm1
movd xmm1, eax
movss dword [rsp + 0x4c], xmm0
cvtdq2ps xmm1, xmm1
cvttsd2si eax, xmm13
movss dword [rsp + 0x68], xmm1
movd xmm1, dword [0x140041d38]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [0x140041d3c]
cvtdq2ps xmm0, xmm0
cdq
sub eax, edx
sar eax, 1
movss dword [rsp + 0x54], xmm1
movss dword [rsp + 0x6c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x50], xmm0
call fcn.140002c30
mov rcx, qword [0x140041d20]
lea r8, [rsp + 0x68]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm11
mov r9d, eax
lea rdx, [rsp + 0x50]
call fcn.14001d880
cmp byte [0x140041d19], r15b
je 0x14003282c
mov rcx, qword [0x140041e08]
call fcn.140031090
movsd xmm1, qword [rbp + 0x18]
mov eax, dword [0x140041d3c]
movsd xmm2, qword [rbp + 0x10]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
mov eax, dword [0x140041d38]
cvtdq2pd xmm0, xmm0
cdq
sub eax, edx
sar eax, 1
subsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm2
subsd xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm1, xmm1
addsd xmm1, xmm2
cvtpd2ps xmm3, xmm1
ucomiss xmm0, xmm3
ja 0x140032885
xorps xmm7, xmm7
sqrtss xmm7, xmm3
jmp 0x140032890
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm7, xmm0
mov rbx, qword [0x140041e08]
test rbx, rbx
je 0x1400328fb
lea rcx, [rbx + 0x360]
call fcn.140034230
lea rcx, [rbx + 0x368]
movaps xmm6, xmm0
call fcn.140034230
movss xmm8, dword [0x14003ac10]
addss xmm0, xmm8
comiss xmm0, xmm6
jb 0x1400328fb
mov rbx, qword [0x140041e08]
test rbx, rbx
je 0x140032918
lea rcx, [rbx + 0x360]
call fcn.140034230
lea rcx, [rbx + 0x368]
movaps xmm6, xmm0
call fcn.140034230
addss xmm0, xmm8
comiss xmm0, xmm6
jb 0x140032918
movd xmm0, dword [0x140041524]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm7
jbe 0x140032918
comiss xmm12, xmm7
jbe 0x140032918
mov rsi, rdi
movaps xmm12, xmm7
cmp byte [0x140041d1b], r15b
je 0x140032aba
test rsi, rsi
je 0x140032aba
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140032aba
lea rcx, [rsi + 0x318]
call fcn.140033fd0
mov r8d, 0x6d
lea rcx, [rbp + 0x10]
mov rdx, rax
call fcn.1400301f0
movups xmm0, xmmword [rbp + 0x10]
lea rdx, [rbp - 0x10]
movsd xmm1, qword [rbp + 0x20]
lea rcx, [rbp - 0x30]
movaps xmmword [rbp - 0x10], xmm0
movsd qword [rbp], xmm1
call fcn.140030360
movsd xmm0, qword [rbp - 0x28]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jp 0x140032993
je 0x140032aba
mov eax, dword [0x140041d3c]
movaps xmm3, xmm10
movsd xmm6, qword [rbp - 0x30]
cdq
sub eax, edx
movaps xmm2, xmm10
sar eax, 1
cvtpd2ps xmm6, xmm6
movd xmm4, eax
mov eax, dword [0x140041d38]
cdq
sub eax, edx
sar eax, 1
ucomiss xmm6, xmm10
movd xmm5, eax
cvttss2si eax, dword [0x140041520]
cvtdq2ps xmm5, xmm5
cvtpd2ps xmm7, xmm0
cvtdq2ps xmm4, xmm4
jp 0x1400329dc
je 0x140032a39
comiss xmm6, xmm4
jbe 0x140032a11
movaps xmm3, xmm4
movd xmm0, eax
subss xmm3, xmm6
cvtdq2ps xmm0, xmm0
xorps xmm3, xmmword [0x14003ae70]
divss xmm3, xmm0
movaps xmm0, xmm4
movaps xmm1, xmm3
addss xmm0, xmm4
addss xmm1, xmm4
comiss xmm1, xmm0
jbe 0x140032a11
movaps xmm3, xmm10
comiss xmm4, xmm6
jbe 0x140032a39
movaps xmm3, xmm6
movd xmm0, eax
subss xmm3, xmm4
cvtdq2ps xmm0, xmm0
divss xmm3, xmm0
movaps xmm1, xmm3
addss xmm1, xmm4
comiss xmm10, xmm1
jbe 0x140032a39
movaps xmm3, xmm10
ucomiss xmm7, xmm10
jp 0x140032a41
je 0x140032a9e
comiss xmm7, xmm5
jbe 0x140032a76
movaps xmm2, xmm5
movd xmm0, eax
subss xmm2, xmm7
cvtdq2ps xmm0, xmm0
xorps xmm2, xmmword [0x14003ae70]
divss xmm2, xmm0
movaps xmm0, xmm5
movaps xmm1, xmm2
addss xmm0, xmm5
addss xmm1, xmm5
comiss xmm1, xmm0
jbe 0x140032a76
movaps xmm2, xmm10
comiss xmm5, xmm7
jbe 0x140032a9e
movaps xmm2, xmm7
movd xmm0, eax
subss xmm2, xmm5
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
movaps xmm1, xmm2
addss xmm1, xmm5
comiss xmm10, xmm1
jbe 0x140032a9e
movaps xmm2, xmm10
xor r9d, r9d
mov qword [rsp + 0x20], r15
cvttss2si r8, xmm2
lea ecx, [r9 + 1]
cvttss2si rdx, xmm3
call qword [sym.imp.USER32.dll_mouse_event]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
inc r14d
cmp r14d, dword [0x140041dfc]
jb 0x1400322b0
movaps xmm15, xmmword [rsp + 0x140]
movaps xmm13, xmmword [rsp + 0x160]
movaps xmm11, xmmword [rsp + 0x180]
mov rdi, qword [rsp + 0x1e8]
mov rbx, qword [rsp + 0x1f0]
movaps xmm8, xmmword [rsp + 0x1b0]
lea r11, [rsp + 0x1f8]
movaps xmm9, xmmword [r11 - 0x58]
movaps xmm10, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0xa8]
movaps xmm7, xmmword [rsp + 0x1c0]
movaps xmm6, xmmword [rsp + 0x1d0]
mov rsp, r11
pop r15
pop r14
pop rsi
pop rbp
ret