Function at 0x41ad80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov rdx, qword [rcx + 8]
mov rax, qword [rcx]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rdx
mov rdi, rax
mov rdx, qword [rcx + 0x28]
mov rax, qword [rcx + 0x10]
mov r12, rcx
mov r14, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x58], rdx
mov rax, qword [rcx + 0x20]
mov rdx, qword [r12 + 0x38]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x68], rdx
mov rcx, rax
mov rdx, qword [r12 + 0x48]
mov rax, qword [r12 + 0x30]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x60], rax
mov rdx, qword [r12 + 0x58]
mov r13, rax
mov rax, qword [r12 + 0x40]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x70], rax
mov rdx, qword [r12 + 0x68]
mov r11, rax
mov rax, qword [r12 + 0x50]
mov r8, qword [r12 + 0x78]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x98], rdx
mov r10, rax
mov rdx, qword [r12 + 0x70]
mov rax, qword [r12 + 0x60]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xa8], r8
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov qword [rsp], r14
mov qword [rsp + 8], rbp
mov r14, r8
mov rbp, qword [rsp + 0x68]
mov r8, qword [rsp + 0x88]
mov qword [rsp + 0x28], 4
mov qword [rsp + 0x100], r12
mov rsi, rax
mov r15, qword [rsp + 0x38]
mov rax, rdx
mov r9, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x10], rbp
mov rbp, rsi
mov rsi, r8
lea r8, [rbp + rdi]
rorx r8, r8, 0x20
xor rcx, r8
lea r12, [rcx + rdi]
rorx r12, r12, 0x33
xor r12, r11
lea r8, [rcx + r12]
rorx r8, r8, 0x19
xor r8, rbp
mov qword [rsp + 0x18], r8
add r8, r12
rorx r8, r8, 0x20
xor rdi, r8
lea r8, [r15 + rbx]
rorx r8, r8, 0x20
xor rdx, r8
lea r8, [rdx + rbx]
rorx r8, r8, 0x33
xor r8, r9
mov r11, r8
lea r8, [rdx + r8]
rorx r8, r8, 0x19
xor r15, r8
lea r8, [r11 + r15]
rorx r8, r8, 0x20
xor rbx, r8
lea r8, [r13 + r10]
rorx r8, r8, 0x20
xor rax, r8
mov qword [rsp + 0x20], r11
lea r11, [rax + r10]
lea rbp, [r14 + rsi]
rorx r11, r11, 0x33
xor r11, qword [rsp]
lea r8, [rax + r11]
rorx rbp, rbp, 0x20
xor rbp, qword [rsp + 8]
lea r9, [rbp + r14]
rorx r8, r8, 0x19
xor r13, r8
lea r8, [r11 + r13]
rorx r9, r9, 0x33
xor r9, qword [rsp + 0x10]
rorx r8, r8, 0x20
xor r10, r8
lea r8, [rbp + r9]
rorx r8, r8, 0x19
xor rsi, r8
lea r8, [r9 + rsi]
rorx r8, r8, 0x20
xor r8, r14
lea r14, [rdi + rbp]
rorx r14, r14, 0x20
xor r15, r14
lea r14, [rdi + r15]
rorx r14, r14, 0x33
xor r14, r11
lea r11, [r15 + r14]
rorx r11, r11, 0x19
xor r11, rbp
mov qword [rsp], r14
add r14, r11
mov qword [rsp + 8], r11
rorx r11, r14, 0x20
xor rdi, r11
lea r11, [rcx + rbx]
rorx r11, r11, 0x20
xor r13, r11
lea r11, [rbx + r13]
rorx r11, r11, 0x33
mov rbp, r11
xor rbp, r9
lea r9, [r13 + rbp]
rorx r9, r9, 0x19
xor rcx, r9
lea r9, [rbp + rcx]
rorx r9, r9, 0x20
xor rbx, r9
lea r9, [rdx + r10]
rorx r9, r9, 0x20
xor rsi, r9
lea r11, [r10 + rsi]
rorx r11, r11, 0x33
xor r11, r12
lea r9, [rsi + r11]
rorx r9, r9, 0x19
mov qword [rsp + 0x10], rbp
xor rdx, r9
lea rbp, [rax + r8]
lea r9, [r11 + rdx]
rorx rbp, rbp, 0x20
xor rbp, qword [rsp + 0x18]
rorx r9, r9, 0x20
xor r10, r9
lea r9, [r8 + rbp]
rorx r9, r9, 0x33
xor r9, qword [rsp + 0x20]
lea r12, [rbp + r9]
rorx r12, r12, 0x19
xor rax, r12
lea r14, [r9 + rax]
rorx r14, r14, 0x20
xor r14, r8
dec qword [rsp + 0x28]
jne 0x41aeaa
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x10]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov rax, rcx
mov qword [rsp + 0x58], rbx
shr rax, 3
mov rbx, qword [rsp]
neg rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x70], r11
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x98], r9
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0x88], rsi
mov r12, qword [rsp + 0x100]
and eax, 3
je 0x41b218
add qword [r12], rdi
cmp rax, 1
je 0x41b200
add qword [r12 + 8], r15
cmp rax, 3
jne 0x41b226
add qword [r12 + 0x10], rbx
mov r9d, 3
mov r10d, 0xd
lea r8, [rax*8]
lea rdx, [r12 + r8]
vmovdqu64 ymm1, ymmword [rdx]
add rcx, r8
vpaddq ymm0, ymm1, ymmword [rcx]
vmovdqu64 ymm2, ymmword [rdx + 0x20]
vmovdqu64 ymmword [rdx], ymm0
vpaddq ymm0, ymm2, ymmword [rcx + 0x20]
vmovdqu64 ymm3, ymmword [rdx + 0x40]
mov r8d, 0x10
vmovdqu64 ymmword [rdx + 0x20], ymm0
sub r8, rax
vpaddq ymm0, ymm3, ymmword [rcx + 0x40]
mov rax, r8
shr rax, 2
vmovdqu64 ymmword [rdx + 0x40], ymm0
cmp rax, 4
jne 0x41b1c8
vmovdqu64 ymm4, ymmword [rdx + 0x60]
vpaddq ymm0, ymm4, ymmword [rcx + 0x60]
vmovdqu64 ymmword [rdx + 0x60], ymm0
vzeroupper
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [r9 + 0xc]
mov rdx, qword [rsp + rax*8 + 0x30]
add qword [r12 + rax*8], rdx
lea rax, [r9 + 0xd]
cmp r10, 0xd
je 0x41b1ad
mov rdx, qword [rsp + rax*8 + 0x30]
add r9, 0xe
add qword [r12 + rax*8], rdx
cmp r10, 0xe
je 0x41b1ad
mov rax, qword [rsp + r9*8 + 0x30]
add qword [r12 + r9*8], rax
jmp 0x41b1ad
mov r9d, 1
mov r10d, 0xf
jmp 0x41b13f
xor r9d, r9d
mov r10d, 0x10
jmp 0x41b13f
mov r10d, 0xe
mov r9d, 2
jmp 0x41b13f