Function at 0x140096adc
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor edi, edi
mov r15, r8
mov r9, rdx
mov rbx, rcx
cmp byte [rcx + 8], dil
je 0x140096e0a
mov eax, dword [rcx + 0x3d0]
cmp eax, 0x10
jne 0x140096b1f
call fcn.1400964f8
jmp 0x140096df2
cdq
lea r11, [rbx + 0x458]
and edx, 3
mov rcx, rdi
add eax, edx
mov r8, r11
sar eax, 2
movsxd rbp, eax
lea rax, [0x140000000]
cmp ebp, 6
mov rsi, rbp
setne cl
inc rcx
cmp ebp, 4
cmove rcx, rdi
shl rcx, 5
mov r14d, dword [rcx + rax + 0x145da8]
mov r13d, dword [rcx + rax + 0x145db0]
mov ecx, dword [rcx + rax + 0x145db8]
mov dword [rsp + 0xa0], ecx
mov dword [rsp + 0x24], r14d
mov dword [rsp + 0x28], r13d
test ebp, ebp
jle 0x140096bd8
lea r10, [rbx + 0xc]
mov r12, rbp
movzx eax, byte [r9]
lea r9, [r9 + 4]
shl eax, 0x18
mov dword [r8], eax
movzx edx, byte [r9 - 3]
shl edx, 0x10
or edx, eax
mov dword [r8], edx
movzx ecx, byte [r9 - 2]
shl ecx, 8
or ecx, edx
mov rdx, r8
mov dword [r8], ecx
movzx eax, byte [r9 - 1]
or eax, ecx
mov dword [r8], eax
add r8, 4
xor eax, dword [r10]
lea r10, [r10 + 4]
mov dword [rdx], eax
sub r12, 1
jne 0x140096b89
mov ecx, dword [rsp + 0xa0]
mov r12d, 1
cmp dword [rbx + 0x3d4], r12d
jle 0x140096d26
lea eax, [rbp*4]
mov r10, 0xfffffffffffffbd4
cdqe
lea rdx, [rbx + 0x438]
mov qword [rsp + 0x38], rax
lea r15, [rbx + 0x458]
mov qword [rsp + 0x30], r10
test rsi, rsi
jle 0x140096cdb
mov r11d, r13d
mov dword [rsp + 0x20], r14d
mov r13d, dword [rsp + 0x20]
sub r11d, r14d
sub ecx, r14d
mov rdi, r15
mov r14, rsi
lea r15, [0x140000000]
mov esi, ecx
lea eax, [r11 + r13]
cdq
idiv ebp
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
lea eax, [rsi + r13]
cdq
sar rcx, 8
idiv ebp
movzx r8d, cl
movsxd rax, edx
mov r9d, dword [r15 + r8*4 + 0x143580]
movzx ecx, byte [rbx + rax*4 + 0x458]
mov eax, r13d
cdq
inc r13d
idiv ebp
xor r9d, dword [r15 + rcx*4 + 0x143980]
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
sar rcx, 0x10
movzx eax, cl
xor r9d, dword [r15 + rax*4 + 0x143180]
movzx eax, byte [rdi + 3]
xor r9d, dword [r15 + rax*4 + 0x142d80]
xor r9d, dword [r10 + rdi]
mov dword [rdi - 0x20], r9d
lea rdi, [rdi + 4]
sub r14, 1
jne 0x140096c3e
mov r14d, dword [rsp + 0x24]
lea r15, [rbx + 0x458]
mov r13d, dword [rsp + 0x28]
lea rdx, [rbx + 0x438]
mov rax, qword [rsp + 0x38]
xor edi, edi
mov rsi, rbp
mov r8, rax
mov rcx, r15
call fcn.1400cccc0
mov r10, qword [rsp + 0x30]
lea rdx, [rbx + 0x438]
mov ecx, dword [rsp + 0xa0]
add r10, 0x20
mov rax, qword [rsp + 0x38]
inc r12d
mov qword [rsp + 0x30], r10
cmp r12d, dword [rbx + 0x3d4]
jl 0x140096c13
mov r15, qword [rsp + 0xb0]
lea r11, [rbx + 0x458]
test rsi, rsi
jle 0x140096df2
mov r9d, dword [rsp + 0xa0]
lea r10, [0x140000000]
sub r14d, r13d
sub r9d, r13d
movsxd rax, dword [rbx + 0x3d4]
lea r11, [r11 + 4]
lea rcx, [rdi + rax*8]
inc rdi
mov r8d, dword [rbx + rcx*4 + 0xc]
mov eax, r8d
movzx ecx, byte [r11 - 1]
sar eax, 0x18
xor al, byte [rcx + r10 + 0x142b80]
mov byte [r15], al
lea eax, [r14 + r13]
cdq
lea r15, [r15 + 4]
idiv ebp
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
mov eax, r8d
sar eax, 0x10
sar rcx, 0x10
movzx edx, cl
xor al, byte [rdx + r10 + 0x142b80]
mov byte [r15 - 3], al
mov eax, r13d
cdq
idiv ebp
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
mov eax, r8d
sar eax, 8
sar rcx, 8
movzx edx, cl
xor al, byte [rdx + r10 + 0x142b80]
mov byte [r15 - 2], al
lea eax, [r9 + r13]
cdq
inc r13d
idiv ebp
movsxd rax, edx
movzx ecx, byte [rbx + rax*4 + 0x458]
xor r8b, byte [rcx + r10 + 0x142b80]
mov byte [r15 - 1], r8b
cmp rdi, rsi
jl 0x140096d44
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, qword [str.Object_not_Initialized]
lea rcx, [rsp + 0x40]
call fcn.140032418
lea rdx, [0x140167860]
lea rcx, [rsp + 0x40]
call fcn.1400cd5c0
int3