Function at 0x100019804
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x130
mov rcx, qword [0x10009e180]
lea r8, [0x10009e06c]
lea rdx, [0x10009e068]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [0x10009e1d0]
lea rdx, str.engine.xml
mov esi, 0xe
call fcn.10000adb0
xor ebx, ebx
or r14, 0xffffffffffffffff
mov rdi, rax
cmp rax, rbx
je 0x100019979
movzx r8d, byte [0x10009e049]
lea rdx, str._AllowMaximize
mov rcx, rax
call fcn.10000a6d0
lea rdx, str._LockWindowAspect
mov r8d, r14d
cmp eax, ebx
mov rcx, rdi
setg byte [0x10009e049]
call fcn.10000a6d0
lea rdx, str._EngineFontSize
cmp eax, ebx
mov r8d, esi
mov rcx, rdi
setg byte [0x10009e054]
call fcn.10000a550
lea rdx, str._EngineFontFace
mov rcx, rdi
mov esi, eax
call fcn.10000a14c
cmp rax, rbx
jne 0x10002d492
mov rbp, rbx
lea rdx, str._SnapDistance
mov r8d, 0xa
mov rcx, rdi
call fcn.10000a550
lea rdx, str._MediaCenterCrop
mov r8d, 0x55
mov rcx, rdi
mov dword [0x10009e074], eax
call fcn.10000a550
lea rdx, str._AllowMediaCenter
mov r8d, 1
mov rcx, rdi
mov dword [str.d_n], eax
call fcn.10000a6d0
mov r8d, dword [0x10009e078]
lea rdx, str._MinWidth
neg eax
sbb cl, cl
and cl, byte [0x10009e052]
mov byte [0x10009e052], cl
mov rcx, rdi
call fcn.10000a550
mov r8d, dword [0x10009e07c]
lea rdx, str._MinHeight
mov rcx, rdi
mov dword [0x10009e078], eax
call fcn.10000a550
movzx r8d, byte [0x10009e055]
lea rdx, str._MinSizeIsNative
mov rcx, rdi
mov dword [0x10009e07c], eax
call fcn.10000a6d0
cmp eax, ebx
setne byte [0x10009e055]
cmp rbp, rbx
jne 0x1000199aa
mov ecx, 0x200
call fcn.100002be0
mov rbp, rax
cmp rax, rbx
je 0x1000199aa
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov r9d, 0x100
mov r8, rbp
mov rcx, rax
mov edx, 0x3e9
call qword [sym.imp.USER32.dll_LoadStringW]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov edx, 0x5a
mov rcx, rax
mov rdi, rax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov r8d, 0x48
mov ecx, esi
mov edx, eax
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov rdx, rdi
xor ecx, ecx
mov esi, eax
neg esi
call qword [sym.imp.USER32.dll_ReleaseDC]
mov qword [rsp + 0x68], rbp
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], ebx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, esi
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x190
call qword [sym.imp.GDI32.dll_CreateFontW]
mov rcx, rbp
mov qword [0x10009e1b0], rax
call sub.msvcrt.dll_free
lea rax, [0x100002d08]
xor ecx, ecx
mov qword [rsp + 0xd8], rax
mov byte [rsp + 0x160], bl
mov dword [rsp + 0xd0], 3
mov dword [rsp + 0xe0], ebx
mov dword [rsp + 0xe4], ebx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, qword [0x10009e180]
mov qword [rsp + 0xe8], rax
mov rax, qword [rcx]
call qword [rax + 0x38]
mov esi, 0x7f00
cmp rax, rbx
je 0x10002d4a2
mov rcx, qword [0x10009e180]
mov rax, qword [rcx]
call qword [rax + 0x38]
xor ecx, ecx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdx, rdi
mov rcx, rax
jmp 0x100019aa8
call qword [sym.imp.USER32.dll_LoadIconW]
mov rdx, rsi
xor ecx, ecx
mov qword [rsp + 0xf0], rax
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [rsp + 0xf8], rax
cmp byte [0x10009e052], bl
jne 0x10002d4ac
mov ecx, 0xc
call qword [sym.imp.USER32.dll_GetSysColorBrush]
mov qword [rsp + 0x100], rax
cmp byte [0x10009e052], bl
jne 0x10002d4bc
mov rcx, qword [0x10009e180]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov qword [rsp + 0x108], rax
jmp 0x100019b0b
mov rax, qword [0x10009e158]
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x110], rax
call qword [sym.imp.USER32.dll_RegisterClassW]
mov r11b, byte [0x10009e052]
cmp r11b, bl
jne 0x10002d4c9
mov edi, 0x80000000
mov esi, ebx
mov ebp, edi
cmp byte [0x10009e056], bl
jne 0x10002d4f1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov cl, byte [0x10009e049]
mov rdx, qword [0x10009e158]
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rax
mov eax, dword [0x10009e06c]
neg cl
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
sbb r9d, r9d
mov dword [rsp + 0x38], eax
mov eax, dword [0x10009e068]
not r9d
mov ecx, 0x80000000
mov dword [rsp + 0x30], eax
and r9d, 0x10000
mov r8, rdx
mov dword [rsp + 0x28], ebp
xor r9d, 0xcf0000
mov dword [rsp + 0x20], edi
or r9d, esi
bts r9d, 0x19
cmp byte [0x10009e052], bl
cmovne r9d, ecx
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [0x10009e168], rax
cmp rax, rbx
je 0x10002d510
cmp byte [0x10009e052], bl
jne 0x10002d53d
or dword [rsp + 0x174], 0xffffffff
lea rcx, [rsp + 0x170]
mov dword [rsp + 0x170], 8
call qword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x58], rbx
lea rdx, str.STATIC
mov qword [rsp + 0x50], rax
mov rax, qword [0x10009e168]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
mov eax, dword [0x10009e06c]
mov r9d, 0x4000000b
mov dword [rsp + 0x38], eax
mov eax, dword [0x10009e068]
xor r8d, r8d
mov dword [rsp + 0x30], eax
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.USER32.dll_CreateWindowExW]
lea rcx, str.MicrosoftTabletPenServiceProperty
mov qword [0x10009e170], rax
call qword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx esi, ax
cmp ax, bx
je 0x100019cb2
mov rcx, qword [0x10009e168]
movzx edi, ax
mov r8d, 0x10000
mov rdx, rdi
call qword [sym.imp.USER32.dll_SetPropW]
mov rcx, qword [0x10009e170]
mov r8d, 0x10000
mov rdx, rdi
call qword [sym.imp.USER32.dll_SetPropW]
movzx ecx, si
call qword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
mov rcx, qword [0x10009e180]
mov rax, qword [rcx]
call qword [rax + 0x88]
mov ebp, 0x103
cmp eax, ebx
jbe 0x100019d2a
cmp byte [0x10009e052], bl
jne 0x10002d566
mov rdx, qword [0x10009e168]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], 0x3f2
lea rcx, [0x10009e600]
xor r9d, r9d
mov r8, rbx
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 0x50000000
call fcn.10001f628
mov rcx, qword [0x10009e168]
mov r9d, ebp
xor r8d, r8d
xor edx, edx
mov qword [0x10009e1a0], rax
call qword [sym.imp.USER32.dll_RedrawWindow]
cmp byte [0x10009e052], bl
jne 0x10002d566
mov rcx, qword [0x10009e180]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, rax
cmp rax, rbx
je 0x100019d7d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadMenuW]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_GetSubMenu]
mov qword [0x10009e1a8], rax
cmp byte [0x10009e052], bl
jne 0x10002d57d
cmp byte [0x10009e04a], bl
jne 0x1000243d9
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1000243d9
mov ecx, dword [0x10009e080]
mov edx, dword [0x10009e084]
jmp 0x100019db0
cmp byte [0x10009e052], bl
jne 0x10002d660
mov rax, qword [0x10009e1a0]
lea r9, [rsp + 0x168]
lea r8, [rsp + 0x160]
mov qword [rsp + 0x28], rax
mov rax, qword [0x10009e168]
mov qword [rsp + 0x20], rax
call fcn.100003910
xor edx, edx
lea rcx, [rsp + 0x74]
lea r8d, [rdx + 0x28]
mov dword [rsp + 0x70], ebx
call sub.msvcrt.dll_memset
mov rcx, qword [0x10009e168]
lea rdx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_GetWindowPlacement]
mov r11d, dword [0x10009e0ac]
mov ecx, dword [rsp + 0x160]
mov eax, dword [rsp + 0x168]
add ecx, r11d
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x94], ecx
mov ecx, dword [0x10009e0b0]
mov dword [rsp + 0x8c], r11d
mov dword [rsp + 0x90], ecx
add ecx, eax
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x98], ecx
mov rcx, qword [0x10009e168]
call qword [sym.imp.USER32.dll_SetWindowPlacement]
cmp byte [0x10009e051], bl
jne 0x10002d5a2
call fcn.100013190
mov rcx, qword [0x10009e170]
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov cl, 1
call fcn.100012f28
mov edx, dword [0x10009e06c]
mov ecx, dword [0x10009e068]
mov r8b, 1
call fcn.10001f21c
mov al, 1
add rsp, 0x130
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea r8, [rsp + 0x160]
lea rdx, [0x10009e0b0]
lea rcx, [0x10009e0ac]
call fcn.100024430
cmp byte [rsp + 0x160], bl
jne 0x10002d58b
mov ecx, dword [0x10009e068]
mov edx, dword [0x10009e06c]
mov dword [0x10009e084], edx
mov dword [0x10009e080], ecx
jmp 0x100019db0
mov rcx, rax
call fcn.10000b9f0
mov rbp, rax
jmp 0x1000198c1
mov rdx, rsi
xor ecx, ecx
jmp 0x100019aa8
mov ecx, 4
call qword [sym.imp.GDI32.dll_GetStockObject]
jmp 0x100019ae0
mov qword [rsp + 0x108], rbx
jmp 0x100019b0b
lea rcx, [0x1000a1a10]
mov byte [0x1000a1a09], 1
call qword [sym.imp.USER32.dll_GetCursorPos]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ShowCursor]
mov r11b, byte [0x10009e052]
jmp 0x100019b38
cmp r11b, bl
jne 0x100019b4d
mov edi, dword [0x10009e0b4]
mov ebp, dword [0x10009e0b8]
mov esi, 0x1000000
jmp 0x100019b4d
call sub.KERNEL32.dll_GetLastError
lea r9, str.Unable_to_create_game_window.__WinError__d_
lea r8, str.Window.cpp
mov edx, 0x1ed
mov ecx, 0x10
mov dword [rsp + 0x20], eax
call fcn.100002c98
xor al, al
jmp 0x100019e9f
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r8d, r8d
lea rdx, [0x100047ff0]
lea ecx, [r8 + 7]
mov r9d, eax
call qword [sym.imp.USER32.dll_SetWindowsHookExW]
mov qword [0x1000a1a00], rax
jmp 0x100019be6
mov ecx, 0xbf9450
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov qword [0x1000a1a18], rax
jmp 0x100019d36
mov rcx, rax
call fcn.100047f00
nop
jmp 0x100019d7d
mov eax, dword [0x10009e068]
lea ecx, [rax + rax]
mov eax, dword [0x10009e06c]
lea edx, [rax + rax]
jmp 0x10002440d
cmp qword [0x10009e1a0], rbx
je 0x100019e6e
mov rcx, qword [0x10009e168]
lea rdx, [rsp + 0x120]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [0x10009e180]
mov rdx, qword [rcx]
call qword [rdx + 0x88]
mov ebx, eax
mov eax, 4
mul rbx
cmovo rax, r14
mov rcx, rax
call fcn.100002be0
mov rcx, qword [0x10009e180]
mov edx, dword [rsp + 0x128]
mov r10, qword [rcx]
sub edx, dword [rsp + 0x120]
mov r9, rax
mov r8d, ebx
mov rsi, rax
call qword [r10 + 0x28]
mov rcx, qword [0x10009e1a0]
mov r9, rsi
mov r8, rbx
mov edx, 0x404
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x10009e1a0]
xor r9d, r9d
lea edx, [r9 + 5]
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x10009e1a0]
mov r9d, ebp
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_RedrawWindow]
mov rcx, rsi
call sub.msvcrt.dll_free
jmp 0x100019e6e
xor edx, edx
lea rcx, [rsp + 0x74]
lea r8d, [rdx + 0x24]
call sub.msvcrt.dll_memset
mov rdi, qword [0x10009e168]
lea rcx, str.eHome_Render_Window
xor edx, edx
mov dword [rsp + 0x70], 0x28
call qword [sym.imp.USER32.dll_FindWindowW]
mov edx, 2
cmp rax, rbx
cmovne rdi, rax
mov rcx, rdi
call qword [sym.imp.USER32.dll_MonitorFromWindow]
lea rdx, [rsp + 0x70]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetMonitorInfoW]
xor edx, edx
lea rcx, [rsp + 0xa4]
lea r8d, [rdx + 0x28]
mov dword [rsp + 0xa0], ebx
call sub.msvcrt.dll_memset
mov rcx, qword [0x10009e168]
lea rdx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_GetWindowPlacement]
mov eax, dword [rsp + 0x7c]
mov r11d, dword [rsp + 0x74]
mov rcx, qword [0x10009e168]
mov dword [rsp + 0xc4], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x80]
lea rdx, [rsp + 0xa0]
mov dword [rsp + 0xbc], r11d
mov dword [rsp + 0xa8], ebx
mov dword [rsp + 0xc8], eax
call qword [sym.imp.USER32.dll_SetWindowPlacement]
nop
jmp 0x100019e6e