Function at 0x180032670
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x1800326ae
mov r10d, 8
sub r10, r11
cmp r10, r8
mov rdi, r8
cmovb rdi, r10
cmp rdi, 4
jb 0x1800326b6
mov esi, dword [rdx]
mov r9d, 4
jmp 0x1800326bb
xor r10d, r10d
jmp 0x1800327d9
xor esi, esi
xor r9d, r9d
mov rcx, r9
not rcx
and rcx, 0xfffffffffffffffe
add rcx, rdi
jae 0x1800326f3
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
mov rcx, rbx
or rcx, rsi
not rbx
not rsi
and rsi, rbx
not rsi
and rsi, rcx
or r9, 2
cmp r9, rdi
jae 0x180032741
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
mov rcx, rdi
not rcx
movabs r9, 0xdc094778939aee25
mov rbx, r9
not rbx
and rdi, rbx
and rbx, rsi
not rsi
mov r14, rcx
and r14, r9
or rdi, r14
and r9, rsi
or rbx, r9
xor rbx, rdi
or rsi, rcx
not rsi
or rsi, rbx
lea ecx, [r11*8]
shl rsi, cl
or rsi, qword [rax + 0x38]
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x180032761
add r11, r8
jmp 0x18003293b
mov rcx, qword [rax + 0x10]
mov r9, qword [rax + 0x18]
mov r11, r9
not r11
mov rdi, rsi
not rdi
and rdi, r11
and r9, rsi
not r9
not rdi
and rdi, r9
mov r9, qword [rax]
add r9, rcx
mov r11, qword [rax + 8]
add r11, rdi
rol rcx, 0xd
xor rcx, r9
rol rdi, 0x10
mov rbx, rdi
xor rbx, rdi
not rbx
and rbx, r11
rol r9, 0x20
xor rbx, rdi
add r11, rcx
rol rcx, 0x11
add r9, rbx
xor rcx, r11
rol rbx, 0x15
mov qword [rax + 0x10], rcx
xor rbx, r9
rol r11, 0x20
mov qword [rax + 0x18], rbx
mov qword [rax + 8], r11
xor r9, rsi
mov qword [rax], r9
sub r8, r10
mov r11, r8
xor r11, 0xfffffffffffffff8
and r11, r8
mov ecx, r8d
not ecx
or rcx, 0xfffffffffffffff8
add rcx, r8
inc rcx
cmp r10, rcx
jae 0x1800328d3
movabs rsi, 0x9f82d3d26e7cefe4
mov r9, qword [rax]
mov r8, qword [rax + 8]
mov rdi, qword [rax + 0x18]
mov rbx, qword [rax + 0x10]
mov r14, rsi
not r14
nop dword [rax]
mov r15, qword [rdx + r10]
mov r12, r15
not r12
mov r13, r12
xor r13, rdi
and r13, rdi
add r13, r13
sub rdi, r13
add rdi, r15
add r9, rbx
add r8, rdi
rol rbx, 0xd
rol rdi, 0x10
xor rbx, r9
mov r13, r8
and r13, rdi
add r13, r13
add rdi, r8
sub rdi, r13
rol r9, 0x20
mov r13, r8
and r13, rbx
xor r8, rbx
lea r8, [r8 + r13*2]
add r9, rdi
mov r13, rbx
rol r13, 0x11
mov rbx, r13
xor rbx, r13
not rbx
and rbx, r8
xor rbx, r13
rol rdi, 0x15
xor rdi, r9
rol r8, 0x20
and r12, rsi
and r15, r14
or r15, r12
mov r12, r14
xor r12, rsi
and r12, r9
xor r15, rsi
mov r9, r15
xor r9, r12
mov r15d, r10d
and r15d, 8
xor r10, 8
lea r10, [r10 + r15*2]
cmp r10, rcx
jb 0x180032820
mov qword [rax + 0x18], rdi
mov qword [rax + 0x10], rbx
mov qword [rax + 8], r8
mov qword [rax], r9
cmp r11, 4
jb 0x1800328f1
mov r9d, dword [rdx + r10]
mov r8d, 4
mov rcx, r8
or rcx, 1
cmp rcx, r11
jb 0x180032903
jmp 0x18003291d
xor r9d, r9d
xor r8d, r8d
mov rcx, r8
or rcx, 1
cmp rcx, r11
jae 0x18003291d
lea rcx, [r10 + r8]
movzx esi, word [rdx + rcx]
lea ecx, [r8*8]
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8, r11
jae 0x180032937
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 r12
pop r13
pop r14
pop r15
ret