Function at 0x1800093c0
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x80]
sub rsp, 0x180
movss xmm2, dword [0x18008b764]
mov rdi, r8
movss xmm0, dword [0x180034e44]
mov rsi, rcx
inc dword [0x18008b608]
cmp byte [0x18008b2cb], 0
movaps xmmword [rax - 0x28], xmm6
movaps xmm6, xmm2
movaps xmmword [rax - 0x38], xmm7
movss xmm7, dword [0x18008b760]
movaps xmmword [rax - 0x48], xmm8
addss xmm7, xmm0
movss xmm8, dword [0x180034e0c]
movaps xmmword [rax - 0x58], xmm9
movq xmm9, rdx
movaps xmmword [rax - 0x68], xmm10
movss xmm10, dword [0x180034e5c]
addss xmm7, dword [0x18008b600]
addss xmm6, xmm10
movaps xmmword [rax - 0x98], xmm13
shufps xmm9, xmm9, 0x55
mov qword [rsp + 0x50], rdx
addss xmm6, dword [0x18008b604]
je 0x180009496
movss xmm7, dword [0x18008b778]
addss xmm7, dword [0x18008b770]
movss xmm6, dword [0x18008b77c]
mulss xmm6, xmm8
addss xmm7, xmm0
movaps xmm0, xmm9
addss xmm6, dword [0x18008b774]
mulss xmm0, xmm8
subss xmm6, xmm0
cmp byte [0x18008b2cc], 0
xorps xmm13, xmm13
je 0x1800094cb
movss xmm6, dword [0x18008b60c]
movaps xmm0, xmm6
mov byte [0x18008b2cc], 0
subss xmm0, xmm2
mov dword [0x18008b60c], 0
movss dword [0x18008b604], xmm0
movaps xmm0, xmm7
movaps xmmword [rsp + 0x110], xmm12
unpcklps xmm0, xmm6
movq rcx, xmm0
call fcn.18000b280
movss xmm12, dword [rsp + 0x50]
movzx r14d, al
lea r9, [rsp + 0x40]
movaps xmm1, xmm12
movaps xmm2, xmm9
test al, al
je 0x180009526
movups xmm0, xmmword [0x180088088]
movdqa xmmword [rsp + 0x40], xmm0
movaps xmm0, xmm7
unpcklps xmm0, xmm6
movq rcx, xmm0
call fcn.18000d760
mov byte [0x18008b2ca], 1
jmp 0x180009543
movups xmm0, xmmword [0x180088078]
movdqa xmmword [rsp + 0x40], xmm0
movaps xmm0, xmm7
unpcklps xmm0, xmm6
movq rcx, xmm0
call fcn.18000d760
cmp byte [0x18008b2cb], 0
jne 0x180009569
movss xmm1, dword [0x18008b604]
movaps xmm0, xmm9
addss xmm0, xmm10
addss xmm1, xmm0
movss dword [0x18008b604], xmm1
mov eax, dword [0x18008b608]
cmp dword [0x18008817c], eax
mov qword [rsp + 0x1a0], rbx
mov qword [rsp + 0x1b0], r15
jne 0x18000967a
movdqa xmm0, xmmword [0x180034450]
lea r8, [rsp + 0x40]
movzx eax, word [0x1800349e0]
lea rcx, [rsp + 0x20]
movdqa xmm1, xmmword [0x180034f30]
movaps xmm3, xmm12
mulss xmm3, xmm8
movaps xmm2, xmm9
xor r9d, r9d
mov word [rsp + 0x28], ax
mulss xmm2, xmm8
movzx eax, byte [0x1800349e2]
addss xmm3, xmm7
mov dword [rsp + 0x2c], 0
movdqu xmmword [rsp + 0x30], xmm0
mov byte [rsp + 0x2a], al
movsd xmm0, qword [str._Press_KeY_]
addss xmm2, xmm6
movsd qword [rsp + 0x20], xmm0
mov byte [rsp + 0x2b], 0
movdqa xmmword [rsp + 0x40], xmm1
unpcklps xmm3, xmm2
movq rdx, xmm3
call fcn.18000ccf0
cmp byte [0x18008b2e0], 0
jne 0x180009643
cmp byte [0x18008b2e1], 0
jne 0x180009643
cmp byte [0x18008b2e2], 0
jne 0x180009643
cmp byte [0x18008b2e3], 0
jne 0x180009643
cmp byte [0x18008b2e4], 0
jne 0x180009643
mov byte [0x18008b2cd], 0
jmp 0x180009650
cmp byte [0x18008b2cd], 0
jne 0x1800099a0
xor ebx, ebx
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000966b
mov dword [rdi], ebx
mov dword [0x18008817c], 0xffffffff
inc ebx
cmp ebx, 0xff
jl 0x180009652
jmp 0x1800099a0
movzx ebx, byte [rdi]
movaps xmm10, xmm12
movaps xmmword [rsp + 0x120], xmm11
xor edx, edx
mulss xmm10, xmm8
movaps xmm11, xmm9
mov ecx, ebx
mulss xmm11, xmm8
movdqa xmm8, xmmword [0x180034f30]
addss xmm10, xmm7
addss xmm11, xmm6
call qword [sym.imp.USER32.dll_MapVirtualKeyA]
lea r15, [0x180000000]
mov r9d, eax
cmp bl, 1
jne 0x180009704
movdqa xmm1, xmmword [0x180034550]
xorps xmm0, xmm0
mov eax, dword [str.MOUSE0]
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x20], eax
movzx eax, word [0x1800349c0]
movdqu xmmword [rsp + 0x30], xmm1
mov word [rsp + 0x24], ax
psrldq xmm1, 8
mov byte [rsp + 0x26], 0
movq rcx, xmm1
jmp 0x18000985d
cmp bl, 2
jne 0x180009749
movdqa xmm1, xmmword [0x180034550]
xorps xmm0, xmm0
mov eax, dword [str.MOUSE1]
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x20], eax
movzx eax, word [0x1800349c8]
movdqu xmmword [rsp + 0x30], xmm1
mov word [rsp + 0x24], ax
psrldq xmm1, 8
mov byte [rsp + 0x26], 0
movq rcx, xmm1
jmp 0x18000985d
cmp bl, 4
jne 0x180009792
mov rax, qword [str.MBUTTON]
mov ecx, 0xf
movdqa xmm0, xmmword [0x1800347b0]
mov dword [rsp + 0x20], eax
movzx eax, word [0x1800349d4]
mov word [rsp + 0x24], ax
movzx eax, byte [0x1800349d6]
mov byte [rsp + 0x26], al
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], rcx
mov byte [rsp + 0x27], 0
jmp 0x18000985d
cmp bl, 5
jne 0x1800097d0
movabs rax, 0x314e4f5454554258
movdqa xmm1, xmmword [0x1800347e0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x20], rax
movdqu xmmword [rsp + 0x30], xmm1
mov byte [rsp + 0x28], 0
psrldq xmm1, 8
movq rcx, xmm1
jmp 0x180009862
cmp bl, 6
jne 0x1800097e1
movabs rax, 0x324e4f5454554258
jmp 0x1800097a1
lea eax, [rbx - 0x21]
cmp eax, 0x84
ja case.0x180009801.34
cdqe
movzx eax, byte [r15 + rax + 0x9a94]
mov ecx, dword [r15 + rax*4 + 0x9a8c]
add rcx, r15
jmp rcx
bts r9d, 8
shl r9d, 0x10
lea rdx, [rbp - 0x80]
mov ecx, r9d
mov r8d, 0x80
call qword [sym.imp.USER32.dll_GetKeyNameTextA]
xorps xmm0, xmm0
lea rax, [rbp - 0x80]
xorps xmm1, xmm1
mov r8, 0xffffffffffffffff
movups xmmword [rsp + 0x20], xmm0
movdqu xmmword [rsp + 0x30], xmm1
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180009840
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x20]
call fcn.180001c30
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x20]
cmp rcx, 0xf
lea rdx, [rsp + 0x20]
xorps xmm0, xmm0
xorps xmm1, xmm1
cmova rdx, rax
mov r8, 0xffffffffffffffff
movups xmmword [rsp + 0x58], xmm0
movdqu xmmword [rsp + 0x68], xmm1
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180009890
lea rcx, [rsp + 0x58]
call fcn.180001c30
movaps xmm0, xmm10
movdqa xmmword [rsp + 0x40], xmm8
unpcklps xmm0, xmm11
lea r8, [rsp + 0x40]
movq rdx, xmm0
lea rcx, [rsp + 0x58]
xor r9d, r9d
call fcn.18000ccf0
mov rdx, qword [rsp + 0x38]
movaps xmm11, xmmword [rsp + 0x120]
cmp rdx, 0xf
jbe 0x180009910
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000990b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009a7d
call fcn.180013880
test r14b, r14b
je 0x180009967
cmp byte [0x18008b2e0], 0
movsxd rcx, dword [0x18008b608]
je 0x18000995c
cmp byte [rcx + r15 + 0x8b2f0], 0
jne 0x1800099a0
mov byte [rcx + r15 + 0x8b2f0], 1
xor ebx, ebx
mov byte [0x18008b2cd], 1
mov dword [0x18008817c], ecx
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
inc ebx
cmp ebx, 0xff
jl 0x180009948
jmp 0x1800099a0
mov byte [rcx + r15 + 0x8b2f0], 0
jmp 0x1800099a0
cmp byte [0x18008b2e0], 0
movsxd rax, dword [0x18008b608]
je 0x180009997
cmp byte [rax + r15 + 0x8b2f0], 0
jne 0x1800099a0
mov byte [rax + r15 + 0x8b2f0], 1
mov dword [0x18008817c], 0xffffffff
jmp 0x1800099a0
mov byte [rax + r15 + 0x8b2f0], 0
movss xmm0, dword [0x18008b768]
ucomiss xmm0, xmm13
mov byte [0x18008b2cb], 0
movss dword [0x18008b770], xmm7
movss dword [0x18008b774], xmm6
movss dword [0x18008b778], xmm12
movss dword [0x18008b77c], xmm9
jp 0x1800099e9
jne 0x1800099e9
movss dword [0x18008b768], xmm7
movss dword [0x18008b76c], xmm6
mov rdx, qword [rsi + 0x18]
cmp rdx, 0xf
jbe 0x180009a1f
mov rcx, qword [rsi]
inc rdx
cmp rdx, 0x1000
jb 0x180009a1a
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180009a83
mov rcx, r8
call fcn.180013880
movaps xmm12, xmmword [rsp + 0x110]
lea r11, [rsp + 0x180]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm13, xmmword [r11 - 0x80]
mov r15, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1a0]
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.18001cc24
int3
call fcn.18001cc24
int3