Function at 0x140038340
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x140
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rax - 0x88], xmm13
movaps xmmword [rax - 0x98], xmm14
movaps xmmword [rax - 0xa8], xmm15
mov rax, qword [0x1401eb040]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rbx, rcx
cmp byte [rcx + 0xd9], 0
je 0x14003848a
mov ecx, dword [rcx + 0xe4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14003848a
movzx edi, byte [rbx + 0x150]
test dil, dil
sete al
mov byte [rbx + 0x150], al
cmp byte [rbx + 0xd9], 0
je 0x140038418
mov edx, 0xffffffec
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov rcx, qword [rbx + 0x58]
mov edx, 0xffffffec
test dil, dil
jne 0x140038401
btr eax, 0x13
jmp 0x140038405
bts eax, 0x13
mov r8d, eax
call qword [sym.imp.USER32.dll_SetWindowLongW]
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SetForegroundWindow]
movdqa xmm0, xmmword [0x1401cf5d0]
movdqu xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x30], 0x20657461
mov byte [rsp + 0x34], 0
lea rdx, [rsp + 0x21]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.1400120b0
movzx edx, byte [rbx + 0x150]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___bool____ptr64]
lea rdx, [0x140038120]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
lea rdx, [0x140012290]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
cmp byte [rbx + 0x150], 0
je 0x140038483
movups xmm0, xmmword [rbx + 0x70]
jmp 0x140038486
xorps xmm0, xmm0
movups xmmword [rbx + 0x60], xmm0
cmp byte [rbx + 0x150], 0
je 0x1400384b7
cmp byte [rbx + 0xd9], 0
je 0x1400384af
cmp byte [rbx + 0xda], 0
je 0x1400384af
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov rcx, rbx
call fcn.140038900
lea rcx, [0x1401f2720]
call fcn.140013850
cmp byte [rbx + 0x14a], 0
je 0x1400384d4
mov rcx, rbx
call fcn.140125e60
lea rcx, [rbx + 0x148]
cmp byte [rcx], 0
je 0x1400384e5
call fcn.1401427c0
lea rdx, [rbx + 0x149]
cmp byte [rdx], 0
je 0x14003852d
movdqa xmm0, xmmword [0x1401cf270]
movdqu xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x30], 0x64452065
mov dword [rsp + 0x34], 0x726f7469
mov byte [rsp + 0x38], 0
xor r8d, r8d
lea rcx, [rsp + 0x21]
call fcn.1400f0cf0
xor ecx, ecx
call fcn.1401638c0
call fcn.1400f3c20
cmp byte [rbx + 0x152], 0
je 0x1400385de
cmp byte [rbx + 0xd9], 0
je 0x14003855f
movdqa xmm0, xmmword [0x1401ceb20]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x50], 0x6b
lea rdx, [rsp + 0x41]
jmp 0x140038579
movdqa xmm0, xmmword [0x1401ceb10]
movdqu xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x30], 0x6b
lea rdx, [rsp + 0x21]
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x140038591
lea rcx, [rsp + 0x58]
call fcn.1400126a0
nop
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rcx, qword [rsp + 0x58]
xor r8d, r8d
lea rdx, [rbx + 0x152]
call fcn.1400f0cf0
mov rcx, rbx
call fcn.14003be70
call fcn.1400f3c20
nop
lea rcx, [rsp + 0x58]
call fcn.140011ad0
lea rdx, [rbx + 0x155]
cmp byte [rdx], 0
je 0x1400385f2
mov rcx, rbx
call fcn.140039880
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp qword [rbx + 0xe8], rax
je 0x140038617
cmp byte [rbx + 0x150], 0
jne 0x140038617
cmp byte [0x1401eb219], 0
je 0x1400387f8
cmp byte [rbx + 0x160], 0
je 0x14003862c
lea rcx, [rbx + 0x158]
mov rax, qword [rcx]
call qword [rax]
cmp byte [rbx + 0x2a8], 0
je 0x140038642
lea rcx, [rbx + 0x2a0]
mov rax, qword [rcx]
call qword [rax]
nop
cmp byte [rbx + 0x153], 0
je 0x1400387f8
mov rbx, qword [0x140201148]
mov rdi, qword [0x140201150]
xor esi, esi
movss xmm7, dword [0x1401cd398]
movss xmm8, dword [0x1401cd39c]
movss xmm9, dword [0x1401cd3c4]
movss xmm6, dword [0x1401cd3d8]
movss xmm10, dword [0x1401cd3ec]
movss xmm11, dword [0x1401cd3a8]
movss xmm12, dword [0x1401cd3e0]
movss xmm13, dword [0x1401cd3c0]
movss xmm14, dword [0x1401cd3b0]
movss xmm15, dword [0x1401cd3cc]
cmp rbx, rdi
je 0x1400387f8
cmp byte [rbx + 8], sil
je 0x1400387ec
cmp byte [rbx + 0x1ec], sil
je 0x1400386ff
movss xmm0, dword [0x1401fcd70]
mulss xmm0, dword [0x1401cd340]
addss xmm0, xmm0
movss dword [rbx + 0x9c], xmm0
ucomiss xmm0, xmm0
jnp 0x1400386f8
mov qword [rbx + 0x78], rsi
mov byte [rbx + 0xa1], 1
cmp byte [rbx + 0x1ed], sil
je 0x1400387e4
xorps xmm0, xmm0
xorps xmm1, xmm1
mov eax, dword [0x1401ff494]
cmp eax, 0x2eeaa
ja 0x14003877e
je 0x140038774
sub eax, 0x1cfcf
je 0x14003876a
sub eax, 0x2948
je 0x140038765
sub eax, 1
je 0x14003875b
sub eax, 0xe666
je 0x140038751
cmp eax, 0xf24
jne 0x1400387d4
movaps xmm0, xmm7
movaps xmm1, xmm7
jmp 0x1400387d4
movaps xmm0, xmm8
movaps xmm1, xmm8
jmp 0x1400387d4
movaps xmm0, xmm9
movaps xmm1, xmm9
jmp 0x1400387d4
movaps xmm0, xmm6
jmp 0x1400387d1
movaps xmm0, xmm10
movaps xmm1, xmm10
jmp 0x1400387d4
movaps xmm0, xmm11
movaps xmm1, xmm11
jmp 0x1400387d4
cmp eax, 0x2eeab
je 0x1400387c9
cmp eax, 0x304c7
je 0x1400387bf
cmp eax, 0x307a1
je 0x1400387b5
cmp eax, 0x116039
je 0x1400387ab
cmp eax, 0x1edb63
jne 0x1400387d4
movaps xmm0, xmm12
movaps xmm1, xmm12
jmp 0x1400387d4
movaps xmm0, xmm13
movaps xmm1, xmm13
jmp 0x1400387d4
movaps xmm0, xmm14
movaps xmm1, xmm14
jmp 0x1400387d4
movaps xmm0, xmm15
movaps xmm1, xmm15
jmp 0x1400387d4
movss xmm0, dword [0x1401cd3e4]
movaps xmm1, xmm6
movss dword [rbx + 0x118], xmm0
movss dword [rbx + 0x11c], xmm1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
add rbx, 0x1f0
jmp 0x1400386b7
movss xmm1, dword [0x1401cd2c0]
mov ecx, 3
call fcn.1400e4dd0
movdqa xmm0, xmmword [0x1401ce170]
movups xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov ecx, 2
call fcn.1400e4d00
lea rcx, [0x1401eb700]
call fcn.1400b4320
lea rcx, [0x140200d50]
call fcn.1400b4320
mov ecx, 1
call fcn.1400e4ee0
mov r8, qword [0x1401f26f8]
movsxd rax, dword [r8 + 0x4be8]
cmp eax, 1
jl 0x140038885
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4bf0]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, 0x3ae
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [r8 + rax*8], xmm0
dec dword [r8 + 0x4be8]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14016ff10
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
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 xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop rdi
ret