Function at 0x1403b85d0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r12, rcx
mov r14d, edx
mov r15, r9
mov r13, r8
mov edx, dword [r12 + 0x10]
lea eax, [rdx - 5]
cmp eax, 0xc
ja 0x1403b872a
test byte [r13 + 0x295], 0x20
je 0x1403b86c8
mov r11, qword [r12]
cmp r14d, 1
je 0x1403b88b5
mov r12d, r14d
shr r12d, 0x1f
add r12d, r14d
sar r12d, 1
test r12d, r12d
jle 0x1403b871a
mov edx, r12d
xor r9d, r9d
mov ebx, 1
xor r10d, r10d
shr edx, 1
je 0x1403b8697
movsxd rax, r14d
lea rbx, [r15 + rax]
add rax, r11
nop dword [rax + rax]
mov r13b, byte [r10 + rax - 1]
mov cl, byte [r11 + r9*2]
mov byte [r15 + r9*2], r13b
xor cl, r13b
xor cl, byte [r10 + rax - 1]
mov byte [r10 + rbx - 1], cl
mov r13b, byte [r10 + rax - 2]
mov r8b, byte [r11 + r9*2 + 1]
mov byte [r15 + r9*2 + 1], r13b
xor r8b, r13b
xor r8b, byte [r10 + rax - 2]
inc r9
mov byte [r10 + rbx - 2], r8b
add r10, 0xfffffffffffffffe
cmp r9, rdx
jb 0x1403b8650
lea ebx, [r9 + r9 + 1]
lea eax, [rbx - 1]
cmp eax, r12d
jae 0x1403b871a
movsxd rbx, ebx
movsxd r14, r14d
mov dl, byte [rbx + r11 - 1]
add r11, r14
sub r11, rbx
mov al, byte [r11]
xor dl, al
mov byte [rbx + r15 - 1], al
add r15, r14
sub r15, rbx
xor dl, byte [r11]
mov byte [r15], dl
jmp 0x1403b871a
cmp r14d, 1
je 0x1403b88c0
cmp r14d, 2
je 0x1403b870f
cmp r14d, 4
jne 0x1403b86e9
mov rax, qword [r12]
mov edx, dword [rax]
mov dword [r15], edx
jmp 0x1403b871a
cmp r14d, 8
jne 0x1403b86fb
mov rax, qword [r12]
mov rdx, qword [rax]
mov qword [r15], rdx
jmp 0x1403b871a
movsxd r14, r14d
mov rcx, r15
mov r8, r14
mov rdx, qword [r12]
call fcn.14042ae90
jmp 0x1403b871a
mov rax, qword [r12]
movzx edx, word [rax]
mov word [r15], dx
xor eax, eax
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rbx
ret
lea eax, [rdx - 0x19]
cmp eax, 6
jbe 0x1403b8746
lea eax, [rdx - 0x32]
cmp eax, 2
jbe 0x1403b8746
lea eax, [rdx - 0x28]
cmp eax, 8
ja 0x1403b88a5
movsxd rdx, edx
lea rax, [0x140000000]
movsx ebx, byte [r13 + 0x280]
mov eax, dword [rax + rdx*4 + 0x59d69c]
cmp eax, 0xffffffff
je 0x1403b879a
lea r9, [0x140000000]
mov rcx, qword [r12]
lea rdx, [rbx*8]
sub rdx, rbx
shl rdx, 3
lea r10, [rdx + rax*8]
mov rax, qword [r9 + r10 + 0x59d920]
test rax, rax
je 0x1403b87ad
xor edx, edx
mov r8, r15
call rax
test eax, eax
je 0x1403b87ea
mov eax, 0x5f
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rbx
ret
cmp r14d, 4
jne 0x1403b87ba
mov eax, dword [rcx]
mov dword [r15], eax
jmp 0x1403b87ea
cmp r14d, 8
jne 0x1403b87ce
mov eax, dword [rcx]
mov dword [r15], eax
mov edx, dword [rcx + 4]
mov dword [r15 + 4], edx
jmp 0x1403b87ea
mov eax, dword [rcx]
mov dword [r15], eax
mov edx, dword [rcx + 4]
mov dword [r15 + 4], edx
mov r9d, dword [rcx + 8]
mov dword [r15 + 8], r9d
mov r10d, dword [rcx + 0xc]
mov dword [r15 + 0xc], r10d
test byte [r13 + 0x295], 0x20
je 0x1403b88a5
test ebx, ebx
je 0x1403b881b
mov eax, dword [r12 + 0x10]
add eax, 0xffffffce
test eax, 0xfffffffd
jne 0x1403b88a5
add ebx, 0xfffffffd
cmp ebx, 1
ja 0x1403b88a5
mov ebx, r14d
shr ebx, 0x1f
add ebx, r14d
sar ebx, 1
test ebx, ebx
jle 0x1403b88a5
mov r10d, ebx
xor edx, edx
mov r9d, 1
xor eax, eax
shr r10d, 1
je 0x1403b887f
movsxd r9, r14d
add r9, r15
mov r11b, byte [rax + r9 - 1]
mov r12b, byte [r15 + rdx*2]
mov byte [r15 + rdx*2], r11b
xor r12b, r11b
xor byte [rax + r9 - 1], r12b
mov r13b, byte [rax + r9 - 2]
mov r11b, byte [r15 + rdx*2 + 1]
mov byte [r15 + rdx*2 + 1], r13b
xor r11b, r13b
inc rdx
xor byte [rax + r9 - 2], r11b
add rax, 0xfffffffffffffffe
cmp rdx, r10
jb 0x1403b8842
lea r9d, [rdx + rdx + 1]
lea eax, [r9 - 1]
cmp eax, ebx
jae 0x1403b88a5
movsxd r14, r14d
movsxd r9, r9d
add r14, r15
sub r14, r9
mov dl, byte [r9 + r15 - 1]
mov al, byte [r14]
xor dl, al
mov byte [r9 + r15 - 1], al
xor byte [r14], dl
xor eax, eax
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rbx
ret
mov al, byte [r11]
mov byte [r15], al
jmp 0x1403b871a
mov rax, qword [r12]
mov dl, byte [rax]
mov byte [r15], dl
jmp 0x1403b871a