Function at 0x1400031a0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x140059040]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov edi, r9d
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_AllocConsole]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, rax
lea r8, [0x1400498c4]
lea rdx, str.CONOUT_
lea rcx, [rbp + 0x30]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen_s]
mov qword [rbp - 8], rbx
lea rax, [0x140003140]
xorps xmm0, xmm0
mov qword [rbp - 0x18], rax
xorps xmm1, xmm1
movdqa xmmword [rbp], xmm0
xor r14d, r14d
movdqa xmmword [rbp + 0x10], xmm1
lea rbx, [0x1400498d0]
mov qword [rbp - 0x10], r14
lea rcx, [rbp - 0x20]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], r14
mov dword [rbp - 0x20], 0x50
mov dword [rbp - 0x1c], 0x40
call qword [sym.imp.USER32.dll_RegisterClassExA]
mov rax, qword [rbp - 8]
mov r9d, 0x80000000
mov rdx, qword [rbp + 0x20]
mov r8, rbx
mov qword [rsp + 0x58], r14
mov ecx, 0x80028
mov qword [rsp + 0x50], rax
mov eax, dword [0x14008e018]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x38], eax
mov eax, dword [0x14005de58]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
call qword [sym.imp.USER32.dll_CreateWindowExA]
lea r9d, [r14 + 2]
mov r8b, 0xff
mov rcx, rax
xor edx, edx
mov rsi, rax
call qword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
xorps xmm0, xmm0
lea rdx, [rbp + 0x58]
mov rcx, rsi
movups xmmword [rbp + 0x58], xmm0
call qword [sym.imp.USER32.dll_GetClientRect]
xorps xmm0, xmm0
lea rdx, [rbp + 0x68]
mov rcx, rsi
movups xmmword [rbp + 0x68], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
lea rdx, [rbp + 0x40]
mov qword [rbp + 0x40], r14
mov rcx, rsi
call qword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [rbp + 0x40]
lea rdx, [rbp + 0x48]
mov dword [rbp + 0x48], eax
mov rcx, rsi
mov eax, dword [rbp + 0x44]
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x60]
mov dword [rbp + 0x50], eax
mov eax, dword [rbp + 0x64]
mov dword [rbp + 0x54], eax
call qword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
mov qword [rbp - 0x70], r14
mov qword [rbp - 0x5c], r14
mov qword [rbp - 0x54], 2
mov qword [rbp - 0x48], 1
mov qword [rbp - 0x30], 2
mov dword [rbp - 0x68], 0x12c
mov dword [rbp - 0x64], 1
mov dword [rbp - 0x60], 0x1c
lea rax, [rsp + 0x68]
mov dword [rbp - 0x4c], 0x20
mov qword [rsp + 0x58], rax
lea edx, [r14 + 1]
lea rax, [rbp + 0x38]
mov qword [rbp - 0x40], rsi
mov qword [rsp + 0x50], rax
xor r9d, r9d
lea rax, [rsp + 0x78]
mov qword [rbp - 0x38], 1
mov qword [rsp + 0x48], rax
xor r8d, r8d
lea rax, [rsp + 0x70]
mov dword [rbp + 0xa8], 0xb000
mov qword [rsp + 0x40], rax
xor ecx, ecx
lea rax, [rbp - 0x70]
mov dword [rbp + 0xac], 0xa000
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xa8]
mov dword [rsp + 0x30], 7
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r14
mov qword [rbp - 0x80], r14
mov dword [rbp + 0x38], r14d
call qword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
mov rcx, qword [rsp + 0x70]
lea r9, [rbp - 0x78]
mov qword [rbp - 0x78], r14
lea r8, [0x140049a50]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdx, qword [rbp - 0x78]
test rdx, rdx
je 0x140003420
mov rcx, qword [rsp + 0x78]
lea r9, [rbp - 0x80]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [rbp - 0x78]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov edx, edi
mov rcx, rsi
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, rsi
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rbx, qword [0x14005cd28]
mov ecx, 0x6180
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, qword [0x14005cd28]
mov r9, rax
test r8, r8
je 0x1400034b5
movsx rax, word [r8 + 0x6030]
lea rdx, [r8 + 0x6034]
mov r10d, dword [r8 + 0x3f60]
lea rdx, [rdx + rax*8]
cmp dword [rdx], r10d
je 0x1400034aa
lea ecx, [rax + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [r8 + 0x6034]
sub ecx, eax
mov word [r8 + 0x6030], cx
movsx rax, cx
lea rdx, [rdx + rax*8]
mov dword [rdx], r10d
mov dword [rdx + 4], r14d
inc word [rdx + 4]
inc dword [r8 + 0x6028]
test r9, r9
je 0x1400034c6
xor edx, edx
mov rcx, r9
call fcn.14000c840
jmp 0x1400034c9
mov rax, r14
mov qword [0x14005cd28], rax
call fcn.140011100
test rbx, rbx
je 0x1400034e1
mov qword [0x14005cd28], rbx
xor ecx, ecx
call fcn.14002fc30
mov rcx, rsi
call fcn.14003a410
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
call fcn.14003a250
cmp byte [0x1400590d0], 1
jne 0x14000385d
nop dword [rax]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp + 0x78]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x140003562
nop
lea rcx, [rbp + 0x78]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp + 0x78]
call qword [sym.imp.USER32.dll_DispatchMessageA]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp + 0x78]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x140003530
mov rax, qword [0x14005cd28]
test rax, rax
je 0x140003577
mov rcx, qword [rax + 0x98]
jmp 0x14000357a
mov rcx, r14
cmp qword [rcx + 0x48], r14
jne 0x140003585
call fcn.140039d30
call fcn.14003ae20
call fcn.140013930
cmp byte [0x14005cd15], 1
mov edx, 0xffffffec
mov rcx, rsi
lea r8d, [rdx + 0x3c]
je 0x1400035aa
mov r8d, 0x80028
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400035d9
cmp byte [0x14005cd15], r14b
mov ecx, 0x82
sete byte [0x14005cd15]
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.140045df0
lea rdx, [rsp + 0x60]
call fcn.140004f90
mov rbx, rax
test rax, rax
je 0x140003aff
lock inc dword [rax + 8]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000362a
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x14000361d
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x14000362a
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000365c
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x14000364f
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x14000365c
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
lea rdx, [rsp + 0x61]
call fcn.140004cb0
mov rbx, rax
test rax, rax
je 0x140003aff
lock inc dword [rax + 8]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400036a8
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x14000369b
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x1400036a8
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400036da
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x1400036cd
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x1400036da
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
lea rdx, [rsp + 0x62]
call fcn.140004e20
mov rbx, rax
test rax, rax
je 0x140003aff
lock inc dword [rax + 8]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140003726
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x140003719
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x140003726
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140003758
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x14000374b
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x140003758
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
lea rdx, [rsp + 0x63]
call fcn.140005100
mov rbx, rax
test rax, rax
je 0x140003aff
lock inc dword [rax + 8]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400037a4
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x140003797
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x1400037a4
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400037d6
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x1400037c9
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax]
jmp 0x1400037d6
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
call fcn.1400076e0
call fcn.140015910
mov rcx, qword [rsp + 0x68]
lea r8, [rbp - 0x80]
xorps xmm0, xmm0
xor r9d, r9d
movups xmmword [rbp + 0xb0], xmm0
mov rax, qword [rcx]
lea edx, [r9 + 1]
call qword [rax + 0x108]
mov rcx, qword [rsp + 0x68]
lea r8, [rbp + 0xb0]
mov rdx, qword [rbp - 0x80]
mov rax, qword [rcx]
call qword [rax + 0x190]
mov rax, qword [0x14005cd28]
mov rcx, qword [rax + 0x4ad0]
mov rax, qword [rcx]
mov rcx, r14
add rax, 0x48
cmp byte [rax], r14b
cmovne rcx, rax
call fcn.140038f80
mov rcx, qword [rsp + 0x70]
xor r8d, r8d
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x40]
cmp byte [0x1400590d0], 1
je 0x140003510
mov rbx, qword [0x14005cd28]
test rbx, rbx
je 0x140003872
mov rdi, qword [rbx + 0x98]
jmp 0x140003875
mov rdi, r14
call fcn.14003a130
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140003889
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140003897
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400038a6
mov rax, qword [rcx]
call qword [rax + 0x10]
and dword [rbx + 0xc], 0xfffffff7
mov r8, qword [0x14005cd28]
mov qword [rbx + 0x88], r14
mov qword [rbx + 0x98], r14
test r8, r8
je 0x140003924
movsx rdx, word [r8 + 0x6030]
lea rcx, [r8 + 0x6034]
mov r9d, dword [r8 + 0x3f60]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r9d
je 0x140003919
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x6030], cx
movsx rax, cx
lea rcx, [r8 + 0x6034]
lea rcx, [rcx + rax*8]
mov dword [rcx], r9d
mov dword [rcx + 4], r14d
inc word [rcx + 6]
inc dword [r8 + 0x602c]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r8, qword [0x14005cd28]
test r8, r8
je 0x140003942
mov rdi, qword [r8 + 0x90]
jmp 0x140003945
mov rdi, r14
mov rcx, qword [rdi + 0x38]
lea rbx, [r8 + 8]
test rcx, rcx
je 0x14000395f
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r8, qword [0x14005cd28]
and dword [rbx + 4], 0xfffffff8
mov qword [rbx + 0x78], r14
mov qword [rbx + 0x88], r14
test r8, r8
je 0x1400039d3
movsx rdx, word [r8 + 0x6030]
mov r9d, dword [r8 + 0x3f60]
lea rcx, [rdx*8 + 0x6034]
add rcx, r8
cmp dword [rcx], r9d
je 0x1400039c8
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x6030], cx
movsx rax, cx
lea rcx, [rax*8 + 0x6034]
add rcx, r8
mov dword [rcx], r9d
mov dword [rcx + 4], r14d
inc word [rcx + 6]
inc dword [r8 + 0x602c]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x14005cd28]
mov qword [0x14005cd28], rbx
call fcn.140011580
mov qword [0x14005cd28], r14
test rbx, rbx
je 0x140003a79
mov rcx, rbx
call fcn.140027600
mov r8, qword [0x14005cd28]
test r8, r8
je 0x140003a70
movsx r10, word [r8 + 0x6030]
lea rdx, [r8 + 0x6034]
mov r9d, dword [r8 + 0x3f60]
lea rdx, [rdx + r10*8]
cmp dword [rdx], r9d
je 0x140003a65
lea ecx, [r10 + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [r8 + 0x6034]
sub ecx, eax
mov word [r8 + 0x6030], cx
movsx rax, cx
lea rdx, [rdx + rax*8]
mov dword [rdx], r9d
mov dword [rdx + 4], r14d
inc word [rdx + 6]
inc dword [r8 + 0x602c]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140003a89
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140003a99
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140003aa9
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x140003ab8
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, rsi
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp + 0x20]
mov byte [0x1400590d0], r14b
call qword [sym.imp.USER32.dll_UnregisterClassA]
xor eax, eax
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1400470c0
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
mov ecx, 4
call fcn.140002fa0
int3