Function at 0x1400531b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
cmp dword [rdx + 0x10], 0
mov eax, dword [r8 + 0x10]
je 0x1400531da
test eax, eax
je 0x140053283
mov rax, rdx
jmp 0x1400531ea
xor edi, edi
test eax, eax
jne 0x140053288
mov rax, r8
mov r8, rdx
movsxd rdx, dword [rax + 8]
mov r11, qword [rax]
movsxd r9, dword [r8 + 8]
mov r10, qword [r8]
mov rdi, r9
sub rdi, rdx
mov rbx, rdx
cmovb rbx, r9
xor ecx, ecx
test rbx, rbx
je 0x140053249
xor r14d, r14d
nop
mov r15, qword [r11 + r14*8]
mov r12, qword [r10 + r14*8]
mov r13, r12
xor r13, r15
mov rbp, r12
sub rbp, r15
xor rbp, r12
or rbp, r13
xor r15d, r15d
xor rbp, r12
setns r15b
sar rbp, 0x3f
or ebp, r15d
test r13, r13
cmovne ecx, ebp
inc r14
cmp rbx, r14
jne 0x140053210
cmp r9d, edx
jae 0x140053265
mov rdi, rdx
sub rdi, r9
cmp rdi, 4
jae 0x1400532d2
xor r14d, r14d
mov r10, r9
jmp 0x140053330
cmp edx, r9d
jae 0x140053345
cmp rdi, 4
jae 0x140053394
xor r14d, r14d
mov r11, rdx
jmp 0x140053400
mov edi, 1
mov rcx, rsi
call fcn.140052800
test eax, eax
je 0x14005347c
mov ecx, dword [rsi + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop word cs:[rax + rax]
test ecx, ecx
jle 0x1400532ca
mov r8, qword [rsi]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x1400532b0
inc edx
mov eax, edx
mov dword [rsi + 8], eax
jmp 0x140053472
mov rbx, rdi
and rbx, 0xfffffffffffffffc
lea r10, [rbx + r9]
lea r9, [r11 + r9*8]
add r9, 0x10
pxor xmm0, xmm0
xor r14d, r14d
pxor xmm1, xmm1
movdqu xmm2, xmmword [r9 + r14*8 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r9 + r14*8]
por xmm1, xmm2
add r14, 4
cmp rbx, r14
jne 0x1400532f0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r14, xmm0
cmp rdi, rbx
je 0x14005333c
nop word cs:[rax + rax]
or r14, qword [r11 + r10*8]
inc r10
cmp rdx, r10
jne 0x140053330
test r14, r14
jne 0x140053429
test ecx, ecx
js 0x140053429
mov rcx, rsi
mov rdx, r8
mov r8, rax
call fcn.140053490
test eax, eax
je 0x14005347c
mov ecx, dword [rsi + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop dword [rax]
test ecx, ecx
jle 0x14005338a
mov r8, qword [rsi]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140053370
inc edx
mov eax, edx
mov dword [rsi + 8], eax
xor edi, edi
jmp 0x140053472
mov rbx, rdi
and rbx, 0xfffffffffffffffc
lea r11, [rbx + rdx]
lea rdx, [r10 + rdx*8]
add rdx, 0x10
pxor xmm0, xmm0
xor r14d, r14d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdx + r14*8 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdx + r14*8]
por xmm1, xmm2
add r14, 4
cmp rbx, r14
jne 0x1400533c0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r14, xmm0
cmp rdi, rbx
je 0x14005340c
nop word cs:[rax + rax]
or r14, qword [r10 + r11*8]
inc r11
cmp r9, r11
jne 0x140053400
xor edx, edx
xor r9d, r9d
test r14, r14
cmove edx, ecx
setne r9b
or r9d, edx
mov ecx, r9d
test ecx, ecx
jns 0x14005334d
mov rcx, rsi
mov rdx, rax
call fcn.140053490
test eax, eax
je 0x14005347c
mov ecx, dword [rsi + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop word cs:[rax + rax]
test ecx, ecx
jle 0x14005346a
mov r8, qword [rsi]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140053450
inc edx
mov eax, edx
mov dword [rsi + 8], eax
mov edi, 1
mov dword [rsi + 0x10], edi
mov eax, 1
jmp 0x14005347e
xor eax, eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret