Function at 0x1800ac5e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push r13
push r15
sub rsp, 0x38
mov rax, qword [rcx + 0x10]
mov r15, r9
mov rbx, r8
mov rsi, rdx
mov r13, rcx
cmp qword [rcx + 8], rax
jne 0x1800ac60a
call fcn.1800331f0
test r15, r15
je 0x1800ac9b2
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x30], rdi
lea rdi, [rsi + 4]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
lea r14, [rbx + 4]
sub rbx, rsi
lea rax, [rbx - 4]
mov qword [rsp + 0x78], rax
nop dword [rax + rax]
movzx ebx, word [rdi - 4]
movzx r11d, word [rdi - 2]
movzx esi, word [rdi]
movzx eax, word [rdi + 2]
mov rbp, qword [r13 + 8]
lea r13, [0x180000000]
rol bx, 8
rol r11w, 8
rol si, 8
rol ax, 8
xor r12d, r12d
nop
movzx ecx, bx
and cx, word [r12 + rbp]
xor r11w, cx
movzx ecx, word [r12 + rbp + 2]
or cx, r11w
xor bx, cx
movzx ecx, word [r12 + rbp + 4]
and cx, si
xor ax, cx
movzx ecx, word [r12 + rbp + 8]
xor cx, bx
movzx edx, cx
movzx ecx, cx
shr rcx, 7
and dx, 0x7f
movzx ecx, word [r13 + rcx*2 + 0x1d7080]
xor cx, dx
movzx r8d, cx
movzx ecx, dx
movzx edx, byte [rcx + r13 + 0x1d7000]
xor dx, word [r12 + rbp + 0xa]
movzx ecx, word [r12 + rbp + 0xc]
xor dx, r8w
xor rcx, r8
and dx, 0x7f
movzx r9d, word [r13 + rcx*2 + 0x1d7080]
movzx ecx, word [r12 + rbp + 0xe]
xor r9w, dx
xor cx, r11w
shl dx, 9
or r9w, dx
movzx edx, cx
movzx ecx, cx
and dx, 0x7f
shr rcx, 7
xor r9w, r11w
movzx ecx, word [r13 + rcx*2 + 0x1d7080]
xor cx, dx
movzx r8d, cx
movzx ecx, dx
movzx edx, byte [rcx + r13 + 0x1d7000]
xor dx, word [r12 + rbp + 0x10]
movzx ecx, word [r12 + rbp + 0x12]
xor dx, r8w
xor rcx, r8
and dx, 0x7f
movzx r10d, word [r13 + rcx*2 + 0x1d7080]
movzx ecx, word [r12 + rbp + 0x14]
xor r10w, dx
xor cx, r9w
shl dx, 9
or r10w, dx
movzx edx, cx
movzx ecx, cx
and dx, 0x7f
shr rcx, 7
xor r10w, r9w
movzx ecx, word [r13 + rcx*2 + 0x1d7080]
xor cx, dx
movzx r8d, cx
movzx ecx, dx
movzx r9d, byte [rcx + r13 + 0x1d7000]
xor r9w, word [r12 + rbp + 0x16]
movzx ecx, word [r12 + rbp + 6]
xor r9w, r8w
or cx, ax
and r9w, 0x7f
xor cx, word [r12 + rbp + 0x1a]
xor cx, r10w
xor si, cx
movzx ecx, word [r12 + rbp + 0x18]
xor rcx, r8
movzx edx, word [r13 + rcx*2 + 0x1d7080]
movzx ecx, word [r12 + rbp + 0x1c]
xor dx, r9w
shl r9w, 9
or dx, r9w
xor dx, r10w
xor ax, dx
xor cx, si
movzx edx, cx
movzx ecx, cx
and dx, 0x7f
shr rcx, 7
movzx ecx, word [r13 + rcx*2 + 0x1d7080]
xor cx, dx
movzx r8d, cx
movzx ecx, dx
movzx edx, byte [rcx + r13 + 0x1d7000]
xor dx, word [r12 + rbp + 0x1e]
movzx ecx, word [r12 + rbp + 0x20]
xor dx, r8w
xor rcx, r8
and dx, 0x7f
movzx r9d, word [r13 + rcx*2 + 0x1d7080]
movzx ecx, word [r12 + rbp + 0x22]
xor r9w, dx
xor cx, ax
shl dx, 9
or r9w, dx
movzx edx, cx
movzx ecx, cx
and dx, 0x7f
shr rcx, 7
xor r9w, ax
movzx ecx, word [r13 + rcx*2 + 0x1d7080]
xor cx, dx
movzx r8d, cx
movzx ecx, dx
movzx edx, byte [rcx + r13 + 0x1d7000]
xor dx, word [r12 + rbp + 0x24]
movzx ecx, word [r12 + rbp + 0x26]
xor dx, r8w
xor rcx, r8
and dx, 0x7f
movzx r10d, word [r13 + rcx*2 + 0x1d7080]
movzx ecx, word [r12 + rbp + 0x28]
xor r10w, dx
xor cx, r9w
shl dx, 9
or r10w, dx
movzx edx, cx
movzx ecx, cx
xor r10w, r9w
shr rcx, 7
and dx, 0x7f
movzx ecx, word [r13 + rcx*2 + 0x1d7080]
xor cx, dx
movzx r8d, cx
movzx ecx, dx
movzx r9d, byte [rcx + r13 + 0x1d7000]
xor r9w, word [r12 + rbp + 0x2a]
movzx ecx, word [r12 + rbp + 0x2e]
xor r9w, r8w
xor cx, r10w
and r9w, 0x7f
xor bx, cx
movzx ecx, word [r12 + rbp + 0x2c]
xor rcx, r8
add r12, 0x30
movzx edx, word [r13 + rcx*2 + 0x1d7080]
xor dx, r9w
shl r9w, 9
or dx, r9w
xor dx, r10w
xor r11w, dx
cmp r12, 0xc0
jne 0x1800ac670
movzx ecx, word [rbp + 0xc0]
mov rdx, qword [rsp + 0x78]
and cx, bx
mov r13, qword [rsp + 0x60]
xor r11w, cx
movzx ecx, word [rbp + 0xc2]
or cx, r11w
rol r11w, 8
xor bx, cx
movzx ecx, word [rbp + 0xc4]
and cx, si
rol bx, 8
xor ax, cx
movzx ecx, word [rbp + 0xc6]
or cx, ax
mov word [r14], bx
xor cx, si
rol ax, 8
rol cx, 8
mov word [rdx + rdi], cx
add rdi, 8
mov word [r14 - 2], ax
mov word [r14 + 2], r11w
add r14, 8
sub r15, 1
jne 0x1800ac640
mov r14, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
add rsp, 0x38
pop r15
pop r13
pop rsi
pop rbx
ret