Function at 0x140099328
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 r15, r8
mov rcx, qword [rcx + 0x38]
mov r14, rdx
mov qword [rsp + 0x20], rax
add rcx, r9
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x140099648
cmp rcx, r9
jb 0x140099648
cmp dword [rbx + 0x174], 0
lea r13, [rbx + 0x60]
mov qword [rbx + 0x38], rcx
lea r12, [rbx + 0x40]
je 0x1400993b3
mov rdx, r13
mov rcx, r12
call fcn.140098c24
and dword [rbx + 0x174], 0
movzx eax, byte [rbx + 0xd]
mov esi, dword [rbx + 0x170]
movzx ebp, byte [rbx + 0xc]
shl ebp, 8
or ebp, eax
mov dword [rsp + 0x80], esi
movzx eax, byte [rbx + 0xe]
shl ebp, 8
or ebp, eax
movzx eax, byte [rbx + 0xf]
shl ebp, 8
or ebp, eax
test esi, esi
je 0x140099422
test rdi, rdi
je 0x140099408
mov ecx, esi
dec rdi
mov al, byte [rcx + rbx + 0x10]
xor al, byte [r14]
inc r14
mov byte [r15], al
inc r15
xor byte [rcx + rbx + 0x40], al
inc esi
and esi, 0xf
jne 0x1400993e3
mov dword [rsp + 0x80], esi
test esi, esi
jne 0x14009963e
mov rdx, r13
mov rcx, r12
call fcn.140098c24
lea r12, [rbx + 0x10]
cmp rdi, 0xc00
jb 0x140099514
movabs rax, 0xaaaaaaaaaaaaaaab
mul rdi
mov rcx, rdx
shr rcx, 0xb
imul rax, rcx, 0xfffffffffffff400
mov qword [rsp + 0x30], rcx
add rdi, rax
mov qword [rsp + 0x98], rdi
mov rdi, qword [rsp + 0x28]
mov r12, rbx
mov r13d, 0xc0
sub r12, r14
add r12, 0x10
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
mov rax, rdi
call qword [case.0x14004a846.0]
inc ebp
mov r8, r15
mov eax, ebp
mov byte [rbx + 0xf], bpl
shr eax, 0x18
mov rcx, r14
mov byte [rbx + 0xc], al
mov edx, 2
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0xe], al
sub r8, r14
mov rax, qword [r12 + rcx]
xor rax, qword [rcx]
mov qword [r8 + rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x1400994b4
add r15, 0x10
add r14, 0x10
sub r12, 0x10
sub r13, 1
jne 0x140099473
lea r8, [r15 - 0xc00]
mov r9d, 0xc00
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call fcn.140098d8c
sub qword [rsp + 0x30], 1
jne 0x140099463
mov rdi, qword [rsp + 0x98]
lea r12, [rbx + 0x10]
mov esi, dword [rsp + 0x80]
mov rax, rdi
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x30], rax
je 0x1400995eb
cmp rdi, 0x10
jb 0x1400995d5
mov r13, rdi
mov r12, rbx
shr r13, 4
sub r12, r14
imul rax, r13, 0xfffffffffffffff0
add r12, 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 ebp
mov r8, r15
mov eax, ebp
mov byte [rbx + 0xf], bpl
shr eax, 0x18
mov rcx, r14
mov byte [rbx + 0xc], al
mov edx, 2
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0xe], al
sub r8, r14
mov rax, qword [r12 + rcx]
xor rax, qword [rcx]
mov qword [r8 + rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x140099596
add r15, 0x10
add r14, 0x10
sub r12, 0x10
sub r13, 1
jne 0x140099555
mov rdi, qword [rsp + 0x98]
lea r12, [rbx + 0x10]
mov esi, dword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
mov r8, r15
lea rdx, [rbx + 0x60]
sub r8, rax
lea rcx, [rbx + 0x40]
mov r9, rax
call fcn.140098d8c
test rdi, rdi
je 0x14009963e
mov r8, qword [rsp + 0x20]
mov rdx, r12
mov rax, qword [rsp + 0x28]
mov rcx, rbx
call qword [case.0x14004a846.0]
inc ebp
mov eax, ebp
mov byte [rbx + 0xf], bpl
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0xe], al
mov ecx, esi
inc esi
mov al, byte [r14 + rcx]
xor al, byte [rcx + rbx + 0x10]
mov byte [rcx + r15], al
xor byte [rcx + rbx + 0x40], al
sub rdi, 1
jne 0x140099624
mov dword [rbx + 0x170], esi
xor eax, eax
jmp 0x14009964b
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