Function at 0x14002f78c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], 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 0x14002f7cd
movzx r9d, ax
mov byte [rbp + 0x30], dil
lea r14, [rbp + 0x30]
jmp 0x14002f7d2
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 0x14002f7df
and dword [rbp + 0x3c], edi
and dword [rbp + 0x38], edi
xor esi, esi
movsx r12d, r9w
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, 3
test r9d, r9d
jns 0x14002f86b
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 + 0x38], edx
cmp r9d, 8
jl 0x14002f856
mov ecx, dword [rbp + 0x38]
lea r8, [rbp + 0x38]
mov edx, dword [rbp + 0x3c]
mov r9, rbx
call fcn.14002f300
mov eax, dword [rbp + 0x38]
mov dword [r15 + rsi*4], eax
mov eax, dword [rbp + 0x3c]
mov dword [rbx + rsi*4 + 0x1004], eax
add rsi, 2
cmp rsi, 0x12
jl 0x14002f853
xor esi, esi
lea r15d, [rsi + 3]
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002f8e8
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 + 0x38], edx
cmp r9d, 8
jl 0x14002f8d3
mov ecx, dword [rbp + 0x38]
lea r8, [rbp + 0x38]
mov edx, dword [rbp + 0x3c]
mov r9, rbx
call fcn.14002f300
mov eax, dword [rbp + 0x38]
mov dword [rbx + rsi*4], eax
mov eax, dword [rbp + 0x3c]
mov dword [rbx + rsi*4 + 4], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002f8d0
xor esi, esi
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002f95e
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 + 0x38], edx
cmp r9d, 8
jl 0x14002f949
mov ecx, dword [rbp + 0x38]
lea r8, [rbp + 0x38]
mov edx, dword [rbp + 0x3c]
mov r9, rbx
call fcn.14002f300
mov eax, dword [rbp + 0x38]
mov dword [rbx + rsi*4 + 0x400], eax
mov eax, dword [rbp + 0x3c]
mov dword [rbx + rsi*4 + 0x404], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002f946
xor esi, esi
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002f9db
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 + 0x38], edx
cmp r9d, 8
jl 0x14002f9c6
mov ecx, dword [rbp + 0x38]
lea r8, [rbp + 0x38]
mov edx, dword [rbp + 0x3c]
mov r9, rbx
call fcn.14002f300
mov eax, dword [rbp + 0x38]
mov dword [rbx + rsi*4 + 0x800], eax
mov eax, dword [rbp + 0x3c]
mov dword [rbx + rsi*4 + 0x804], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002f9c3
xor esi, esi
xor r9d, r9d
mov ecx, r9d
mov eax, r9d
and ecx, r15d
test r9d, r9d
jns 0x14002fa58
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 + 0x38], edx
cmp r9d, 8
jl 0x14002fa43
mov ecx, dword [rbp + 0x38]
lea r8, [rbp + 0x38]
mov edx, dword [rbp + 0x3c]
mov r9, rbx
call fcn.14002f300
mov eax, dword [rbp + 0x38]
mov dword [rbx + rsi*4 + 0xc00], eax
mov eax, dword [rbp + 0x3c]
mov dword [rbx + rsi*4 + 0xc04], eax
add rsi, 2
cmp rsi, 0x100
jl 0x14002fa40
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret