Function at 0x18017a480
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r13
sub rsp, 0xa8
mov rsi, qword [rsp + 0xf8]
mov r13, rdx
movsxd rbp, r9d
mov rdi, rcx
mov dword [rsp + 0x34], ebp
mov dword [rsp + 0x30], r8d
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rsi
cmp r8d, ebp
jge 0x18017a8d6
mov qword [rax - 0x28], rbx
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r14
movsxd r12, r8d
mov qword [rax - 0x40], r15
mov r15, rbp
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], rbp
nop dword [rax]
cmp dword [rsp + 0xf0], 0
mov dword [rsp + 0x64], r8d
mov dword [rsp + 0x60], ebp
je 0x18017a818
movsxd rcx, dword [rsp + 0x34]
lea rbp, [r13 + 0x10]
mov ebx, dword [r13 + 8]
mov rax, rbp
xor rax, qword [rbp]
shl rcx, 4
movsxd rdx, r8d
shl rdx, 4
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x78], rcx
lea r8, [rdx + rax]
lea rdx, [rcx + rax]
mov rcx, rdi
call rsi
cmp dword [r13 + 8], ebx
jne 0x18017a8fd
mov r14, r12
test eax, eax
je 0x18017a563
mov rcx, rbp
mov rax, r15
xor rcx, qword [rbp]
add rax, rax
shl r14, 4
movups xmm1, xmmword [rcx + rax*8]
movups xmm0, xmmword [r14 + rcx]
movups xmmword [rcx + rax*8], xmm0
movups xmmword [r14 + rcx], xmm1
jmp 0x18017a567
shl r14, 4
mov eax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
sub eax, edx
mov dword [rsp + 0x3c], eax
cmp eax, 1
je 0x18017a8b6
mov r8, qword [rsp + 0x58]
mov rcx, rbp
xor rcx, qword [rbp]
mov ebx, dword [r13 + 8]
add r8, rcx
sar eax, 1
add eax, edx
movsxd rdx, eax
shl rdx, 4
mov qword [rsp + 0x40], rdx
add rdx, rcx
mov rcx, rdi
call rsi
mov ecx, eax
mov eax, dword [r13 + 8]
mov dword [rsp + 0x38], eax
cmp eax, ebx
jne 0x18017a8fd
mov rbx, qword [rsp + 0x40]
mov rax, rbp
xor rax, qword [rbp]
test ecx, ecx
je 0x18017a5df
movups xmm0, xmmword [r14 + rax]
movups xmm1, xmmword [rbx + rax]
movups xmmword [rbx + rax], xmm0
movups xmmword [r14 + rax], xmm1
jmp 0x18017a61f
mov rdx, qword [rsp + 0x78]
lea r8, [rbx + rax]
add rdx, rax
mov rcx, rdi
call rsi
mov ecx, dword [rsp + 0x38]
cmp dword [r13 + 8], ecx
jne 0x18017a8fd
test eax, eax
je 0x18017a61f
mov rcx, rbp
mov rax, r15
xor rcx, qword [rbp]
add rax, rax
movups xmm1, xmmword [rbx + rcx]
movups xmm0, xmmword [rcx + rax*8]
movups xmmword [rbx + rcx], xmm0
movups xmmword [rcx + rax*8], xmm1
cmp dword [rsp + 0x3c], 2
je 0x18017a8b6
movsxd rdx, dword [rsp + 0x34]
mov rax, rbp
xor rax, qword [rbp]
mov r14, r12
lea r15, [rdx - 1]
movups xmm1, xmmword [rbx + rax]
mov rcx, r15
lea r12d, [rdx - 1]
shl rcx, 4
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rcx + rax]
movups xmmword [rbx + rax], xmm0
mov ebx, dword [rsp + 0x30]
movups xmmword [rcx + rax], xmm1
mov esi, dword [r13 + 8]
nop word [rax + rax]
mov rax, rbp
mov dword [rsp + 0x58], ebx
xor rax, qword [rbp]
mov edi, esi
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x3c], ebx
inc ebx
movsxd rdx, ebx
shl rdx, 4
lea r8, [rcx + rax]
mov rcx, qword [rsp + 0x48]
add rdx, rax
mov qword [rsp + 0x78], r14
inc r14
call qword [rsp + 0x50]
mov esi, dword [r13 + 8]
cmp esi, edi
jne 0x18017a8f8
test eax, eax
je 0x18017a6c8
cmp r14, qword [rsp + 0x70]
jge 0x18017a8e3
mov rcx, qword [rsp + 0x40]
jmp 0x18017a670
mov rdi, qword [rsp + 0x48]
nop dword [rax]
mov rdx, qword [rsp + 0x40]
dec r12d
movsxd r8, r12d
mov rax, rbp
xor rax, qword [rbp]
mov rcx, rdi
shl r8, 4
add rdx, rax
add r8, rax
dec r15
call qword [rsp + 0x50]
mov ecx, dword [r13 + 8]
cmp ecx, esi
jne 0x18017a8fd
test eax, eax
je 0x18017a715
cmp r15, qword [rsp + 0x68]
jle 0x18017a8e8
mov esi, ecx
jmp 0x18017a6d0
mov rdx, r14
add rdx, rdx
cmp r12d, ebx
jl 0x18017a747
mov rcx, rbp
mov rax, r15
xor rcx, qword [rbp]
add rax, rax
movups xmm1, xmmword [rcx + rdx*8]
movups xmm0, xmmword [rcx + rax*8]
movups xmmword [rcx + rdx*8], xmm0
movups xmmword [rcx + rax*8], xmm1
mov rcx, qword [rsp + 0x40]
jmp 0x18017a661
xor rbp, qword [rbp]
mov esi, ebx
mov rax, qword [rsp + 0x40]
mov r8d, dword [rsp + 0xf0]
mov ecx, dword [rsp + 0x3c]
movups xmm0, xmmword [rbp + rdx*8]
sub esi, dword [rsp + 0x30]
add ecx, 2
movups xmm1, xmmword [rax + rbp]
mov r9d, dword [rsp + 0x58]
movups xmmword [rax + rbp], xmm0
mov eax, r8d
sar r8d, 1
movups xmmword [rbp + rdx*8], xmm1
mov ebp, dword [rsp + 0x34]
mov edi, ebp
mov edx, dword [rsp + 0x64]
sub edi, ebx
sar eax, 2
add r8d, eax
mov eax, ecx
cmp esi, edi
mov dword [rsp + 0xf0], r8d
cmovge eax, dword [rsp + 0x30]
cmovge edx, ecx
cmovge ebp, dword [rsp + 0x38]
cmovge r9d, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r8d
mov r8d, edx
mov rdx, r13
mov dword [rsp + 0x34], ebp
call fcn.18017a480
mov r15, qword [rsp + 0x70]
lea r12, [r14 + 1]
mov r8d, dword [rsp + 0x30]
cmp esi, edi
cmovge r12, qword [rsp + 0x68]
cmovge r15, qword [rsp + 0x78]
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], r15
cmp r8d, ebp
jge 0x18017a8b6
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
jmp 0x18017a4e0
mov r14d, dword [rsp + 0x34]
sub ebp, r8d
lea eax, [rbp + 1]
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
sub ebx, 1
js 0x18017a851
nop
mov dword [rsp + 0x28], ebx
mov r9d, r14d
mov rdx, r13
mov qword [rsp + 0x20], rsi
mov rcx, rdi
call fcn.18017a2d0
sub ebx, 1
mov r8d, dword [rsp + 0x30]
jns 0x18017a830
movsxd rbx, ebp
test ebp, ebp
jle 0x18017a8b6
mov r15, r12
lea rbp, [r12 + rbx]
add r15, r15
shl rbp, 4
dec r14d
xor r12d, r12d
nop dword [rax]
lea rax, [r13 + 0x10]
mov dword [rsp + 0x28], r12d
xor rax, qword [r13 + 0x10]
mov r9d, r14d
mov rdx, r13
mov qword [rsp + 0x20], rsi
mov rcx, rdi
movups xmm0, xmmword [rax + rbp]
movups xmm1, xmmword [rax + r15*8]
movups xmmword [rax + r15*8], xmm0
movups xmmword [rax + rbp], xmm1
call fcn.18017a2d0
mov r8d, dword [rsp + 0x30]
lea rbp, [rbp - 0x10]
dec r14d
dec rbx
test rbx, rbx
jg 0x18017a870
mov r14, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x88]
add rsp, 0xa8
pop r13
pop rdi
pop rsi
pop rbp
ret
mov rdi, qword [rsp + 0x48]
lea rdx, str.invalid_order_function_for_sorting
mov rcx, rdi
call fcn.180164d90
int3
mov rdi, qword [rsp + 0x48]
lea rdx, str.table_modified_during_sorting
mov rcx, rdi
call fcn.180164d90
int3