Function at 0x140091870
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push r12
push r13
push r15
sub rsp, 0x38
mov rax, qword [rcx + 0x28]
mov r13, r9
mov r12, r8
mov rbx, rdx
mov r15, rcx
cmp qword [rcx + 0x20], rax
jne 0x14009189b
call fcn.140041540
test r13, r13
je 0x140091c36
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x30], rsi
lea rsi, [rbx + 6]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
lea r14, [r12 + 4]
sub r12, rbx
sub r12, 6
mov qword [rsp + 0x70], r12
nop dword [rax]
movzx ebx, word [rsi - 2]
lea r12, [0x140000000]
movzx r11d, word [rsi]
movzx edi, word [rsi - 6]
movzx eax, word [rsi - 4]
mov rbp, qword [r15 + 0x20]
mov r15d, 4
rol bx, 8
rol r11w, 8
rol di, 8
rol ax, 8
movzx ecx, ax
or cx, word [rbp]
xor di, cx
movzx ecx, word [rbp + 2]
and cx, di
xor ax, cx
movzx ecx, r11w
or cx, word [rbp + 4]
xor bx, cx
movzx ecx, word [rbp + 6]
and cx, bx
xor r11w, cx
movzx ecx, di
xor cx, word [rbp + 8]
movzx r8d, cx
movzx edx, cx
and r8w, 0x7f
shr rdx, 7
movzx ecx, r8w
xor cx, word [r12 + rdx*2 + 0x172c00]
movzx edx, cx
movzx ecx, r8w
movzx r8d, byte [rcx + r12 + 0x172b80]
xor r8w, word [rbp + 0xa]
movzx ecx, word [rbp + 0xc]
xor r8w, dx
xor rcx, rdx
and r8w, 0x7f
movzx r10d, r8w
shl r8w, 9
xor r10w, word [r12 + rcx*2 + 0x172c00]
movzx ecx, ax
xor cx, word [rbp + 0xe]
or r10w, r8w
movzx r8d, cx
movzx edx, cx
and r8w, 0x7f
shr rdx, 7
movzx ecx, r8w
xor r10w, ax
xor cx, word [r12 + rdx*2 + 0x172c00]
movzx edx, cx
movzx ecx, r8w
movzx r8d, byte [rcx + r12 + 0x172b80]
xor r8w, word [rbp + 0x10]
movzx ecx, word [rbp + 0x12]
xor r8w, dx
xor rcx, rdx
and r8w, 0x7f
movzx r9d, r8w
shl r8w, 9
xor r9w, word [r12 + rcx*2 + 0x172c00]
or r9w, r8w
xor r9w, r10w
xor r10w, word [rbp + 0x14]
movzx r8d, r10w
movzx edx, r10w
and r8w, 0x7f
shr rdx, 7
movzx ecx, r8w
xor cx, word [r12 + rdx*2 + 0x172c00]
movzx edx, cx
movzx ecx, r8w
movzx r8d, byte [rcx + r12 + 0x172b80]
movzx ecx, r9w
xor cx, word [rbp + 0x1a]
xor r8w, word [rbp + 0x16]
xor bx, cx
movzx ecx, word [rbp + 0x18]
xor r8w, dx
xor rcx, rdx
and r8w, 0x7f
movzx edx, r8w
shl r8w, 9
xor dx, word [r12 + rcx*2 + 0x172c00]
movzx ecx, bx
or dx, r8w
xor dx, r9w
xor r11w, dx
xor cx, word [rbp + 0x1c]
movzx r8d, cx
and r8w, 0x7f
movzx edx, cx
movzx ecx, r8w
shr rdx, 7
lea rbp, [rbp + 0x30]
xor cx, word [r12 + rdx*2 + 0x172c00]
movzx edx, cx
movzx ecx, r8w
movzx r8d, byte [rcx + r12 + 0x172b80]
xor r8w, word [rbp - 0x12]
movzx ecx, word [rbp - 0x10]
xor r8w, dx
xor rcx, rdx
and r8w, 0x7f
movzx r10d, r8w
shl r8w, 9
xor r10w, word [r12 + rcx*2 + 0x172c00]
movzx ecx, r11w
xor cx, word [rbp - 0xe]
or r10w, r8w
movzx r8d, cx
movzx edx, cx
and r8w, 0x7f
shr rdx, 7
movzx ecx, r8w
xor r10w, r11w
xor cx, word [r12 + rdx*2 + 0x172c00]
movzx edx, cx
movzx ecx, r8w
movzx r8d, byte [rcx + r12 + 0x172b80]
xor r8w, word [rbp - 0xc]
movzx ecx, word [rbp - 0xa]
xor r8w, dx
xor rcx, rdx
and r8w, 0x7f
movzx r9d, r8w
shl r8w, 9
xor r9w, word [r12 + rcx*2 + 0x172c00]
or r9w, r8w
xor r9w, r10w
xor r10w, word [rbp - 8]
movzx r8d, r10w
movzx edx, r10w
and r8w, 0x7f
shr rdx, 7
movzx ecx, r8w
xor cx, word [r12 + rdx*2 + 0x172c00]
movzx edx, cx
movzx ecx, r8w
movzx r8d, byte [rcx + r12 + 0x172b80]
movzx ecx, r9w
xor cx, word [rbp - 2]
xor r8w, word [rbp - 6]
xor di, cx
movzx ecx, word [rbp - 4]
xor r8w, dx
xor rcx, rdx
and r8w, 0x7f
movzx edx, r8w
shl r8w, 9
xor dx, word [r12 + rcx*2 + 0x172c00]
or dx, r8w
xor dx, r9w
xor ax, dx
sub r15, 1
jne 0x140091902
mov r15, qword [rsp + 0x60]
movzx ecx, ax
mov r12, qword [rsp + 0x70]
mov rdx, qword [r15 + 0x20]
or cx, word [rdx + 0xc0]
xor di, cx
movzx ecx, word [rdx + 0xc2]
and cx, di
rol di, 8
xor ax, cx
movzx ecx, r11w
or cx, word [rdx + 0xc4]
xor bx, cx
rol ax, 8
movzx ecx, word [rdx + 0xc6]
and cx, bx
mov word [r14], di
xor r11w, cx
rol bx, 8
rol r11w, 8
mov word [r14 - 2], r11w
mov word [r12 + rsi], bx
add rsi, 8
mov word [r14 + 2], ax
add r14, 8
sub r13, 1
jne 0x1400918d0
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
add rsp, 0x38
pop r15
pop r13
pop r12
pop rbx
ret