Function at 0x14005bec0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], rdx
mov rdx, rcx
movzx eax, byte [r9 + 0xa8]
dec al
movzx ecx, al
cmp cl, 3
ja 0x14005c70c
mov r14, r9
mov qword [rsp + 0xc8], rdx
lea rax, [0x1402b2900]
mov r15d, dword [rax + rcx*4]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x28]
call fcn.140062890
mov rax, qword [rsp + 0x30]
mov byte [rax], 1
mov qword [rsp + 0x38], 1
cmp qword [rsp + 0x28], 1
jne 0x14005bf5d
lea rcx, [rsp + 0x28]
call fcn.140062890
mov rax, qword [rsp + 0x30]
mov byte [rax + 1], 1
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 4
mov qword [rsp + 0x50], 0
cmp qword [rsp + 0x70], 0
je 0x14005c71d
mov rax, qword [rsp + 0x78]
mov esi, dword [rax]
lea rcx, [rsp + 0x40]
call fcn.1400629f0
mov rax, qword [rsp + 0x48]
mov dword [rax], esi
mov qword [rsp + 0x50], 1
cmp qword [rsp + 0x70], 1
je 0x14005c72d
mov rax, qword [rsp + 0x78]
mov esi, dword [rax + 4]
cmp qword [rsp + 0x40], 1
jne 0x14005bfdd
lea rcx, [rsp + 0x40]
call fcn.1400629f0
mov rax, qword [rsp + 0x48]
mov dword [rax + 4], esi
mov qword [rsp + 0x50], 2
mov r12, qword [r14 + 0x80]
mov rdi, qword [r14 + 0x88]
lea rax, [r12 + rdi*4]
mov qword [rsp + 0x88], rax
lea rax, [r12 - 4]
mov qword [rsp + 0x98], rax
lea rax, [r12 - 8]
mov qword [rsp + 0x90], rax
mov eax, 2
xor ecx, ecx
xor edx, edx
mov rbx, r12
mov dword [rsp + 0x6c], r15d
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0x60], r12
jmp 0x14005c07f
mov rax, qword [rsp + 0x48]
mov dword [rax + rdi*4], esi
lea rax, [rsp + 0x50]
inc rdi
mov qword [rax], rdi
mov dl, 1
mov rcx, qword [rsp + 0xe0]
xor eax, eax
mov rbx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xd0]
test dl, 1
je 0x14005c0a0
cmp rbx, qword [rsp + 0x88]
jne 0x14005c0bf
jmp 0x14005c4f9
mov rdx, qword [rsp + 0x88]
sub rdx, rbx
shr rdx, 2
cmp rdx, rax
jbe 0x14005c4f9
lea rbx, [rbx + rax*4]
add rcx, rax
mov qword [rsp + 0x80], rcx
lea rax, str.smallerbigger
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 7
cmp rcx, rdi
jae 0x14005c62e
mov r9d, dword [r12 + rcx*4]
mov dword [rsp + 0x5c], r9d
test rcx, rcx
je 0x14005c694
lea rdx, [rbx + 4]
lea rax, [rcx + 1]
mov qword [rsp + 0xe0], rax
lea rdi, [r12 + rcx*4]
lea r13, [rcx*4]
lea r15, [rcx*4 - 4]
mov r11d, 4
sub r11, r13
mov rbp, r11
mov r10, r15
xor r14d, r14d
mov r8, r13
xor esi, esi
mov rax, r12
nop dword [rax + rax]
cmp r9d, dword [rax]
ja 0x14005c170
add rax, 4
inc rsi
add r8, 0xfffffffffffffffc
add r14, 4
add r10, 0xfffffffffffffffc
add rbp, 4
cmp rax, rdi
jne 0x14005c140
jmp 0x14005c694
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xd8], rdx
lea r12, [r12 + rsi*4]
cmp r12, rdi
je 0x14005c1d9
shr r8, 2
dec r8
mov rax, qword [rsp + 0x90]
lea rbx, [rax + r13]
mov rdx, qword [rsp + 0x98]
nop word cs:[rax + rax]
mov eax, dword [rdx + r13]
cmp r9d, eax
ja 0x14005c430
dec r8
add r14, 4
add rdx, 0xfffffffffffffffc
add r10, 0xfffffffffffffffc
add rbp, 4
add rbx, 0xfffffffffffffffc
cmp r13, r14
jne 0x14005c1b0
mov eax, dword [r12]
xor r8d, r8d
mov r12, qword [rsp + 0x60]
add r8, rsi
mov qword [rsp + 0x80], rcx
lea rdx, [0x1402b28df]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], 6
mov dword [rsp + 0x5c], r9d
xor r14d, r14d
mov rbp, r13
xor esi, esi
mov rdx, r12
nop dword [rax + rax]
cmp r9d, dword [rdx]
jb 0x14005c250
add rdx, 4
inc rsi
add rbp, 0xfffffffffffffffc
add r14, 4
add r15, 0xfffffffffffffffc
add r11, 4
cmp rdx, rdi
jne 0x14005c220
jmp 0x14005c6d0
lea r12, [r12 + rsi*4]
cmp r12, rdi
je 0x14005c2a9
shr rbp, 2
dec rbp
mov rdx, qword [rsp + 0x90]
lea r10, [rdx + r13]
mov rdx, qword [rsp + 0x98]
nop word cs:[rax + rax]
mov ebx, dword [rdx + r13]
cmp r9d, ebx
jb 0x14005c480
dec rbp
add r14, 4
add rdx, 0xfffffffffffffffc
add r15, 0xfffffffffffffffc
add r11, 4
add r10, 0xfffffffffffffffc
cmp r13, r14
jne 0x14005c280
mov ebx, dword [r12]
xor ebp, ebp
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
cmp r8, rdi
jae 0x14005c637
add rbp, rsi
cmp rbp, rdi
jae 0x14005c643
mov r9, qword [rsp + 0x48]
mov r10d, dword [r9 + r8*4]
mov esi, dword [r9 + rbp*4]
mov rdx, qword [rsp + 0xe8]
mov edx, dword [rdx]
mov r11d, ebx
sub r11d, eax
sub esi, r10d
js 0x14005c320
cmp ebx, eax
mov r15d, dword [rsp + 0x6c]
je 0x14005c64f
sub edx, eax
imul edx, esi
mov eax, edx
xor edx, edx
div r11d
mov r13d, eax
add r13d, r10d
cmp rcx, qword [rsp + 0x70]
jb 0x14005c348
jmp 0x14005c660
cmp ebx, eax
mov r15d, dword [rsp + 0x6c]
je 0x14005c64f
sub eax, edx
imul eax, esi
xor edx, edx
div r11d
sub r10d, eax
mov r13d, r10d
cmp rcx, qword [rsp + 0x70]
jae 0x14005c660
mov rax, qword [rsp + 0x78]
mov esi, dword [rax + rcx*4]
mov ebx, r15d
sub ebx, r13d
cmp ebx, r13d
mov r14d, r13d
cmovl r14d, ebx
test esi, esi
jle 0x14005c3e0
mov rax, qword [rsp + 0x38]
cmp r8, rax
jae 0x14005c66e
mov rax, qword [rsp + 0x30]
mov byte [rax + r8], 1
mov rax, qword [rsp + 0x38]
cmp rbp, rax
jae 0x14005c67d
mov rax, qword [rsp + 0x30]
mov byte [rax + rbp], 1
mov rdi, qword [rsp + 0x38]
cmp rdi, qword [rsp + 0x28]
jne 0x14005c3a9
lea rcx, [rsp + 0x28]
call fcn.140062890
add r14d, r14d
mov rax, qword [rsp + 0x30]
mov byte [rax + rdi], 1
inc rdi
mov qword [rsp + 0x38], rdi
cmp esi, r14d
jge 0x14005c4d0
mov eax, esi
and eax, 1
neg eax
xor eax, esi
sar eax, 1
add eax, r13d
mov esi, eax
jmp 0x14005c4da
cmp rdi, qword [rsp + 0x40]
jne 0x14005c3f6
lea rcx, [rsp + 0x40]
call fcn.1400629f0
mov r9, qword [rsp + 0x48]
mov dword [r9 + rdi*4], r13d
inc rdi
mov qword [rsp + 0x50], rdi
mov rdi, qword [rsp + 0x38]
cmp rdi, qword [rsp + 0x28]
jne 0x14005c418
lea rcx, [rsp + 0x28]
call fcn.140062890
mov rax, qword [rsp + 0x30]
mov byte [rax + rdi], 0
lea rax, [rsp + 0x38]
jmp 0x14005c05d
lea rdx, [rcx*4 - 4]
cmp rdx, r14
je 0x14005c1e0
shr r10, 2
dec r10
mov r12, qword [rsp + 0x60]
jmp 0x14005c461
dec r10
add rbx, 0xfffffffffffffffc
add rbp, 4
je 0x14005c1e5
mov edx, dword [rbx]
cmp r9d, edx
jbe 0x14005c450
cmp eax, edx
cmovbe eax, edx
cmovbe r8, r10
jmp 0x14005c450
add r13, 0xfffffffffffffffc
cmp r13, r14
je 0x14005c2af
shr r15, 2
dec r15
mov r12, qword [rsp + 0x60]
jmp 0x14005c4b1
dec r15
add r10, 0xfffffffffffffffc
add r11, 4
je 0x14005c2b4
mov edx, dword [r10]
cmp r9d, edx
jae 0x14005c4a0
cmp edx, ebx
cmovb ebx, edx
cmovbe rbp, r15
jmp 0x14005c4a0
cmp ebx, r13d
jg 0x14005c4da
not esi
add esi, r15d
mov rdi, qword [rsp + 0x50]
cmp rdi, qword [rsp + 0x40]
jne 0x14005c050
lea rcx, [rsp + 0x40]
call fcn.1400629f0
jmp 0x14005c050
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x14005c5e7
mov rdx, qword [rsp + 0x48]
dec r15d
lea rcx, [rax - 1]
movabs r8, 0x3fffffffffffffff
and r8, rcx
mov rcx, rdx
cmp r8, 7
jb 0x14005c5c0
inc r8
mov r9, r8
and r9, 0xfffffffffffffff8
lea rcx, [rdx + r9*4]
movd xmm0, r15d
pshufd xmm0, xmm0, 0
xor r10d, r10d
movdqa xmm1, xmmword [0x1402b2500]
movdqa xmm2, xmm0
pxor xmm2, xmm1
nop dword [rax + rax]
movdqu xmm3, xmmword [rdx + r10*4]
movdqu xmm4, xmmword [rdx + r10*4 + 0x10]
movdqa xmm5, xmm3
pxor xmm5, xmm1
pcmpgtd xmm5, xmm2
movdqa xmm6, xmm0
pand xmm6, xmm5
pandn xmm5, xmm3
por xmm5, xmm6
movdqa xmm3, xmm4
pxor xmm3, xmm1
pcmpgtd xmm3, xmm2
movdqa xmm6, xmm0
pand xmm6, xmm3
pandn xmm3, xmm4
por xmm3, xmm6
movdqu xmmword [rdx + r10*4], xmm5
movdqu xmmword [rdx + r10*4 + 0x10], xmm3
add r10, 8
cmp r9, r10
jne 0x14005c560
cmp r8, r9
je 0x14005c5e7
lea rax, [rdx + rax*4]
nop word cs:[rax + rax]
mov edx, dword [rcx]
cmp r15d, edx
cmovb edx, r15d
mov dword [rcx], edx
lea rdx, [rcx + 4]
mov rcx, rdx
cmp rdx, rax
jne 0x14005c5d0
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0xc8]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rax + 0x18], xmm0
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x28], rcx
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1402b2820]
jmp 0x14005c68a
mov rcx, r8
lea r8, [0x1402b2958]
jmp 0x14005c68a
mov rcx, rbp
lea r8, [0x1402b2970]
jmp 0x14005c68a
lea rcx, [0x1402b28e8]
call fcn.1401bbc40
jmp 0x14005c70a
mov rdi, qword [rsp + 0x70]
lea r8, [0x1402b2988]
jmp 0x14005c68a
mov rcx, r8
mov rdi, rax
lea r8, [0x1402b29a0]
jmp 0x14005c68a
mov rcx, rbp
mov rdi, rax
lea r8, [0x1402b29b8]
mov rdx, rdi
call fcn.1401ac3e0
jmp 0x14005c70a
lea rax, [rsp + 0x80]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0xb0]
call fcn.14005bd30
jmp 0x14005c70a
lea rax, [rsp + 0x80]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0xb0]
call fcn.14005bd30
ud2
lea r8, [0x1402b2910]
mov edx, 4
call fcn.1401ac3e0
lea r8, [0x1402b2928]
xor ecx, ecx
xor edi, edi
jmp 0x14005c68a
lea r8, [0x1402b2940]
mov ecx, 1
mov edi, 1
jmp 0x14005c68a