Function at 0x140016c70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r12
push r13
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
movdqa xmm0, xmmword [0x140008640]
xor r13d, r13d
movdqa xmm1, xmmword [0x140008650]
mov r15, rcx
movdqu xmmword [rsp + 0x44], xmm0
mov r12, rdx
mov dword [rsp + 0x74], 0xd2cdf2f4
movdqa xmm0, xmmword [0x140008660]
mov r9d, r13d
movdqu xmmword [rsp + 0x64], xmm0
mov dword [rsp + 0x78], 0xeef4e3f4
movups xmm0, xmmword [rdx]
mov dword [rsp + 0x7c], 0xe3fec4e5
movdqu xmmword [rsp + 0x54], xmm1
mov word [rbp - 0x80], 0x80e2
movsd xmm1, qword [rdx + 0x10]
movaps xmmword [rbp - 0x70], xmm0
mov r10, qword [rbp - 0x70]
mov r11, qword [rbp - 0x68]
movsd qword [rbp - 0x60], xmm1
mov rcx, qword [rbp - 0x60]
nop dword [rax]
mov rdx, r10
imul rdx, r11
mov rax, rdx
mov r8, rdx
imul rax, r10
imul r8, r10
add rax, rcx
add rax, r11
mov rcx, rax
shl rax, 0x20
shr rcx, 0x20
or rcx, rax
mov r11, r8
movzx eax, cl
xor al, byte [rsp + r9 + 0x44]
imul r8, r10
mov byte [rbp + r9 - 0x50], al
add r8, rdx
add r8, rcx
mov rcx, r8
shl r8, 0x20
shr rcx, 0x20
or rcx, r8
movzx eax, cl
xor al, byte [rsp + r9 + 0x45]
mov byte [rbp + r9 - 0x4f], al
add r9, 2
cmp r9, 0x3e
jb 0x140016d00
movups xmm0, xmmword [rbp - 0x50]
mov eax, dword [rbp - 0x18]
lea rcx, [rbp + 0x150]
movups xmm1, xmmword [rbp - 0x40]
mov dword [rsp + 0x7c], eax
lea rdx, [rsp + 0x44]
movzx eax, word [rbp - 0x14]
mov r9d, 0x20019
movups xmmword [rsp + 0x44], xmm0
mov word [rbp - 0x80], ax
xor r8d, r8d
movups xmm0, xmmword [rbp - 0x30]
mov rax, qword [r15 + 8]
mov esi, r13d
movups xmmword [rsp + 0x54], xmm1
mov qword [rsp + 0x20], rcx
mov rcx, 0xffffffff80000001
movsd xmm1, qword [rbp - 0x20]
movups xmmword [rsp + 0x64], xmm0
mov byte [rbp - 0x7e], r13b
movsd qword [rsp + 0x74], xmm1
call rax
test eax, eax
jne 0x14001703c
mov rax, qword [r15 + 0x20]
lea r9, [rbp + 0x148]
mov rcx, qword [rbp + 0x150]
lea r8, [rbp - 0x10]
mov qword [rsp + 0x38], r13
xor edx, edx
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x200], r14
mov r14d, r13d
mov qword [rsp + 0x20], r13
mov dword [rbp + 0x148], 0x104
call rax
test eax, eax
jne 0x140017029
mov qword [rsp + 0x258], rbx
mov qword [rsp + 0x208], rdi
mov byte [rbp + 0x143], sil
nop word [rax + rax]
movzx edx, byte [rbp - 0x10]
mov eax, 0xd4ab2e80
mov r9d, 0x828a8be0
mov r10d, r13d
test dl, dl
je 0x140016eb4
lea r11, [rbp - 0x10]
nop word [rax + rax]
movsx edx, dl
lea r11, [r11 + 1]
mov ecx, edx
imul ecx, edx
add r9d, ecx
imul r9d, eax
mov r8d, r9d
imul r8d, eax
lea ecx, [rdx + r9]
imul ecx, r9d
add eax, ecx
mov edx, eax
mov ecx, eax
shl ecx, 0x11
shr edx, 0xf
mov eax, edx
or eax, ecx
lea ecx, [r8 + r10]
ror ecx, 0x11
imul ecx, eax
mov r10d, ecx
shl ecx, 0x10
shr r10d, 0x10
or r10d, ecx
movzx ecx, byte [r11]
movzx edx, cl
test cl, cl
jne 0x140016e60
mov r9, qword [r12]
mov r11d, r13d
movsd xmm0, qword [r12 + 0x10]
mov rdx, r9
imul rdx, qword [r12 + 8]
movsd qword [rbp - 0x60], xmm0
mov rax, rdx
mov r8, rdx
imul rax, r9
imul r8, r9
add rax, qword [rbp - 0x60]
add rax, qword [r12 + 8]
mov rcx, rax
shl rax, 0x20
shr rcx, 0x20
or rcx, rax
movzx edi, cl
mov rax, r8
imul rax, r9
xor dil, 0x85
add rax, rdx
mov byte [rbp + 0x140], dil
add rax, rcx
mov rcx, rax
shl rax, 0x20
shr rcx, 0x20
or rcx, rax
movzx eax, cl
xor al, 0x8d
mov byte [rbp + 0x141], al
mov rax, r8
imul rax, r9
imul rax, r9
mov r9d, 0x828a8be0
add rax, r8
mov r8d, 0xd4ab2e80
add rax, rcx
ror rax, 0x20
xor al, 0x97
mov byte [rbp + 0x142], al
mov eax, dword [rbp + 0x140]
mov dword [rsp + 0x40], eax
test dil, dil
je 0x140016fca
lea rbx, [rsp + 0x40]
nop word [rax + rax]
movsx ecx, dil
lea rbx, [rbx + 1]
mov eax, ecx
imul eax, ecx
add r9d, eax
imul r9d, r8d
mov edx, r9d
imul edx, r8d
lea eax, [rcx + r9]
imul eax, r9d
add r8d, eax
mov ecx, r8d
mov eax, r8d
shl eax, 0x11
shr ecx, 0xf
mov r8d, ecx
or r8d, eax
lea eax, [rdx + r11]
ror eax, 0x11
imul eax, r8d
mov r11d, eax
shl eax, 0x10
shr r11d, 0x10
or r11d, eax
movzx eax, byte [rbx]
movzx edi, al
test al, al
jne 0x140016f70
mov rcx, qword [rbp + 0x150]
lea r9, [rbp + 0x148]
cmp r10d, r11d
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
lea r8, [rbp - 0x10]
cmovne r10d, esi
mov qword [rsp + 0x28], r13
mov esi, r10d
mov dword [rbp + 0x148], 0x104
mov r10, qword [r15 + 0x20]
inc r14d
mov edx, r14d
mov qword [rsp + 0x20], r13
call r10
test eax, eax
je 0x140016e40
mov rdi, qword [rsp + 0x208]
mov rbx, qword [rsp + 0x258]
mov rcx, qword [rbp + 0x150]
call qword [r15 + 0x18]
mov r14, qword [rsp + 0x200]
mov eax, esi
add rsp, 0x210
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret