Function at 0x14005ae80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x14005aec6
mov r10d, 8
sub r10, r11
cmp r8, r10
mov rdi, r10
cmovb rdi, r8
cmp rdi, 3
jbe 0x14005aece
mov esi, dword [rdx]
mov r9d, 4
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jb 0x14005aedf
jmp 0x14005aef6
xor r10d, r10d
jmp 0x14005b00a
xor esi, esi
xor r9d, r9d
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jae 0x14005aef6
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
or rsi, rbx
or r9, 2
cmp r9, rdi
jae 0x14005af1f
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
mov rcx, rdi
xor rcx, rsi
not rsi
and rsi, rdi
add rcx, rdi
sub rcx, rsi
mov rsi, rcx
mov r9d, r11d
and r9d, 8
mov ecx, r11d
or ecx, 8
imul ecx, r9d
xor r9d, 8
mov edi, r11d
xor edi, 0xffffffc8
mov ebx, r11d
or ebx, 0x37
and ebx, edi
mov edi, ebx
not edi
and edi, r9d
imul edi, ebx
or r9d, ebx
and ebx, 8
imul ebx, r9d
add ecx, ebx
add ecx, edi
and cl, 0x38
shl rsi, cl
or rsi, qword [rax + 0x38]
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x14005af75
add r11, r8
jmp 0x14005b15d
mov r9, qword [rax + 0x10]
mov r11, qword [rax + 0x18]
mov rcx, r11
and rcx, rsi
add r11, rsi
add rcx, rcx
sub r11, rcx
mov rcx, qword [rax]
add rcx, r9
rol r9, 0xd
mov rdi, r9
and rdi, rcx
add r9, rcx
add rdi, rdi
sub r9, rdi
rol rcx, 0x20
mov rdi, qword [rax + 8]
add rdi, r11
rol r11, 0x10
xor r11, rdi
add rcx, r11
rol r11, 0x15
mov rbx, r11
and rbx, rcx
add r11, rcx
add rbx, rbx
sub r11, rbx
mov qword [rax + 0x18], r11
add rdi, r9
rol r9, 0x11
mov r11, rdi
not r11
lea rbx, [rdi + r9]
or r9, r11
sub r11, r9
lea r9, [rbx + r11*2]
rol rdi, 0x20
mov qword [rax + 0x10], r9
mov qword [rax + 8], rdi
mov r9, rcx
and r9, rsi
add rcx, rsi
add r9, r9
sub rcx, r9
mov qword [rax], rcx
mov rcx, r8
not rcx
and rcx, r10
mov r9, r10
not r9
and r9, r8
sub r9, rcx
mov r11d, r9d
and r11d, 7
lea rcx, [r9 + r9]
mov r8, rcx
xor r8, 0xf
or rcx, 0xfffffffffffffff0
and rcx, r8
not r9
or r9, 7
mov r8, rcx
xor r8, r9
and r9, rcx
lea r8, [r8 + r9*2]
inc r8
cmp r10, r8
jae 0x14005b0f5
mov rcx, qword [rax]
mov r9, qword [rax + 8]
mov rsi, qword [rax + 0x18]
mov rdi, qword [rax + 0x10]
nop word [rax + rax]
mov rbx, qword [rdx + r10]
mov r14, rcx
and r14, rdi
xor rcx, rdi
rol rdi, 0xd
lea rcx, [rcx + r14*2]
xor rdi, rcx
rol rcx, 0x20
xor rsi, rbx
add r9, rsi
rol rsi, 0x10
xor rsi, r9
add rcx, rsi
rol rsi, 0x15
mov r14, rsi
and r14, rcx
add rsi, rcx
add r14, r14
add r9, rdi
rol rdi, 0x11
sub rsi, r14
mov r14, r9
not r14
mov r15, rdi
or r15, r14
sub r14, r15
mov r15, r9
and r15, rdi
xor rdi, r9
lea rdi, [rdi + r15*2]
rol r9, 0x20
lea rdi, [rdi + r14*2]
xor rcx, rbx
add r10, 8
cmp r10, r8
jb 0x14005b070
mov qword [rax + 0x18], rsi
mov qword [rax + 0x10], rdi
mov qword [rax + 8], r9
mov qword [rax], rcx
cmp r11d, 3
jbe 0x14005b113
mov r9d, dword [rdx + r10]
mov r8d, 4
mov rcx, r8
or rcx, 1
cmp rcx, r11
jb 0x14005b125
jmp 0x14005b13f
xor r9d, r9d
xor r8d, r8d
mov rcx, r8
or rcx, 1
cmp rcx, r11
jae 0x14005b13f
lea rcx, [r8 + r10]
movzx esi, word [rdx + rcx]
lea ecx, [r8*8]
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8, r11
jae 0x14005b159
add r10, r8
movzx edx, byte [rdx + r10]
shl r8d, 3
mov ecx, r8d
shl rdx, cl
or r9, rdx
mov qword [rax + 0x38], r9
mov qword [rax + 0x40], r11
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret