Function at 0x1800a57c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov r15, r9
mov rdi, r8
mov r13, rdx
mov qword [rsp + 0x38], rcx
mov rsi, qword [rsp + 0x120]
cmp rdx, 0x21
jae 0x1800a580c
mov qword [rsp + 0x20], rsi
mov rcx, qword [rsp + 0x38]
mov rdx, r13
mov r8, rdi
mov r9, r15
call fcn.1800b4230
jmp 0x1800a5d3a
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x48], rax
mov ebx, dword [rsp + 0x110]
lea rax, [rdi - 0x20]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], r15
mov rax, qword [rsp + 0x38]
add rax, 0x20
mov qword [rsp + 0x70], rax
mov r14, r13
nop
sub ebx, 1
jb 0x1800a5d1d
mov dword [rsp + 0x44], ebx
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
mov rdx, r14
mov r8, rsi
call fcn.1800b3270
mov r12, rax
shl rax, 5
lea rsi, [rbx + rax]
movups xmm0, xmmword [rbx + rax]
movups xmm1, xmmword [rbx + rax + 0x10]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
cmp qword [rsp + 0x48], 0
mov qword [rsp + 0x68], r14
je 0x1800a58e0
mov r13, qword [rsp + 0x48]
mov rcx, qword [r13 + 8]
mov rax, qword [r13 + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov rbx, rax
sub rbx, r8
cmovb r8, rax
call fcn.1801f1350
cdqe
test eax, eax
cmovne rbx, rax
movzx eax, byte [r13 + 0x18]
sub al, byte [rsi + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rbx, rbx
sets al
cmovne ecx, eax
cmp cl, 1
jne 0x1800a5b20
cmp r14, r15
ja 0x1800a5d4f
shl r14, 5
mov qword [rsp + 0x78], r14
lea rbp, [rdi + r14]
xor r13d, r13d
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x50], r12
nop word cs:[rax + rax]
mov r15, r12
shl r15, 5
add r15, qword [rsp + 0x38]
cmp rbx, r15
jae 0x1800a59a3
nop word cs:[rax + rax]
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov r14, rax
sub r14, r8
cmovb r8, rax
call fcn.1801f1350
cdqe
test eax, eax
cmovne r14, rax
movzx eax, byte [rbx + 0x18]
sub al, byte [rsi + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test r14, r14
sets al
cmovne ecx, eax
add rbp, 0xffffffffffffffe0
test cl, cl
mov rax, rbp
cmovne rax, rdi
mov rdx, r13
shl rdx, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
movzx eax, cl
add r13, rax
add rbx, 0x20
cmp rbx, r15
jb 0x1800a5930
mov r14, qword [rsp + 0x68]
cmp r12, r14
je 0x1800a59e0
mov rax, r13
shl rax, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + rax - 0x10], xmm1
movups xmmword [rbp + rax - 0x20], xmm0
add rbp, 0xffffffffffffffe0
add rbx, 0x20
mov r12, r14
jmp 0x1800a5910
mov rbp, r13
shl rbp, 5
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, rbp
call fcn.1801f0cd0
mov rdx, r14
sub rdx, r13
mov r15, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
je 0x1800a5ac5
lea rax, [r13 + 1]
cmp r14, rax
jne 0x1800a5a20
xor eax, eax
jmp 0x1800a5a95
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x70]
lea r8, [rax + rbp]
mov r11, qword [rsp + 0x78]
add r11, qword [rsp + 0x58]
xor r9d, r9d
movabs r10, 0x7fffffffffffffe
nop word [rax + rax]
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmmword [r8 - 0x10], xmm1
movups xmmword [r8 - 0x20], xmm0
lea rax, [r9 + 2]
xor r9, r10
add r9, r14
shl r9, 5
movups xmm0, xmmword [rdi + r9]
movups xmm1, xmmword [rdi + r9 + 0x10]
movups xmmword [r8], xmm0
movups xmmword [r8 + 0x10], xmm1
add r8, 0x40
add r11, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x1800a5a50
test dl, 1
je 0x1800a5ac5
mov rcx, rax
not rcx
add rcx, r14
shl rcx, 5
add rax, r13
shl rax, 5
movups xmm0, xmmword [rdi + rcx]
movups xmm1, xmmword [rdi + rcx + 0x10]
mov rcx, qword [rsp + 0x38]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
test r13, r13
je 0x1800a5b20
cmp r14, r13
jb 0x1800a5d4f
add rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x120]
mov qword [rsp + 0x30], rsi
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov ebx, dword [rsp + 0x44]
mov dword [rsp + 0x20], ebx
mov rcx, rbp
mov r8, rdi
mov r9, r15
call fcn.1800a57c0
mov r14, r13
cmp r13, 0x21
jae 0x1800a5840
jmp 0x1800a57ef
cmp r14, r15
ja 0x1800a5d4f
shl r14, 5
mov qword [rsp + 0x50], r14
lea r13, [rdi + r14]
xor ebp, ebp
mov rbx, qword [rsp + 0x38]
nop dword [rax]
mov r14, r12
mov r15, r12
shl r15, 5
add r15, qword [rsp + 0x38]
cmp rbx, r15
jae 0x1800a5bd3
nop word cs:[rax + rax]
mov rcx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov r12, rax
sub r12, r8
cmovb r8, rax
call fcn.1801f1350
cdqe
test eax, eax
cmovne r12, rax
movzx eax, byte [rsi + 0x18]
sub al, byte [rbx + 0x18]
xor ecx, ecx
cmp al, 0xff
setne cl
xor eax, eax
test r12, r12
setns al
cmovne ecx, eax
add r13, 0xffffffffffffffe0
test cl, cl
mov rax, r13
cmovne rax, rdi
mov rdx, rbp
shl rdx, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
movzx eax, cl
add rbp, rax
add rbx, 0x20
cmp rbx, r15
jb 0x1800a5b60
mov r12, qword [rsp + 0x68]
cmp r14, r12
je 0x1800a5c10
add r13, 0xffffffffffffffe0
mov rax, rbp
shl rax, 5
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + rax + 0x10], xmm1
movups xmmword [rdi + rax], xmm0
inc rbp
add rbx, 0x20
jmp 0x1800a5b40
mov rsi, rbp
shl rsi, 5
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, rsi
call fcn.1801f0cd0
mov r13, r12
sub r13, rbp
mov r15, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x44]
je 0x1800a5cf2
lea rax, [rbp + 1]
cmp r12, rax
jne 0x1800a5c49
xor eax, eax
jmp 0x1800a5cc1
mov rcx, r13
and rcx, 0xfffffffffffffffe
mov rax, qword [rsp + 0x38]
lea rdx, [rax + rsi]
add rdx, 0x20
mov r10, qword [rsp + 0x50]
add r10, qword [rsp + 0x58]
xor r8d, r8d
movabs r9, 0x7fffffffffffffe
nop word cs:[rax + rax]
movups xmm0, xmmword [r10]
movups xmm1, xmmword [r10 + 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rax, [r8 + 2]
xor r8, r9
add r8, r12
shl r8, 5
movups xmm0, xmmword [rdi + r8]
movups xmm1, xmmword [rdi + r8 + 0x10]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
add rdx, 0x40
add r10, 0xffffffffffffffc0
mov r8, rax
cmp rcx, rax
jne 0x1800a5c80
test r13b, 1
je 0x1800a5cf2
mov rcx, rax
not rcx
add rcx, r12
shl rcx, 5
add rax, rbp
shl rax, 5
movups xmm0, xmmword [rdi + rcx]
movups xmm1, xmmword [rdi + rcx + 0x10]
mov rcx, qword [rsp + 0x38]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
cmp r12, rbp
jb 0x1800a5d4f
add qword [rsp + 0x38], rsi
mov eax, 0
mov qword [rsp + 0x48], rax
cmp r13, 0x21
mov rsi, qword [rsp + 0x120]
jae 0x1800a582e
jmp 0x1800a57ef
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x20], 1
mov rcx, qword [rsp + 0x38]
mov rdx, r14
mov r8, rdi
mov r9, r15
call fcn.1800b2530
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2