Function at 0x140099c5c
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
mov eax, 0x40
call fcn.14024eae0
sub rsp, rax
mov rax, qword [rcx + 0x180]
mov rdi, rcx
mov rcx, qword [rcx + 0x38]
mov rsi, r9
mov qword [rsp + 0x30], rax
add rcx, r9
movabs rax, 0xfffffffe0
mov rbx, r8
mov r15, rdx
cmp rcx, rax
ja 0x140099f04
cmp rcx, r9
jb 0x140099f04
cmp dword [rdi + 0x174], 0
lea r8, [rdi + 0x60]
mov qword [rdi + 0x38], rcx
lea r12, [rdi + 0x40]
je 0x140099ce4
mov rdx, r8
mov rcx, r12
call fcn.140098c24
and dword [rdi + 0x174], 0
lea r8, [rdi + 0x60]
movzx eax, byte [rdi + 0xd]
mov ebp, dword [rdi + 0x170]
movzx r14d, byte [rdi + 0xc]
shl r14d, 8
or r14d, eax
mov dword [rsp + 0x80], ebp
movzx eax, byte [rdi + 0xe]
shl r14d, 8
or r14d, eax
movzx eax, byte [rdi + 0xf]
shl r14d, 8
or r14d, eax
test ebp, ebp
je 0x140099d63
test rsi, rsi
je 0x140099d41
mov dl, byte [r15]
dec rsi
mov ecx, ebp
inc r15
mov al, dl
xor al, byte [rcx + rdi + 0x10]
mov byte [rbx], al
inc rbx
xor byte [rcx + rdi + 0x40], dl
inc ebp
and ebp, 0xf
jne 0x140099d1b
mov qword [rsp + 0x90], rbx
mov dword [rsp + 0x80], ebp
test ebp, ebp
jne 0x140099efa
mov rdx, r8
mov rcx, r12
call fcn.140098c24
mov ecx, 0xc00
cmp rsi, rcx
jb 0x140099e1e
movabs rax, 0xaaaaaaaaaaaaaaab
mul rsi
mov r13, rdx
shr r13, 0xb
imul rax, r13, 0xfffffffffffff400
add rsi, rax
mov qword [rsp + 0x98], rsi
mov rsi, qword [rsp + 0x30]
mov r9, rcx
lea rdx, [rdi + 0x60]
mov rcx, r12
mov r8, r15
call fcn.140098d8c
mov rax, qword [rsp + 0xa0]
mov r9, rsi
mov r8d, 0xc0
mov qword [rsp + 0x20], rdi
mov rdx, rbx
mov rcx, r15
call qword [case.0x14004a846.0]
add r14d, 0xc0
mov ecx, 0xc00
mov eax, r14d
mov byte [rdi + 0xf], r14b
shr eax, 0x18
add rbx, rcx
mov byte [rdi + 0xc], al
add r15, rcx
mov eax, r14d
shr eax, 0x10
mov byte [rdi + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [rdi + 0xe], al
sub r13, 1
jne 0x140099d9c
mov rsi, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov qword [rsp + 0x90], rbx
mov r13, rsi
and r13, 0xfffffffffffffff0
je 0x140099e9e
mov rbx, r13
lea rdx, [rdi + 0x60]
mov r9, r13
shr rbx, 4
mov r8, r15
mov rcx, r12
call fcn.140098d8c
mov r12, qword [rsp + 0x30]
mov r8, rbx
mov rdx, qword [rsp + 0x90]
mov r9, r12
mov rax, qword [rsp + 0xa0]
mov rcx, r15
mov qword [rsp + 0x20], rdi
call qword [case.0x14004a846.0]
add r14d, ebx
add r15, r13
mov rbx, qword [rsp + 0x90]
mov eax, r14d
shr eax, 0x18
add rbx, r13
mov byte [rdi + 0xc], al
mov eax, r14d
shr eax, 0x10
mov byte [rdi + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [rdi + 0xe], al
sub rsi, r13
mov byte [rdi + 0xf], r14b
jmp 0x140099ea3
mov r12, qword [rsp + 0x30]
test rsi, rsi
je 0x140099efa
mov rax, qword [rdi + 0x178]
lea rdx, [rdi + 0x10]
mov r8, r12
mov rcx, rdi
call qword [case.0x14004a846.0]
inc r14d
mov eax, r14d
mov byte [rdi + 0xf], r14b
shr eax, 0x18
mov byte [rdi + 0xc], al
mov eax, r14d
shr eax, 0x10
mov byte [rdi + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [rdi + 0xe], al
mov ecx, ebp
inc ebp
mov al, byte [rcx + r15]
xor byte [rcx + rdi + 0x40], al
xor al, byte [rcx + rdi + 0x10]
mov byte [rcx + rbx], al
sub rsi, 1
jne 0x140099ee1
mov dword [rdi + 0x170], ebp
xor eax, eax
jmp 0x140099f07
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