Function at 0x1400c7590
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r13
push r14
sub rsp, 0x28
mov r14d, dword [rsp + 0x88]
mov rdi, rcx
mov rcx, qword [rsp + 0x78]
mov rbx, r8
movsxd r13, dword [rsp + 0x80]
shr rcx, 2
shr rdx, 2
shr r9, 2
test r14d, r14d
je 0x1400c7a17
mov qword [rsp + 0x50], rbp
lea eax, [r13 - 8]
mov rbp, qword [rsp + 0x70]
movsxd r11, eax
lea eax, [r13 - 4]
movsxd r8, eax
lea rax, [rdx*4]
mov qword [rsp + 0x58], rax
lea rax, [r9*4]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x18], r12
lea r12d, [r13 - 2]
mov qword [rsp + 0x68], rax
lea rax, [rcx*4]
mov qword [rsp + 0x10], r15
mov r15, r13
mov qword [rsp], rax
mov qword [rsp + 8], r11
mov qword [rsp + 0x78], r8
nop dword [rax]
dec r14d
movzx eax, dil
or al, bl
mov dword [rsp + 0x88], r14d
or al, bpl
xor esi, esi
xor r10d, r10d
test al, 0xf
jne 0x1400c76dc
test r11, r11
js 0x1400c7766
mov rdx, rdi
lea rcx, [r11 + 8]
mov r8, rbp
lea rax, [rbx + 0x10]
sub rdx, rbx
sub r8, rbx
shr rcx, 3
lea esi, [rcx*8]
lea r10, [rcx*8]
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rdx + rax - 0x10]
lea rax, [rax + 0x20]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm2
psubd xmm2, xmm0
pxor xmm2, xmm1
psubd xmm2, xmm1
movdqu xmmword [r8 + rax - 0x30], xmm2
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm3, xmmword [rdx + rax - 0x20]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm3
psubd xmm3, xmm0
pxor xmm3, xmm1
psubd xmm3, xmm1
movdqu xmmword [r8 + rax - 0x20], xmm3
sub rcx, 1
jne 0x1400c7681
jmp 0x1400c7766
test r11, r11
js 0x1400c7766
mov rdx, rdi
lea rcx, [r11 + 8]
mov r8, rbp
lea rax, [rbx + 0x10]
sub rdx, rbx
sub r8, rbx
shr rcx, 3
lea esi, [rcx*8]
lea r10, [rcx*8]
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rax + rdx - 0x10]
lea rax, [rax + 0x20]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm2
psubd xmm2, xmm0
pxor xmm2, xmm1
psubd xmm2, xmm1
movdqu xmmword [rax + r8 - 0x30], xmm2
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm3, xmmword [rax + rdx - 0x20]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm3
psubd xmm3, xmm0
pxor xmm3, xmm1
psubd xmm3, xmm1
movdqu xmmword [rax + r8 - 0x20], xmm3
sub rcx, 1
jne 0x1400c7710
cmp esi, r12d
jg 0x1400c77bf
movsxd rax, esi
mov r8, rdi
mov r9, rbp
sub r8, rbx
sub r9, rbx
lea rcx, [rbx + rax*4]
mov eax, r12d
sub eax, esi
shr eax, 1
inc eax
mov edx, eax
lea esi, [rsi + rax*2]
lea r10, [r10 + rax*2]
movq xmm0, qword [rcx]
movq xmm2, qword [rcx + r8]
movdqa xmm1, xmm0
lea rcx, [rcx + 8]
pcmpgtd xmm1, xmm2
psubd xmm2, xmm0
pxor xmm2, xmm1
psubd xmm2, xmm1
movq qword [rcx + r9 - 8], xmm2
sub rdx, 1
jne 0x1400c7790
mov rax, qword [rsp + 0x78]
cmp r10, rax
jg 0x1400c7887
mov r14, rbx
lea r11, [r10 + 1]
mov r15, rbp
lea r11, [rdi + r11*4]
sub r14, rdi
sub r15, rdi
sub rax, r10
shr rax, 2
lea r12, [rax + 1]
lea esi, [rsi + r12*4]
mov r8d, dword [r14 + r11 - 4]
mov ecx, r8d
mov edx, dword [r11 - 4]
sub ecx, edx
mov r10d, dword [r14 + r11]
mov eax, edx
mov r9d, dword [r11]
lea r11, [r11 + 0x10]
sub eax, r8d
cmp edx, r8d
cmovle eax, ecx
mov ecx, r10d
mov dword [r15 + r11 - 0x14], eax
sub ecx, r9d
mov eax, r9d
sub eax, r10d
cmp r9d, r10d
cmovle eax, ecx
mov dword [r15 + r11 - 0x10], eax
mov r8d, dword [r14 + r11 - 0xc]
mov ecx, r8d
mov edx, dword [r11 - 0xc]
sub ecx, edx
mov r10d, dword [r14 + r11 - 8]
mov eax, edx
mov r9d, dword [r11 - 8]
sub eax, r8d
cmp edx, r8d
cmovle eax, ecx
mov ecx, r10d
mov dword [r15 + r11 - 0xc], eax
sub ecx, r9d
mov eax, r9d
sub eax, r10d
cmp r9d, r10d
cmovle eax, ecx
mov dword [r15 + r11 - 8], eax
sub r12, 1
jne 0x1400c77f0
mov r14d, dword [rsp + 0x88]
lea r12d, [r13 - 2]
mov r15, r13
mov edx, r13d
sub edx, esi
cmp esi, r13d
jge 0x1400c799a
cmp edx, 8
jb 0x1400c799a
lea eax, [r13 - 1]
movsxd r8, esi
movsxd rcx, eax
lea r10, [r8*4]
lea r9, [rcx*4]
add r10, rbp
add r9, rbp
lea rax, [rdi + rcx*4]
lea r11, [rdi + r8*4]
cmp r10, rax
ja 0x1400c78d4
cmp r9, r11
jae 0x1400c799a
lea rax, [rbx + rcx*4]
lea r11, [rbx + r8*4]
cmp r10, rax
ja 0x1400c78ea
cmp r9, r11
jae 0x1400c799a
and edx, 0x80000007
jge 0x1400c78f9
dec edx
or edx, 0xfffffff8
inc edx
mov eax, r13d
mov rcx, rbp
sub eax, edx
lea rdx, [r8 + 4]
movsxd r9, eax
lea rdx, [rdi + rdx*4]
mov rax, rbx
sub rax, rdi
sub rcx, rdi
nop word [rax + rax]
movdqu xmm3, xmmword [rax + rdx - 0x10]
add esi, 8
add r8, 8
movdqu xmm4, xmmword [rdx - 0x10]
lea rdx, [rdx + 0x20]
movdqa xmm0, xmm3
psubd xmm0, xmm4
movdqa xmm2, xmm4
pcmpgtd xmm2, xmm3
psubd xmm4, xmm3
pand xmm4, xmm2
movdqa xmm1, xmm2
pandn xmm1, xmm0
por xmm1, xmm4
movdqu xmm4, xmmword [rdx - 0x20]
movdqu xmm3, xmmword [rdx + rax - 0x20]
movdqa xmm2, xmm4
pcmpgtd xmm2, xmm3
movdqa xmm0, xmm3
psubd xmm0, xmm4
psubd xmm4, xmm3
pand xmm4, xmm2
movdqu xmmword [rdx + rcx - 0x30], xmm1
movdqa xmm1, xmm2
pandn xmm1, xmm0
por xmm1, xmm4
movdqu xmmword [rdx + rcx - 0x20], xmm1
cmp r8, r9
jl 0x1400c7920
movsxd rcx, esi
cmp rcx, r15
jge 0x1400c79e7
mov r11, rbx
lea rax, [rdi + rcx*4]
mov rsi, rbp
sub r11, rdi
sub rsi, rdi
mov r10, r15
sub r10, rcx
nop dword [rax + rax]
mov r9d, dword [r11 + rax]
mov edx, r9d
mov r8d, dword [rax]
lea rax, [rax + 4]
sub edx, r8d
mov ecx, r8d
sub ecx, r9d
cmp r8d, r9d
cmovle ecx, edx
mov dword [rsi + rax - 4], ecx
sub r10, 1
jne 0x1400c79c0
add rdi, qword [rsp + 0x58]
add rbx, qword [rsp + 0x68]
add rbp, qword [rsp]
mov r11, qword [rsp + 8]
test r14d, r14d
jne 0x1400c7630
mov r15, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x50]
add rsp, 0x28
pop r14
pop r13
pop rdi
pop rbx
ret