Function at 0x18000a3e0
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x160
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
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
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
mov rax, qword [0x180099040]
xor rax, rsp
mov qword [rbp - 0x40], rax
mov rdi, rcx
xor r15d, r15d
movss xmm0, dword [rcx + 0x5c]
subss xmm0, dword [0x18013b814]
movss xmm6, dword [0x18008a4bc]
movaps xmm1, xmm6
call fcn.180072c10
movaps xmm7, xmm0
movss xmm0, dword [rdi + 0x58]
subss xmm0, dword [0x18013b810]
movaps xmm1, xmm6
call fcn.180072c10
addss xmm7, xmm0
movss xmm0, dword [rdi + 0x60]
subss xmm0, dword [0x18013b818]
movaps xmm1, xmm6
call fcn.180072c10
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x18000a4aa
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x18000a4b2
movaps xmm0, xmm7
call fcn.1800747c0
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x18008a468]
xorps xmm11, xmm11
cvtsd2ss xmm11, xmm0
cmp byte [0x18013ccc3], r15b
je 0x18000a4ea
movups xmm0, xmmword [0x18013b860]
movdqa xmmword [rsp + 0x70], xmm0
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.180007dd0
cmp byte [0x18013ccc8], r15b
je 0x18000a550
movss xmm2, dword [0x18013b7e0]
movss dword [rsp + 0x50], xmm2
movss xmm0, dword [0x18013b7e4]
movss dword [rsp + 0x54], xmm0
movss xmm1, dword [0x18013b7ec]
addss xmm1, xmm0
movss xmm0, dword [0x18013b7e8]
addss xmm0, xmm2
movss dword [rsp + 0x68], xmm0
movss dword [rsp + 0x6c], xmm1
movss xmm0, dword [0x180099ad8]
comiss xmm0, xmm11
jbe 0x18000a550
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x50]
call fcn.180008270
movss xmm9, dword [0x18008a420]
xorps xmm12, xmm12
cmp byte [0x18013ccc6], r15b
je 0x18000a718
movss xmm10, dword [0x18013b7e0]
movss xmm13, dword [0x18008a534]
subss xmm10, xmm13
movss xmm6, dword [0x18013b7e4]
movss xmm14, dword [0x18013b7ec]
movss xmm0, dword [0x180099ad8]
comiss xmm0, xmm11
jbe 0x18000a718
movss dword [rsp + 0x68], xmm10
movss dword [rsp + 0x6c], xmm6
movd xmm8, dword [rdi + 0x8c]
cvtdq2ps xmm8, xmm8
mov rbx, qword [0x18013cce0]
add rbx, 0x1d40
divss xmm8, dword [0x18008a598]
movdqa xmm0, xmmword [0x18008a880]
movups xmmword [rsp + 0x58], xmm0
comiss xmm8, xmm9
jbe 0x18000a5f2
movdqa xmm0, xmmword [0x18008a8b0]
jmp 0x18000a60e
comiss xmm8, dword [0x18008a40c]
jbe 0x18000a606
movdqa xmm0, xmmword [0x18008a8a0]
jmp 0x18000a60e
movdqa xmm0, xmmword [0x18008a890]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x58]
call fcn.180014b40
movaps xmm7, xmm14
addss xmm7, xmm6
movaps xmm1, xmm14
addss xmm1, xmm6
movaps xmm6, xmm10
addss xmm6, xmm13
movaps xmm0, xmm10
addss xmm0, xmm13
movss dword [rsp + 0x50], xmm0
movss dword [rsp + 0x54], xmm1
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm12
mov r9d, eax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x68]
mov rcx, rbx
call fcn.1800300f0
mulss xmm14, xmm8
movss dword [rsp + 0x50], xmm6
movss dword [rsp + 0x54], xmm7
movaps xmm0, xmm7
subss xmm0, xmm14
movss dword [rsp + 0x58], xmm10
movss dword [rsp + 0x5c], xmm0
lea rcx, [rsp + 0x70]
call fcn.180014b40
mov r9d, eax
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm12
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.1800300f0
movdqa xmm0, xmmword [0x18008a870]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.180014b40
movss dword [rsp + 0x58], xmm6
movss dword [rsp + 0x5c], xmm7
movss xmm0, dword [0x18008a454]
movss dword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm12
mov r9d, eax
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x68]
mov rcx, rbx
call fcn.18002ffe0
mov rbx, 0xffffffffffffffff
movss xmm8, dword [0x18008a634]
movss xmm10, dword [0x18008a610]
movss xmm13, dword [0x18008a450]
cmp byte [0x18013ccca], r15b
je 0x18000a8be
cmp qword [rdi + 0x18], r15
je 0x18000a772
lea rsi, [rdi + 8]
mov rax, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x18000a75e
mov rax, qword [rsi]
movsx ecx, byte [rax]
call fcn.18005495c
cmp qword [rsi + 0x18], 0xf
jbe 0x18000a770
mov rsi, qword [rsi]
mov byte [rsi], al
lea rsi, [rdi + 8]
mov rax, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x18000a783
mov rax, qword [rsi]
mov r14, qword [0x18013cce0]
test rax, rax
jne 0x18000a794
xorps xmm0, xmm0
jmp 0x18000a7d9
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm8
movaps xmm3, xmm10
movss xmm2, dword [r14 + 0x1910]
lea rdx, [rsp + 0x58]
mov rcx, qword [r14 + 0x1908]
call fcn.180033ee0
movss xmm0, dword [rsp + 0x58]
addss xmm0, xmm13
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm7, dword [0x18013b7e4]
subss xmm7, dword [0x18008a554]
movss xmm6, dword [0x18013b7e8]
mulss xmm6, xmm9
addss xmm6, dword [0x18013b7e0]
mulss xmm0, xmm9
subss xmm6, xmm0
movss xmm0, dword [0x180099ad8]
comiss xmm0, xmm11
jbe 0x18000a8be
cmp qword [rsi + 0x18], 0xf
jbe 0x18000a823
mov rsi, qword [rsi]
movsxd r9, dword [0x18013ccb8]
add r9, rsi
lea rcx, [0x18013b850]
call fcn.180014b40
mov r10d, eax
test eax, 0xff000000
je 0x18000a8be
mov r8, rbx
inc r8
cmp byte [r9 + r8], r15b
jne 0x18000a846
add r8, r9
cmp r9, r8
je 0x18000a8be
mov rax, qword [r14 + 0x1e20]
movsxd rdx, dword [r14 + 0x1e48]
add rdx, rdx
mov rcx, qword [r14 + 0x1e50]
movups xmm0, xmmword [rcx + rdx*8 - 0x10]
movups xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x48], r15b
movss dword [rsp + 0x40], xmm12
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r10d
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r9, xmm0
movss xmm2, dword [rax + 0x10]
lea rdx, [r14 + 0x1de8]
mov rcx, qword [rax + 8]
call fcn.180034100
cmp byte [0x18013cccb], r15b
je 0x18000aa38
cmp qword [rdi + 0x78], r15
je 0x18000a8f6
lea rsi, [rdi + 0x68]
mov rax, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x18000a8e2
mov rax, qword [rsi]
movsx ecx, byte [rax]
call fcn.18005495c
cmp qword [rsi + 0x18], 0xf
jbe 0x18000a8f4
mov rsi, qword [rsi]
mov byte [rsi], al
add rdi, 0x68
mov rax, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x18000a907
mov rax, qword [rdi]
mov rsi, qword [0x18013cce0]
test rax, rax
jne 0x18000a919
movaps xmm0, xmm12
jmp 0x18000a95d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm8
movaps xmm3, xmm10
movss xmm2, dword [rsi + 0x1910]
lea rdx, [rsp + 0x58]
mov rcx, qword [rsi + 0x1908]
call fcn.180033ee0
movss xmm0, dword [rsp + 0x58]
addss xmm0, xmm13
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm6, dword [0x18013b7e8]
subss xmm6, xmm0
mulss xmm6, xmm9
addss xmm6, dword [0x18013b7e0]
movss xmm7, dword [0x18013b7ec]
addss xmm7, dword [0x18013b7e4]
movss xmm0, dword [0x180099ad8]
comiss xmm0, xmm11
jbe 0x18000aa38
cmp qword [rdi + 0x18], 0xf
jbe 0x18000a9a2
mov rdi, qword [rdi]
lea rcx, [0x18013b840]
call fcn.180014b40
mov r9d, eax
test eax, 0xff000000
je 0x18000aa38
mov r8, rbx
nop
inc r8
cmp byte [rdi + r8], r15b
jne 0x18000a9c0
add r8, rdi
cmp rdi, r8
je 0x18000aa38
mov rax, qword [rsi + 0x1e20]
movsxd rdx, dword [rsi + 0x1e48]
add rdx, rdx
mov rcx, qword [rsi + 0x1e50]
movups xmm0, xmmword [rcx + rdx*8 - 0x10]
movups xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x48], r15b
movss dword [rsp + 0x40], xmm12
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r9d
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r9, xmm0
movss xmm2, dword [rax + 0x10]
lea rdx, [rsi + 0x1de8]
mov rcx, qword [rax + 8]
call fcn.180034100
cmp byte [0x18013ccc7], r15b
je 0x18000ace3
cvttss2si edx, xmm11
lea rcx, [rbp - 0x60]
call fcn.18000af20
nop
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x48]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x18000aa89
lea rax, [rcx + 1]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x60]
cmp rdx, 0xf
cmova rax, qword [rbp - 0x60]
mov word [rax + rcx], 0x6d
lea rax, [rbp - 0x60]
jmp 0x18000aaa7
mov qword [rsp + 0x20], 1
lea r9, [0x180084028]
mov edx, 1
lea rcx, [rbp - 0x60]
call fcn.18000b2e0
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x48]
cmp rdx, 0xf
jbe 0x18000ab0f
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000ab0a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000ae79
call fcn.18004e95c
movdqa xmm1, xmmword [0x18008a680]
movdqu xmmword [rbp - 0x50], xmm1
mov byte [rbp - 0x60], 0
lea rax, [rbp - 0x80]
mov r9, qword [rbp - 0x80]
mov r10, qword [rbp - 0x68]
cmp r10, 0xf
cmova rax, r9
mov rdi, qword [0x18013cce0]
movss xmm2, dword [rdi + 0x1910]
test rax, rax
jne 0x18000ab4e
movaps xmm0, xmm12
jmp 0x18000aba0
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm8
movaps xmm3, xmm10
lea rdx, [rsp + 0x58]
mov rcx, qword [rdi + 0x1908]
call fcn.180033ee0
movss xmm0, dword [rsp + 0x58]
addss xmm0, xmm13
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm2, dword [rsp + 0x5c]
mov r10, qword [rbp - 0x68]
mov r9, qword [rbp - 0x80]
movdqa xmm1, xmmword [0x18008a680]
movss xmm7, dword [0x18013b7e4]
subss xmm7, dword [0x18008a540]
subss xmm7, xmm2
subss xmm7, dword [0x18008a4fc]
movss xmm6, dword [0x18013b7e8]
mulss xmm6, xmm9
addss xmm6, dword [0x18013b7e0]
mulss xmm0, xmm9
subss xmm6, xmm0
movss xmm0, dword [0x180099ad8]
comiss xmm0, xmm11
jbe 0x18000ac9b
lea r11, [rdi + 0x1de8]
lea rax, [rbp - 0x80]
cmp r10, 0xf
cmova rax, r9
movsxd r8, dword [0x18013ccbc]
add r8, rax
lea rcx, [0x18013b898]
call fcn.180014b40
mov edi, eax
test eax, 0xff000000
je 0x18000ac93
nop
inc rbx
cmp byte [r8 + rbx], 0
jne 0x18000ac20
add rbx, r8
cmp r8, rbx
je 0x18000ac93
mov rax, qword [r11 + 0x38]
movsxd rdx, dword [r11 + 0x60]
add rdx, rdx
mov rcx, qword [r11 + 0x68]
movups xmm0, xmmword [rcx + rdx*8 - 0x10]
movups xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm12
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r8
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r9, xmm0
movss xmm2, dword [rax + 0x10]
mov rdx, r11
mov rcx, qword [rax + 8]
call fcn.180034100
mov r10, qword [rbp - 0x68]
mov r9, qword [rbp - 0x80]
movdqa xmm1, xmmword [0x18008a680]
cmp r10, 0xf
jbe 0x18000acda
lea rdx, [r10 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x18000acca
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000ae73
mov rcx, r9
call fcn.18004e95c
movdqa xmm1, xmmword [0x18008a680]
movdqu xmmword [rbp - 0x70], xmm1
mov byte [rbp - 0x80], 0
cmp byte [0x18013ccc4], 0
je 0x18000ad86
movss xmm0, dword [0x18013b7e8]
addss xmm0, dword [0x18013b7e0]
movss dword [rsp + 0x58], xmm0
movss xmm1, dword [0x18013b7ec]
addss xmm1, dword [0x18013b7e4]
movss dword [rsp + 0x5c], xmm1
movss xmm0, dword [0x180099ad8]
comiss xmm0, xmm11
jbe 0x18000ad86
mov r8, qword [0x18013cce0]
movss xmm0, dword [r8 + 0x10]
mulss xmm0, xmm9
movss dword [rsp + 0x50], xmm0
movss xmm1, dword [r8 + 0x14]
mulss xmm1, xmm9
movss dword [rsp + 0x54], xmm1
lea rcx, [0x18013b830]
call fcn.180014b40
mov r9d, eax
lea rcx, [r8 + 0x1d40]
movss xmm0, dword [0x180099adc]
movss dword [rsp + 0x20], xmm0
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
call fcn.18002fe80
cmp byte [0x18013ccc2], 0
je 0x18000add3
movsxd rcx, dword [0x18013ccac]
lea rbx, [0x180088b80]
mov ecx, dword [rbx + rcx*4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000add3
mov qword [rsp + 0x58], 9
lea rcx, [rsp + 0x58]
call fcn.18000b100
movsxd rcx, dword [0x18013ccac]
mov ecx, dword [rbx + rcx*4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18000adb4
cmp byte [0x18013ccc9], 0
je 0x18000adf7
lea rcx, str.client.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, qword [rax + 0x181a9b8]
mov dword [rcx + 0x135c], r15d
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [0x18000a390]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
mov rcx, qword [rbp - 0x40]
xor rcx, rsp
call fcn.18004e4c0
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
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]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.180054714
nop
call fcn.180054714
nop
int3