Function at 0x1400a0680
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
test rdx, rdx
mov r9, rdx
mov rax, rcx
sete dl
test r8, r8
sete cl
or dl, cl
jne 0x1400a0d2d
test rax, rax
je 0x1400a0d2d
mov r12d, dword [r8 + 0x110]
mov edx, r12d
and edx, 0xfffffffd
cmp edx, 0xc
je 0x1400a06cf
cmp r12d, 0x10
jne 0x1400a0d2d
movzx edx, byte [rax]
movzx ebx, byte [rax + 3]
lea r11, [0x140381cc0]
lea r10, [0x1403810c0]
xor ebx, dword [r8]
movzx r13d, byte [rax + 7]
lea rsi, [0x1403814c0]
shl edx, 0x18
xor r13d, dword [r8 + 4]
movzx ecx, byte [rax + 8]
xor ebx, edx
movzx edx, byte [rax + 1]
movzx ebp, byte [rax + 0xf]
shl ecx, 0x18
xor ebp, dword [r8 + 0xc]
shl edx, 0x10
xor ebx, edx
movzx edx, byte [rax + 2]
shl edx, 8
xor ebx, edx
movzx edx, byte [rax + 4]
movzx edi, bl
shl edx, 0x18
xor r13d, edx
movzx edx, byte [rax + 5]
shl edx, 0x10
xor r13d, edx
movzx edx, byte [rax + 6]
shl edx, 8
xor r13d, edx
movzx edx, byte [rax + 0xb]
xor edx, dword [r8 + 8]
xor edx, ecx
movzx ecx, byte [rax + 9]
movzx r14d, r13b
shl ecx, 0x10
xor edx, ecx
movzx ecx, byte [rax + 0xa]
shl ecx, 8
xor edx, ecx
movzx ecx, byte [rax + 0xc]
shl ecx, 0x18
xor ebp, ecx
movzx ecx, byte [rax + 0xd]
movzx eax, byte [rax + 0xe]
shl ecx, 0x10
shl eax, 8
xor ebp, ecx
mov ecx, ebx
xor ebp, eax
shr ecx, 0x18
movzx eax, bh
shr ebx, 0x10
mov ecx, dword [r11 + rcx*4]
cdqe
xor ecx, dword [r10 + rdi*4]
movzx ebx, bl
lea rdi, [0x1403818c0]
xor ecx, dword [rdi + rbx*4]
xor ecx, dword [rsi + rax*4]
mov eax, r13d
mov ebx, r13d
shr r13d, 0x10
movzx eax, ah
shr ebx, 0x18
cdqe
movzx r13d, r13b
mov ebx, dword [r11 + rbx*4]
xor ebx, dword [r10 + r14*4]
xor ebx, dword [rdi + r13*4]
xor ebx, dword [rsi + rax*4]
movzx eax, dh
movzx r14d, dl
movsxd r13, eax
mov eax, edx
shr edx, 0x10
shr eax, 0x18
movzx edx, dl
mov eax, dword [r11 + rax*4]
xor eax, dword [r10 + r14*4]
movzx r14d, bpl
xor eax, dword [rdi + rdx*4]
mov edx, ebp
xor eax, dword [rsi + r13*4]
movzx edx, dh
xor ebx, eax
movsxd r13, edx
mov edx, ebp
shr ebp, 0x10
xor ecx, ebx
shr edx, 0x18
movzx ebp, bpl
mov edx, dword [r11 + rdx*4]
xor edx, dword [r10 + r14*4]
xor edx, dword [rdi + rbp*4]
xor edx, dword [rsi + r13*4]
xor eax, edx
xor edx, ebx
xor eax, ecx
mov r13d, edx
xor ebx, eax
shr r13d, 0x18
mov ebp, ebx
shr ebx, 8
shl ebp, 8
and ebx, 0xff00ff
rol eax, 0x10
and ebp, 0xff00ff00
or ebx, ebp
mov ebp, edx
shl ebp, 0x18
xor ebp, r13d
mov r13d, edx
shl r13d, 8
and r13d, 0xff0000
shr edx, 8
xor ebx, eax
and edx, 0xff00
xor ebp, r13d
xor ecx, ebx
xor ebp, edx
mov edx, dword [r8 + 0x14]
xor eax, ebp
xor ebp, dword [r8 + 0x1c]
xor eax, ecx
xor edx, ebx
xor ecx, dword [r8 + 0x10]
xor ebx, ebp
xor edx, eax
xor eax, dword [r8 + 0x18]
lea rbp, [r8 + 0x20]
mov r15d, eax
cmp r12d, 2
jle 0x1400a0b0e
sub r12d, 3
mov r14d, edx
shr r12d, 1
mov eax, r12d
lea r12, [rax + 2]
mov qword [rsp], rax
mov eax, r15d
shl r12, 5
add r8, r12
mov r12, rbp
nop
movzx edx, ch
movzx r15d, cl
movsxd r13, edx
mov edx, ecx
shr ecx, 0x10
shr edx, 0x18
movzx ecx, cl
mov edx, dword [rsi + rdx*4]
xor edx, dword [rdi + r15*4]
movzx r15d, r14b
xor edx, dword [r10 + rcx*4]
mov ecx, r14d
xor edx, dword [r11 + r13*4]
mov r13d, r14d
shr r14d, 0x10
movzx ecx, ch
shr r13d, 0x18
movsxd rcx, ecx
movzx r14d, r14b
mov r13d, dword [rsi + r13*4]
xor r13d, dword [rdi + r15*4]
xor r13d, dword [r10 + r14*4]
xor r13d, dword [r11 + rcx*4]
movzx ecx, ah
movzx r15d, al
movsxd r14, ecx
mov ecx, eax
shr eax, 0x10
shr ecx, 0x18
movzx eax, al
mov ecx, dword [rsi + rcx*4]
xor ecx, dword [rdi + r15*4]
movzx r15d, bl
xor ecx, dword [r10 + rax*4]
mov eax, dword [r11 + r14*4]
xor eax, ecx
movzx ecx, bh
movsxd r14, ecx
mov ecx, ebx
shr ebx, 0x10
xor r13d, eax
shr ecx, 0x18
movzx ebx, bl
xor edx, r13d
mov ecx, dword [rsi + rcx*4]
xor ecx, dword [rdi + r15*4]
xor ecx, dword [r10 + rbx*4]
xor ecx, dword [r11 + r14*4]
xor eax, ecx
xor ecx, r13d
mov r14d, ecx
mov ebx, ecx
xor eax, edx
rol edx, 0x10
shl r14d, 8
shr ebx, 8
xor r13d, eax
and r14d, 0xff00ff00
and ebx, 0xff00ff
mov r15d, r13d
mov ecx, r14d
mov r14d, r13d
or ecx, ebx
mov ebx, r13d
shr ebx, 8
shr r15d, 0x18
shl r14d, 0x18
shl r13d, 8
and ebx, 0xff00
xor r14d, r15d
and r13d, 0xff0000
xor r14d, eax
xor eax, ecx
xor ecx, dword [r12 + 0xc]
xor r14d, r13d
xor ebx, r14d
mov r14d, dword [r12 + 4]
xor edx, ebx
xor eax, edx
xor edx, dword [r12]
xor r14d, ebx
xor ebx, ecx
movzx ecx, dh
movzx r15d, dl
xor r14d, eax
xor eax, dword [r12 + 8]
movsxd r13, ecx
mov ecx, edx
shr edx, 0x10
shr ecx, 0x18
movzx edx, dl
mov ecx, dword [r11 + rcx*4]
xor ecx, dword [r10 + r15*4]
movzx r15d, r14b
xor ecx, dword [rdi + rdx*4]
mov edx, r14d
xor ecx, dword [rsi + r13*4]
mov r13d, r14d
shr r14d, 0x10
movzx edx, dh
shr r13d, 0x18
movsxd rdx, edx
movzx r14d, r14b
mov r13d, dword [r11 + r13*4]
xor r13d, dword [r10 + r15*4]
xor r13d, dword [rdi + r14*4]
xor r13d, dword [rsi + rdx*4]
movzx edx, ah
movzx r14d, al
movsxd r15, edx
mov edx, eax
shr eax, 0x10
shr edx, 0x18
mov edx, dword [r11 + rdx*4]
xor edx, dword [r10 + r14*4]
mov r14d, edx
movzx edx, al
mov eax, dword [rdi + rdx*4]
movzx edx, bh
xor eax, r14d
movsxd r14, edx
xor eax, dword [rsi + r15*4]
mov edx, ebx
movzx r15d, bl
shr ebx, 0x10
xor r13d, eax
shr edx, 0x18
movzx ebx, bl
xor ecx, r13d
mov edx, dword [r11 + rdx*4]
xor edx, dword [r10 + r15*4]
xor edx, dword [rdi + rbx*4]
xor edx, dword [rsi + r14*4]
xor eax, edx
xor edx, r13d
xor eax, ecx
mov r14d, edx
xor r13d, eax
shr r14d, 0x18
mov ebx, r13d
shr r13d, 8
shl ebx, 8
and r13d, 0xff00ff
rol eax, 0x10
and ebx, 0xff00ff00
or ebx, r13d
mov r13d, edx
shl r13d, 0x18
xor ebx, eax
xor r13d, r14d
mov r14d, edx
shr edx, 8
xor ecx, ebx
shl r14d, 8
and edx, 0xff00
and r14d, 0xff0000
xor r13d, r14d
mov r14d, dword [r12 + 0x14]
xor r13d, edx
xor eax, r13d
xor eax, ecx
xor ecx, dword [r12 + 0x10]
xor r14d, ebx
xor r13d, dword [r12 + 0x1c]
xor r14d, eax
add r12, 0x20
xor eax, dword [r12 - 8]
xor ebx, r13d
cmp r8, r12
jne 0x1400a08b0
mov r8, qword [rsp]
mov edx, r14d
mov r15d, eax
add r8, 1
shl r8, 5
add rbp, r8
mov r12d, ecx
movzx r8d, cl
movzx eax, ch
shr ecx, 0x10
shr r12d, 0x18
movzx r8d, byte [rdi + r8*4]
movzx ecx, cl
mov r12d, dword [rsi + r12*4]
mov ecx, dword [r10 + rcx*4]
shl r12d, 0x18
shl ecx, 8
or r8d, r12d
movsxd r12, eax
and ecx, 0xff0000
mov eax, r15d
mov r12d, dword [r11 + r12*4]
shr eax, 0x18
shl r12d, 8
movzx r12d, r12w
or r8d, r12d
or r8d, ecx
movzx ecx, dl
xor r8d, dword [rbp]
movzx r12d, byte [rdi + rcx*4]
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [rsi + rcx*4]
shl ecx, 0x18
or r12d, ecx
movzx ecx, dh
shr edx, 0x10
movsxd rcx, ecx
mov ecx, dword [r11 + rcx*4]
shl ecx, 8
movzx ecx, cx
or r12d, ecx
movzx ecx, dl
mov edx, dword [r10 + rcx*4]
movzx ecx, r15b
movzx ecx, byte [rdi + rcx*4]
shl edx, 8
and edx, 0xff0000
or edx, r12d
movsxd r12, eax
mov eax, r15d
xor edx, dword [rbp + 4]
mov r12d, dword [rsi + r12*4]
movzx eax, ah
mov r13d, edx
mov r14d, edx
shl r12d, 0x18
or ecx, r12d
movsxd r12, eax
mov eax, r15d
mov r15d, edx
shr eax, 0x10
mov r12d, dword [r11 + r12*4]
movzx edx, dl
movzx eax, al
mov eax, dword [r10 + rax*4]
shl r12d, 8
movzx r12d, r12w
shl eax, 8
or ecx, r12d
mov r12d, r8d
and eax, 0xff0000
or ecx, eax
movzx eax, bl
xor ecx, dword [rbp + 8]
movzx eax, byte [rdi + rax*4]
mov edi, ebx
shr edi, 0x18
mov esi, dword [rsi + rdi*4]
mov edi, ecx
shl esi, 0x18
or eax, esi
movzx esi, bh
shr r15d, 8
shr ebx, 0x10
movsxd rsi, esi
shl rdx, 8
movzx r15d, r15b
mov r11d, dword [r11 + rsi*4]
movzx ebx, bl
shr r14d, 0x10
or rdx, r15
mov r10d, dword [r10 + rbx*4]
shl rdx, 8
movzx r14d, r14b
shr r13d, 0x18
shl r11d, 8
or rdx, r14
movzx r13d, r13b
shr r12d, 8
movzx r11d, r11w
shl r10d, 8
movzx r12d, r12b
mov esi, ecx
shr edi, 0x10
or eax, r11d
shl rdx, 8
mov r11d, ecx
and r10d, 0xff0000
or rdx, r13
shr esi, 0x18
movzx ecx, cl
shl rdx, 8
or eax, r10d
mov r10d, r8d
xor eax, dword [rbp + 0xc]
mov ebp, r8d
movzx r8d, r8b
mov dword [rsp + 0x1c], edi
mov edi, eax
or rdx, r8
shr ebp, 0x10
mov dword [rsp], esi
mov ebx, eax
shl rdx, 8
movzx ebp, bpl
mov esi, eax
shr edi, 8
or rdx, r12
movzx eax, al
shr r10d, 0x18
movzx edi, dil
shl rdx, 8
shr r11d, 8
movzx r10d, r10b
shr ebx, 0x18
or rdx, rbp
shr esi, 0x10
movzx r11d, r11b
shl rdx, 8
shl rax, 8
movzx esi, sil
movzx ebx, bl
or rax, rdi
or rdx, r10
shl rax, 8
or rax, rsi
shl rax, 8
or rax, rbx
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x1c]
shl rax, 8
or rax, r11
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp]
mov qword [rsp], rdx
shl rax, 8
or rax, rcx
mov qword [rsp + 8], rax
movdqa xmm0, xmmword [rsp]
movups xmmword [r9], xmm0
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret