Function at 0x180012720
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
cmp byte [0x1800b70b8], 0
je 0x180012768
mov ecx, dword [0x1800dee9c]
cmp dword [0x1800e0508], ecx
cmovg ecx, dword [0x1800e0508]
test ecx, ecx
js 0x180012761
lea r9, str.update:_BlockGameInputInImgui_is_true
mov r8d, 0x10
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModInputInputManager.cpp
xor ecx, ecx
call fcn.180060b60
mov byte [0x1800b70b8], 0
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x1800127ce
cmp byte [0x1800e0250], 0
jne 0x1800127d5
cmp byte [0x1800e0239], 0
mov byte [0x1800e0250], 1
je 0x1800127d5
mov ecx, dword [0x1800dee9c]
cmp dword [0x1800e0508], ecx
mov byte [0x1800e0239], 0
cmovg ecx, dword [0x1800e0508]
test ecx, ecx
js 0x1800127d5
lea r9, str.update:_Mod_menu_opened_and_Escape_Key_pressed___closing_mod_menu
mov r8d, 0x24
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModInputInputManager.cpp
xor ecx, ecx
call fcn.180060b60
jmp 0x1800127d5
mov byte [0x1800e0250], 0
cmp dword [0x1800e02c0], 2
jne 0x180012807
mov ecx, Ordinal_101
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012807
cmp byte [0x1800e0259], 0
jne 0x18001280e
mov byte [0x1800e0259], 1
call fcn.180012ce0
jmp 0x18001280e
mov byte [0x1800e0259], 0
cmp dword [0x1800e02c0], 2
jne 0x18001286d
mov ecx, Ordinal_101
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x18001286d
cmp byte [0x1800e0256], 0
jne 0x180012874
mov ecx, dword [0x1800dee9c]
cmp dword [0x1800e0508], ecx
mov byte [0x1800e0256], 1
cmovg ecx, dword [0x1800e0508]
test ecx, ecx
js 0x180012874
lea r9, str.m_isDebugKey_2_Pressed_pressed
mov r8d, 0x3a
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModInputInputManager.cpp
xor ecx, ecx
call fcn.180060b60
jmp 0x180012874
mov byte [0x1800e0256], 0
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx ebx, ax
mov ecx, 9
shr ebx, 0xf
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
test bl, 1
je 0x1800128e0
test al, al
je 0x1800128e0
cmp byte [0x1800e0239], 1
jne 0x1800128e0
mov ecx, dword [0x1800dee9c]
cmp dword [0x1800e0508], ecx
cmovg ecx, dword [0x1800e0508]
test ecx, ecx
js 0x1800128d9
lea r9, str.update:_user_is_in_main_menu_and_ALT__TAB_is_pressed__forcing_out_of_mod_menu_to_prevent_imgui_window_freeze
mov r8d, 0x4b
lea rdx, str.C:UsersTOTOMAN2_source_reposMetroExodus_EE_QolsModInputInputManager.cpp
xor ecx, ecx
call fcn.180060b60
mov byte [0x1800e0239], 0
mov ecx, 0x60
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012902
cmp dword [0x1800e02c0], 2
jne 0x180012902
mov byte [0x1800e0252], 1
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr ax, 0xf
cmp byte [0x1800e0239], 0
mov byte [0x1800e0238], al
jne 0x180012ae3
movzx ecx, word [0x1800def94]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012954
cmp byte [0x1800e0254], 0
jne 0x18001295b
mov byte [0x1800e0254], 1
mov dword [0x1800e029c], 2
jmp 0x18001295b
mov byte [0x1800e0254], 0
movzx ecx, word [0x1800def98]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012994
cmp byte [0x1800e0254], 0
jne 0x180012994
cmp byte [0x1800e0255], 0
jne 0x18001299b
mov byte [0x1800e0255], 1
mov dword [0x1800e029c], 1
jmp 0x18001299b
mov byte [0x1800e0255], 0
movzx ecx, word [0x1800e0d30]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x1800129e3
cmp byte [0x1800e0258], 0
jne 0x1800129e3
cmp byte [0x1800e0257], 0
jne 0x1800129e3
cmp byte [0x1800e0251], 0
jne 0x1800129e3
cmp byte [0x1800e0253], 0
jne 0x1800129ea
xor ecx, ecx
mov byte [0x1800e0253], 1
call fcn.180076490
jmp 0x1800129ea
mov byte [0x1800e0253], 0
movzx ecx, word [0x1800e0d2c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012a35
cmp byte [0x1800e0253], 0
jne 0x180012a35
cmp byte [0x1800e0257], 0
jne 0x180012a35
cmp byte [0x1800e0251], 0
jne 0x180012a35
cmp byte [0x1800e0258], 0
jne 0x180012a3c
mov ecx, 0xd
mov byte [0x1800e0258], 1
call fcn.180076490
jmp 0x180012a3c
mov byte [0x1800e0258], 0
movzx ecx, word [0x1800e0d24]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012a87
cmp byte [0x1800e0253], 0
jne 0x180012a87
cmp byte [0x1800e0258], 0
jne 0x180012a87
cmp byte [0x1800e0251], 0
jne 0x180012a87
cmp byte [0x1800e0257], 0
jne 0x180012a8e
mov ecx, 0x19
mov byte [0x1800e0257], 1
call fcn.180076490
jmp 0x180012a8e
mov byte [0x1800e0257], 0
movzx ecx, word [0x1800e0d34]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x180012adc
cmp byte [0x1800e0253], 0
jne 0x180012adc
cmp byte [0x1800e0258], 0
jne 0x180012adc
cmp byte [0x1800e0257], 0
jne 0x180012adc
cmp byte [0x1800e0251], 0
jne 0x180012ae3
mov ecx, 3
mov byte [0x1800e0251], 1
add rsp, 0x20
pop rbx
jmp fcn.180076490
mov byte [0x1800e0251], 0
add rsp, 0x20
pop rbx
ret