Function at 0x18000e570
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push r14
lea rbp, [r11 - 0x118]
sub rsp, 0x208
mov rax, qword [0x180118240]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov qword [r11 + 0x10], rbx
mov rbx, qword [0x180187ee8]
mov qword [r11 + 0x20], rdi
mov rdi, rcx
mov qword [r11 - 0x18], r12
mov qword [rbp - 0x20], rcx
lea rcx, [rbp + 0x38]
mov qword [r11 - 0x28], r15
movaps xmmword [r11 - 0x38], xmm6
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, str.Minecraft_Education
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowA]
mov rcx, rax
lea rdx, [rbp + 0x38]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm0, dword [rbp + 0x38]
mov ecx, 1
movd xmm1, dword [rbp + 0x3c]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx + 0xe00], xmm0
movss dword [rbx + 0xe04], xmm1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
mov ecx, 2
and al, 1
mov byte [rbx + 0xe08], al
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rbx + 0xe09], al
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x18]
mov dword [rbx + 0x40], 0x3f000000
call fcn.180042160
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x60]
movdqa xmm6, xmmword [0x180108290]
mov dword [rsp + 0x60], 0xa
movups xmm0, xmmword [rbx + 0x3950]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x64], xmm0
call fcn.18004d020
movups xmmword [rbx + 0x3950], xmm6
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x60]
movdqa xmm6, xmmword [0x180108200]
mov dword [rsp + 0x60], 0xb
movups xmm0, xmmword [rbx + 0x3960]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x64], xmm0
call fcn.18004d020
movups xmmword [rbx + 0x3960], xmm6
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x60]
movdqa xmm6, xmmword [0x180108270]
mov dword [rsp + 0x60], 2
movups xmm0, xmmword [rbx + 0x38d0]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x64], xmm0
call fcn.18004d020
movups xmmword [rbx + 0x38d0], xmm6
mov rax, qword [rdi + 0x68]
xor r12d, r12d
mov r15d, 0x226
mov edx, r12d
mov dword [rsp + 0x58], r15d
mov r14d, 3
mov qword [rbp - 0x60], rdx
mov rcx, qword [rax]
mov rax, qword [rcx + 0x50]
sub rax, qword [rcx + 0x48]
sar rax, 3
test rax, rax
je 0x18000f19b
movdqa xmm0, xmmword [0x180108180]
mov qword [rsp + 0x230], rsi
lea rsi, [rdi + 0xb0]
mov qword [rsp + 0x1f8], r13
movaps xmmword [rsp + 0x1d0], xmm7
movaps xmmword [rsp + 0x1c0], xmm8
movss xmm8, dword [0x180107fb4]
movaps xmmword [rsp + 0x1b0], xmm9
movss xmm9, dword [0x180107e30]
movaps xmmword [rsp + 0x1a0], xmm10
movss xmm10, dword [0x180107e44]
movaps xmmword [rsp + 0x190], xmm11
movss xmm11, dword [0x180107e14]
movaps xmmword [rsp + 0x180], xmm12
movss xmm12, dword [0x180107df0]
movaps xmmword [rsp + 0x170], xmm13
movss xmm13, dword [0x180107de4]
movups xmmword [rsp + 0x60], xmm0
mov qword [rbp - 0x18], rsi
movdqa xmm0, xmmword [0x180108250]
movaps xmmword [rsp + 0x160], xmm14
movss xmm14, dword [0x180107dd8]
movups xmmword [rbp + 0x10], xmm0
movdqa xmm0, xmmword [0x180108230]
movaps xmmword [rsp + 0x150], xmm15
movdqa xmm15, xmmword [0x180108240]
movups xmmword [rbp], xmm0
nop
mov rax, qword [rcx + 0x48]
mov ebx, 0x50
mov rcx, qword [rax + rdx*8]
mov qword [rbp + 0x20], rcx
mov r10, qword [rcx + 0x28]
mov r11, qword [rcx + 0x30]
cmp r10, r11
je 0x18000e870
nop
mov rax, qword [r10]
add ebx, 0x28
cmp byte [rax + 0x9b], 0
je 0x18000e867
mov r8, qword [rax + 0x80]
mov r9, qword [rax + 0x88]
cmp r8, r9
je 0x18000e867
mov rcx, qword [r8]
mov edx, dword [rcx + 0x20]
test edx, edx
je 0x18000e85b
sub edx, 1
je 0x18000e856
cmp edx, 1
jne 0x18000e85e
add ebx, 0x2d
jmp 0x18000e85e
add ebx, 0x19
add r8, 8
cmp r8, r9
jne 0x18000e842
add r10, 8
cmp r10, r11
jne 0x18000e820
cmp byte [rdi + 0x98], 0
lea rdx, [rbp + 0x20]
mov rax, qword [0x180187ee8]
mov rcx, rsi
movss xmm7, dword [rax + 0x18]
je 0x18000e8b3
call fcn.1800107b0
divss xmm7, dword [rdi + 0xc0]
lea rdx, [rbp + 0x20]
mov rcx, rsi
addss xmm7, dword [rax]
call fcn.1800107b0
movaps xmm0, xmm10
minss xmm0, xmm7
jmp 0x18000e8db
call fcn.1800107b0
divss xmm7, dword [rdi + 0xc0]
lea rdx, [rbp + 0x20]
mov rcx, rsi
movss xmm6, dword [rax]
subss xmm6, xmm7
call fcn.1800107b0
xorps xmm0, xmm0
maxss xmm0, xmm6
lea rdx, [rbp + 0x20]
movss dword [rax], xmm0
mov rcx, rsi
call fcn.1800107b0
movd xmm1, ebx
lea rdx, [rbp - 0x10]
mov rbx, qword [0x180187ee8]
cvtdq2ps xmm1, xmm1
mov dword [rbp - 0x10], r12d
lea rcx, [rbx + 0x4868]
movss xmm6, dword [rax]
or dword [rbx + 0x47e8], 3
movaps xmm2, xmm6
mulss xmm2, dword [0x180107f58]
mov qword [rbx + 0x47fc], 0x42c80000
movd xmm0, r15d
cvtdq2ps xmm0, xmm0
mov dword [rbx + 0x4804], r12d
mov dword [rbx + 0x47ec], 1
mov dword [rbx + 0x47f0], 1
mulss xmm1, xmm6
movss dword [rbx + 0x47f8], xmm0
movss dword [rbx + 0x4808], xmm2
movss dword [rbx + 0x480c], xmm1
movss xmm0, dword [rbx + 0x37c8]
movss dword [rbp - 0xc], xmm0
call fcn.18004cf30
movss dword [rbx + 0x37c8], xmm6
mov rcx, qword [rbp + 0x20]
add rcx, 8
cmp qword [rcx + 0x18], 0xf
jbe 0x18000e994
mov rcx, qword [rcx]
xor edx, edx
mov r8d, 0xa
call fcn.18003f780
test al, al
je 0x18000f0f9
mov rbx, qword [0x180187ee8]
mov rax, qword [rbx + 0x3f08]
mov byte [rax + 0xb8], 1
mov rcx, qword [rbx + 0x3f08]
mov rax, qword [rcx]
movss dword [rcx + 0x290], xmm6
mulss xmm6, dword [rax + 0x3c34]
mov rax, qword [rcx + 0x368]
test rax, rax
je 0x18000e9ec
mulss xmm6, dword [rax + 0x290]
movss dword [rbx + 0x3c48], xmm6
movss dword [rbx + 0x3c30], xmm6
mov rax, qword [rbp + 0x20]
mov r12, qword [rax + 0x28]
mov r13, qword [rax + 0x30]
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x28], r13
cmp r12, r13
je 0x18000f0f6
nop dword [rax]
mov rdi, qword [r12]
cmp byte [rdi + 0x98], 0
je 0x18000ea33
movaps xmm6, xmm9
jmp 0x18000ea37
movaps xmm6, xmm14
movups xmm0, xmmword [rbx + 0x3a00]
lea rcx, [rbx + 0x4858]
mov dword [rbp - 0x58], 0x3ef0f0f1
lea rdx, [rsp + 0x40]
mov dword [rbp - 0x54], 0x3d28a8a9
movups xmmword [rsp + 0x44], xmm0
mov dword [rbp - 0x50], 0x3b008081
mov dword [rsp + 0x40], 0x15
call fcn.18004d020
movups xmm0, xmmword [rbp - 0x58]
shufps xmm0, xmm0, 0x93
movss xmm0, xmm6
shufps xmm0, xmm0, 0x39
movups xmmword [rbx + 0x3a00], xmm0
cmp byte [rdi + 0x98], 0
movups xmmword [rbp - 0x58], xmm0
je 0x18000ea9b
movaps xmm6, xmm11
jmp 0x18000ea9f
movaps xmm6, xmm12
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x40]
mov dword [rbp - 0x48], 0x3ef0f0f1
mov dword [rbp - 0x44], 0x3d28a8a9
mov dword [rbp - 0x40], 0x3b008081
movups xmm0, xmmword [rbx + 0x3a10]
lea rcx, [rbx + 0x4858]
mov dword [rsp + 0x40], 0x16
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmm0, xmmword [rbp - 0x48]
shufps xmm0, xmm0, 0x93
movss xmm0, xmm6
shufps xmm0, xmm0, 0x39
movups xmmword [rbx + 0x3a10], xmm0
cmp byte [rdi + 0x98], 0
movups xmmword [rbp - 0x48], xmm0
je 0x18000eb0a
movaps xmm6, xmm9
jmp 0x18000eb0e
movaps xmm6, xmm13
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x40]
mov dword [rbp - 0x38], 0x3ef0f0f1
mov dword [rbp - 0x34], 0x3d28a8a9
mov dword [rbp - 0x30], 0x3b008081
movups xmm0, xmmword [rbx + 0x3a20]
lea rcx, [rbx + 0x4858]
mov dword [rsp + 0x40], 0x17
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmm0, xmmword [rbp - 0x38]
mov rax, qword [0x180187ee8]
shufps xmm0, xmm0, 0x93
movss xmm0, xmm6
shufps xmm0, xmm0, 0x39
movups xmmword [rbx + 0x3a20], xmm0
mov rdx, qword [rax + 0x3f08]
movups xmmword [rbp - 0x38], xmm0
cmp qword [rdx + 0x1a8], 0
jne 0x18000eb91
cmp qword [rax + 0x4b78], 0
mov eax, 0x250
je 0x18000eb96
mov eax, 0x220
cmp qword [rdi + 0x20], 0xf
lea rcx, [rdi + 8]
movss xmm0, dword [rdx + rax]
subss xmm0, dword [rdx + 0x100]
mov dword [rsp + 0x7c], 0
movss dword [rsp + 0x78], xmm0
jbe 0x18000ebbf
mov rcx, qword [rcx]
lea rdx, [rsp + 0x78]
call fcn.1800657b0
test al, al
je 0x18000ebf1
movzx ecx, byte [rdi + 0x98]
test cl, cl
sete al
test cl, cl
mov byte [rdi + 0x98], al
mov rcx, rdi
mov rax, qword [rdi]
jne 0x18000ebee
call qword [rax + 0x28]
jmp 0x18000ebf1
call qword [rax + 0x30]
xor r8d, r8d
xor edx, edx
mov ecx, 1
call fcn.180042ee0
test al, al
je 0x18000ec1f
xor ecx, ecx
call fcn.180039580
test al, al
je 0x18000ec1f
cmp byte [rdi + 0x9b], 0
sete al
mov byte [rdi + 0x9b], al
cmp byte [rdi + 0x9b], 0
mov rbx, qword [0x180187ee8]
je 0x18000f088
mov rax, qword [rbx + 0x3f08]
mov byte [rax + 0xb8], 1
mov rax, qword [rbx + 0x3f08]
cmp byte [rax + 0xbb], 0
jne 0x18000ec6d
movaps xmm1, xmm8
mov qword [rbp - 0x80], 0
lea rcx, [rbp - 0x80]
call fcn.180044d70
mov rbx, qword [0x180187ee8]
mov rax, qword [rbx + 0x3f08]
cmp byte [rax + 0xbb], 0
jne 0x18000ec9a
mov eax, dword [rax + 0x1b4]
movaps xmm1, xmm10
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.180066e50
mov rbx, qword [0x180187ee8]
mov rax, qword [rbx + 0x3f08]
mov byte [rax + 0xb8], 1
mov rax, qword [rbx + 0x3f08]
cmp byte [rax + 0xbb], 0
jne 0x18000ecd4
movaps xmm1, xmm8
mov qword [rbp - 0x78], 0
lea rcx, [rbp - 0x78]
call fcn.180044d70
mov rbx, qword [0x180187ee8]
movups xmm0, xmmword [rbx + 0x3920]
lea rcx, [rbx + 0x4858]
mov dword [rsp + 0x40], 7
lea rdx, [rsp + 0x40]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmm0, xmmword [rbp]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 8
movups xmmword [rbx + 0x3920], xmm0
mov rbx, qword [0x180187ee8]
movups xmm0, xmmword [rbx + 0x3930]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmmword [rbx + 0x3930], xmm15
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 9
movups xmm0, xmmword [rbx + 0x3940]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmm0, xmmword [rbp + 0x10]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 5
movups xmmword [rbx + 0x3940], xmm0
mov rbx, qword [0x180187ee8]
movups xmm0, xmmword [rbx + 0x3900]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmmword [rbx + 0x3900], xmm15
mov rbx, qword [0x180187ee8]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x12
movups xmm0, xmmword [rbx + 0x39d0]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
movups xmm0, xmmword [rsp + 0x60]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x13
movups xmmword [rbx + 0x39d0], xmm0
mov rbx, qword [0x180187ee8]
movups xmm0, xmmword [rbx + 0x39e0]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
mov dword [rbx + 0x39e0], 0x3f99999a
lea rdx, [rsp + 0x40]
mov dword [rbx + 0x39e4], 0x3dcccccd
mov dword [rbx + 0x39e8], 0x3e4ccccd
mov dword [rbx + 0x39ec], 0x3ecccccd
mov rbx, qword [0x180187ee8]
mov dword [rsp + 0x40], 0x14
movups xmm0, xmmword [rbx + 0x39f0]
lea rcx, [rbx + 0x4858]
movups xmmword [rsp + 0x44], xmm0
call fcn.18004d020
mov dword [rbx + 0x39f0], 0x3f99999a
mov dword [rbx + 0x39f4], 0x3dcccccd
mov dword [rbx + 0x39f8], 0x3e4ccccd
mov dword [rbx + 0x39fc], 0x3ecccccd
mov rsi, qword [rdi + 0x80]
mov r15, qword [rdi + 0x88]
mov rbx, qword [0x180187ee8]
cmp rsi, r15
je 0x18000f032
lea r13, str._.3f
lea r12, [0x18009ed5c]
nop
mov rdi, qword [rsi]
mov rbx, qword [rbx + 0x3f08]
mov rdx, rdi
mov rcx, rbx
call fcn.180039060
add rbx, 0xf0
mov r14d, eax
mov r8d, dword [rbx]
mov ecx, dword [rbx + 4]
cmp r8d, ecx
jne 0x18000ef03
inc r8d
test ecx, ecx
je 0x18000eeec
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18000eef1
mov eax, 8
cmp eax, r8d
mov rcx, rbx
cmovg r8d, eax
mov edx, r8d
call fcn.18004dc20
movsxd rcx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], r14d
inc dword [rbx]
mov ecx, dword [rdi + 0x20]
test ecx, ecx
je 0x18000efb3
sub ecx, 1
je 0x18000ef72
cmp ecx, 1
jne 0x18000efc9
cmp qword [rdi + 0x18], 0xf
mov rax, qword [rdi + 0x38]
mov r8, qword [rdi + 0x28]
movss xmm0, dword [rax]
mov rax, qword [rdi + 0x30]
movss xmm1, dword [rax]
jbe 0x18000ef47
mov rdi, qword [rdi]
lea rax, [rbp + 0x28]
mov qword [rsp + 0x28], r13
lea r9, [rbp + 0x30]
mov qword [rsp + 0x20], rax
mov edx, 8
movss dword [rbp + 0x28], xmm0
mov rcx, rdi
movss dword [rbp + 0x30], xmm1
call fcn.180067b80
jmp 0x18000efc9
cmp qword [rdi + 0x18], 0xf
mov rax, qword [rdi + 0x38]
mov r8, qword [rdi + 0x28]
mov ecx, dword [rax]
mov rax, qword [rdi + 0x30]
mov edx, dword [rax]
jbe 0x18000ef8c
mov rdi, qword [rdi]
mov dword [rbp + 0x30], ecx
lea rax, [rbp + 0x30]
mov dword [rbp + 0x28], edx
lea r9, [rbp + 0x28]
mov edx, 4
mov qword [rsp + 0x28], r12
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.180067b80
jmp 0x18000efc9
cmp qword [rdi + 0x18], 0xf
mov rdx, qword [rdi + 0x28]
jbe 0x18000efc1
mov rdi, qword [rdi]
mov rcx, rdi
call fcn.1800665f0
mov rbx, qword [0x180187ee8]
mov rax, qword [rbx + 0x3f08]
dec dword [rax + 0xf0]
mov rax, qword [rbx + 0x3f08]
mov byte [rax + 0xb8], 1
mov rax, qword [rbx + 0x3f08]
cmp byte [rax + 0xbb], 0
jne 0x18000f017
movaps xmm1, xmm8
mov qword [rbp - 0x70], 0
lea rcx, [rbp - 0x70]
call fcn.180044d70
mov rbx, qword [0x180187ee8]
add rsi, 8
cmp rsi, r15
jne 0x18000eeb0
mov r12, qword [rbp - 0x68]
mov r14d, 3
mov r13, qword [rbp - 0x28]
mov eax, dword [rbx + 0x4858]
mov r8d, 7
cmp eax, r8d
jge 0x18000f050
mov r8d, eax
test eax, eax
jle 0x18000f088
nop word [rax + rax]
mov rcx, qword [rbx + 0x4860]
dec r8d
cdqe
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, 0x38b
add rax, rax
movups xmmword [rbx + rax*8], xmm0
dec dword [rbx + 0x4858]
mov eax, dword [rbx + 0x4858]
test r8d, r8d
jg 0x18000f050
mov eax, dword [rbx + 0x4858]
mov r8d, r14d
cmp eax, 3
jge 0x18000f0a0
mov r8d, eax
test eax, eax
jle 0x18000f0d8
nop dword [rax]
mov rcx, qword [rbx + 0x4860]
dec r8d
cdqe
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, 0x38b
add rax, rax
movups xmmword [rbx + rax*8], xmm0
dec dword [rbx + 0x4858]
mov eax, dword [rbx + 0x4858]
test r8d, r8d
jg 0x18000f0a0
add r12, 8
mov qword [rbp - 0x68], r12
cmp r12, r13
jne 0x18000ea20
mov rdi, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x18]
mov r15d, dword [rsp + 0x58]
xor r12d, r12d
call fcn.180041990
mov ecx, 1
call fcn.180036d90
mov rax, qword [rdi + 0x68]
add r15d, 0xbe
mov rdx, qword [rbp - 0x60]
inc rdx
mov dword [rsp + 0x58], r15d
mov qword [rbp - 0x60], rdx
mov rcx, qword [rax]
mov rax, qword [rcx + 0x50]
sub rax, qword [rcx + 0x48]
sar rax, 3
cmp rdx, rax
jb 0x18000e800
movaps xmm15, xmmword [rsp + 0x150]
movaps xmm14, xmmword [rsp + 0x160]
movaps xmm13, xmmword [rsp + 0x170]
movaps xmm12, xmmword [rsp + 0x180]
movaps xmm11, xmmword [rsp + 0x190]
movaps xmm10, xmmword [rsp + 0x1a0]
movaps xmm9, xmmword [rsp + 0x1b0]
movaps xmm8, xmmword [rsp + 0x1c0]
movaps xmm7, xmmword [rsp + 0x1d0]
mov r13, qword [rsp + 0x1f8]
mov rsi, qword [rsp + 0x230]
mov byte [rdi + 0xc4], 0
call fcn.180042200
mov r8, qword [0x180187ee8]
movaps xmm6, xmmword [rsp + 0x1e0]
mov r15, qword [rsp + 0x1f0]
mov r12, qword [rsp + 0x200]
mov eax, dword [r8 + 0x4858]
mov rdi, qword [rsp + 0x238]
mov rbx, qword [rsp + 0x228]
cmp eax, 3
jge 0x18000f1f0
mov r14d, eax
test eax, eax
jle 0x18000f22b
nop dword [rax]
mov rcx, qword [r8 + 0x4860]
dec r14d
cdqe
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, 0x38b
add rax, rax
movups xmmword [r8 + rax*8], xmm0
dec dword [r8 + 0x4858]
mov eax, dword [r8 + 0x4858]
test r14d, r14d
jg 0x18000f1f0
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.18007c390
add rsp, 0x208
pop r14
pop rbp
ret