Function at 0x140099210
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rdi
lea rbp, [rax - 0xf8]
sub rsp, 0x1e0
cmp qword [0x14036eaa8], 0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
je 0x14009934b
cmp qword [0x140391a28], 0
je 0x14009934b
mov ecx, dword [0x14039142c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
test ax, ax
je 0x14009933e
cmp byte [0x140391430], bl
je 0x1400993df
mov rdi, qword [0x14036eaa8]
test rdi, rdi
je 0x14009933e
mov edx, dword [0x140390b94]
add rdx, rdi
call fcn.140029ee0
cmp al, 0x24
je 0x14009933e
test al, al
je 0x14009933e
cmp al, 4
jne 0x14009937a
add rdi, 0x2c
je 0x140099327
mov eax, dword [0x140390278]
mov rdx, qword [0x140390b00]
mov dword [rsp + 0x78], eax
mov eax, dword [0x140390270]
mov dword [rsp + 0x44], eax
mov eax, dword [0x140390274]
mov dword [rsp + 0x48], eax
lea rax, [rbp + 0x100]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x60], 1
test rdx, rdx
je 0x14009932e
lea rcx, [rsp + 0x40]
call rdx
test rax, rax
je 0x140099327
mov rdx, qword [0x140390b00]
movzx eax, byte [rbp + 0x100]
jmp 0x140099336
mov rdx, qword [0x140390b00]
xor al, al
mov byte [rbp + 0x100], al
test al, 1
je 0x1400993e6
mov byte [0x14036eab0], bl
mov qword [0x14036eaa8], rbx
xor al, al
lea r11, [rsp + 0x1e0]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop rdi
pop rbx
pop rbp
ret
cmp al, 8
jne 0x1400993df
add rdi, 0x2c
je 0x1400993d0
mov eax, dword [0x140390278]
mov rdx, qword [0x140390b00]
mov dword [rbp - 0x48], eax
mov eax, dword [0x140390270]
mov dword [rbp - 0x7c], eax
mov eax, dword [0x140390274]
mov dword [rbp - 0x78], eax
lea rax, [rbp + 0x108]
mov qword [rbp - 0x68], rax
mov dword [rbp - 0x80], ebx
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x60], 1
test rdx, rdx
je 0x1400993d7
lea rcx, [rbp - 0x80]
call rdx
test rax, rax
jne 0x1400993df
mov rdx, qword [0x140390b00]
mov byte [rbp + 0x108], bl
jmp 0x1400993e6
mov rdx, qword [0x140390b00]
mov rax, qword [0x140391a38]
test rax, rax
je 0x14009944a
lea rcx, [rax + 0x3c0]
test rcx, rcx
je 0x14009944a
mov eax, dword [0x140390278]
mov dword [rbp - 8], eax
mov eax, dword [0x140390270]
mov dword [rbp - 0x3c], eax
mov eax, dword [0x140390274]
mov dword [rbp - 0x38], eax
lea rax, [rbp + 0x110]
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x40], ebx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x20], 8
test rdx, rdx
je 0x14009944a
lea rcx, [rbp - 0x40]
call rdx
mov rdx, qword [rbp + 0x110]
test rax, rax
jne 0x14009944d
mov rdx, rbx
mov r9d, 0x3f0
lea r8, [0x140390290]
call fcn.1400ae510
movss xmm1, dword [0x140339374]
movss xmm8, dword [0x1403902f0]
comiss xmm8, xmm1
movss xmm6, dword [0x1403902f4]
movss xmm12, dword [0x1403902f8]
movss xmm0, dword [0x140339118]
jbe 0x1400994af
comiss xmm8, xmm0
jae 0x1400994af
comiss xmm6, xmm1
jbe 0x1400994af
comiss xmm6, xmm0
jae 0x1400994af
comiss xmm12, xmm1
jbe 0x1400994af
comiss xmm12, xmm0
jb 0x14009934b
movss xmm11, dword [0x1403902d0]
comiss xmm11, xmm1
movss xmm10, dword [0x1403902d4]
movss xmm9, dword [0x1403902d8]
jbe 0x1400994f2
comiss xmm11, xmm0
jae 0x1400994f2
comiss xmm10, xmm1
jbe 0x1400994f2
comiss xmm10, xmm0
jae 0x1400994f2
comiss xmm9, xmm1
jbe 0x1400994f2
comiss xmm9, xmm0
jb 0x14009934b
movsxd rax, dword [0x14039143c]
mov r8d, ebx
movaps xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x160], xmm13
movaps xmmword [rsp + 0x150], xmm14
movaps xmmword [rsp + 0x140], xmm15
cmp eax, 6
ja case.0x140099535.0
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x998b0]
add rcx, rdx
jmp rcx
mov r8d, 7
jmp case.0x140099535.0
mov r8d, 8
jmp case.0x140099535.0
mov r8d, 6
jmp case.0x140099535.0
mov r8d, 5
jmp case.0x140099535.0
mov r8d, 4
jmp case.0x140099535.0
mov r8d, 3
mov rcx, qword [0x14036eaa8]
lea rdx, [rsp + 0x20]
call fcn.140114630
movss xmm13, dword [rsp + 0x24]
movaps xmm0, xmm8
movss xmm14, dword [rsp + 0x20]
movaps xmm2, xmm6
movss xmm15, dword [rsp + 0x28]
subss xmm2, xmm13
movss xmm3, dword [0x1403391c4]
subss xmm0, xmm14
movaps xmm1, xmm12
movaps xmm7, xmm14
subss xmm1, xmm15
subss xmm7, xmm8
movaps xmm8, xmm13
mulss xmm2, xmm2
subss xmm8, xmm6
mulss xmm0, xmm0
movaps xmm6, xmm15
mulss xmm1, xmm1
subss xmm6, xmm12
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
movaps xmm1, xmm3
sqrtss xmm0, xmm2
divss xmm1, xmm0
mulss xmm7, xmm1
mulss xmm8, xmm1
mulss xmm6, xmm1
movss xmm1, dword [0x140391438]
comiss xmm1, xmm3
jbe 0x140099628
subss xmm7, xmm11
movaps xmm0, xmm3
divss xmm0, xmm1
subss xmm8, xmm10
mulss xmm7, xmm0
mulss xmm8, xmm0
addss xmm7, xmm11
addss xmm8, xmm10
movss xmm0, dword [0x140391448]
comiss xmm0, xmm3
jbe 0x140099643
subss xmm6, xmm9
divss xmm6, xmm0
addss xmm6, xmm9
subss xmm9, dword [0x140390668]
mov rax, qword [0x140391a38]
movaps xmm0, xmm6
movss dword [rsp + 0x20], xmm7
movss dword [rsp + 0x24], xmm8
subss xmm0, xmm9
movss dword [rsp + 0x28], xmm0
test rax, rax
jne 0x14009967c
mov rdx, qword [0x140390b00]
jmp 0x1400996f9
lea rdx, [rax + 0x3c0]
test rdx, rdx
je 0x1400996eb
mov ecx, dword [0x140390278]
mov dword [rbp - 8], ecx
mov ecx, dword [0x140390270]
mov dword [rbp - 0x3c], ecx
mov ecx, dword [0x140390274]
mov qword [rbp - 0x30], rdx
mov rdx, qword [0x140390b00]
mov dword [rbp - 0x38], ecx
lea rcx, [rbp + 0x100]
mov qword [rbp - 0x28], rcx
mov dword [rbp - 0x40], ebx
mov qword [rbp - 0x20], 8
test rdx, rdx
je 0x1400996f2
lea rcx, [rbp - 0x40]
call rdx
mov rdx, qword [0x140390b00]
test rax, rax
mov rax, qword [0x140391a38]
je 0x1400996f2
mov rcx, qword [rbp + 0x100]
jmp 0x1400996fc
mov rdx, qword [0x140390b00]
mov qword [rbp + 0x100], rbx
mov rcx, rbx
lea r8, [rcx + 0x3d0]
test r8, r8
je 0x140099758
mov ecx, dword [0x140390278]
mov dword [rbp - 0x48], ecx
mov ecx, dword [0x140390270]
mov dword [rbp - 0x7c], ecx
mov ecx, dword [0x140390274]
mov dword [rbp - 0x78], ecx
lea rcx, [rsp + 0x20]
mov qword [rbp - 0x68], rcx
mov dword [rbp - 0x80], 1
mov qword [rbp - 0x70], r8
mov qword [rbp - 0x60], recvfrom
test rdx, rdx
je 0x140099758
lea rcx, [rbp - 0x80]
call rdx
mov rax, qword [0x140391a38]
mov rdx, qword [0x140390b00]
movss dword [rsp + 0x30], xmm7
movaps xmm7, xmmword [rsp + 0x1c0]
movss dword [rsp + 0x34], xmm8
movss dword [rsp + 0x38], xmm6
test rax, rax
je 0x1400997e8
lea rcx, [rax + 0x3c0]
test rcx, rcx
je 0x1400997e1
mov eax, dword [0x140390278]
mov dword [rsp + 0x78], eax
mov eax, dword [0x140390270]
mov dword [rsp + 0x44], eax
mov eax, dword [0x140390274]
mov dword [rsp + 0x48], eax
lea rax, [rbp + 0x108]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], 8
test rdx, rdx
je 0x1400997e1
lea rcx, [rsp + 0x40]
call rdx
mov rdx, qword [0x140390b00]
test rax, rax
je 0x1400997e1
mov rbx, qword [rbp + 0x108]
jmp 0x1400997e8
mov qword [rbp + 0x108], rbx
add rbx, 0x40
je 0x140099830
mov eax, dword [0x140390278]
mov dword [rbp + 0x38], eax
mov eax, dword [0x140390270]
mov dword [rbp + 4], eax
mov eax, dword [0x140390274]
mov dword [rbp + 8], eax
lea rax, [rsp + 0x30]
mov qword [rbp + 0x18], rax
mov dword [rbp], 1
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x20], recvfrom
test rdx, rdx
je 0x140099830
lea rcx, [rbp]
call rdx
cmp byte [0x140391444], 0
je 0x14009988e
cmp byte [0x140391430], 0
jne 0x14009988e
mov edx, dword [0x140390bc0]
add rdx, qword [0x140391a28]
call fcn.1400035c0
lea rdx, [rax + 0x78]
call fcn.1400035c0
mov edx, dword [0x140390b80]
add rdx, rax
call fcn.1400035c0
lea r8, [rsp + 0x30]
movss dword [rsp + 0x30], xmm14
movss dword [rsp + 0x34], xmm13
movss dword [rsp + 0x38], xmm15
lea rdx, [rax + 0x20]
call fcn.140005b10
movaps xmm15, xmmword [rsp + 0x140]
mov al, 1
movaps xmm14, xmmword [rsp + 0x150]
movaps xmm13, xmmword [rsp + 0x160]
jmp 0x14009934d