Function at 0x180004910
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
mov rcx, qword [0x1801358e8]
call fcn.180001ae0
test al, al
je 0x180004ca6
mov qword [rsp + 0x20], rdi
xor edi, edi
cmp byte [0x18013578f], dil
mov qword [rsp + 0x38], rbx
je 0x18000497e
call fcn.180006350
mov rcx, rax
mov rbx, rax
call fcn.180001ae0
test al, al
je 0x180004958
mov byte [rbx + 0x41c], 1
mov rax, qword [0x180135820]
mov rbx, qword [rax + 0x8b97018]
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x1800049ba
mov dword [rbx + 0x20], edi
mov dword [rbx + 0x24], 0xbfc00000
jmp 0x1800049b7
call fcn.180006350
mov rcx, rax
mov rbx, rax
call fcn.180001ae0
test al, al
je 0x180004999
mov byte [rbx + 0x41c], dil
mov rax, qword [0x180135820]
mov rbx, qword [rax + 0x8b97018]
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x1800049ba
mov qword [rbx + 0x20], rdi
mov dword [rbx + 0x28], edi
cmp byte [0x18013579c], dil
je 0x1800049ea
mov rax, qword [0x180135820]
mov rbx, qword [rax + 0x8b97018]
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x1800049ea
movss xmm0, dword [0x180135a98]
movss dword [rbx + 0x18], xmm0
cmp byte [0x18013578a], dil
je 0x180004a08
call fcn.1800174c0
mov rcx, rax
call fcn.180018110
mov rcx, rax
call fcn.180018630
cmp byte [0x18013578b], dil
je 0x180004a6e
call fcn.180017b80
mov rcx, rax
mov rbx, rax
call fcn.180001ae0
test al, al
jne 0x180004a2a
mov rbx, rdi
jmp 0x180004a54
mov rbx, qword [rbx + 0x90]
mov rcx, rbx
call fcn.180001ae0
test al, al
jne 0x180004a42
mov rbx, rdi
jmp 0x180004a54
mov rbx, qword [rbx + 0x30]
mov rcx, rbx
call fcn.180001ae0
test al, al
cmove rbx, rdi
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x180004a6e
mov dword [rbx + 0x60], 0x461c3c00
mov dword [rbx + 0x64], 0x461c3c00
cmp byte [0x18013578d], dil
je 0x180004c9c
call fcn.180017b80
mov rcx, rax
mov rbx, rax
call fcn.180001ae0
test al, al
jne 0x180004a94
mov rbx, rdi
jmp 0x180004abe
mov rbx, qword [rbx + 0x90]
mov rcx, rbx
call fcn.180001ae0
test al, al
jne 0x180004aac
mov rbx, rdi
jmp 0x180004abe
mov rbx, qword [rbx + 0x48]
mov rcx, rbx
call fcn.180001ae0
test al, al
cmove rbx, rdi
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x180004bcf
lea rcx, [rbx + 0x40]
mov qword [rsp + 0x40], rsi
call fcn.180001ae0
test al, al
je 0x180004af0
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x180004af0
mov qword [0x180135b00], rax
lea rcx, [rbx + 0x40]
call fcn.180001ae0
test al, al
je 0x180004b01
mov qword [rbx + 0x40], rdi
mov ecx, 0xa0
mov byte [0x180135aa8], 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rsi, qword [rsp + 0x40]
test ax, ax
je 0x180004b9a
lea rcx, [rsp + 0x30]
call fcn.180001920
mov rax, qword [rsp + 0x30]
xorps xmm0, xmm0
sub rax, qword [0x180135850]
cvtsi2ss xmm0, rax
divss xmm0, dword [0x18007a5c0]
comiss xmm0, dword [0x18007a438]
jb 0x180004b91
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x180004b7d
mov edx, 1
mov rcx, rbx
call qword [0x180135860]
lea rcx, [rbx + 0x88]
call fcn.180001ae0
test al, al
je 0x180004b7d
mov byte [rbx + 0x88], 1
lea rcx, [rsp + 0x30]
call fcn.180001920
mov rcx, qword [rax]
mov qword [0x180135850], rcx
mov byte [0x180135af8], 1
jmp 0x180004bcf
mov rcx, rbx
mov byte [0x180135af8], dil
call fcn.180001ae0
test al, al
je 0x180004bcf
xor edx, edx
mov rcx, rbx
call qword [0x180135860]
lea rcx, [rbx + 0x88]
call fcn.180001ae0
test al, al
je 0x180004bcf
mov byte [rbx + 0x88], dil
call fcn.180017b80
mov rcx, rax
mov rbx, rax
call fcn.180001ae0
test al, al
jne 0x180004be8
mov rbx, rdi
jmp 0x180004c21
mov rbx, qword [rbx + 0x90]
mov rcx, rbx
call fcn.180001ae0
test al, al
jne 0x180004c00
mov rbx, rdi
jmp 0x180004c21
mov rdx, rbx
lea rcx, str.Entity_Array_____p__n
call fcn.1800018c0
mov rbx, qword [rbx + 0x58]
mov rcx, rbx
call fcn.180001ae0
test al, al
cmove rbx, rdi
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x180004c34
mov qword [rbx + 0x158], rdi
call fcn.180017b80
mov rcx, rax
mov rbx, rax
call fcn.180001ae0
test al, al
je 0x180004c70
mov rbx, qword [rbx + 0x90]
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x180004c70
mov rbx, qword [rbx + 0x48]
mov rcx, rbx
call fcn.180001ae0
test al, al
cmove rbx, rdi
mov rdi, rbx
mov rcx, rdi
call fcn.180001ae0
test al, al
je 0x180004c9c
lea rcx, [rdi + 0x88]
call fcn.180001ae0
test al, al
je 0x180004c9c
cmp byte [rdi + 0x88], 0
je 0x180004c9c
mov dl, 1
call fcn.180017700
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret