Function at 0x14005b160
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rax - 0x1b8]
sub rsp, 0x290
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
mov rax, qword [0x1403b1008]
xor rax, rsp
mov qword [rbp + 0x110], rax
xor edi, edi
mov r14, rcx
mov qword [rcx], rdi
mov r12d, 0xffffffff
mov dword [rcx + 8], edi
movzx r13d, dl
mov dword [rsp + 0x30], r12d
lea ecx, [rdi + 1]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
movd xmm12, eax
cvtdq2ps xmm12, xmm12
mulss xmm12, dword [0x1403a69dc]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov rcx, qword [0x1403b3a90]
sub rcx, qword [0x1403b3a88]
movss xmm9, dword [0x1403a6c88]
movd xmm11, eax
movabs rax, 0x6c80d901b2036407
imul rcx
cvtdq2ps xmm11, xmm11
mov qword [rsp + 0x20], rdi
sar rdx, 7
mulss xmm11, dword [0x1403a69dc]
mov rax, rdx
shr rax, 0x3f
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], edi
add rdx, rax
je 0x14005bcf3
mov qword [rsp + 0x2c8], rbx
mov ebx, edi
mov qword [rsp + 0x2d0], rsi
mov esi, edi
mov qword [rsp + 0x2d8], r15
mov r15d, edi
movaps xmmword [rsp + 0x260], xmm8
movabs rdi, 0x6c80d901b2036407
movsd xmm8, qword [rsp + 0x38]
movaps xmmword [rsp + 0x240], xmm10
movss xmm10, dword [0x1403a6ae0]
movaps xmmword [rsp + 0x270], xmm7
nop
cmp byte [0x1403b37d5], 0
mov rcx, qword [0x1403b3a88]
jne 0x14005b578
cmp byte [rbx + rcx + 0xd0], 0
je 0x14005b7b1
cmp byte [rbx + rcx + 0xd2], 0
je 0x14005b7b1
cmp byte [rbx + rcx + 0xd1], 0
je 0x14005b7b1
mov eax, dword [0x1403b10d8]
cmp eax, 1
jne 0x14005b2eb
movsd xmm0, qword [rbx + rcx + 0xe6]
mov eax, dword [rbx + rcx + 0xee]
jmp 0x14005b317
cmp eax, 2
jne 0x14005b302
movsd xmm0, qword [rbx + rcx + 0x116]
mov eax, dword [rbx + rcx + 0x11e]
jmp 0x14005b317
cmp eax, 3
jne 0x14005b331
movsd xmm0, qword [rbx + rcx + 0x122]
mov eax, dword [rbx + rcx + 0x12a]
movsd qword [rsp + 0x20], xmm0
movaps xmm8, xmm0
mov dword [rsp + 0x28], eax
mov esi, eax
movsd qword [rsp + 0x38], xmm0
mov dword [rsp + 0x40], eax
movsd xmm6, qword [rbx + rcx + 0xf2]
mov r12d, dword [rbx + rcx + 0xfa]
test r13b, r13b
je 0x14005b395
lea rdx, [rbp - 0x18]
call fcn.14004b3c0
lea rdx, [rbp - 0xc]
call fcn.14004b3c0
lea rdx, [rbp]
call fcn.14004b3c0
lea rdx, [rbp - 0x80]
movsd qword [rbp - 0x80], xmm6
lea rcx, [rsp + 0x20]
mov dword [rbp - 0x78], r12d
call fcn.140059830
movsd xmm0, qword [rsp + 0x20]
lea r8, [rbp - 0x70]
mov eax, dword [rsp + 0x28]
lea rdx, [rbp - 0x30]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
jmp 0x14005b3a6
movsd qword [rbp - 0x60], xmm8
lea r8, [rbp - 0x60]
mov dword [rbp - 0x58], esi
lea rdx, [rbp - 0x28]
call fcn.14004b5a0
movaps xmm1, xmm10
movss xmm0, dword [rax + 4]
movss xmm6, dword [rax]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm6, xmm11
movaps xmm7, xmm0
movaps xmm1, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x14005b3eb
xorps xmm1, xmm1
sqrtss xmm1, xmm7
jmp 0x14005b3f6
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm0
movzx eax, byte [0x1403b37fe]
test al, al
je 0x14005b47b
lea rdx, [rbp + 0xc]
call fcn.14004b3c0
lea rdx, [rbp + 0x18]
movss xmm7, dword [rax + 8]
call fcn.14004b3c0
lea rdx, [rbp + 0x24]
movss xmm6, dword [rax + 4]
call fcn.14004b3c0
movss xmm0, dword [rsp + 0x24]
movss xmm2, dword [rsp + 0x20]
subss xmm0, xmm6
movss xmm1, dword [rsp + 0x28]
subss xmm2, dword [rax]
subss xmm1, xmm7
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x14005b469
xorps xmm1, xmm1
sqrtss xmm1, xmm2
jmp 0x14005b474
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm0
movzx eax, byte [0x1403b37fe]
comiss xmm9, xmm1
jbe 0x14005b4c4
movss xmm0, dword [0x1403b10a4]
comiss xmm0, xmm1
jb 0x14005b4c4
test al, al
jne 0x14005b4cc
test r13b, r13b
mov dword [rsp + 0x30], r15d
lea rax, [rsp + 0x20]
movaps xmm9, xmm1
lea rcx, [rsp + 0x38]
mov r12d, r15d
cmove rax, rcx
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [r14], xmm0
mov dword [r14 + 8], eax
jmp 0x14005b7b1
test al, al
je 0x14005b7ac
lea rdx, [rbp + 0x30]
call fcn.14004b3c0
lea rdx, [rbp + 0x3c]
movss xmm7, dword [rax + 8]
call fcn.14004b3c0
lea rdx, [rbp + 0x48]
movss xmm6, dword [rax + 4]
call fcn.14004b3c0
movss xmm0, dword [rsp + 0x24]
movss xmm2, dword [rsp + 0x20]
subss xmm0, xmm6
movss xmm1, dword [rsp + 0x28]
subss xmm2, dword [rax]
subss xmm1, xmm7
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x14005b534
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x14005b53c
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm9, xmm0
jbe 0x14005b7ac
test r13b, r13b
mov dword [rsp + 0x30], r15d
lea rax, [rsp + 0x20]
movaps xmm9, xmm0
lea rcx, [rsp + 0x38]
mov r12d, r15d
cmove rax, rcx
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
movsd qword [r14], xmm1
mov dword [r14 + 8], eax
jmp 0x14005b7b1
cmp byte [rbx + rcx + 0xd0], 0
je 0x14005b7b1
cmp byte [rbx + rcx + 0xd2], 0
jne 0x14005b7b1
cmp byte [rbx + rcx + 0xd1], 0
je 0x14005b7b1
mov rax, qword [0x1403b2f00]
cmp qword [rbx + rcx], rax
je 0x14005b7b1
mov eax, dword [0x1403b10d4]
cmp eax, 1
jne 0x14005b5d0
movsd xmm0, qword [rbx + rcx + 0xe6]
mov eax, dword [rbx + rcx + 0xee]
jmp 0x14005b5fc
cmp eax, 2
jne 0x14005b5e7
movsd xmm0, qword [rbx + rcx + 0x116]
mov eax, dword [rbx + rcx + 0x11e]
jmp 0x14005b5fc
cmp eax, 3
jne 0x14005b616
movsd xmm0, qword [rbx + rcx + 0x122]
mov eax, dword [rbx + rcx + 0x12a]
movsd qword [rsp + 0x20], xmm0
movaps xmm8, xmm0
mov dword [rsp + 0x28], eax
mov esi, eax
movsd qword [rsp + 0x38], xmm0
mov dword [rsp + 0x40], eax
movsd xmm6, qword [rbx + rcx + 0xf2]
mov r12d, dword [rbx + rcx + 0xfa]
test r13b, r13b
je 0x14005b67a
lea rdx, [rbp + 0x54]
call fcn.14004b3c0
lea rdx, [rbp + 0x60]
call fcn.14004b3c0
lea rdx, [rbp + 0x6c]
call fcn.14004b3c0
lea rdx, [rbp - 0x50]
movsd qword [rbp - 0x50], xmm6
lea rcx, [rsp + 0x20]
mov dword [rbp - 0x48], r12d
call fcn.140059830
movsd xmm0, qword [rsp + 0x20]
lea r8, [rbp - 0x40]
mov eax, dword [rsp + 0x28]
lea rdx, [rbp - 0x20]
movsd qword [rbp - 0x40], xmm0
mov dword [rbp - 0x38], eax
jmp 0x14005b68f
movsd qword [rsp + 0x50], xmm8
lea r8, [rsp + 0x50]
mov dword [rsp + 0x58], esi
lea rdx, [rsp + 0x6c]
call fcn.14004b5a0
movaps xmm1, xmm10
movss xmm0, dword [rax + 4]
movss xmm6, dword [rax]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm6, xmm11
movaps xmm7, xmm0
movaps xmm1, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x14005b6d4
xorps xmm2, xmm2
sqrtss xmm2, xmm7
jmp 0x14005b6df
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm2, xmm0
comiss xmm9, xmm2
jbe 0x14005b72d
movss xmm1, dword [0x1403b10a4]
comiss xmm1, xmm2
jb 0x14005b72d
cmp byte [0x1403b37fe], 0
jne 0x14005b736
test r13b, r13b
mov dword [rsp + 0x30], r15d
lea rax, [rsp + 0x20]
movaps xmm9, xmm2
lea rcx, [rsp + 0x38]
mov r12d, r15d
cmove rax, rcx
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [r14], xmm0
mov dword [r14 + 8], eax
jmp 0x14005b7b1
cmp byte [0x1403b37fe], 0
je 0x14005b7ac
lea rdx, [rbp + 0xf8]
call fcn.14004b3c0
lea rdx, [rbp + 0xd0]
movss xmm7, dword [rax + 8]
call fcn.14004b3c0
lea rdx, [rsp + 0x60]
movss xmm6, dword [rax + 4]
call fcn.14004b3c0
movss xmm0, dword [rsp + 0x24]
movss xmm2, dword [rsp + 0x20]
subss xmm0, xmm6
movss xmm1, dword [rsp + 0x28]
subss xmm2, dword [rax]
subss xmm1, xmm7
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x14005b534
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x14005b53c
mov r12d, dword [rsp + 0x30]
mov rcx, qword [0x1403b3a90]
inc r15d
mov r8, qword [0x1403b3a88]
mov rax, rdi
sub rcx, r8
add rbx, 0x12e
imul rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r15d
cmp rax, rdx
jb 0x14005b290
movaps xmm8, xmmword [rsp + 0x260]
mov edi, 0
mov r15, qword [rsp + 0x2d8]
cmp r12d, 0xffffffff
je 0x14005bc98
movsxd rax, r12d
imul rsi, rax, 0x12e
cmp byte [0x1403b3813], dil
mov dword [0x1403b1110], r12d
movss xmm0, dword [rsi + r8 + 0xaa]
movss dword [0x1403b380c], xmm0
je 0x14005bbc9
mov rax, qword [rsi + r8 + 0x70]
cmp rax, 0x16dd
je 0x14005bbc9
cmp rax, 0x16ee
je 0x14005bbc9
movabs rcx, 0xfd1ffffffffffcc9
add rcx, rax
cmp rcx, 0x2c
ja 0x14005b880
movabs rdx, 0x100800040025
bt rdx, rcx
jb 0x14005b9c1
movabs rcx, 0x2e000000000016c
cmp rax, rcx
je 0x14005b9c1
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0xf0], rax
movups xmmword [rbp + 0xe0], xmm0
nop dword [rax]
mov rbx, qword [0x1403b3a88]
lea rdx, [rbp + 0x80]
add rbx, rsi
mov rcx, rbx
call fcn.14004fb90
lea rdx, [rsp + 0x60]
mov rcx, rbx
mov r8d, dword [rax + rdi]
call fcn.14004e3a0
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x6c]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.14004b5a0
movaps xmm1, xmm10
movss xmm0, dword [rax + 4]
movss xmm6, dword [rax]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm6, xmm11
movaps xmm7, xmm0
movaps xmm1, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x14005b93a
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x14005b942
movaps xmm0, xmm7
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 0x14005b8b0
lea rdi, [rbp + 0xd0]
lea rax, [rbp + 0xd4]
nop word [rax + rax]
movss xmm0, dword [rdi]
lea rcx, [rbp + 0xf8]
comiss xmm0, dword [rax]
cmova rdi, rax
add rax, 4
cmp rax, rcx
jne 0x14005b970
mov rbx, qword [0x1403b3a88]
lea rdx, [rbp + 0x80]
add rbx, rsi
mov rcx, rbx
call fcn.14004fb90
lea rcx, [rbp + 0xd0]
sub rdi, rcx
sar rdi, 2
movsxd rcx, edi
mov r8d, dword [rax + rcx*4]
mov rcx, rbx
jmp 0x14005bb2e
movdqa xmm1, xmmword [0x1403a6dc0]
xorps xmm0, xmm0
xor eax, eax
mov dword [rbp + 0x108], 0x36
movups xmmword [rbp + 0xd0], xmm0
mov dword [rbp + 0xe0], eax
movdqu xmmword [rbp + 0xf8], xmm1
nop dword [rax]
mov rcx, qword [0x1403b3a88]
lea rdx, [rsp + 0x60]
mov r8d, dword [rbp + rdi + 0xf8]
add rcx, rsi
call fcn.14004e3a0
mov ecx, dword [rax + 8]
movsd xmm1, qword [rax]
mov dword [rsp + 0x40], ecx
mov rcx, qword [0x1403b3a88]
movsd qword [rsp + 0x38], xmm1
movss xmm0, dword [rsi + rcx + 0x10a]
ucomiss xmm0, xmm1
jp 0x14005ba65
jne 0x14005ba65
movss xmm0, dword [rsi + rcx + 0x10e]
ucomiss xmm0, dword [rsp + 0x3c]
jp 0x14005ba65
jne 0x14005ba65
movss xmm0, dword [rsi + rcx + 0x112]
ucomiss xmm0, dword [rsp + 0x40]
jp 0x14005ba65
jne 0x14005ba65
mov dword [rbp + rdi + 0xd0], 0x47c35000
jmp 0x14005bad2
mov eax, dword [rax + 8]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x6c]
mov dword [rsp + 0x58], eax
movsd qword [rsp + 0x50], xmm1
call fcn.14004b5a0
movaps xmm1, xmm10
movss xmm0, dword [rax + 4]
movss xmm6, dword [rax]
subss xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm6, xmm11
movaps xmm7, xmm0
movaps xmm1, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x14005bac1
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x14005bac9
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss dword [rbp + rdi + 0xd0], xmm0
add rdi, 4
cmp rdi, 0x14
jl 0x14005b9f0
lea rdx, [rbp + 0xd0]
lea rax, [rbp + 0xd4]
nop
movss xmm0, dword [rdx]
lea rcx, [rbp + 0xe4]
comiss xmm0, dword [rax]
cmova rdx, rax
add rax, 4
cmp rax, rcx
jne 0x14005baf0
mov rcx, qword [0x1403b3a88]
lea rax, [rbp + 0xd0]
sub rdx, rax
add rcx, rsi
sar rdx, 2
movsxd rax, edx
mov r8d, dword [rbp + rax*4 + 0xf8]
lea rdx, [rsp + 0x60]
call fcn.14004e3a0
movsd xmm1, qword [rax]
mov ecx, dword [rax + 8]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movsd qword [r14], xmm1
movss dword [rsp + 0x24], xmm0
movss dword [rsp + 0x20], xmm1
mov dword [r14 + 8], ecx
mov dword [rsp + 0x28], ecx
test r13b, r13b
je 0x14005bbc9
mov rax, qword [0x1403b3a88]
lea rdx, [rsp + 0x60]
movsd xmm6, qword [rsi + rax + 0xf2]
mov ebx, dword [rsi + rax + 0xfa]
call fcn.14004b3c0
lea rdx, [rbp + 0xd0]
call fcn.14004b3c0
lea rdx, [rbp + 0xf8]
call fcn.14004b3c0
lea rdx, [rsp + 0x50]
movsd qword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x58], ebx
call fcn.140059460
movsd xmm0, qword [rsp + 0x20]
mov eax, dword [rsp + 0x28]
movsd qword [r14], xmm0
mov dword [r14 + 8], eax
mov ecx, dword [0x1403b10e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005bc98
cmp byte [0x1403b37c8], 0
je 0x14005bc98
movss xmm1, dword [0x1403a6c40]
movss xmm0, dword [0x1403b2e64]
mov rcx, qword [0x1403b3a88]
mulss xmm0, xmm1
mov rdx, qword [rsi + rcx + 0x38]
mov rcx, qword [0x1403b3a80]
add rdx, 0x144
cvttss2si r8, xmm0
movss xmm0, dword [0x1403b2e60]
mulss xmm0, xmm1
shl r8d, 8
cvttss2si rax, xmm0
movss xmm0, dword [0x1403b2e5c]
or r8d, eax
mulss xmm0, xmm1
shl r8d, 8
cvttss2si rax, xmm0
movss xmm0, dword [0x1403b2e58]
or r8d, eax
mulss xmm0, xmm1
shl r8d, 8
cvttss2si rax, xmm0
or r8d, eax
mov dword [0x1403b10b8], r8d
call fcn.14007c210
mov rcx, qword [0x1403b3a88]
mov r8d, dword [0x1403b10b8]
mov rdx, qword [rsi + rcx + 0x38]
mov rcx, qword [0x1403b3a80]
add rdx, 0x130
call fcn.14007c210
movaps xmm7, xmmword [rsp + 0x270]
mov rax, r14
mov rsi, qword [rsp + 0x2d0]
mov rbx, qword [rsp + 0x2c8]
movaps xmm10, xmmword [rsp + 0x240]
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.14007f3d0
lea r11, [rsp + 0x290]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret
mov rax, r14
jmp 0x14005bcbc