Function at 0x180004c60
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
cmp byte [0x180093d2f], 0
lea rdi, str.user32
movabs rbx, 0x7fffffff0000
je 0x180004d5e
mov rax, qword [0x180094020]
test rax, rax
jne 0x180004cd6
mov dword [rsp + 0x20], 0xe000c
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rdi
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.1800016a0
mov rcx, rax
lea rdx, str.GetAsyncKeyState
call fcn.180001530
mov qword [0x180094020], rax
mov ecx, 4
call rax
test ax, ax
mov rax, qword [0x180093e20]
lea rcx, [rax + 0x4d0]
je 0x180004d2b
movss xmm0, dword [0x180092ba0]
cmp rcx, 0x400000
jbe 0x180004d5e
add rax, 0x4d8
cmp rax, rbx
jae 0x180004d5e
mov rax, qword [rcx]
lea rcx, [rax + 0x74]
cmp rcx, 0x400000
jbe 0x180004d5e
add rax, 0x78
cmp rax, rbx
jae 0x180004d5e
movss dword [rcx], xmm0
jmp 0x180004d5e
cmp rcx, 0x400000
jbe 0x180004d5e
add rax, 0x4d8
cmp rax, rbx
jae 0x180004d5e
mov rax, qword [rcx]
lea rcx, [rax + 0x74]
cmp rcx, 0x400000
jbe 0x180004d5e
add rax, 0x78
cmp rax, rbx
jae 0x180004d5e
mov dword [rcx], 0x40400000
cmp byte [0x180093d38], 0
je 0x180004df9
mov rax, qword [0x180093ff8]
test rax, rax
jne 0x180004daf
mov dword [rsp + 0x20], 0xe000c
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rdi
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.1800016a0
mov rcx, rax
lea rdx, str.GetAsyncKeyState
call fcn.180001530
mov qword [0x180093ff8], rax
mov ecx, 5
call rax
test ax, ax
mov rax, qword [0x180093e20]
lea rcx, [rax + 0x4b0]
je 0x180004de2
cmp rcx, 0x400000
jbe 0x180004df9
add rax, 0x4b1
cmp rax, rbx
jae 0x180004df9
mov byte [rcx], 1
jmp 0x180004df9
cmp rcx, 0x400000
jbe 0x180004df9
add rax, 0x4b1
cmp rax, rbx
jae 0x180004df9
mov byte [rcx], 0
cmp byte [0x180093d47], 0
je 0x180004e67
mov rax, qword [0x1800940b0]
lea rcx, [rax + 0x2ff7fe0]
cmp rcx, 0x400000
jbe 0x180004e67
add rax, 0x2ff7fe8
cmp rax, rbx
jae 0x180004e67
mov rax, qword [rcx]
lea rcx, [rax + 0xb8]
cmp rcx, 0x400000
jbe 0x180004e67
add rax, 0xc0
cmp rax, rbx
jae 0x180004e67
mov rax, qword [rcx]
lea rcx, [rax + 0x18]
cmp rcx, 0x400000
jbe 0x180004e67
add rax, 0x1c
cmp rax, rbx
jae 0x180004e67
movss xmm0, dword [0x180092b98]
movss dword [rcx], xmm0
cmp byte [0x180093d46], 0
je 0x180004e98
mov rax, qword [0x180093e20]
lea rcx, [rax + 0x6c0]
cmp rcx, 0x400000
jbe 0x180004e98
add rax, 0x6c4
cmp rax, rbx
jae 0x180004e98
mov dword [rcx], 0x3e19999a
cmp byte [0x180093d4d], 0
je 0x180004ec6
mov rax, qword [0x180093e20]
lea rcx, [rax + 0x6b8]
cmp rcx, 0x400000
jbe 0x180004ec6
add rax, 0x6b9
cmp rax, rbx
jae 0x180004ec6
mov byte [rcx], 0
cmp byte [0x180093d2d], 0
je 0x180004f34
mov rax, qword [0x180093e20]
lea rcx, [rax + 0x6bc]
add rax, 0x6c0
cmp rcx, 0x400000
jbe 0x180004f34
cmp rax, rbx
jae 0x180004f34
movss xmm1, dword [rcx]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
je 0x180004f20
comiss xmm1, dword [0x180089460]
jbe 0x180004f0f
comiss xmm1, dword [0x180089488]
jb 0x180004f18
comiss xmm1, dword [0x18008948c]
jbe 0x180004f34
mov dword [rcx], 0x3e19999a
jmp 0x180004f34
cmp rcx, 0x400000
jbe 0x180004f34
cmp rax, rbx
jae 0x180004f34
mov dword [rcx], 0xbdcccccd
xor ecx, ecx
cmp byte [0x180093d3e], cl
je 0x180004fa3
mov rax, qword [0x180093e20]
lea rdx, [rax + 0x4d0]
cmp rdx, 0x400000
jbe 0x180004fa3
add rax, 0x4d8
cmp rax, rbx
jae 0x180004fa3
mov rdx, qword [rdx]
mov r8, rdx
lea r9, [rdx + 0xb4]
cmp r9, 0x400000
jbe 0x180004f85
lea rax, [rdx + 0xb8]
cmp rax, rbx
jae 0x180004f85
mov dword [r9], ecx
lea rdx, [r8 + 0xb8]
cmp rdx, 0x400000
jbe 0x180004fa3
lea rax, [r8 + 0xbc]
cmp rax, rbx
jae 0x180004fa3
mov dword [rdx], ecx
cmp byte [0x180093d3d], cl
je 0x180004fd3
mov rax, qword [0x180093e20]
lea rdx, [rax + 0x6c4]
cmp rdx, 0x400000
jbe 0x180004fd3
add rax, 0x6c8
cmp rax, rbx
jae 0x180004fd3
mov dword [rdx], 0x3f800000
cmp byte [0x180093d3b], cl
je 0x180005014
mov rax, qword [0x180093e20]
lea rdx, [rax + 0x5f8]
add rax, 0x5fc
cmp rdx, 0x400000
jbe 0x180005014
cmp rax, rbx
jae 0x180005001
mov ecx, dword [rdx]
jmp 0x18000500f
cmp rdx, 0x400000
jbe 0x180005014
cmp rax, rbx
jae 0x180005014
or ecx, 4
mov dword [rdx], ecx
cmp byte [0x180093d39], 0
je 0x180005039
mov ecx, 0x56
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180005039
mov rcx, qword [0x180093e20]
call fcn.180001e90
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret