Function at 0x180048f40
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
sub rsp, 0x68
cmp byte [0x18012d2d8], 0
je 0x180048165
mov qword [r11 + 0x18], rsi
movabs rsi, 0x142671fb0
mov rsi, qword [rsi]
test rsi, rsi
je 0x18004815d
movabs rax, 0x142670d80
mov rax, qword [rax]
test rax, rax
je 0x18004815d
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x18004815d
cmp qword [rcx + 0x130], 0
je 0x18004815d
mov qword [r11 + 8], rbx
mov rbx, qword [rax + 0x60]
test rbx, rbx
je 0x180048158
mov rbx, qword [rbx + 0x540]
mov qword [r11 + 0x10], rbp
movabs rbp, 0xefffffffeffff
lea rax, [rbx - 0x10000]
cmp rax, rbp
ja 0x180048153
mov rcx, qword [rbx]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180048153
mov qword [r11 - 8], r14
movabs r14, 0xfffffffebfffffff
lea rax, [rcx + r14]
cmp rax, 0xffffffd
ja 0x18004814e
mov rcx, rbx
mov qword [r11 + 0x20], rdi
call fcn.1800413e0
mov rdi, rax
lea rcx, [rax - 0x10000]
cmp rcx, rbp
ja 0x180048146
mov rax, qword [rax]
lea rcx, [rax - 0x10000]
cmp rcx, rbp
ja 0x180048146
lea rcx, [rax + r14]
cmp rcx, 0xffffffd
ja 0x180048146
mov rcx, qword [rdi + 0x140]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180048146
movss xmm1, dword [rcx + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
seta al
test al, al
je 0x180048146
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
test al, al
je 0x180048146
mov rcx, qword [rbx + 0x14c0]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180048146
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rbp
ja 0x180048146
lea rax, [rdx + r14]
cmp rax, 0xffffffd
ja 0x180048146
mov rcx, qword [rcx + 0x30]
lea rax, [rcx - 0x10000]
cmp rax, rbp
ja 0x180048146
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rbp
ja 0x180048146
lea rax, [rdx + r14]
cmp rax, 0xffffffd
ja 0x180048146
mov eax, dword [rcx + 0xe8]
sub eax, 0x3c
cmp eax, 1
ja 0x180048146
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x180048146
add rbx, 4
je 0x180048146
mov rax, qword [rdi]
mov rcx, rdi
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm9
call qword [rax + 0x1e8]
movss xmm1, dword [0x180116ed0]
movss xmm2, dword [0x180116674]
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 0x180048033
movaps xmm0, xmm3
andps xmm0, xmm1
comiss xmm2, xmm0
jbe 0x180048033
movaps xmm0, xmm8
andps xmm0, xmm1
comiss xmm2, xmm0
ja 0x18004813a
movsd xmm1, qword [0x180116778]
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 [0x180116778]
movaps xmm7, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x180116778]
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 0x18004808f
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x180048097
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mulsd xmm0, qword [0x180116788]
movsd xmm1, qword [0x1801167e8]
movsd xmm2, qword [0x1801167e0]
movaps xmm7, xmmword [rsp + 0x50]
comisd xmm1, xmm0
jbe 0x1800480d4
comisd xmm0, xmm2
jbe 0x1800480d4
xor eax, eax
mov dword [rbx + 8], 0x3f800000
mov dword [rbx + 0x200], eax
mov dword [rbx + 0x40], eax
jmp 0x18004812a
comisd xmm0, xmmword [0x1801167f0]
jb 0x180048113
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 0x18004813a
comisd xmm2, xmm0
jb 0x18004813a
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.180049f40
cmp byte [0x18012d0b0], 0
movabs rbx, 0x1423717c0
je 0x180048f85
mov rax, qword [rbx]
test rax, rax
je 0x180048f85
mov byte [rax + 0x54], 1
cmp byte [0x18012d0a9], 0
movabs rsi, 0xefffffffeffff
movabs rbp, 0x142671fb0
movabs r15, 0x142670d80
movabs r12, 0xfffffffebfffffff
je 0x18004906a
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x1801348c0]
movsxd rcx, dword [0x18012d0ac]
cmp rax, rcx
jbe 0x18004906a
mov rax, qword [r15]
test rax, rax
je 0x18004906a
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x18004906a
mov rcx, qword [rcx + 0x540]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x18004906a
mov rcx, qword [rcx]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x18004906a
lea rax, [rcx + r12]
cmp rax, 0xffffffd
ja 0x18004906a
mov rax, qword [rbp]
test rax, rax
je 0x18004906a
mov rax, qword [rax + 8]
test rax, rax
je 0x18004906a
add rax, 4
je 0x18004906a
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 [0x1801348c0], rax
cmp byte [0x18012d0b1], 0
je 0x18004908a
mov rax, qword [rbx]
test rax, rax
je 0x18004908a
mov byte [rax + 0x5d], 0
mov dword [rax + 0x55], 0
mov byte [rax + 0x59], 0
xor ebx, ebx
movabs r14, 0x1423b2ec8
cmp byte [0x18012d0a8], bl
je case.default.0x1800491a7
mov rax, qword [r15]
test rax, rax
je case.default.0x1800491a7
mov rcx, qword [rax + 0x60]
test rcx, rcx
je case.default.0x1800491a7
mov rcx, qword [rcx + 0x540]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x1800491a7
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja case.default.0x1800491a7
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja case.default.0x1800491a7
call fcn.1800413e0
lea rcx, [rax - 0x10000]
cmp rcx, rsi
ja case.default.0x1800491a7
mov rdx, qword [rax]
lea rcx, [rdx - 0x10000]
cmp rcx, rsi
ja case.default.0x1800491a7
lea rcx, [rdx + r12]
cmp rcx, 0xffffffd
ja case.default.0x1800491a7
mov rcx, qword [rax + 0x140]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x1800491a7
movss xmm1, dword [rcx + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
seta al
test al, al
je case.default.0x1800491a7
mov rax, qword [r14]
test rax, rax
je case.default.0x1800491a7
mov rdx, qword [rax + 0x78]
test rdx, rdx
je case.default.0x1800491a7
mov rdx, qword [rdx + 8]
test rdx, rdx
je case.default.0x1800491a7
mov rcx, qword [rax + 0x138]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja case.default.0x1800491a7
movsxd rax, dword [rcx + 0x80]
cmp eax, 0x14
ja case.default.0x1800491a7
lea r8, [0x180000000]
movzx eax, byte [r8 + rax + 0x49400]
mov ecx, dword [r8 + rax*4 + 0x493fc]
add rcx, r8
jmp rcx
mov qword [rdx + 0x440], 0x42c80000
cmp byte [0x18012d0b2], bl
mov qword [rsp + 0x70], rdi
je 0x1800492f3
mov rax, qword [r15]
test rax, rax
je 0x1800492f3
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x1800492f3
mov rdi, qword [rdi + 0x540]
lea rax, [rdi - 0x10000]
cmp rax, rsi
ja 0x1800492f3
mov rdx, qword [rdi]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja 0x1800492f3
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja 0x1800492f3
mov rcx, rdi
call qword [rdx + 0x20]
test al, al
je 0x1800492f3
mov rcx, qword [rdi + 0x14c0]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x1800492f3
mov rcx, qword [rcx]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x1800492f3
lea rax, [rcx + r12]
cmp rax, 0xffffffd
ja 0x1800492f3
mov rcx, qword [r14]
lea rax, [rcx - 0x10000]
cmp rax, rsi
ja 0x1800492f3
mov rdx, qword [rcx]
lea rax, [rdx - 0x10000]
cmp rax, rsi
ja 0x1800492f3
lea rax, [rdx + r12]
cmp rax, 0xffffffd
ja 0x1800492f3
cmp dword [rcx + 0x1a0], 0xffffffff
jne 0x1800492f3
mov rdi, qword [rbp]
test rdi, rdi
je 0x1800492f3
mov rax, qword [rdi + 0x58]
test rax, rax
je 0x1800492f3
mov rax, qword [rax + 0x10]
test rax, rax
je 0x1800492f3
movss xmm0, dword [rcx + 0x1b0]
comiss xmm0, dword [0x18012d0b4]
jb 0x1800492cb
mov byte [rax + 0x110], bl
jmp 0x1800492f3
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x1800492f3
mov rax, qword [rdi + 8]
test rax, rax
je 0x1800492f3
add rax, 4
je 0x1800492f3
mov dword [rax + 0x28], 0x3f800000
call fcn.180048170
cmp byte [0x18012d07c], bl
mov r14, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
je 0x1800493dc
mov rax, qword [r15]
test rax, rax
je 0x1800493cf
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x1800493cf
mov rdx, qword [0x18012d498]
cmp qword [0x18012d490], rdx
cmovne rdx, qword [0x18012d490]
mov qword [0x18012d498], 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 0x1800493c2
test rcx, rcx
je 0x1800493c2
mov r8, qword [rcx]
lea rax, [r8 - 0x10000]
cmp rax, rsi
ja 0x1800493c2
test r8, r8
je 0x1800493c2
lea rax, [r8 + r12]
cmp rax, 0xffffffd
ja 0x1800493c2
cmp rdx, qword [0x18012d4a0]
je 0x1800493b1
mov qword [rdx], rcx
mov rdx, qword [0x18012d498]
add rdx, 8
mov qword [0x18012d498], rdx
jmp 0x1800493c2
lea r8, [rsp + 0x60]
call fcn.180042c40
mov rdx, qword [0x18012d498]
add rbx, 8
cmp rbx, 0x230
jl 0x180049350
call fcn.180042070
movaps xmm0, xmm6
call fcn.1800425c0
call fcn.180049420
mov rdi, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x38
pop r15
pop r12
pop rsi
pop rbx
jmp 0x180047df0