Function at 0x140106910
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
sub rsp, 0x2d0
cmp qword [0x1401cf180], 0
je 0x14010731c
cmp qword [0x1401cf1b0], 0
je 0x14010731c
mov edx, 0x100
mov rcx, qword [0x1401cf1b0]
call fcn.1400facd0
movzx eax, al
test eax, eax
je 0x14010731c
mov rcx, qword [0x1401cf1b0]
call fcn.1400fc6e0
test eax, eax
jne 0x14010731c
mov rcx, qword [0x1401cf1b0]
call fcn.1400fa150
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0
jne 0x140106983
jmp 0x14010731c
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
call fcn.140105c70
nop
lea rcx, [rsp + 0x58]
call fcn.1400c02a0
movzx eax, al
test eax, eax
je 0x1401069b3
lea rcx, [rsp + 0x58]
call fcn.14001f250
jmp 0x14010731c
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x118], rax
mov rdx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x40]
call fcn.140105c70
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0x90]
call fcn.1400fba10
movzx eax, al
test eax, eax
jne 0x140106a00
lea rcx, [rsp + 0x58]
call fcn.14001f250
jmp 0x14010731c
mov rcx, qword [rsp + 0x40]
call fcn.1400fad50
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140106a26
lea rcx, [rsp + 0x58]
call fcn.14001f250
jmp 0x14010731c
movzx eax, byte [0x1401cc9f8]
test eax, eax
je 0x140106a48
lea rcx, [rsp + 0x36]
call fcn.1400e2130
mov rdx, rax
mov rcx, qword [rsp + 0x20]
call fcn.1400eafb0
movzx eax, byte [0x1401cc9a8]
test eax, eax
je 0x140106b64
lea rax, [rsp + 0x28]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x29]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x28]
movzx r8d, byte [rsp + 0x29]
movzx edx, byte [rsp + 0x37]
lea rcx, [rsp + 0x1d0]
call fcn.1400d3a20
mov rcx, rax
call fcn.1400ec620
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
je 0x140106ae8
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140105a60
movss xmm1, dword [0x1401ae170]
mov rcx, qword [rsp + 0x20]
call fcn.140105a20
movss xmm1, dword [0x1401ae170]
mov rcx, qword [rsp + 0x20]
call fcn.1401056f0
jmp 0x140106b64
lea rax, [rsp + 0x2a]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x2b]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x2a]
movzx r8d, byte [rsp + 0x2b]
movzx edx, byte [rsp + 0x38]
lea rcx, [rsp + 0x1f0]
call fcn.1400d4620
mov rcx, rax
call fcn.1400ec620
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
je 0x140106b64
mov dl, 1
mov rcx, qword [rsp + 0x20]
call fcn.140105030
movss xmm1, dword [0x140162224]
mov rcx, qword [rsp + 0x20]
call fcn.140104ff0
movzx eax, byte [0x1401cc9a9]
test eax, eax
je 0x140106c01
lea rax, [rsp + 0x2c]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x2d]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x2c]
movzx r8d, byte [rsp + 0x2d]
movzx edx, byte [rsp + 0x39]
lea rcx, [rsp + 0x1a0]
call fcn.1400d5070
mov rcx, rax
call fcn.1400eb110
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
je 0x140106c01
movss xmm1, dword [0x140162224]
mov rcx, qword [rsp + 0x20]
call fcn.1401059e0
movss xmm1, dword [0x140162224]
mov rcx, qword [rsp + 0x20]
call fcn.140105aa0
mov dl, 1
mov rcx, qword [rsp + 0x20]
call fcn.140104df0
movzx eax, byte [0x1401cca14]
test eax, eax
je 0x140106d4f
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140106d34
mov rcx, qword [0x1401cf1b0]
call fcn.1400fed70
mov qword [rsp + 0x98], rax
lea rdx, [rsp + 0xf8]
mov rcx, qword [rsp + 0x98]
call fcn.1400fee00
lea rdx, [rsp + 0x108]
mov rcx, qword [0x1401cf180]
call fcn.1400fedb0
movss xmm3, dword [0x140162fa4]
movss xmm2, dword [0x140162fa4]
movss xmm1, dword [0x140162fa4]
lea rcx, [rsp + 0x170]
call fcn.1400e0ed0
mov r8, rax
lea rdx, [rsp + 0x17c]
lea rcx, [rsp + 0xf8]
call fcn.1400e2460
mov rdx, rax
lea rcx, [rsp + 0x108]
call fcn.1400e26d0
movzx eax, al
test eax, eax
je 0x140106d17
movss xmm3, dword [0x140162fa4]
movss xmm2, dword [0x140162fa4]
movss xmm1, dword [0x140162fa4]
lea rcx, [rsp + 0x188]
call fcn.1400e0ed0
mov r8, rax
lea rdx, [rsp + 0x194]
lea rcx, [rsp + 0xf8]
call fcn.1400e24d0
mov rdx, rax
lea rcx, [rsp + 0x108]
call fcn.1400e2600
movzx eax, al
test eax, eax
je 0x140106d17
xor edx, edx
mov rcx, qword [rsp + 0x20]
call fcn.1401052f0
jmp 0x140106d32
mov edx, 1
mov rcx, qword [rsp + 0x20]
call fcn.140105430
mov dl, 1
mov rcx, qword [rsp + 0x20]
call fcn.140105630
jmp 0x140106d4f
mov edx, 1
mov rcx, qword [rsp + 0x20]
call fcn.140105430
xor edx, edx
mov rcx, qword [rsp + 0x20]
call fcn.140105630
mov rcx, qword [rsp + 0x20]
call fcn.1400ff470
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x50]
call fcn.1400f9300
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0x50], 0
jne 0x140106d7d
cmp qword [rsp + 0x78], 0
je 0x140106dbe
lea rax, [rsp + 0x210]
mov qword [rsp + 0xa0], rax
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0xa0]
call fcn.140031a40
mov qword [rsp + 0xa8], rax
mov r8, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xa8]
call fcn.1400fda60
lea rax, [rsp + 0x2e]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x2f]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
movzx edx, byte [rsp + 0x3a]
lea rcx, [rsp + 0x230]
call fcn.1400d3a20
mov rcx, rax
call fcn.1400ec620
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
jne 0x140106fa3
lea rax, [rsp + 0x30]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x31]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x30]
movzx r8d, byte [rsp + 0x31]
movzx edx, byte [rsp + 0x3b]
lea rcx, [rsp + 0x250]
call fcn.1400d4620
mov rcx, rax
call fcn.1400ec620
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
jne 0x140106fa3
lea rax, [rsp + 0x32]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x33]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x32]
movzx r8d, byte [rsp + 0x33]
movzx edx, byte [rsp + 0x3c]
lea rcx, [rsp + 0x270]
call fcn.1400d6100
mov rcx, rax
call fcn.1400ec620
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
jne 0x140106fa3
lea rax, [rsp + 0x34]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0x35]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx r9d, byte [rsp + 0x34]
movzx r8d, byte [rsp + 0x35]
movzx edx, byte [rsp + 0x3d]
lea rcx, [rsp + 0x290]
call fcn.1400d6730
mov rcx, rax
call fcn.1400ec620
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400f2320
cmp rax, 0xffffffffffffffff
jne 0x140106fa3
mov rcx, qword [rsp + 0x20]
call fcn.140106850
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x80]
call fcn.1400f2bc0
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x80], 0
je 0x140106fa3
cmp qword [rsp + 0x88], 0
je 0x140106fa3
mov rcx, qword [rsp + 0x88]
call fcn.1400f9300
mov qword [rsp + 0xb0], rax
xor edx, edx
mov rcx, qword [rsp + 0xb0]
call fcn.140105920
movzx eax, byte [0x1401cc9aa]
test eax, eax
je 0x14010702a
movss xmm1, dword [0x1401ae18c]
mov rcx, qword [rsp + 0x20]
call fcn.140104e30
movss xmm1, dword [0x1401ae18c]
mov rcx, qword [rsp + 0x20]
call fcn.1401055f0
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140105960
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140104f30
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140104e70
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.1401059a0
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140104f70
lea rcx, [rsp + 0x3e]
call fcn.1400e2140
mov rdx, rax
mov rcx, qword [rsp + 0x20]
call fcn.1400eafb0
movzx eax, byte [0x1401cc9ab]
test eax, eax
je 0x14010704c
lea rcx, [rsp + 0x3f]
call fcn.1400e2150
mov rdx, rax
mov rcx, qword [rsp + 0x20]
call fcn.1400eafb0
movzx eax, byte [0x1401cc9f0]
test eax, eax
je 0x14010706f
mov dl, 1
mov rcx, qword [rsp + 0x20]
call fcn.140105070
xor edx, edx
mov rcx, qword [rsp + 0x20]
call fcn.140105630
movzx eax, byte [0x1401cc9f1]
test eax, eax
je 0x140107094
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140104eb0
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.140104ef0
movzx eax, byte [0x1401cc9f2]
test eax, eax
je 0x14010713e
mov rcx, qword [0x1401cf1b0]
call fcn.1400fa150
mov rcx, rax
call fcn.1400fad50
mov rcx, rax
call fcn.140106850
mov rcx, rax
call fcn.1400f2bc0
mov qword [rsp + 0x48], rax
xor edx, edx
mov rcx, qword [rsp + 0x48]
call fcn.140104fb0
mov rcx, qword [rsp + 0x48]
call fcn.1400e4310
mov qword [rsp + 0xb8], rax
xorps xmm1, xmm1
mov rcx, qword [rsp + 0xb8]
call fcn.1401050b0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa4c0
mov qword [rsp + 0xc0], rax
xorps xmm1, xmm1
mov rcx, qword [rsp + 0xc0]
call fcn.140105ae0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa2c0
mov qword [rsp + 0xc8], rax
xorps xmm1, xmm1
mov rcx, qword [rsp + 0xc8]
call fcn.1401057b0
movzx eax, byte [0x1401cc9e8]
test eax, eax
je 0x1401071d4
lea rdx, [rsp + 0x150]
mov rcx, qword [rsp + 0x40]
call fcn.1400f2f20
nop
movzx eax, byte [0x1401cc9e8]
test eax, eax
je 0x14010717f
movss xmm1, dword [0x1401cc9ec]
mov rcx, qword [rsp + 0x20]
call fcn.1401058e0
jmp 0x1401071c7
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0xd0], rax
lea rdx, [rsp + 0x150]
mov rcx, qword [rsp + 0xd0]
call fcn.14001f730
mov qword [rsp + 0xd8], rax
mov rcx, qword [rsp + 0xd8]
call fcn.1400e3e80
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x20]
call fcn.1401058e0
nop
lea rcx, [rsp + 0x150]
call fcn.14001f640
movzx eax, byte [0x1401cca6d]
test eax, eax
je 0x140107312
mov rcx, qword [rsp + 0x20]
call fcn.1400fb6e0
movzx eax, al
test eax, eax
je 0x1401072f1
cmp qword [0x1401cf868], 0
jne 0x14010724b
lea rcx, [rsp + 0x138]
call fcn.1400feba0
mov qword [rsp + 0xe0], rax
lea rdx, [rsp + 0x140]
mov rcx, qword [rsp + 0xe0]
call fcn.140106600
mov rdx, rax
lea rcx, [rsp + 0x148]
call fcn.1400ddbf0
mov rcx, rax
call fcn.1400305c0
mov qword [0x1401cf868], rax
mov rcx, qword [rsp + 0x20]
call fcn.1400ff5b0
mulss xmm0, dword [0x140166864]
movss dword [0x1401cf75c], xmm0
lea rcx, [rsp + 0x120]
call fcn.1400feba0
mov qword [rsp + 0xe8], rax
lea rdx, [rsp + 0x128]
mov rcx, qword [rsp + 0xe8]
call fcn.140106600
mov rdx, rax
lea rcx, [rsp + 0x130]
call fcn.1400ddbf0
mov rcx, rax
call fcn.1400305c0
mov qword [rsp + 0xf0], rax
mov rcx, qword [rsp + 0x20]
call fcn.1400ff5b0
mulss xmm0, dword [0x140166864]
cvtsi2ss xmm1, qword [0x1401cf868]
addss xmm1, xmm0
movaps xmm0, xmm1
cvttss2si eax, xmm0
cdqe
mov rcx, qword [rsp + 0xf0]
sub rax, rcx
cvtsi2ss xmm0, rax
movss dword [0x1401cf758], xmm0
jmp 0x140107312
mov qword [0x1401cf868], 0
xorps xmm0, xmm0
movss dword [0x1401cf75c], xmm0
xorps xmm0, xmm0
movss dword [0x1401cf758], xmm0
lea rcx, [rsp + 0x58]
call fcn.14001f250
add rsp, 0x2d0
pop rdi
ret