Function at 0x180096584
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rdi, qword [rcx + 0x68]
xor ebx, ebx
mov rbp, rdx
mov rsi, rcx
test rdi, rdi
jne 0x1800966c2
mov r14d, 0x6aff8
mov ecx, r14d
call fcn.180098d48
mov qword [rsp + 0x40], rax
mov rdi, rax
test rax, rax
je 0x1800966bb
mov r8d, r14d
xor edx, edx
mov rcx, rax
call fcn.18021b7f0
lea rdx, [rdi + 0x20]
mov qword [rdx + 0xf80], rdx
lea rcx, [rdx + 0x9e8]
mov qword [rdx + 0xf88], rcx
lea rax, [0x1802b3750]
mov qword [rdx + 0xf90], rax
lea rcx, [rdx + 0xe68]
mov dword [rdx + 0xf98], 0x101
lea rax, [rdx + 0x8f4]
mov dword [rdx + 0xf9c], 0x11e
mov qword [rdx + 0xfa0], 0xf
mov qword [rdx + 0xfa8], rax
lea rax, [0x1802b36d0]
mov qword [rdx + 0xfb0], rcx
mov qword [rdx + 0xfb8], rax
lea rax, [rdx + 0xee0]
mov dword [rdx + 0xfc0], ebx
mov dword [rdx + 0xfc4], 0x1e
mov qword [rdx + 0xfc8], 0xf
mov qword [rdx + 0xfd0], rax
lea rax, [0x1802b3680]
mov qword [rdx + 0xfd8], rbx
mov qword [rdx + 0xfe0], rax
mov dword [rdx + 0xfe8], ebx
mov dword [rdx + 0xfec], 0x13
mov qword [rdx + 0xff0], 7
mov qword [rdx + 0x1af40], rbx
mov dword [rdx + 0x1af48], ebx
mov dword [rdi + 0x6afb8], ebx
jmp 0x1800966be
mov rdi, rbx
mov qword [rsi + 0x68], rdi
mov qword [rdi + 0x6aff0], rbx
lea rcx, [0x18009642c]
mov rax, qword [rsi + 0x68]
lea rdx, [rbp + 0x3a]
mov qword [rax + 0x10], rcx
lea rcx, [0x18009611c]
mov rax, qword [rsi + 0x68]
mov qword [rax + 0x18], rcx
mov rax, qword [rsi + 0x68]
mov qword [rax], rsi
mov rax, qword [rsi + 0x68]
mov dword [rax + 8], 8
mov rcx, qword [rsi + 0x68]
mov al, byte [rsi + 0x84]
mov byte [rcx + 0xc], al
mov rax, qword [rsi + 0x68]
mov qword [rax + 0x6aff0], rbx
mov rax, qword [rsi + 0x68]
mov word [rax + 0xe8a], bx
mov rax, qword [rsi + 0x68]
mov dword [rax + 0x6afb8], ebx
lea rax, [rsi + 0xbc]
mov rcx, qword [rsi + 0x68]
mov qword [rcx + 0x1afa0], rax
mov dword [rcx + 0x1afac], 0x4000
mov dword [rcx + 0x1afa8], ebx
mov qword [rcx + 0x1af90], 1
mov dword [rcx + 0x1af98], ebx
mov dword [rcx + 0x1afb0], ebx
mov rcx, qword [rsi + 0x68]
call fcn.18009358c
mov rdi, qword [rsi + 0x68]
movsxd r15, dword [rdi + 8]
lea eax, [r15 - 1]
cmp eax, 7
jbe 0x18009678b
lea rax, str.bad_pack_level
mov qword [rdi + 0x6aff0], rax
mov dword [rdi + 0x6afc0], ebx
cmp dword [rdi + 0x6afb8], ebx
jne 0x1800967ad
mov dword [rdi + 0x6afc0], 1
mov dword [rdi + 0x6afb8], 0x10000
lea rcx, [rdi + 0x4afb8]
mov dword [rdi + 0x6afb4], ebx
xor edx, edx
mov r8d, 0x1fffc
call fcn.18021b7f0
lea rdx, [0x1802b37e0]
mov r14d, 2
movzx eax, word [rdx + r15*8 + 2]
mov dword [rdi + 0x6afe0], eax
movzx eax, word [rdx + r15*8]
mov dword [rdi + 0x6afe4], eax
movzx eax, word [rdx + r15*8 + 4]
mov dword [rdi + 0x6afe8], eax
movzx eax, word [rdx + r15*8 + 6]
mov dword [rdi + 0x6afdc], eax
cmp r15d, r14d
jg 0x18009680f
or word [rbp + 4], 4
jmp 0x18009681a
cmp r15d, 8
jl 0x18009681a
or word [rbp + 4], r14w
lea rbp, [rdi + 0x1afb8]
mov dword [rdi + 0x6afcc], ebx
mov rdx, rbp
mov dword [rdi + 0x6afbc], ebx
mov r8d, 0x10000
mov rcx, rdi
call qword [rdi + 0x10]
mov dword [rdi + 0x6afd8], eax
lea ecx, [rax - 1]
cmp ecx, 0xfffffffd
ja 0x180096885
mov dword [rdi + 0x6afd4], ebx
cmp eax, 0x106
jae 0x18009685f
mov rcx, rdi
call fcn.180094eec
mov dword [rdi + 0x6afc4], ebx
movzx eax, byte [rbp]
inc rbp
shl ebx, 5
xor ebx, eax
and ebx, 0x7fff
mov dword [rdi + 0x6afc4], ebx
sub r14, 1
jne 0x180096865
jmp 0x180096890
mov qword [rdi + 0x6afd4], 1
mov rcx, qword [rsi + 0x68]
call fcn.1800952e8
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov dword [rsi + 0xb8], eax
mov rax, qword [rsi + 0x68]
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rax + 0x6aff0]
neg rcx
sbb eax, eax
and eax, 0x5000000
add rsp, 0x20
pop r15
pop r14
pop rdi
ret