Function at 0x140027960
Capabilities:
Log keystrokes

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
movapd xmmword [rbp + 0x60], xmm7
movapd xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x48], 0xfffffffffffffffe
mov rbx, qword [rcx]
mov rdi, qword [rcx + 8]
mov r12, qword [rcx + 0x18]
mov r13, qword [rcx + 0x20]
mov r15, qword [rcx + 0x28]
mov esi, dword [rbx]
cmp esi, 0xfd
jg 0x1400279dd
cmp esi, 0xf
je 0x140027a4d
cmp esi, 0x82
jne 0x140027ac7
mov rbx, qword [rcx + 0x10]
mov rcx, qword [rdi]
xor esi, esi
mov edx, 0xffffffeb
xor r8d, r8d
call sub.USER32.dll_SetWindowLongPtrW
mov byte [rbx], 1
jmp 0x140027b2f
cmp esi, 0xfe
je 0x140027ab1
cmp esi, 0xff
jne 0x140027ac7
mov rcx, qword [r15]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
mov dword [rbp - 0x50], 0x30
mov dword [rsp + 0x20], 0x18
lea r8, [rbp - 0x40]
lea r9, [rbp - 0x50]
mov edx, 0x10000003
call sub.USER32.dll_GetRawInputData
add eax, 1
cmp eax, 1
ja 0x140027b4e
mov rcx, qword [rdi]
mov edx, dword [rbx]
mov r8, qword [r13]
mov r9, qword [r15]
call fcn.1400494b0
mov rsi, rax
jmp 0x140027b2f
mov rcx, qword [rdi]
xor edx, edx
call sub.USER32.dll_ValidateRect
mov rax, qword [r12]
mov r8, qword [rax]
cmp byte [r8 + 0xbc], 1
je 0x1400280b3
cmp qword [r8 + 0x40], 0
je 0x140027bdc
add r8, 0x10
xor ecx, ecx
call fcn.140020fd0
test al, al
je 0x1400281d1
mov rax, qword [r12]
mov rcx, qword [rax]
add rcx, 0x10
mov dl, 1
call fcn.14001f490
mov rax, qword [r12]
mov rcx, qword [rax]
add rcx, 0x10
call fcn.1400213d0
jmp 0x1400280b3
mov eax, dword [r13]
cmp eax, 1
je 0x140027b0e
cmp eax, 2
jne 0x1400281b7
mov al, 1
jmp 0x140027b10
lea rax, [0x140066548]
mov qword [rbp + 0x38], rax
mov rax, qword [0x140066548]
cmp rax, 3
jne 0x140027c50
mov rax, qword [rbp + 0x38]
cmp esi, dword [rax + 0xc]
jne 0x140027c92
mov rcx, qword [r12]
add rcx, 8
call fcn.140029490
test al, al
jne 0x140027b2d
mov rcx, qword [r12]
mov dword [rbp - 0x40], 3
jmp 0x140027b24
xor eax, eax
mov rcx, qword [r12]
mov edx, dword [r15]
mov dword [rbp - 0x3c], edx
mov byte [rbp - 0x38], al
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
xor esi, esi
mov rax, rsi
movaps xmm6, xmmword [rbp + 0x50]
movaps xmm7, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [rbp - 0x40]
mov esi, dword [rbp - 0x38]
movzx r8d, word [rbp - 0x22]
test eax, eax
mov dword [rbp + 0x30], esi
je 0x140027bf4
cmp eax, 1
jne 0x140027a34
mov esi, dword [rbp - 0x20]
lea eax, [rsi - 0x100]
cmp eax, 5
ja 0x140027a34
mov ecx, 0x33
bt ecx, eax
jae 0x140027a34
movzx ecx, word [rbp - 0x28]
movzx eax, word [rbp - 0x26]
mov edx, eax
and edx, 6
mov r14d, 0xe000
cmove r14d, edx
or r14d, ecx
cmp r8w, 0x10
je 0x14002801b
cmp r8w, 0x11
je 0x14002802f
cmp r8w, 0x12
jne 0x140028043
and eax, 6
cmp ax, 1
mov ecx, 0xa5
sbb ecx, 0
jmp 0x14002816a
mov rcx, qword [rdi]
xor edx, edx
xor r8d, r8d
mov r9d, 2
call fcn.140049462
jmp 0x1400280b3
mov word [rbp + 0x2e], r8w
movzx eax, word [rbp - 0x24]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp - 0x1c]
xorps xmm6, xmm6
cvtsi2sd xmm6, eax
mov r14d, dword [rbp - 0x18]
cvtsi2sd xmm7, r14d
test eax, eax
je 0x140027d11
mov rcx, qword [r12]
mov dword [rbp - 0x3c], esi
mov byte [rbp - 0x38], 4
mov dword [rbp - 0x34], 0
movsd qword [rbp - 0x30], xmm6
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
test r14d, r14d
jne 0x140027d16
jmp 0x140027d3d
lea rax, [rbp + 0x38]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x40], rax
lea rax, [0x140051098]
mov qword [rsp + 0x20], rax
lea rcx, [0x140066548]
lea r9, fcn.140005890
lea r8, [rbp - 0x40]
xor edx, edx
call fcn.14004c0d0
mov rax, qword [rbp + 0x38]
cmp esi, dword [rax + 0xc]
je 0x140027af0
mov esi, dword [rbx]
lea rax, [0x140066558]
mov qword [rbp + 0x38], rax
mov rax, qword [0x140066558]
cmp rax, 3
jne 0x140027ea8
mov rax, qword [rbp + 0x38]
cmp esi, dword [rax + 0xc]
jne 0x140027eea
mov rsi, qword [r13]
mov qword [rbp - 0x40], rsi
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
call qword [rax + 0x20]
mov rcx, qword [rsi]
mov qword [rbp + 0x30], rsi
mov rax, qword [rsi + 8]
call qword [rax]
mov rsi, qword [rbp + 0x30]
mov rax, qword [rsi + 8]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140027cf9
mov rcx, qword [rsi]
mov r8, qword [rax + 0x10]
call fcn.140015540
mov edx, 0x10
mov r8d, 8
mov rcx, rsi
call fcn.140015540
jmp 0x140027b2d
test r14d, r14d
je 0x140027d62
mov rcx, qword [r12]
mov dword [rbp - 0x3c], esi
mov byte [rbp - 0x38], 4
mov dword [rbp - 0x34], 1
movsd qword [rbp - 0x30], xmm7
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
mov rcx, qword [r12]
mov dword [rbp - 0x3c], esi
mov byte [rbp - 0x38], 2
movsd qword [rbp - 0x30], xmm6
movsd qword [rbp - 0x28], xmm7
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
mov eax, dword [rbp + 0x44]
test eax, 0x400
je 0x140027daa
movsx eax, word [rbp + 0x2e]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm0, dword [0x14004d9f0]
mov rcx, qword [r12]
mov dword [rbp - 0x3c], esi
mov byte [rbp - 0x38], 3
mov qword [rbp - 0x30], 0
movss dword [rbp - 0x28], xmm0
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
mov eax, dword [rbp + 0x44]
mov esi, eax
and esi, 2
mov ecx, eax
and ecx, 0x20
mov r10d, eax
and r10d, 8
cmp si, 1
mov r8b, 1
mov dl, 1
adc dl, 0
xor r9d, r9d
test al, 1
movzx esi, dl
cmovne esi, r9d
cmp cx, 1
mov cl, 1
adc cl, 0
test al, 0x10
movzx r14d, cl
cmovne r14d, r9d
cmp r10w, 1
adc r8b, 0
test al, 4
movzx edx, r8b
cmovne edx, r9d
cmp sil, 2
jne 0x140027e10
cmp r14b, 2
jne 0x140027e45
cmp dl, 2
je 0x140027a34
jmp 0x140027e7b
mov rcx, qword [r12]
mov dword [rbp + 0x44], edx
mov edx, dword [rbp + 0x30]
mov dword [rbp - 0x3c], edx
mov byte [rbp - 0x38], 5
mov byte [rbp - 0x37], sil
mov dword [rbp - 0x34], 1
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
mov edx, dword [rbp + 0x44]
cmp r14b, 2
je 0x140027e05
mov rcx, qword [r12]
mov eax, dword [rbp + 0x30]
mov dword [rbp - 0x3c], eax
mov byte [rbp - 0x38], 5
mov byte [rbp - 0x37], r14b
mov dword [rbp - 0x34], 2
mov dword [rbp - 0x40], 2
mov esi, edx
lea rdx, [rbp - 0x40]
call fcn.14001f850
mov edx, esi
cmp dl, 2
je 0x140027a34
mov rcx, qword [r12]
mov eax, dword [rbp + 0x30]
mov dword [rbp - 0x3c], eax
mov byte [rbp - 0x38], 5
mov byte [rbp - 0x37], dl
mov dword [rbp - 0x34], 3
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
call fcn.14001f850
jmp 0x140027a34
lea rax, [rbp + 0x38]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x40], rax
lea rax, [0x140051098]
mov qword [rsp + 0x20], rax
lea rcx, [0x140066558]
lea r9, fcn.140005890
lea r8, [rbp - 0x40]
xor edx, edx
call fcn.14004c0d0
mov rax, qword [rbp + 0x38]
cmp esi, dword [rax + 0xc]
je 0x140027cbd
mov esi, dword [rbx]
lea rax, [0x140066568]
mov qword [rbp + 0x38], rax
mov rax, qword [0x140066568]
cmp rax, 3
jne 0x140028071
mov rax, qword [rbp + 0x38]
cmp esi, dword [rax + 0xc]
jne 0x1400280b3
mov rax, qword [r12]
mov rax, qword [rax]
mov esi, dword [rax + 0xb8]
lea rax, [0x140066598]
mov qword [rbp + 0x38], rax
mov rax, qword [0x140066598]
cmp rax, 3
jne 0x1400280fa
mov rax, qword [rbp + 0x38]
mov edx, dword [rax + 0xc]
mov ecx, esi
xor r8d, r8d
xor r9d, r9d
call fcn.1400494ec
mov rax, qword [r12]
mov rcx, qword [rax]
cmp qword [rcx + 0x18], 2
jne 0x14002800b
mov rdi, qword [rcx + 0x20]
mov ebx, dword [rcx + 0x28]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
mov esi, 0xff
lea r14, [rbp - 0x40]
nop word cs:[rax + rax]
nop dword [rax]
call fcn.140034f10
xor ecx, ecx
cmp rax, rdi
setne cl
cmovb ecx, esi
xor eax, eax
cmp edx, ebx
setne al
cmovb eax, esi
test cl, cl
cmovne eax, ecx
cmp al, 0xff
jne 0x140028004
mov dword [rsp + 0x20], 0
mov rcx, r14
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.USER32.dll_PeekMessageW
test eax, eax
je 0x140027f90
cmp dword [rbp - 0x38], 0xf
jne 0x140028004
xorps xmm0, xmm0
movaps xmmword [rbp - 0x50], xmm0
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp - 0x50]
xor r8d, r8d
call sub.USER32.dll_GetUpdateRect
test eax, eax
jne 0x140028004
mov rcx, qword [rbp - 0x40]
xor edx, edx
xor r8d, r8d
mov r9d, 2
call fcn.140049462
mov rax, qword [r12]
mov rcx, qword [rax]
add rcx, 0x10
mov dl, 2
call fcn.14001f490
jmp 0x140027b2d
mov ecx, r14d
mov edx, 3
call sub.USER32.dll_MapVirtualKeyA
mov ecx, eax
jmp 0x14002816a
and eax, 6
cmp ax, 1
mov ecx, 0xa3
sbb ecx, 0
jmp 0x14002816a
movzx ecx, r8w
cmp r14w, 0x44
jg 0x1400280df
movzx eax, r14w
cmp eax, 0xe01d
je 0x140028134
cmp eax, 0xe046
je 0x14002815f
jmp 0x14002816a
lea rax, [rbp + 0x38]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x40], rax
lea rax, [0x140051098]
mov qword [rsp + 0x20], rax
lea rcx, [0x140066568]
lea r9, fcn.140005890
lea r8, [rbp - 0x40]
xor edx, edx
call fcn.14004c0d0
mov rax, qword [rbp + 0x38]
cmp esi, dword [rax + 0xc]
je 0x140027f15
mov rcx, qword [rdi]
mov edx, dword [rbx]
mov r8, qword [r13]
mov r9, qword [r15]
movaps xmm6, xmmword [rbp + 0x50]
movaps xmm7, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.1400494b0
cmp r14w, 0x45
je 0x140028147
cmp r14w, 0x46
jne 0x14002816a
mov r14d, 0x46
mov ecx, 0x91
jmp 0x14002816a
lea rax, [rbp + 0x38]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x50]
mov qword [rbp - 0x40], rax
lea rax, [0x140051098]
mov qword [rsp + 0x20], rax
lea rcx, [0x140066598]
lea r9, fcn.140005890
lea r8, [rbp - 0x40]
xor edx, edx
call fcn.14004c0d0
jmp 0x140027f3e
mov r14d, 0xe01d
cmp r8w, 0x13
je 0x140027a34
jmp 0x14002816a
cmp r8w, 0x13
je 0x14002815f
mov r14d, 0x45
movzx eax, r8w
cmp eax, 0xff
jne 0x14002816a
mov r14d, 0xe059
mov ecx, 0x13
and esi, 0xfffffffb
call fcn.140022c30
mov dword [rbp + 0x44], eax
mov r12, qword [r12]
call fcn.140022750
cmp esi, 0x100
mov ecx, dword [rbp + 0x30]
mov dword [rbp - 0x3c], ecx
mov byte [rbp - 0x38], 6
mov dword [rbp - 0x34], r14d
mov ecx, dword [rbp + 0x44]
mov dword [rbp - 0x30], ecx
mov dword [rbp - 0x2c], eax
setne byte [rbp - 0x28]
mov dword [rbp - 0x40], 2
lea rdx, [rbp - 0x40]
mov rcx, r12
call fcn.14001f850
jmp 0x140027a34
lea rcx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_fe5b13d681f25ee6474be29d748c65adcd91f69elibrary_std_src_threadlocal.rs
lea r8, str.C:Rust.cargo_registry_srcgithub.com_1ecc6299db9ec823winit_0.26.1_srcplatform_implwindowsevent_loop.rs
mov edx, 0x28
call fcn.14004ca30
ud2
lea rcx, str.assertion_failed:_flush_paint_messages_None__userdata.event_loop_runner_
lea r8, str.C:Rust.cargo_registry_srcgithub.com_1ecc6299db9ec823winit_0.26.1_srcplatform_implwindowsevent_loop.rs
mov edx, 0x49
call fcn.14004ca30
ud2