Function at 0x180056b84
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
xor ebx, ebx
cmp qword [0x180174768], rbx
jne 0x180056ba2
call fcn.180056f04
test al, al
je 0x180056efe
mov rax, qword [0x180174890]
test rax, rax
je 0x180056bb7
mov rcx, qword [rax + 0xa0]
jmp 0x180056bba
mov rcx, rbx
cmp qword [rcx + 0x48], rbx
jne 0x180056bc5
call fcn.180027884
call fcn.1800285e0
call fcn.18002e134
mov rax, qword [0x180174890]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x4890]
mov rcx, qword [rcx]
call fcn.18002da98
cmp byte [0x1801747d8], bl
mov qword [0x1801745d8], rax
je 0x180056e68
mov ecx, dword [0x180173b3c]
test ecx, ecx
je 0x180056c35
sub ecx, 1
je 0x180056c1d
cmp ecx, 1
jne 0x180056c52
mov byte [0x180173b48], cl
jmp 0x180056c52
mov ecx, dword [0x180173b38]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b48]
jmp 0x180056c52
mov ecx, dword [0x180173b38]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056c52
cmp byte [0x180173b48], bl
sete byte [0x180173b48]
mov ecx, dword [0x180173b0c]
test ecx, ecx
je 0x180056c86
sub ecx, 1
je 0x180056c6e
cmp ecx, 1
jne 0x180056ca3
mov byte [0x180173b18], cl
jmp 0x180056ca3
mov ecx, dword [0x180173b08]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b18]
jmp 0x180056ca3
mov ecx, dword [0x180173b08]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056ca3
cmp byte [0x180173b18], bl
sete byte [0x180173b18]
mov ecx, dword [0x180173af4]
test ecx, ecx
je 0x180056cd7
sub ecx, 1
je 0x180056cbf
cmp ecx, 1
jne 0x180056cf4
mov byte [0x180173b00], cl
jmp 0x180056cf4
mov ecx, dword [0x180173af0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b00]
jmp 0x180056cf4
mov ecx, dword [0x180173af0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056cf4
cmp byte [0x180173b00], bl
sete byte [0x180173b00]
mov ecx, dword [0x180173b54]
test ecx, ecx
je 0x180056d28
sub ecx, 1
je 0x180056d10
cmp ecx, 1
jne 0x180056d45
mov byte [0x180173b60], cl
jmp 0x180056d45
mov ecx, dword [0x180173b50]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b60]
jmp 0x180056d45
mov ecx, dword [0x180173b50]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056d45
cmp byte [0x180173b60], bl
sete byte [0x180173b60]
mov ecx, dword [0x180173b6c]
test ecx, ecx
je 0x180056d79
sub ecx, 1
je 0x180056d61
cmp ecx, 1
jne 0x180056d96
mov byte [0x180173b78], cl
jmp 0x180056d96
mov ecx, dword [0x180173b68]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b78]
jmp 0x180056d96
mov ecx, dword [0x180173b68]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056d96
cmp byte [0x180173b78], bl
sete byte [0x180173b78]
mov ecx, dword [0x180173b24]
test ecx, ecx
je 0x180056dca
sub ecx, 1
je 0x180056db2
cmp ecx, 1
jne 0x180056de7
mov byte [0x180173b30], cl
jmp 0x180056de7
mov ecx, dword [0x180173b20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b30]
jmp 0x180056de7
mov ecx, dword [0x180173b20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056de7
cmp byte [0x180173b30], bl
sete byte [0x180173b30]
mov ecx, dword [0x180173b84]
test ecx, ecx
je 0x180056e1b
sub ecx, 1
je 0x180056e03
cmp ecx, 1
jne 0x180056e38
mov byte [0x180173b90], cl
jmp 0x180056e38
mov ecx, dword [0x180173b80]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x180173b90]
jmp 0x180056e38
mov ecx, dword [0x180173b80]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180056e38
cmp byte [0x180173b90], bl
sete byte [0x180173b90]
movss xmm0, dword [0x180174574]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jp 0x180056e4a
je 0x180056e68
movss xmm0, dword [0x180174578]
ucomiss xmm0, xmm1
jp 0x180056e59
je 0x180056e68
call fcn.18005bc54
call fcn.180016320
call fcn.18005a908
call fcn.18002fb20
call fcn.18002fe38
mov rcx, qword [0x180174778]
lea r8, [0x1801749b0]
xor r9d, r9d
mov rax, qword [rcx]
lea edx, [r9 + 1]
call qword [rax + 0x108]
mov rax, qword [0x180174890]
mov rcx, qword [rax + 0x4890]
mov rdx, qword [rcx]
add rdx, 0x48
mov al, byte [rdx]
neg al
sbb rcx, rcx
and rcx, rdx
call fcn.180026c94
mov rax, qword [0x180174890]
mov rcx, qword [rax + 0x4890]
mov rdx, qword [rcx]
mov ecx, 0x24
mov r8b, byte [rdx + 0x48]
lea rax, [rdx + 0x6c]
test r8b, r8b
cmovne rcx, rax
lea rax, [rdx + 0x68]
movss xmm0, dword [rcx]
mov ecx, 0x20
cmovne rcx, rax
movss dword [0x180174574], xmm0
movss xmm0, dword [rcx]
movss dword [0x180174578], xmm0
add rsp, 0x20
pop rbx
ret