Function at 0x1800ad410
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [rcx + 0x10]
mov rbx, r9
mov rdi, r8
mov rsi, rdx
cmp qword [rcx + 8], rax
jne 0x1800ad441
call fcn.180036630
mov rcx, qword [rsp + 0x80]
test rbx, rbx
je 0x1800ad943
mov qword [rsp + 0x88], rbp
lea rax, [rsi + 4]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], r13
lea r13, [rdi + 4]
sub rdi, rsi
mov qword [rsp + 0x48], r14
add rdi, 0xfffffffffffffffc
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], rdi
lea rdi, [0x180000000]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
movzx ebp, word [rax - 4]
movzx r15d, word [rax - 2]
movzx r12d, word [rax]
movzx r14d, word [rax + 2]
mov rcx, qword [rcx + 8]
rol bp, 8
rol r15w, 8
rol r12w, 8
rol r14w, 8
xor r13d, r13d
mov qword [rsp + 0x20], rcx
lea eax, [r13 + 0x60]
nop word [rax + rax]
mov rsi, rcx
sub rsi, r13
movzx ecx, word [rsi + 0x74]
movzx r11d, word [rsi + 0x76]
xor cx, r12w
movzx r8d, cl
movzx edx, cx
shr rdx, 7
and r8b, 0x7f
movzx ecx, r8b
movzx r9d, word [rdi + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rdi + 0x202a10]
mov edx, r11d
movzx r11d, word [rsi + 0x7a]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rdi + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rdi + 0x202a10]
xor cl, dl
movzx ebx, cl
movzx ecx, word [rsi + 0x78]
xor cx, r14w
shl bx, 9
movzx edx, cx
or bx, r8w
movzx r8d, cl
shr rdx, 7
and r8b, 0x7f
xor bx, r14w
movzx ecx, r8b
movzx r9d, word [rdi + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rdi + 0x202a10]
mov edx, r11d
movzx r11d, word [rsi + 0x7e]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rdi + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rdi + 0x202a10]
xor cl, dl
movzx edi, cl
movzx ecx, word [rsi + 0x7c]
xor cx, bx
shl di, 9
or di, r8w
movzx edx, cx
shr rdx, 7
movzx r8d, cl
xor di, bx
and r8b, 0x7f
lea rbx, [0x180000000]
movzx ecx, r8b
movzx r9d, word [rbx + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rbx + 0x202a10]
mov edx, r11d
mov r11, qword [rsp + 0x20]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx r9d, di
rol r9w, 1
and r9w, word [rax + r11 + 0x10]
movzx ecx, r10b
movzx r8d, word [rbx + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rbx + 0x202a10]
xor cl, dl
movzx edx, cl
shl dx, 9
or dx, r8w
xor r9w, dx
xor r9w, di
movzx ecx, r9w
xor r15w, r9w
rol cx, 1
or cx, word [rsi + 0x72]
xor cx, di
lea rdi, [0x180000000]
xor bp, cx
movzx ebx, bp
rol bx, 1
and bx, word [rax + r11]
movzx r11d, word [rsi + 0x66]
xor bx, r15w
movzx ecx, bx
rol cx, 1
or cx, word [rsi + 0x62]
xor cx, word [rsi + 0x64]
xor cx, bp
movzx r8d, cl
movzx edx, cx
shr rdx, 7
and r8b, 0x7f
movzx ecx, r8b
movzx r9d, word [rdi + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rdi + 0x202a10]
mov edx, r11d
movzx r11d, word [rsi + 0x6a]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rdi + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rdi + 0x202a10]
xor cl, dl
movzx edi, cl
movzx ecx, word [rsi + 0x68]
shl di, 9
or di, r8w
xor di, bx
xor cx, bx
movzx r8d, cl
movzx edx, cx
lea rbx, [0x180000000]
shr rdx, 7
lea rax, [rax - 0x20]
and r8b, 0x7f
add r13, 0x20
movzx ecx, r8b
movzx r9d, word [rbx + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rbx + 0x202a10]
mov edx, r11d
movzx r11d, word [rsi + 0x6e]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rbx + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rbx + 0x202a10]
xor cl, dl
movzx ebx, cl
movzx ecx, word [rsi + 0x6c]
xor cx, di
shl bx, 9
movzx edx, cx
or bx, r8w
movzx r8d, cl
shr rdx, 7
and r8b, 0x7f
xor bx, di
movzx ecx, r8b
lea rdi, [0x180000000]
xor r12w, bx
movzx r9d, word [rdi + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rdi + 0x202a10]
mov edx, r11d
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rdi + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rdi + 0x202a10]
xor cl, dl
movzx edx, cl
mov rcx, qword [rsp + 0x20]
shl dx, 9
or dx, r8w
xor dx, bx
xor r14w, dx
cmp r13, 0x80
jne 0x1800ad4d0
mov r13, qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x80]
rol bp, 8
rol r15w, 8
rol r12w, 8
rol r14w, 8
mov word [rdx + rax], bp
add rax, 8
mov word [r13 - 2], r15w
mov word [r13], r12w
mov word [r13 + 2], r14w
add r13, 8
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r13
jne 0x1800ad490
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret