Function at 0x14009b528
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, 0x70
xor edi, edi
mov r15, r8
mov r9, rdx
mov rbx, rcx
cmp byte [rcx + 8], dil
je 0x14009b842
mov eax, dword [rcx + 0x3d0]
cmp eax, 0x10
jne 0x14009b56b
call fcn.14009ad70
jmp 0x14009b82a
cdq
mov ecx, edi
and edx, 3
add eax, edx
sar eax, 2
movsxd rbp, eax
lea rax, [0x140000000]
cmp ebp, 6
mov rsi, rbp
setne cl
cmp ebp, 4
lea edx, [rcx + 1]
cmove edx, edi
shl rdx, 5
mov r14d, dword [rdx + rax + 0xd1a8c]
mov r12d, dword [rdx + rax + 0xd1a94]
mov r11d, dword [rdx + rax + 0xd1a9c]
lea rdx, [rbx + 0x458]
mov dword [rsp + 0x24], r14d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0xb0], r11d
test ebp, ebp
jle 0x14009b613
lea r8, [rbx + 0x1ec]
mov r10, rbp
movzx eax, byte [r9]
mov rcx, rdx
shl eax, 0x18
lea r9, [r9 + 4]
mov dword [rdx], eax
movzx eax, byte [r9 - 3]
shl eax, 0x10
or dword [rdx], eax
movzx eax, byte [r9 - 2]
shl eax, 8
or dword [rdx], eax
movzx eax, byte [r9 - 1]
or dword [rdx], eax
add rdx, 4
mov eax, dword [r8]
lea r8, [r8 + 4]
xor dword [rcx], eax
sub r10, 1
jne 0x14009b5d5
mov r13d, 1
cmp dword [rbx + 0x3d4], r13d
jle 0x14009b753
mov eax, ebp
mov r10d, 0x22c
shl eax, 2
mov r15d, r11d
cdqe
mov qword [rsp + 0x48], rax
lea rax, [rbx + 0x20c]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r10
test rsi, rsi
jle 0x14009b6ff
mov r11d, r12d
sub r11d, r14d
mov rdi, rsi
sub r15d, r14d
mov esi, r14d
lea r14, [0x140000000]
mov r12, rax
lea eax, [rsi + r11]
cdq
idiv ebp
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
lea eax, [rsi + r15]
cdq
sar rcx, 8
idiv ebp
movzx r8d, cl
movsxd rax, edx
mov r9d, dword [r14 + r8*4 + 0xd0260]
movzx ecx, byte [rbx + rax*4 + 0x458]
mov eax, esi
cdq
inc esi
idiv ebp
xor r9d, dword [r14 + rcx*4 + 0xd0660]
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
sar rcx, 0x10
movzx eax, cl
xor r9d, dword [r14 + rax*4 + 0xcfe60]
movzx eax, byte [r12 + r10 + 0x23]
xor r9d, dword [r14 + rax*4 + 0xcfa60]
xor r9d, dword [r12]
mov dword [r12 + r10], r9d
lea r12, [r12 + 4]
sub rdi, 1
jne 0x14009b66e
mov r14d, dword [rsp + 0x24]
mov rsi, rbp
mov r12d, dword [rsp + 0x28]
mov r15d, dword [rsp + 0xb0]
mov r8, qword [rsp + 0x48]
lea rdx, [rbx + 0x438]
lea rcx, [rbx + 0x458]
call fcn.1400b0650
mov rax, qword [rsp + 0x30]
inc r13d
mov r10, qword [rsp + 0x38]
add rax, 0x20
sub r10, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r10
cmp r13d, dword [rbx + 0x3d4]
jl 0x14009b64c
mov r15, qword [rsp + 0xc0]
mov r11d, dword [rsp + 0xb0]
test rsi, rsi
jle 0x14009b82a
sub r14d, r12d
lea r9, [rbx + 0x458]
sub r11d, r12d
lea r10, [0x140000000]
movsxd rax, dword [rbx + 0x3d4]
lea r9, [r9 + 4]
lea rcx, [rdi + rax*8]
movzx eax, byte [r9 - 1]
mov r8d, dword [rbx + rcx*4 + 0x1ec]
inc rdi
mov ecx, r8d
sar ecx, 0x18
mov al, byte [rax + r10 + 0xce960]
xor al, cl
mov byte [r15], al
lea eax, [r14 + r12]
cdq
lea r15, [r15 + 4]
idiv ebp
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
sar rcx, 0x10
movzx eax, cl
mov ecx, r8d
sar ecx, 0x10
mov al, byte [rax + r10 + 0xce960]
xor al, cl
mov byte [r15 - 3], al
mov eax, r12d
cdq
idiv ebp
movsxd rax, edx
mov ecx, dword [rbx + rax*4 + 0x458]
sar rcx, 8
movzx eax, cl
mov ecx, r8d
sar ecx, 8
mov al, byte [rax + r10 + 0xce960]
xor al, cl
mov byte [r15 - 2], al
lea eax, [r11 + r12]
cdq
inc r12d
idiv ebp
movsxd rax, edx
movzx ecx, byte [rbx + rax*4 + 0x458]
mov al, byte [rcx + r10 + 0xce960]
xor al, r8b
mov byte [r15 - 1], al
cmp rdi, rsi
jl 0x14009b770
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, qword [0x1400e4058]
lea rcx, [rsp + 0x50]
call fcn.14009bc10
lea rdx, [0x1400e25f8]
lea rcx, [rsp + 0x50]
call fcn.1400b0a88
int3