Function at 0x140039b10
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xf0
cmp byte [0x14004b0c0], 0
je 0x1400049d0
movdqa xmm1, xmmword [0x140043d90]
movdqu xmmword [rsp + 0x20], xmm1
mov dl, 0x43
mov r8b, 0x41
mov r9b, 0x40
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd ecx, xmm1
xor al, cl
mov byte [rsp + 0x21], al
xor byte [rsp + 0x22], cl
xor byte [rsp + 0x23], cl
xor byte [rsp + 0x24], cl
xor byte [rsp + 0x25], cl
xor byte [rsp + 0x26], cl
xor byte [rsp + 0x27], cl
xor byte [rsp + 0x28], cl
xor byte [rsp + 0x29], cl
xor byte [rsp + 0x2a], cl
xor byte [rsp + 0x2b], cl
xor byte [rsp + 0x2c], cl
xor byte [rsp + 0x2d], cl
xor byte [rsp + 0x2e], cl
xor byte [rsp + 0x2f], cl
xor dl, cl
mov byte [rsp + 0x30], dl
xor r8b, cl
mov byte [rsp + 0x31], r8b
xor r9b, cl
mov byte [rsp + 0x32], r9b
mov byte [rsp + 0x33], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
movups xmmword [rbp - 0x71], xmm0
movups xmmword [rbp - 0x61], xmm0
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x21]
call fcn.140005e30
movdqa xmm1, xmmword [0x140043e00]
movdqu xmmword [rsp + 0x20], xmm1
mov dl, 0x60
mov r8b, 0x70
mov r9b, 0x68
mov r10b, 0x24
mov r11b, 0x54
mov bl, 0x2b
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd ecx, xmm1
xor al, cl
mov byte [rsp + 0x21], al
xor byte [rsp + 0x22], cl
xor byte [rsp + 0x23], cl
xor byte [rsp + 0x24], cl
xor byte [rsp + 0x25], cl
xor byte [rsp + 0x26], cl
xor byte [rsp + 0x27], cl
xor byte [rsp + 0x28], cl
xor byte [rsp + 0x29], cl
xor byte [rsp + 0x2a], cl
xor byte [rsp + 0x2b], cl
xor byte [rsp + 0x2c], cl
xor byte [rsp + 0x2d], cl
xor byte [rsp + 0x2e], cl
xor byte [rsp + 0x2f], cl
xor dl, cl
mov byte [rsp + 0x30], dl
xor r8b, cl
mov byte [rsp + 0x31], r8b
xor r9b, cl
mov byte [rsp + 0x32], r9b
xor r10b, cl
mov byte [rsp + 0x33], r10b
xor r11b, cl
mov byte [rsp + 0x34], r11b
xor bl, cl
mov byte [rsp + 0x35], bl
mov byte [rsp + 0x36], 0
movdqa xmm1, xmmword [0x140043de0]
movdqu xmmword [rsp + 0x38], xmm1
mov cl, 0x4d
mov dl, 8
mov r8b, 0x5f
mov r9b, 0x41
mov r11b, 0x5c
mov bl, 0x40
movzx edi, dl
mov sil, 0x67
mov r14b, 0x58
movzx r15d, bl
mov r12b, 0x50
mov r13b, 0x6e
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd r10d, xmm1
xor al, r10b
mov byte [rbp - 0x80], al
xor byte [rbp - 0x7f], r10b
xor byte [rbp - 0x7e], r10b
xor byte [rbp - 0x7d], r10b
xor byte [rbp - 0x7c], r10b
xor byte [rbp - 0x7b], r10b
xor byte [rbp - 0x7a], r10b
xor byte [rbp - 0x79], r10b
xor byte [rbp - 0x78], r10b
xor byte [rbp - 0x77], r10b
xor byte [rbp - 0x76], r10b
xor byte [rbp - 0x75], r10b
xor byte [rbp - 0x74], r10b
xor byte [rbp - 0x73], r10b
xor byte [rbp - 0x72], r10b
xor cl, r10b
mov byte [rbp - 0x71], cl
xor dl, r10b
mov byte [rbp - 0x70], dl
xor r8b, r10b
mov byte [rbp - 0x6f], r8b
xor r9b, r10b
mov byte [rbp - 0x6e], r9b
xor r11b, r10b
mov byte [rbp - 0x6d], r11b
xor bl, r10b
mov byte [rbp - 0x6c], bl
xor dil, r10b
mov byte [rbp - 0x6b], dil
xor sil, r10b
mov byte [rbp - 0x6a], sil
xor r14b, r10b
mov byte [rbp - 0x69], r14b
xor r15b, r10b
mov byte [rbp - 0x68], r15b
xor r12b, r10b
mov byte [rbp - 0x67], r12b
xor r13b, r10b
mov byte [rbp - 0x66], r13b
mov al, 0x66
xor al, r10b
mov byte [rbp - 0x65], al
mov byte [rbp - 0x64], 0
mov byte [rbp + 0x67], 0x1b
mov al, 0x54
mov cl, 0x6b
mov dl, 0x73
mov r8b, 0x63
mov r9b, 0x5d
mov r10b, 0x55
xor r11d, r11d
xor al, 0x1b
mov byte [rbp + 0x68], al
xor cl, 0x1b
mov byte [rbp + 0x69], cl
xor dl, 0x1b
mov byte [rbp + 0x6a], dl
xor r8b, 0x1b
mov byte [rbp + 0x6b], r8b
xor r9b, 0x1b
mov byte [rbp + 0x6c], r9b
xor r10b, 0x1b
mov byte [rbp + 0x6d], r10b
mov byte [rbp + 0x6e], r11b
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm0
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
movups xmmword [rbp - 9], xmm0
movups xmmword [rbp + 7], xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x27], rax
lea rax, [0x14003f898]
mov qword [rbp - 0x29], rax
lea rax, [rbp + 0x68]
mov qword [rbp - 0x21], rax
lea rax, [rbp - 0x80]
mov qword [rbp - 0x41], rax
lea rax, [rsp + 0x21]
mov qword [rbp - 0x49], rax
lea rcx, [rbp - 0x49]
jmp 0x140004ae4
mov rax, qword [0x1400827a0]
test rax, rax
je 0x140004ae2
xor esi, esi
mov qword [rax + 0x10], rsi
mov rax, qword [0x1400827a0]
mov qword [rax + 0x18], rsi
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
movups xmmword [rbp - 0x71], xmm0
movups xmmword [rbp - 0x61], xmm0
movups xmmword [0x14007e660], xmm0
movups xmmword [0x14007e670], xmm0
movups xmmword [0x14007e680], xmm0
mov qword [0x14007e690], rsi
mov eax, esi
xchg byte [0x14004e056], al
mov rcx, qword [0x14007e550]
test rcx, rcx
je 0x140004a78
call fcn.140005220
mov rbx, qword [0x14007e550]
test rbx, rbx
je 0x140004a71
mov rcx, rbx
call fcn.140005220
cmp dword [rbx + 0xa8], esi
je 0x140004a59
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
int3
lea rcx, [rbx + 0x58]
call qword [sym.imp.MSVCP140.dll__Cnd_destroy_in_situ]
nop
mov edx, 0xb0
mov rcx, rbx
call fcn.14003c784
mov qword [0x14007e550], rsi
mov rdi, qword [0x1400827a0]
mov r8, qword [rdi + 0x18]
test r8, r8
je 0x140004a9e
mov eax, dword [rdi + 8]
dec eax
test eax, 0xfffffffd
jne 0x140004a9e
lea rdx, [rdi + 0x64]
mov ecx, dword [rdi + 0x60]
call r8
mov rbx, qword [rdi]
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], 0
mov dword [rdi + 8], esi
mov rdi, qword [0x1400827a0]
mov rbx, qword [rdi]
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], 0
mov qword [rdi], rsi
mov qword [0x1400827a0], rsi
xor ecx, ecx
call fcn.140006540
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov r8, qword [0x14004cfb0]
lea rcx, [rbp + 0x17]
movaps xmmword [rax - 0x18], xmm6
movdqa xmm6, xmmword [0x140043c20]
movaps xmmword [rax - 0x28], xmm7
movups xmmword [rbp + 0x17], xmm6
movaps xmmword [rax - 0x38], xmm8
call fcn.14000dfb0
movss xmm8, dword [0x140043904]
mov r9d, eax
mov r10, qword [r8 + 0x18f0]
xorps xmm7, xmm7
test eax, 0xff000000
je 0x140039bf7
test r10, r10
jne 0x140039b79
mov rax, qword [r8 + 0x1d00]
mov r10, qword [rax + 8]
mov rax, qword [r8 + 0x1d30]
lea rdx, [r8 + 0x1cc8]
movsxd rcx, dword [r8 + 0x1d28]
movss xmm2, dword [0x140043924]
add rcx, rcx
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm7
movups xmm0, xmmword [rax + rcx*8 - 0x10]
lea rax, [0x14003e86e]
mov rcx, r10
mov qword [rsp + 0x38], rax
lea rax, str.OphxFN
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x17]
movups xmmword [rbp + 0x17], xmm0
mov qword [rsp + 0x28], rax
movaps xmm0, xmm8
mov dword [rsp + 0x20], r9d
unpcklps xmm0, xmm8
movq r9, xmm0
call fcn.14002ba50
mov r8, qword [0x14004cfb0]
movdqa xmm6, xmmword [0x140043c20]
lea rcx, [rbp + 0x17]
movups xmmword [rbp + 0x17], xmm6
call fcn.14000dfb0
movss xmm1, dword [0x14004392c]
mov r9d, eax
mov r11, qword [r8 + 0x18f0]
test eax, 0xff000000
je 0x140039c9b
test r11, r11
jne 0x140039c2d
mov rcx, qword [r8 + 0x1d00]
mov r11, qword [rcx + 8]
mov rax, qword [r8 + 0x1d30]
lea rdx, [r8 + 0x1cc8]
movsxd rcx, dword [r8 + 0x1d28]
movss xmm2, dword [0x140043924]
add rcx, rcx
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm7
movups xmm0, xmmword [rax + rcx*8 - 0x10]
lea rax, [0x140043724]
mov rcx, r11
mov qword [rsp + 0x38], rax
lea rax, str.Press_INSERT_to_open
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x17]
movups xmmword [rbp + 0x17], xmm0
mov qword [rsp + 0x28], rax
movaps xmm0, xmm8
mov dword [rsp + 0x20], r9d
unpcklps xmm0, xmm1
movq r9, xmm0
call fcn.14002ba50
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140039cb9
cmp byte [0x140082d64], 0
je 0x140039cb9
call fcn.1400010f0
call fcn.1400017b0
cmp byte [0x140082948], 0
je 0x140039dcb
movdqa xmm0, xmmword [0x140043c20]
lea rcx, [rbp + 0x17]
movd xmm2, dword [0x14007e21c]
movss xmm7, dword [0x140043858]
movd xmm1, dword [0x14007e218]
cvtdq2ps xmm2, xmm2
movups xmmword [rbp + 0x17], xmm0
mulss xmm2, xmm7
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm2
subss xmm2, xmm8
mulss xmm1, xmm7
addss xmm0, xmm8
movss dword [rbp + 0x6b], xmm1
movss dword [rbp + 0x67], xmm0
movss dword [rbp + 0x6f], xmm2
movss dword [rbp + 0x73], xmm1
call fcn.14000dfb0
mov rcx, qword [0x14004cfb0]
lea r8, [rbp + 0x67]
movss xmm6, dword [0x14004387c]
lea rdx, [rbp + 0x6f]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm6
mov r9d, eax
call fcn.1400285f0
movdqa xmm0, xmmword [0x140043c20]
lea rcx, [rbp + 0x17]
movd xmm1, dword [0x14007e218]
movd xmm2, dword [0x14007e21c]
cvtdq2ps xmm1, xmm1
movups xmmword [rbp + 0x17], xmm0
mulss xmm1, xmm7
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm1
subss xmm1, xmm8
mulss xmm2, xmm7
addss xmm0, xmm8
movss dword [rbp + 0x67], xmm2
movss dword [rbp + 0x6b], xmm0
movss dword [rbp + 0x6f], xmm2
movss dword [rbp + 0x73], xmm1
call fcn.14000dfb0
mov rcx, qword [0x14004cfb0]
lea r8, [rbp + 0x67]
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm6
mov r9d, eax
lea rdx, [rbp + 0x6f]
call fcn.1400285f0
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x60]
add rsp, 0x90
pop rbp
jmp 0x1400046f0