Function at 0x1800484d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
sub rsp, 0x68
cmp byte [0x18012c2c8], 0
je 0x180047785
mov qword [r11 + 0x18], rsi
movabs rsi, 0x142671fb0
mov rsi, qword [rsi]
test rsi, rsi
je 0x18004777d
movabs rax, 0x142670d80
mov rax, qword [rax]
test rax, rax
je 0x18004777d
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x18004777d
cmp qword [rcx + 0x130], 0
je 0x18004777d
mov qword [r11 + 8], rbx
mov rbx, qword [rax + 0x60]
test rbx, rbx
je 0x180047778
mov rbx, qword [rbx + 0x540]
mov qword [r11 + 0x10], rbp
movabs rbp, 0xefffffffeffff
lea rax, [rbx - 0x10000]
cmp rax, rbp
ja 0x180047773
mov rcx, qword [rbx]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180047773
mov qword [r11 - 8], r14
movabs r14, 0xfffffffebfffffff
lea rax, [rcx + r14]
cmp rax, 0xffffffd
ja 0x18004776e
mov rcx, rbx
mov qword [r11 + 0x20], rdi
call fcn.180040c00
mov rdi, rax
lea rcx, [rax - 0x10000]
cmp rcx, rbp
ja 0x180047766
mov rax, qword [rax]
lea rcx, [rax - 0x10000]
cmp rcx, rbp
ja 0x180047766
lea rcx, [rax + r14]
cmp rcx, 0xffffffd
ja 0x180047766
mov rcx, qword [rdi + 0x140]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180047766
movss xmm1, dword [rcx + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
seta al
test al, al
je 0x180047766
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
test al, al
je 0x180047766
mov rcx, qword [rbx + 0x14c0]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180047766
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rbp
ja 0x180047766
lea rax, [rdx + r14]
cmp rax, 0xffffffd
ja 0x180047766
mov rcx, qword [rcx + 0x30]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180047766
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rbp
ja 0x180047766
lea rax, [rdx + r14]
cmp rax, 0xffffffd
ja 0x180047766
mov eax, dword [rcx + 0xe8]
sub eax, 0x3c
cmp eax, 1
ja 0x180047766
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x180047766
add rbx, 4
je 0x180047766
mov rax, qword [rdi]
mov rcx, rdi
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm9
call qword [rax + 0x1e8]
movss xmm1, dword [0x180115b10]
movss xmm2, dword [0x1801152b4]
movsd xmm9, qword [rax]
movss xmm8, dword [rax + 8]
movaps xmm0, xmm9
andps xmm0, xmm1
movaps xmm3, xmm9
comiss xmm2, xmm0
shufps xmm3, xmm3, 0x55
jbe 0x180047653
movaps xmm0, xmm3
andps xmm0, xmm1
comiss xmm2, xmm0
jbe 0x180047653
movaps xmm0, xmm8
andps xmm0, xmm1
comiss xmm2, xmm0
ja 0x18004775a
movsd xmm1, qword [0x1801153b0]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
movaps xmmword [rsp + 0x50], xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1801153b0]
movaps xmm7, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1801153b0]
addsd xmm7, xmm0
cvtps2pd xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm7
ja 0x1800476af
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x1800476b7
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mulsd xmm0, qword [0x1801153c0]
movsd xmm1, qword [0x180115420]
movsd xmm2, qword [0x180115418]
movaps xmm7, xmmword [rsp + 0x50]
comisd xmm1, xmm0
jbe 0x1800476f4
comisd xmm0, xmm2
jbe 0x1800476f4
xor eax, eax
mov dword [rbx + 8], 0x3f800000
mov dword [rbx + 0x200], eax
mov dword [rbx + 0x40], eax
jmp 0x18004774a
comisd xmm0, xmmword [0x180115428]
jb 0x180047733
xor eax, eax
mov dword [rbx + 0xc], 0x3f800000
mov dword [rbx + 0x200], eax
mov dword [rbx + 0x40], eax
mov dword [rbx], 0xbf800000
mov dword [rbx + 0x1d8], 0xbf800000
mov dword [rbx + 0xe8], 0x3f800000
mov dword [rbx + 0x44], 0x3f800000
jmp 0x18004775a
comisd xmm2, xmm0
jb 0x18004775a
mov dword [rbx + 0x200], 0x3f800000
mov dword [rbx + 0x40], 0x3f800000
mov dword [rbx + 0x1d8], 0x3f800000
mov dword [rbx], 0x3f800000
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x30]
mov rdi, qword [rsp + 0x88]
mov r14, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x68
ret
mov qword [rsp + 8], rcx
push rbx
push rsi
push r12
push r15
sub rsp, 0x38
movaps xmmword [rsp + 0x20], xmm6
movaps xmm6, xmm1
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x30], r14
call fcn.1800494d0
cmp byte [0x18012c0b0], 0
movabs rbx, 0x1423717c0
je 0x180048515
mov rax, qword [rbx]
test rax, rax
je 0x180048515
mov byte [rax + 0x54], 1
cmp byte [0x18012c0a9], 0
movabs rsi, 0xefffffffeffff
movabs rbp, 0x142671fb0
movabs r15, 0x142670d80
movabs r12, 0xfffffffebfffffff
je 0x1800485fa
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x1801338a0]
movsxd rcx, dword [0x18012c0ac]
cmp rax, rcx
jbe 0x1800485fa
mov rax, qword [r15]
test rax, rax
je 0x1800485fa
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x1800485fa
mov rcx, qword [rcx + 0x540]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x1800485fa
mov rcx, qword [rcx]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x1800485fa
lea rax, [rcx + r12]
cmp rax, 0xffffffd
ja 0x1800485fa
mov rax, qword [rbp]
test rax, rax
je 0x1800485fa
mov rax, qword [rax + 8]
test rax, rax
je 0x1800485fa
add rax, 4
je 0x1800485fa
mov dword [rax], 0x3f800000
mov dword [rax + 4], 0x3f800000
mov dword [rax + 0x1d8], 0xbf800000
mov dword [rax + 0x1e0], 0x3f800000
mov dword [rax + 0x1e4], 0x3f800000
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov qword [0x1801338a0], rax
cmp byte [0x18012c0b1], 0
je 0x18004861a
mov rax, qword [rbx]
test rax, rax
je 0x18004861a
mov byte [rax + 0x5d], 0
mov dword [rax + 0x55], 0
mov byte [rax + 0x59], 0
xor ebx, ebx
movabs r14, 0x1423b2ec8
cmp byte [0x18012c0a8], bl
je case.default.0x180048737
mov rax, qword [r15]
test rax, rax
je case.default.0x180048737
mov rcx, qword [rax + 0x60]
test rcx, rcx
je case.default.0x180048737
mov rcx, qword [rcx + 0x540]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x180048737
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja case.default.0x180048737
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja case.default.0x180048737
call fcn.180040c00
lea rcx, [rax - 0x10000]
cmp rcx, rsi
ja case.default.0x180048737
mov rdx, qword [rax]
lea rcx, [rdx - 0x10000]
cmp rcx, rsi
ja case.default.0x180048737
lea rcx, [rdx + r12]
cmp rcx, 0xffffffd
ja case.default.0x180048737
mov rcx, qword [rax + 0x140]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x180048737
movss xmm1, dword [rcx + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
seta al
test al, al
je case.default.0x180048737
mov rax, qword [r14]
test rax, rax
je case.default.0x180048737
mov rdx, qword [rax + 0x78]
test rdx, rdx
je case.default.0x180048737
mov rdx, qword [rdx + 8]
test rdx, rdx
je case.default.0x180048737
mov rcx, qword [rax + 0x138]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x180048737
movsxd rax, dword [rcx + 0x80]
cmp eax, 0x14
ja case.default.0x180048737
lea r8, [0x180000000]
movzx eax, byte [r8 + rax + 0x48990]
mov ecx, dword [r8 + rax*4 + 0x4898c]
add rcx, r8
jmp rcx
mov qword [rdx + 0x440], 0x42c80000
cmp byte [0x18012c0b2], bl
mov qword [rsp + 0x70], rdi
je 0x180048883
mov rax, qword [r15]
test rax, rax
je 0x180048883
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x180048883
mov rdi, qword [rdi + 0x540]
lea rax, [rdi - 0x10000]
cmp rax, rsi
ja 0x180048883
mov rdx, qword [rdi]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja 0x180048883
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja 0x180048883
mov rcx, rdi
call qword [rdx + 0x20]
test al, al
je 0x180048883
mov rcx, qword [rdi + 0x14c0]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180048883
mov rcx, qword [rcx]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180048883
lea rax, [rcx + r12]
cmp rax, 0xffffffd
ja 0x180048883
mov rcx, qword [r14]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180048883
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja 0x180048883
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja 0x180048883
cmp dword [rcx + 0x1a0], 0xffffffff
jne 0x180048883
mov rdi, qword [rbp]
test rdi, rdi
je 0x180048883
mov rax, qword [rdi + 0x58]
test rax, rax
je 0x180048883
mov rax, qword [rax + 0x10]
test rax, rax
je 0x180048883
movss xmm0, dword [rcx + 0x1b0]
comiss xmm0, dword [0x18012c0b4]
jb 0x18004885b
mov byte [rax + 0x110], bl
jmp 0x180048883
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180048883
mov rax, qword [rdi + 8]
test rax, rax
je 0x180048883
add rax, 4
je 0x180048883
mov dword [rax + 0x28], 0x3f800000
call fcn.180047790
cmp byte [0x18012c07c], bl
mov r14, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
je 0x18004896c
mov rax, qword [r15]
test rax, rax
je 0x18004895f
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x18004895f
mov rdx, qword [0x18012c488]
cmp qword [0x18012c480], rdx
cmovne rdx, qword [0x18012c480]
mov qword [0x18012c488], rdx
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdi + 0x548]
mov rcx, qword [rbx + rax]
mov qword [rsp + 0x60], rcx
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x180048952
test rcx, rcx
je 0x180048952
mov r8, qword [rcx]
lea rax, [r8 - 0x10000]
cmp rax, rsi
ja 0x180048952
test r8, r8
je 0x180048952
lea rax, [r8 + r12]
cmp rax, 0xffffffd
ja 0x180048952
cmp rdx, qword [0x18012c490]
je 0x180048941
mov qword [rdx], rcx
mov rdx, qword [0x18012c488]
add rdx, 8
mov qword [0x18012c488], rdx
jmp 0x180048952
lea r8, [rsp + 0x60]
call fcn.180042320
mov rdx, qword [0x18012c488]
add rbx, 8
cmp rbx, 0x230
jl 0x1800488e0
call fcn.1800416a0
movaps xmm0, xmm6
call fcn.180041bf0
call fcn.1800489b0
mov rdi, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x38
pop r15
pop r12
pop rsi
pop rbx
jmp 0x180047410