Function at 0x140036990
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push r13
lea rbp, [rsp - 0xc8]
sub rsp, 0x1c8
mov rax, qword [0x140047010]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov rdx, qword [0x1400476b8]
lea r8, [rbp - 0x80]
xor esi, esi
mov rbx, rcx
mov rcx, qword [rcx + 8]
add rdx, 0x1875c48
mov qword [rbp - 0x80], rsi
mov qword [rsp + 0x20], rsi
lea r9d, [rsi + 8]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov r13, qword [rbp - 0x80]
test r13, r13
je 0x14003729c
mov rcx, qword [rbx + 8]
lea rdx, [r13 + 0x3bf]
mov qword [rsp + 0x200], r12
lea r9d, [rsi + 4]
mov qword [rsp + 0x208], r14
lea r8, [rbp - 0x68]
mov qword [rsp + 0x1c0], r15
movaps xmmword [rsp + 0x190], xmm8
movaps xmmword [rsp + 0x140], xmm13
movaps xmmword [rsp + 0x130], xmm14
mov dword [rbp - 0x68], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdx, qword [0x1400476b8]
lea r9d, [rsi + 0x40]
mov rcx, qword [rbx + 8]
lea r8, [rbp - 0x30]
xorps xmm0, xmm0
mov qword [rsp + 0x20], rsi
add rdx, 0x1876730
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [rbx + 8]
lea rdx, [r13 + 0x1214]
xorps xmm13, xmm13
mov qword [rbp - 0x40], rsi
lea r9d, [rsi + 0xc]
movss dword [rsp + 0x30], xmm13
lea r8, [rbp - 0x40]
mov dword [rbp - 0x38], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdx, qword [0x1400476b8]
lea r9d, [rsi + 8]
mov rcx, qword [rbx + 8]
lea r8, [rbp - 0x48]
add rdx, 0x17888d8
mov qword [rbp - 0x48], rsi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movd xmm0, dword [0x140047048]
lea r14d, [rsi + 1]
mov r12, qword [rbp - 0x48]
xorps xmm14, xmm14
movss xmm8, dword [0x14004074c]
mov r15d, esi
mov qword [rsp + 0x1f8], rdi
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x180], xmm9
movaps xmmword [rsp + 0x170], xmm10
movaps xmmword [rsp + 0x160], xmm11
cvtdq2ps xmm0, xmm0
movaps xmmword [rsp + 0x150], xmm12
movss dword [rsp + 0x44], xmm0
movss dword [rsp + 0x34], xmm14
movaps xmmword [rsp + 0x120], xmm15
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
lea rdx, [r12 + 0x10]
mov eax, r14d
mov qword [rbp - 0x80], rsi
and eax, 0x7fff
mov qword [rsp + 0x20], rsi
shl eax, 3
lea r8, [rbp - 0x80]
sar eax, 9
mov r9d, 8
add rdx, rax
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x1400371dd
mov eax, r14d
mov qword [rbp - 0x58], rsi
and eax, 0x1ff
mov qword [rsp + 0x20], rsi
imul edx, eax, 0x78
lea r8, [rbp - 0x58]
mov r9d, 8
add rdx, rcx
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x1400371dd
mov rcx, qword [rbx + 8]
lea rdx, [rdi + 0x808]
mov r9d, 4
mov dword [rsp + 0x78], esi
lea r8, [rsp + 0x78]
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov eax, dword [rsp + 0x78]
dec eax
cmp eax, 0x63
ja 0x1400371dd
mov rcx, qword [rbx + 8]
lea rdx, [rdi + 0x7fc]
mov r9d, 4
mov dword [rsp + 0x78], esi
lea r8, [rsp + 0x78]
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov esi, dword [rsp + 0x78]
lea rdx, [r12 + 0x10]
xor ecx, ecx
lea r8, [rbp - 0x80]
mov eax, esi
mov qword [rbp - 0x80], rcx
shr eax, 9
and eax, 0x3f
mov qword [rsp + 0x20], rcx
shl eax, 3
lea r9d, [rcx + 8]
mov rcx, qword [rbx + 8]
add rdx, rax
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x1400371db
xor r8d, r8d
and esi, 0x1ff
mov qword [rbp - 0x60], r8
mov qword [rsp + 0x20], r8
imul edx, esi, 0x78
lea r9d, [r8 + 8]
lea r8, [rbp - 0x60]
add rdx, rcx
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rsi, qword [rbp - 0x60]
cmp rsi, r13
je 0x1400371db
mov rcx, qword [rbx + 8]
lea rdx, [rdi + 0x3bf]
xor eax, eax
lea r8, [rbp - 0x64]
mov dword [rbp - 0x64], eax
mov qword [rsp + 0x20], rax
lea r9d, [rax + 4]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [rbx + 8]
lea rdx, [rsi + 0x1214]
mov r9d, 0xc
mov qword [rbp - 0x78], 0
lea r8, [rbp - 0x78]
mov dword [rbp - 0x70], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [rbp - 0x78]
lea rdx, [rsi + 0x3c8]
mov rcx, qword [rbx + 8]
lea r8, [rsp + 0x78]
movss dword [rsp + 0x40], xmm0
xor esi, esi
movss xmm0, dword [rbp - 0x74]
movss dword [rsp + 0x3c], xmm0
movd xmm0, dword [0x14004704c]
cvtdq2ps xmm0, xmm0
lea r9d, [rsi + 4]
mov dword [rsp + 0x78], 0
mov qword [rsp + 0x20], rsi
addss xmm0, dword [rbp - 0x70]
movss dword [rsp + 0x38], xmm0
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test byte [rsp + 0x78], 2
movss xmm2, dword [rbp - 0x70]
je 0x140036d6d
movd xmm0, dword [0x14004704c]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm2
subss xmm0, dword [0x1400407dc]
movss dword [rsp + 0x38], xmm0
movss xmm5, dword [rbp - 0x74]
movss xmm4, dword [rbp - 0x78]
movss xmm11, dword [rbp + 8]
movss xmm14, dword [rbp + 4]
movss xmm12, dword [rbp]
movaps xmm15, xmm14
movss xmm3, dword [0x140040780]
movaps xmm0, xmm12
movss xmm10, dword [rbp - 0x30]
movss xmm7, dword [rbp - 0x28]
mulss xmm14, dword [rsp + 0x3c]
movaps xmm1, xmm7
mulss xmm12, dword [rsp + 0x40]
mulss xmm0, xmm4
mulss xmm1, xmm2
addss xmm14, xmm12
mulss xmm15, xmm5
addss xmm15, xmm0
movaps xmm0, xmm11
mulss xmm0, xmm2
addss xmm15, xmm0
movss xmm0, dword [rbp - 0x2c]
movaps xmm13, xmm0
movss dword [rbp - 0x60], xmm0
movss xmm9, dword [rbp - 0x60]
movaps xmm0, xmm10
mulss xmm9, dword [rsp + 0x3c]
addss xmm15, dword [rbp + 0xc]
mulss xmm10, dword [rsp + 0x40]
mulss xmm13, xmm5
mulss xmm0, xmm4
addss xmm9, xmm10
divss xmm3, xmm15
addss xmm13, xmm0
addss xmm13, xmm1
addss xmm13, dword [rbp - 0x24]
mulss xmm13, xmm3
mulss xmm13, xmm8
mulss xmm13, dword [0x140040830]
addss xmm13, xmm8
movss xmm8, dword [rbp - 0x20]
movaps xmm0, xmm8
mulss xmm8, dword [rsp + 0x40]
mulss xmm0, xmm4
addss xmm13, dword [0x140040820]
movss dword [rbp - 0x80], xmm13
movss xmm13, dword [rbp - 0x1c]
movaps xmm2, xmm13
mulss xmm13, dword [rsp + 0x3c]
mulss xmm2, xmm5
movss xmm5, dword [rbp - 0x18]
movaps xmm1, xmm5
mulss xmm1, dword [rbp - 0x70]
addss xmm2, xmm0
movss xmm0, dword [0x140040810]
addss xmm2, xmm1
addss xmm2, dword [rbp - 0x14]
mulss xmm2, xmm3
movss xmm3, dword [0x14004074c]
mulss xmm2, xmm3
mulss xmm2, dword [0x140040828]
addss xmm2, xmm3
subss xmm0, xmm2
movss xmm2, dword [rsp + 0x38]
movss dword [rbp - 0x58], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm11
movss xmm11, dword [0x140040780]
movaps xmm1, xmm11
addss xmm14, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm7
addss xmm14, dword [rbp + 0xc]
addss xmm9, xmm0
divss xmm1, xmm14
addss xmm9, dword [rbp - 0x24]
mulss xmm9, xmm1
mulss xmm9, xmm3
mulss xmm9, dword [0x140040830]
addss xmm9, xmm3
addss xmm9, dword [0x140040820]
comiss xmm15, dword [0x14004071c]
movss xmm12, dword [0x140040810]
addss xmm13, xmm8
xorps xmm0, xmm0
mulss xmm2, xmm5
cvtsi2ss xmm0, dword [0x140047044]
addss xmm13, xmm2
movaps xmm8, xmm3
movaps xmm7, xmm12
movaps xmm6, xmm9
divss xmm0, dword [0x1400407f0]
addss xmm13, dword [rbp - 0x14]
subss xmm6, dword [0x140040820]
mulss xmm13, xmm1
movaps xmm1, xmm11
subss xmm1, xmm0
mulss xmm13, xmm8
mulss xmm6, xmm1
mulss xmm13, dword [0x140040828]
addss xmm13, xmm8
subss xmm7, xmm13
movaps xmm10, xmm7
subss xmm10, xmm12
mulss xmm10, xmm1
jb 0x1400371cb
mov eax, dword [rbp - 0x68]
cmp eax, dword [rbp - 0x64]
je 0x1400371cb
movaps xmm0, xmm6
movaps xmm1, xmm10
mulss xmm0, xmm6
mulss xmm1, xmm10
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140036fd8
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140036fe0
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm12, dword [rsp + 0x44]
comiss xmm12, xmm0
jb 0x140037004
movss dword [rsp + 0x30], xmm6
movaps xmm13, xmm6
movss dword [rsp + 0x34], xmm10
movaps xmm14, xmm10
jmp 0x140037012
movss xmm13, dword [rsp + 0x30]
movss xmm14, dword [rsp + 0x34]
movss xmm10, dword [rbp - 0x58]
cmovb rdi, r15
cmp byte [0x140047714], sil
movaps xmm6, xmm10
subss xmm6, xmm7
mov r15, rdi
divss xmm6, dword [0x1400407a4]
je 0x140037148
mov rax, qword [0x1400476a8]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x48a8]
mov rcx, qword [rcx]
call fcn.1400064b0
movaps xmm0, xmmword [0x140040b60]
lea rcx, [rbp - 0x58]
movups xmmword [rbp - 0x58], xmm0
mov rdi, rax
call fcn.1400034d0
movaps xmm0, xmm9
mov esi, eax
addss xmm0, xmm6
subss xmm9, xmm6
test eax, 0xff000000
je 0x140037146
test byte [rdi + 0x30], 1
addss xmm7, xmm8
addss xmm9, xmm8
mov dword [rsp + 0x20], 0
movaps xmm3, xmm11
mov rcx, rdi
je 0x1400370de
subss xmm0, xmm8
movss dword [rsp + 0x50], xmm9
movss dword [rsp + 0x54], xmm7
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x50]
movss dword [rsp + 0x48], xmm0
movaps xmm0, xmm10
subss xmm0, xmm8
movss dword [rsp + 0x4c], xmm0
jmp 0x140037115
subss xmm0, dword [0x140040748]
movss dword [rsp + 0x60], xmm9
lea r8, [rsp + 0x58]
movss dword [rsp + 0x64], xmm7
lea rdx, [rsp + 0x60]
movss dword [rsp + 0x58], xmm0
movaps xmm0, xmm10
subss xmm0, dword [0x140040748]
movss dword [rsp + 0x5c], xmm0
call fcn.140023fb0
mov r8d, dword [rdi + 0x78]
mov r9d, esi
mov rdx, qword [rdi + 0x80]
mov rcx, rdi
movss dword [rsp + 0x28], xmm11
mov dword [rsp + 0x20], 1
call fcn.1400221d0
xor esi, esi
mov dword [rdi + 0x78], esi
jmp 0x140037148
xor esi, esi
cmp byte [0x140047712], 0
je 0x1400371dd
mov rax, qword [0x1400476a8]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x48a8]
mov rcx, qword [rcx]
call fcn.1400064b0
movaps xmm0, xmmword [0x140040b60]
lea rcx, [rbp - 0x58]
movups xmmword [rbp - 0x58], xmm0
mov r10, rax
mov dword [rsp + 0x68], 0x44700000
movss xmm0, dword [rbp - 0x80]
movss dword [rsp + 0x70], xmm0
movss dword [rsp + 0x74], xmm10
mov dword [rsp + 0x6c], 0x44870000
call fcn.1400034d0
mov r9d, eax
movss dword [rsp + 0x20], xmm11
lea rdx, [rsp + 0x70]
mov rcx, r10
lea r8, [rsp + 0x68]
call fcn.140024510
jmp 0x1400371dd
movss xmm13, dword [rsp + 0x30]
movss xmm14, dword [rsp + 0x34]
jmp 0x1400371dd
xor esi, esi
inc r14d
cmp r14d, 0x20
jl 0x140036b50
movaps xmm15, xmmword [rsp + 0x120]
test r15, r15
mov r15, qword [rsp + 0x1c0]
movaps xmm12, xmmword [rsp + 0x150]
movaps xmm11, xmmword [rsp + 0x160]
movaps xmm10, xmmword [rsp + 0x170]
movaps xmm9, xmmword [rsp + 0x180]
movaps xmm8, xmmword [rsp + 0x190]
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm6, xmmword [rsp + 0x1b0]
mov r14, qword [rsp + 0x208]
mov r12, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x1f8]
je 0x14003728a
cmp byte [0x140047713], 0
je 0x14003728a
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003728a
xor r9d, r9d
mov qword [rsp + 0x20], rsi
cvttss2si r8, xmm14
lea ecx, [r9 + 1]
cvttss2si rdx, xmm13
call qword [sym.imp.USER32.dll_mouse_event]
movaps xmm13, xmmword [rsp + 0x140]
movaps xmm14, xmmword [rsp + 0x130]
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.1400380b0
add rsp, 0x1c8
pop r13
pop rsi
pop rbx
pop rbp
ret