Function at 0x140080310
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x1401f1080]
xor rax, rsp
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
xor r12d, r12d
movups xmmword [0x1401f37c0], xmm0
movups xmmword [0x1401f37d0], xmm0
movups xmmword [0x1401f37e0], xmm0
nop dword [rax + rax]
mov rdx, qword [0x1401f3728]
lea rcx, [0x1401f37c0]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x1400803a0
lea rcx, [0x1401f37c0]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [0x1401f37c0]
call qword [sym.imp.USER32.dll_DispatchMessageW]
mov rbx, qword [0x1401f36e0]
lea rcx, [rsp + 0x30]
mov dword [rbx + 0x18], 0x3c888889
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm0, dword [rsp + 0x30]
mov ecx, 1
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0xd9c], xmm0
movd xmm0, dword [rsp + 0x34]
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0xda0], xmm0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140080407
mov byte [rbx + 0xda4], 1
mov eax, dword [rbx + 0xda0]
mov dword [rbx + 0x366c], eax
mov byte [rbx + 0x36c0], 1
jmp 0x14008040e
mov byte [rbx + 0xda4], r12b
mov rax, qword [0x1401f36e0]
test rax, rax
je 0x140080423
mov rcx, qword [rax + 0xa0]
jmp 0x140080426
mov rcx, r12
cmp qword [rcx + 0x48], r12
jne 0x140080431
call fcn.140056960
call fcn.1400581d0
call fcn.140025470
call fcn.14007b250
call fcn.140028040
call fcn.140028550
cmp byte [reloc.WS2_32.dll_accept], r12b
lea r8, [0x1401f3908]
mov rcx, qword [0x1401f38f8]
mov eax, r12d
setne al
mov qword [rsp + 0x38], r12
xor r9d, r9d
mov dword [rsp + 0x40], r12d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
lea edx, [r9 + 1]
movss dword [rsp + 0x44], xmm0
mov rax, qword [rcx]
call qword [rax + 0x108]
mov rcx, qword [0x1401f38f8]
lea r8, [rsp + 0x38]
mov rdx, qword [0x1401f3908]
mov rax, qword [rcx]
call qword [rax + 0x190]
mov rax, qword [0x1401f36e0]
mov rcx, qword [rax + 0x4210]
mov rax, qword [rcx]
mov rcx, r12
add rax, 0xa8
cmp byte [rax], r12b
cmovne rcx, rax
call fcn.140055ef0
test dword [rbx + 8], 0x400
je 0x1400805a8
call fcn.140039c30
mov rbx, qword [0x1401f36e0]
mov ebp, 1
mov eax, dword [rbx + 0x38d8]
cmp eax, ebp
jle 0x14008054a
mov esi, 8
nop dword [rax + rax]
mov rax, qword [rbx + 0x38e0]
mov rdi, qword [rsi + rax]
test dword [rdi + 4], 0x400
jne 0x14008053a
mov rax, qword [rbx + 0x3878]
test rax, rax
je 0x140080527
xor edx, edx
mov rcx, rdi
call rax
mov rax, qword [rbx + 0x38b8]
test rax, rax
je 0x14008053a
xor edx, edx
mov rcx, rdi
call rax
mov eax, dword [rbx + 0x38d8]
inc ebp
add rsi, 8
cmp ebp, eax
jl 0x140080500
mov esi, 1
cmp eax, esi
jle 0x1400805a8
mov r14d, 8
nop dword [rax]
mov rax, qword [rbx + 0x38e0]
mov rdi, qword [r14 + rax]
test dword [rdi + 4], 0x400
jne 0x14008059a
mov rax, qword [rbx + 0x3880]
test rax, rax
je 0x140080587
xor edx, edx
mov rcx, rdi
call rax
mov rax, qword [rbx + 0x38c0]
test rax, rax
je 0x14008059a
xor edx, edx
mov rcx, rdi
call rax
inc esi
add r14, 8
cmp esi, dword [rbx + 0x38d8]
jl 0x140080560
mov rcx, qword [0x1401f3830]
xor r8d, r8d
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x40]
cmp dword [0x1401f37c8], 0x12
jne 0x140080360
mov rdi, qword [0x1401f36e0]
test rdi, rdi
je 0x1400805dc
mov rbx, qword [rdi + 0xa0]
jmp 0x1400805df
mov rbx, r12
call fcn.14003a230
call fcn.140056ea0
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1400805f8
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140080606
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140080615
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [0x1401f36e0]
mov qword [rdi + 0x90], r12
mov qword [rdi + 0xa0], r12
test rax, rax
je 0x140080635
dec dword [rax + 0xf4]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x1401f36e0]
test rbx, rbx
je 0x140080653
mov rdi, qword [rbx + 0x98]
jmp 0x140080656
mov rdi, r12
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdx, rax
lea rcx, str.ImGui_Platform
call qword [sym.imp.USER32.dll_UnregisterClassW]
call fcn.14003a230
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x140080682
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, qword [0x1401f36e0]
mov qword [rbx + 0x88], r12
mov qword [rbx + 0x98], r12
test rax, rax
je 0x1400806a2
dec dword [rax + 0xf4]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x1401f36e0]
mov qword [0x1401f36e0], rbx
call fcn.1400269c0
mov qword [0x1401f36e0], r12
test rbx, rbx
je 0x1400806ed
mov rcx, rbx
call fcn.140044ba0
mov rax, qword [0x1401f36e0]
test rax, rax
je 0x1400806e4
dec dword [rax + 0xf4]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [0x1401f3728]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rax, qword [0x1401f37d0]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400e6f30
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret