Function at 0x140048670
Capabilities:
Hide graphical window
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xf0
mov rax, qword [0x140070040]
xor rax, rsp
mov qword [rbp + 0x4f], rax
call fcn.140047c80
lea rax, [0x14005a310]
mov byte [0x14009c3c8], 1
xor ecx, ecx
mov qword [0x14009c2f8], rax
mov byte [0x14009c3a8], 0
mov dword [0x14009c2f0], 0x50
mov dword [0x14009c2f4], 0x40
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [0x14009c308], rax
lea rcx, [0x14009c2f0]
lea rax, str.carlgwastaken
mov qword [0x14009c330], rax
call qword [sym.imp.USER32.dll_RegisterClassExA]
mov rdi, qword [0x14009c308]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov rdx, qword [0x14009c330]
lea r8, str.Hack_Tuah
xor esi, esi
mov r9d, 0x80000000
mov qword [rsp + 0x58], rsi
mov ecx, 0x80028
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov r9d, 2
mov r8b, 0xff
mov rcx, rax
mov qword [0x14009c2d8], rax
xor edx, edx
call qword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
mov rcx, qword [0x14009c2d8]
lea rdx, [rbp + 0x2f]
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x2f], xmm0
movups xmmword [rbp + 0x3f], xmm1
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [0x14009c2d8]
lea rdx, [rbp + 0x3f]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [0x14009c2d8]
lea rdx, [rbp + 0x17]
mov qword [rbp + 0x17], rsi
call qword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [rbp + 0x17]
lea rdx, [rbp + 0x1f]
mov rcx, qword [0x14009c2d8]
mov dword [rbp + 0x1f], eax
mov eax, dword [rbp + 0x1b]
mov dword [rbp + 0x23], eax
mov eax, dword [rbp + 0x37]
mov dword [rbp + 0x27], eax
mov eax, dword [rbp + 0x3b]
mov dword [rbp + 0x2b], eax
call qword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
mov rcx, qword [0x14009c2d8]
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x14009c2d8]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rax, qword [0x14009c2d8]
mov qword [rbp - 9], rax
mov qword [rbp - 0x25], rsi
mov qword [rbp - 0x11], 2
mov qword [rbp + 7], 2
mov qword [rbp - 0x39], rsi
mov dword [rbp - 0x29], 0x1c
mov dword [rbp - 0x31], 0x3c
mov dword [rbp - 0x2d], 1
mov dword [rbp - 0x15], 0x20
mov qword [rbp - 0x1d], 1
lea rax, [rbp + 0x17]
mov qword [rbp - 1], 1
lea rbx, [0x14009c2c0]
mov dword [rbp + 0x2f], 0xb000
mov qword [rsp + 0x58], rbx
lea rdi, [0x14009c348]
mov qword [rsp + 0x50], rax
lea r14, [0x14009c350]
mov qword [rsp + 0x48], rdi
lea rax, [rbp - 0x39]
mov qword [rsp + 0x40], r14
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
mov dword [rsp + 0x30], 7
lea rax, [rbp + 0x2f]
mov dword [rsp + 0x28], 2
mov edx, 1
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x33], 0xa000
call qword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
cmp eax, 0x887a0004
jne 0x14004891a
mov qword [rsp + 0x58], rbx
lea rax, [rbp + 0x17]
mov qword [rsp + 0x50], rax
xor r9d, r9d
mov qword [rsp + 0x48], rdi
lea rax, [rbp - 0x39]
mov qword [rsp + 0x40], r14
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov edx, 5
mov dword [rsp + 0x30], 7
lea rax, [rbp + 0x2f]
mov dword [rsp + 0x28], 2
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
test eax, eax
jne 0x140048966
mov rcx, qword [0x14009c350]
lea r9, [rbp + 0x1f]
mov qword [rbp + 0x1f], rsi
lea r8, [0x140066ae0]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdx, qword [rbp + 0x1f]
test rdx, rdx
je 0x140048966
mov rcx, qword [0x14009c348]
lea r9, [0x14009c2e0]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
call qword [rax + 0x10]
call fcn.14005a9c0
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
je 0x140048988
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetForegroundWindow]
cmp byte [0x14009c3c8], sil
je 0x140048b09
nop word [rax + rax]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp - 0x39]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x1400489f2
nop
lea rcx, [rbp - 0x39]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x39]
call qword [sym.imp.USER32.dll_DispatchMessageA]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp - 0x39]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x1400489c0
mov rax, qword [0x14009c290]
test rax, rax
je 0x140048a07
mov rcx, qword [rax + 0x98]
jmp 0x140048a0a
mov rcx, rsi
cmp qword [rcx + 0x48], rsi
jne 0x140048a15
call fcn.1400307e0
call fcn.140031a20
call fcn.140009500
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x140048a60
cmp byte [0x14009c3a8], sil
mov edx, 0xffffffec
mov rcx, qword [0x14009c2d8]
mov r8d, 0x20
sete al
mov byte [0x14009c3a8], al
test al, al
jne 0x140048a5a
mov r8d, 0x80028
call qword [sym.imp.USER32.dll_SetWindowLongA]
cmp byte [0x14009c3a8], sil
je 0x140048a6e
call fcn.14005ae40
call fcn.14005b8e0
call fcn.140001990
call fcn.140001050
call fcn.14000b500
mov rcx, qword [0x14009c2c0]
lea r8, [0x14009c2e0]
xorps xmm0, xmm0
xor r9d, r9d
movups xmmword [rbp + 0x3f], xmm0
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x108]
mov rcx, qword [0x14009c2c0]
lea r8, [rbp + 0x3f]
mov rdx, qword [0x14009c2e0]
mov rax, qword [rcx]
call qword [rax + 0x190]
mov rax, qword [0x14009c290]
mov rcx, qword [rax + 0x4ad0]
mov rax, qword [rcx]
mov rcx, rsi
add rax, 0x48
cmp byte [rax], sil
cmovne rcx, rax
call fcn.14002fd70
mov rcx, qword [0x14009c350]
xor r8d, r8d
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x40]
cmp byte [0x14009c3c8], sil
jne 0x1400489a0
call fcn.14005ac00
mov rcx, qword [0x14009c348]
test rcx, rcx
je 0x140048b47
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x14009c2c0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x14009c350]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x14009c2e0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x14009c2d8]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [0x14009c308]
mov rcx, qword [0x14009c330]
call qword [sym.imp.USER32.dll_UnregisterClassA]
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.14005cc40
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret