Function at 0x140053a60
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 0x140053a8a
test eax, eax
je 0x140053b31
mov rax, rdx
jmp 0x140053a9a
xor edi, edi
test eax, eax
jne 0x140053b36
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 0x140053b02
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 rbp, r12
mov r15, rbp
not r15
shr r15, 0x3f
sar rbp, 0x3f
mov r12d, ebp
or r12, r15
mov ecx, ecx
test r13, r13
cmovne rcx, r12
inc r14
cmp rbx, r14
jne 0x140053ac0
cmp r9d, edx
jae 0x140053b1a
mov r10, rdx
sub r10, r9
cmp r10, 4
jae 0x140053b72
xor edi, edi
jmp 0x140053ca0
cmp edx, r9d
jae 0x140053cc0
cmp rdi, 4
jae 0x140053b9b
xor r11d, r11d
jmp 0x140053df0
mov edi, 1
mov rcx, rsi
call fcn.140052e20
test eax, eax
je 0x140053e6c
mov ecx, dword [rsi + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
test ecx, ecx
jle 0x140053b6a
mov r8, qword [rsi]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140053b50
inc edx
mov eax, edx
mov dword [rsi + 8], eax
jmp 0x140053e62
lea rbx, [r10 - 4]
mov r14, rbx
shr r14, 2
inc r14
mov edi, r14d
and edi, 3
cmp rbx, 0xc
jae 0x140053bc9
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x140053c41
lea rbx, [rdi - 4]
mov r14, rbx
shr r14, 2
inc r14
mov r11d, r14d
and r11d, 3
cmp rbx, 0xc
jae 0x140053d14
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x140053d91
and r14, 0xfffffffffffffffc
lea r15, [r11 + r9*8]
add r15, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop
movdqu xmm2, xmmword [r15 + rbx*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [r15 + rbx*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [r15 + rbx*8 - 0x50]
movdqu xmm3, xmmword [r15 + rbx*8 - 0x40]
movdqu xmm4, xmmword [r15 + rbx*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [r15 + rbx*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [r15 + rbx*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [r15 + rbx*8]
por xmm1, xmm2
add rbx, 0x10
add r14, 0xfffffffffffffffc
jne 0x140053be0
mov r14, r10
and r14, 0xfffffffffffffffc
test rdi, rdi
je 0x140053c7e
add rbx, r9
lea rbx, [r11 + rbx*8]
add rbx, 0x10
shl rdi, 5
xor r15d, r15d
nop
movdqu xmm2, xmmword [rbx + r15 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rbx + r15]
por xmm1, xmm2
add r15, 0x20
cmp rdi, r15
jne 0x140053c60
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdi, xmm1
cmp r10, r14
je 0x140053cac
add r9, r14
nop dword [rax + rax]
or rdi, qword [r11 + r9*8]
inc r9
cmp rdx, r9
jne 0x140053ca0
mov rdx, rdi
not rdx
dec rdi
and rdi, rdx
sar rdi, 0x3f
not edi
or ecx, edi
test ecx, ecx
js 0x140053e19
mov rcx, rsi
mov rdx, r8
mov r8, rax
call fcn.140053e80
test eax, eax
je 0x140053e6c
mov ecx, dword [rsi + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop dword [rax + rax]
test ecx, ecx
jle 0x140053d0a
mov r8, qword [rsi]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140053cf0
inc edx
mov eax, edx
mov dword [rsi + 8], eax
xor edi, edi
jmp 0x140053e62
and r14, 0xfffffffffffffffc
lea r15, [r10 + rdx*8]
add r15, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop word [rax + rax]
movdqu xmm2, xmmword [r15 + rbx*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [r15 + rbx*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [r15 + rbx*8 - 0x50]
movdqu xmm3, xmmword [r15 + rbx*8 - 0x40]
movdqu xmm4, xmmword [r15 + rbx*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [r15 + rbx*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [r15 + rbx*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [r15 + rbx*8]
por xmm1, xmm2
add rbx, 0x10
add r14, 0xfffffffffffffffc
jne 0x140053d30
mov r14, rdi
and r14, 0xfffffffffffffffc
test r11, r11
je 0x140053dce
add rbx, rdx
lea rbx, [r10 + rbx*8]
add rbx, 0x10
shl r11, 5
xor r15d, r15d
nop
movdqu xmm2, xmmword [rbx + r15 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rbx + r15]
por xmm1, xmm2
add r15, 0x20
cmp r11, r15
jne 0x140053db0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r11, xmm1
cmp rdi, r14
je 0x140053dfc
add rdx, r14
nop dword [rax + rax]
or r11, qword [r10 + rdx*8]
inc rdx
cmp r9, rdx
jne 0x140053df0
xor edx, edx
xor r9d, r9d
test r11, r11
cmove edx, ecx
setne r9b
or r9d, edx
mov ecx, r9d
test ecx, ecx
jns 0x140053cc8
mov rcx, rsi
mov rdx, rax
call fcn.140053e80
test eax, eax
je 0x140053e6c
mov ecx, dword [rsi + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop word cs:[rax + rax]
test ecx, ecx
jle 0x140053e5a
mov r8, qword [rsi]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140053e40
inc edx
mov eax, edx
mov dword [rsi + 8], eax
mov edi, 1
mov dword [rsi + 0x10], edi
mov eax, 1
jmp 0x140053e6e
xor eax, eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret