Function at 0x14002d610
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x20
xor edi, edi
lea r15, [rcx + 0x1000]
mov r14, r9
mov r12, rdx
mov rbx, rcx
lea eax, [rdi + 1]
test r9, r9
jne 0x14002d651
movzx r9d, ax
mov byte [rbp + 0x30], dil
lea r14, [rbp + 0x30]
jmp 0x14002d656
movzx r9d, word [rbp + 0x50]
movsx esi, r8w
mov r10, r15
mov r11d, 2
lea eax, [r11 - 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + r12]
lea eax, [r11 - 1]
cdq
shl ecx, 0x18
xor dword [r10], ecx
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + r12]
mov eax, r11d
cdq
shl ecx, 0x10
xor ecx, dword [r10]
idiv esi
mov dword [r10], ecx
movsxd rax, edx
movzx r8d, byte [rax + r12]
lea eax, [r11 + 1]
cdq
shl r8d, 8
xor r8d, ecx
add r11d, 4
idiv esi
mov dword [r10], r8d
movsxd rax, edx
movzx ecx, byte [rax + r12]
xor ecx, r8d
mov dword [r10], ecx
lea r10, [r10 + 4]
cmp r11d, 0x4a
jl 0x14002d663
and dword [rbp + 0x4c], edi
and dword [rbp + 0x48], edi
xor esi, esi
movsx r12d, r9w
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, 3
test r9d, r9d
jns 0x14002d6ef
lea eax, [r9 + 3]
sub ecx, 4
sar eax, 2
inc r9d
movsxd r8, eax
mov eax, edi
cdq
inc edi
idiv r12d
movsxd rax, edx
movzx edx, byte [rax + r14]
mov eax, 3
sub eax, ecx
shl eax, 3
mov cl, al
shl edx, cl
xor dword [rbp + r8*4 + 0x48], edx
cmp r9d, 8
jl 0x14002d6da
mov ecx, dword [rbp + 0x48]
lea r8, [rbp + 0x48]
mov edx, dword [rbp + 0x4c]
mov r9, rbx
call fcn.14002d184
mov eax, dword [rbp + 0x48]
mov dword [r15 + rsi*4], eax
mov eax, dword [rbp + 0x4c]
mov dword [r15 + rsi*4 + 4], eax
add rsi, 2
cmp rsi, 0x12
jl 0x14002d6d7
xor esi, esi
lea r15d, [rsi + 3]
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002d76a
lea eax, [r15 + r9]
sub ecx, 4
sar eax, 2
inc r9d
movsxd r8, eax
mov eax, edi
cdq
inc edi
idiv r12d
movsxd rax, edx
movzx edx, byte [rax + r14]
mov eax, r15d
sub eax, ecx
shl eax, 3
mov cl, al
shl edx, cl
xor dword [rbp + r8*4 + 0x48], edx
cmp r9d, 8
jl 0x14002d755
mov ecx, dword [rbp + 0x48]
lea r8, [rbp + 0x48]
mov edx, dword [rbp + 0x4c]
mov r9, rbx
call fcn.14002d184
mov eax, dword [rbp + 0x48]
mov dword [rbx + rsi*4], eax
mov eax, dword [rbp + 0x4c]
mov dword [rbx + rsi*4 + 4], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002d752
xor esi, esi
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002d7e0
lea eax, [r15 + r9]
sub ecx, 4
sar eax, 2
inc r9d
movsxd r8, eax
mov eax, edi
cdq
inc edi
idiv r12d
movsxd rax, edx
movzx edx, byte [rax + r14]
mov eax, r15d
sub eax, ecx
shl eax, 3
mov cl, al
shl edx, cl
xor dword [rbp + r8*4 + 0x48], edx
cmp r9d, 8
jl 0x14002d7cb
mov ecx, dword [rbp + 0x48]
lea r8, [rbp + 0x48]
mov edx, dword [rbp + 0x4c]
mov r9, rbx
call fcn.14002d184
mov eax, dword [rbp + 0x48]
mov dword [rbx + rsi*4 + 0x400], eax
mov eax, dword [rbp + 0x4c]
mov dword [rbx + rsi*4 + 0x404], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002d7c8
xor esi, esi
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002d85d
lea eax, [r15 + r9]
sub ecx, 4
sar eax, 2
inc r9d
movsxd r8, eax
mov eax, edi
cdq
inc edi
idiv r12d
movsxd rax, edx
movzx edx, byte [rax + r14]
mov eax, r15d
sub eax, ecx
shl eax, 3
mov cl, al
shl edx, cl
xor dword [rbp + r8*4 + 0x48], edx
cmp r9d, 8
jl 0x14002d848
mov ecx, dword [rbp + 0x48]
lea r8, [rbp + 0x48]
mov edx, dword [rbp + 0x4c]
mov r9, rbx
call fcn.14002d184
mov eax, dword [rbp + 0x48]
mov dword [rbx + rsi*4 + 0x800], eax
mov eax, dword [rbp + 0x4c]
mov dword [rbx + rsi*4 + 0x804], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002d845
xor esi, esi
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002d8da
lea eax, [r15 + r9]
sub ecx, 4
sar eax, 2
inc r9d
movsxd r8, eax
mov eax, edi
cdq
inc edi
idiv r12d
movsxd rax, edx
movzx edx, byte [rax + r14]
mov eax, r15d
sub eax, ecx
shl eax, 3
mov cl, al
shl edx, cl
xor dword [rbp + r8*4 + 0x48], edx
cmp r9d, 8
jl 0x14002d8c5
mov ecx, dword [rbp + 0x48]
lea r8, [rbp + 0x48]
mov edx, dword [rbp + 0x4c]
mov r9, rbx
call fcn.14002d184
mov eax, dword [rbp + 0x48]
mov dword [rbx + rsi*4 + 0xc00], eax
mov eax, dword [rbp + 0x4c]
mov dword [rbx + rsi*4 + 0xc04], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002d8c2
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret