Function at 0x180029e70
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
sub rsp, 0x30
movss xmm0, dword [0x1803ef6ac]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], r14
movaps xmmword [rsp + 0x20], xmm6
xorps xmm6, xmm6
ucomiss xmm0, xmm6
mov r14d, 4
jne 0x180029edf
call fcn.180015bb0
mov rbx, rax
test rax, rax
je 0x180029ed7
mov ecx, dword [0x1803ef330]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rcx*8]
mov eax, dword [r14 + rax]
cmp dword [0x180425930], eax
jg 0x18002a10e
mov rax, qword [0x180425798]
movss xmm6, dword [rax + rbx]
movss dword [0x1803ef6ac], xmm6
call fcn.180015bb0
mov rcx, qword [0x1803ef4f0]
movabs rsi, 0x7fffffff0000
add rcx, 0x3981d08
cmp rcx, 0x40000
jbe 0x180029f2f
lea rax, [rcx + 8]
cmp rax, rsi
jae 0x180029f2f
mov rbx, qword [rcx]
add rbx, 0xb8
cmp rbx, 0x40000
jbe 0x180029f2f
lea rax, [rbx + 8]
cmp rax, rsi
jae 0x180029f2f
mov rbx, qword [rbx]
jmp 0x180029f31
xor ebx, ebx
cmp byte [0x1803ef599], 0
je 0x180029f69
mov ecx, dword [0x1803ef640]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180029f69
lea rcx, [rbx + 0x18]
cmp rcx, 0x40000
jbe 0x180029f8b
lea rax, [rcx + 4]
cmp rax, rsi
jae 0x180029f8b
mov dword [rcx], 0x41200000
jmp 0x180029f8b
add rbx, 0x18
cmp rbx, 0x40000
jbe 0x180029f8b
lea rax, [rbx + 4]
cmp rax, rsi
jae 0x180029f8b
movss xmm0, dword [0x18029e2c8]
movss dword [rbx], xmm0
cmp byte [0x1803ef5f8], 0
mov rbx, qword [rsp + 0x40]
je 0x180029fcb
mov rax, qword [0x1803ef4f0]
add rax, 0x289f070
call rax
movss xmm1, dword [0x18029e2d4]
mov rcx, rax
mov rdx, qword [0x1803ef4f0]
mulss xmm1, dword [0x1802868e4]
add rdx, 0x289f8a0
call rdx
cmp byte [0x1803ef613], 0
je 0x18002a012
call fcn.180015bb0
lea rcx, [rax + 0x8f0]
cmp rcx, 0x40000
jbe 0x18002a012
lea rax, [rcx + 4]
cmp rax, rsi
jae 0x180029ff9
mov edx, dword [rcx]
or edx, 4
jmp 0x18002a010
cmp rcx, 0x40000
jbe 0x18002a012
lea rax, [rcx + 4]
mov edx, 4
cmp rax, rsi
jae 0x18002a012
mov dword [rcx], edx
cmp byte [0x1803ef5eb], 0
je 0x18002a05b
call fcn.180015bb0
lea rcx, [rax + 0x8f0]
cmp rcx, 0x40000
jbe 0x18002a05b
lea rax, [rcx + 4]
cmp rax, rsi
jae 0x18002a03d
mov edx, dword [rcx]
jmp 0x18002a051
cmp rcx, 0x40000
jbe 0x18002a05b
xor edx, edx
lea rax, [rcx + 4]
cmp rax, rsi
jae 0x18002a05b
xor eax, eax
cmp edx, 4
sete al
mov dword [rcx], eax
cmp byte [0x1803ef5fc], 0
je 0x18002a0a1
mov ecx, dword [0x1803ef330]
mov rax, qword gs:[0x58]
movss xmm6, dword [0x18029e2b4]
mov rax, qword [rax + rcx*8]
mov eax, dword [r14 + rax]
cmp dword [0x180425fc0], eax
jg 0x18002a149
mov rax, qword [0x1804256e8]
mov rcx, qword [rax + 0xb8]
movss dword [rcx], xmm6
cmp byte [0x1803ef626], 0
movaps xmm6, xmmword [rsp + 0x20]
mov r14, qword [rsp + 0x48]
je 0x18002a108
mov ecx, dword [0x1803ef65c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18002a108
call fcn.180015bb0
add rax, 0x8f8
cmp rax, 0x40000
jbe 0x18002a108
lea rcx, [rax + 8]
cmp rcx, rsi
jae 0x18002a108
mov rcx, qword [rax]
add rcx, 0x38
cmp rcx, 0x40000
jbe 0x18002a108
lea rax, [rcx + 0xc]
cmp rax, rsi
jae 0x18002a108
mov dword [rcx], 0
mov qword [rcx + 4], 0x3fc00000
add rsp, 0x30
pop rsi
ret
lea rcx, [0x180425930]
call fcn.18010bc98
cmp dword [0x180425930], 0xffffffff
jne 0x180029ecb
mov ecx, 0xc566d10
call fcn.18000f6e0
lea rcx, [0x180425930]
mov qword [0x180425798], rax
call fcn.18010bc2c
jmp 0x180029ecb
lea rcx, [0x180425fc0]
call fcn.18010bc98
cmp dword [0x180425fc0], 0xffffffff
jne 0x18002a08f
mov ecx, 0x75db24b0
call fcn.18000d5a0
lea rcx, [0x180425fc0]
mov qword [0x1804256e8], rax
call fcn.18010bc2c
jmp 0x18002a08f