Function at 0x140099664
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x40
call fcn.14024eae0
sub rsp, rax
mov rax, qword [rcx + 0x178]
mov rbx, rcx
mov qword [rsp + 0x28], rax
mov rdi, r9
mov rax, qword [rcx + 0x180]
mov r12, r8
mov rcx, qword [rcx + 0x38]
mov r14, rdx
mov qword [rsp + 0x20], rax
add rcx, r9
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x140099974
cmp rcx, r9
jb 0x140099974
cmp dword [rbx + 0x174], 0
lea r15, [rbx + 0x60]
mov qword [rbx + 0x38], rcx
lea r13, [rbx + 0x40]
je 0x1400996ef
mov rdx, r15
mov rcx, r13
call fcn.140098c24
and dword [rbx + 0x174], 0
movzx eax, byte [rbx + 0xd]
mov ebp, dword [rbx + 0x170]
movzx esi, byte [rbx + 0xc]
shl esi, 8
or esi, eax
mov dword [rsp + 0x80], ebp
movzx eax, byte [rbx + 0xe]
shl esi, 8
or esi, eax
movzx eax, byte [rbx + 0xf]
shl esi, 8
or esi, eax
test ebp, ebp
je 0x140099761
test rdi, rdi
je 0x140099747
mov dl, byte [r14]
dec rdi
mov ecx, ebp
inc r14
mov al, dl
xor al, byte [rcx + rbx + 0x10]
mov byte [r12], al
inc r12
xor byte [rcx + rbx + 0x40], dl
inc ebp
and ebp, 0xf
jne 0x14009971f
mov dword [rsp + 0x80], ebp
test ebp, ebp
jne 0x14009996a
mov rdx, r15
mov rcx, r13
call fcn.140098c24
cmp rdi, 0xc00
jb 0x140099854
movabs rax, 0xaaaaaaaaaaaaaaab
mul rdi
mov rax, rdx
shr rax, 0xb
mov qword [rsp + 0x30], rax
imul rax, rax, 0xfffffffffffff400
add rdi, rax
mov qword [rsp + 0x98], rdi
lea rdi, [rbx + 0x60]
mov r9d, 0xc00
mov r8, r14
mov rdx, rdi
mov rcx, r13
call fcn.140098d8c
mov rbp, qword [rsp + 0x28]
mov r15, rbx
sub r15, r14
mov edi, 0xc0
add r15, 0x10
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
mov rax, rbp
call qword [case.0x14004a846.0]
inc esi
mov r8, r12
mov eax, esi
mov byte [rbx + 0xf], sil
shr eax, 0x18
mov rcx, r14
mov byte [rbx + 0xc], al
mov edx, 2
mov eax, esi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, esi
shr eax, 8
mov byte [rbx + 0xe], al
sub r8, r14
mov rax, qword [r15 + rcx]
xor rax, qword [rcx]
mov qword [r8 + rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x140099806
add r12, 0x10
add r14, 0x10
sub r15, 0x10
sub rdi, 1
jne 0x1400997c5
sub qword [rsp + 0x30], 1
lea r13, [rbx + 0x40]
lea rdi, [rbx + 0x60]
jne 0x14009979d
mov rdi, qword [rsp + 0x98]
lea r15, [rbx + 0x60]
mov ebp, dword [rsp + 0x80]
mov r9, rdi
and r9, 0xfffffffffffffff0
je 0x140099916
mov r8, r14
mov rdx, r15
mov rcx, r13
call fcn.140098d8c
cmp rdi, 0x10
jb 0x140099916
mov r13, rdi
mov r15, rbx
shr r13, 4
sub r15, r14
imul rax, r13, 0xfffffffffffffff0
add r15, 0x10
add rdi, rax
mov qword [rsp + 0x98], rdi
mov rdi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
mov rax, rdi
call qword [case.0x14004a846.0]
inc esi
mov rdx, r12
mov eax, esi
mov byte [rbx + 0xf], sil
shr eax, 0x18
mov rcx, r14
mov byte [rbx + 0xc], al
mov r8d, 2
mov eax, esi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, esi
shr eax, 8
mov byte [rbx + 0xe], al
sub rdx, r14
mov rax, qword [r15 + rcx]
xor rax, qword [rcx]
mov qword [rdx + rcx], rax
lea rcx, [rcx + 8]
sub r8, 1
jne 0x1400998e0
add r12, 0x10
add r14, 0x10
sub r15, 0x10
sub r13, 1
jne 0x14009989e
mov rdi, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
test rdi, rdi
je 0x14009996a
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rax, qword [rsp + 0x28]
mov rcx, rbx
call qword [case.0x14004a846.0]
inc esi
mov eax, esi
mov byte [rbx + 0xf], sil
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, esi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, esi
shr eax, 8
mov byte [rbx + 0xe], al
mov ecx, ebp
inc ebp
mov al, byte [r14 + rcx]
xor byte [rcx + rbx + 0x40], al
xor al, byte [rcx + rbx + 0x10]
mov byte [rcx + r12], al
sub rdi, 1
jne 0x140099950
mov dword [rbx + 0x170], ebp
xor eax, eax
jmp 0x140099977
or eax, 0xffffffff
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret