Function at 0x140029c20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x40], 0xfffffffffffffffe
mov r13, r9
mov r15, r8
mov rsi, rdx
mov rbx, rcx
cmp rdx, 0x21
mov qword [rbp + 0x30], r8
jae 0x140029e9b
cmp rsi, 2
jb 0x14002a670
lea rax, [rsi + 0x10]
cmp rax, r13
ja 0x14002a6cf
mov r13, rsi
shr r13, 1
cmp rsi, 7
mov qword [rbp + 0x28], rbx
jbe 0x14002a36d
movsd xmm0, qword [rbx]
movsd xmm1, qword [rbx + 0x40]
xor r10d, r10d
xor r9d, r9d
ucomisd xmm0, qword [rbx + 0x20]
setbe r10b
seta r9b
xor r8d, r8d
ucomisd xmm1, qword [rbx + 0x60]
seta r8b
shl r9d, 5
shl r10d, 5
lea rcx, [rbx + r10]
mov eax, r8d
shl eax, 5
lea rdx, [rbx + rax]
add rdx, 0x40
xor r8d, 3
shl r8d, 5
movsd xmm0, qword [rbx + r10]
movsd xmm1, qword [rbx + r8]
ucomisd xmm0, xmm1
mov r10, rcx
cmova r10, rdx
movsd xmm2, qword [rbx + r9]
ucomisd xmm2, qword [rbx + rax + 0x40]
lea rax, [rbx + r9]
cmova r10, rax
cmova rax, rdx
cmova rdx, rcx
ucomisd xmm0, xmm1
lea r8, [rbx + r8]
cmovbe rcx, r8
cmova rdx, r8
movsd xmm0, qword [r10]
ucomisd xmm0, qword [rdx]
mov r8, r10
cmova r8, rdx
cmova rdx, r10
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r15 + 0x30], xmm1
movups xmmword [r15 + 0x20], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [r15 + 0x50], xmm0
mov r8, r13
shl r8, 5
movsd xmm0, qword [rbx + r8]
movsd xmm1, qword [rbx + r8 + 0x40]
xor r14d, r14d
xor ebx, ebx
mov rax, qword [rbp + 0x28]
ucomisd xmm0, qword [rax + r8 + 0x20]
setbe r14b
seta bl
xor r10d, r10d
mov rax, qword [rbp + 0x28]
ucomisd xmm1, qword [rax + r8 + 0x60]
mov rax, qword [rbp + 0x28]
lea rdi, [rax + r8]
seta r10b
shl ebx, 5
shl r14d, 5
lea r9, [rdi + r14]
mov eax, r10d
shl eax, 5
lea r11, [rax + rdi]
add r11, 0x40
xor r10d, 3
shl r10d, 5
movsd xmm0, qword [rbx + rdi]
movsd xmm1, qword [r14 + rdi]
movsd xmm2, qword [r10 + rdi]
ucomisd xmm1, xmm2
mov r14, r9
cmova r14, r11
ucomisd xmm0, qword [rdi + rax + 0x40]
movups xmm0, xmmword [rdx]
lea rax, [rdi + rbx]
mov rbx, qword [rbp + 0x28]
cmova r14, rax
movups xmmword [r15 + 0x40], xmm0
cmova rax, r11
movups xmm0, xmmword [rcx + 0x10]
cmova r11, r9
movups xmmword [r15 + 0x70], xmm0
movups xmm0, xmmword [rcx]
ucomisd xmm1, xmm2
lea rcx, [rdi + r10]
cmovbe r9, rcx
movups xmmword [r15 + 0x60], xmm0
cmova r11, rcx
movsd xmm0, qword [r14]
ucomisd xmm0, qword [r11]
mov rcx, r14
cmova rcx, r11
cmova r11, r14
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + r8 + 0x10], xmm1
movups xmmword [r15 + r8], xmm0
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r15 + r8 + 0x20], xmm0
movups xmmword [r15 + r8 + 0x30], xmm1
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmmword [r15 + r8 + 0x40], xmm0
movups xmmword [r15 + r8 + 0x50], xmm1
movupd xmm0, xmmword [r9]
movupd xmm1, xmmword [r9 + 0x10]
movupd xmmword [r15 + r8 + 0x60], xmm0
movupd xmmword [r15 + r8 + 0x70], xmm1
mov edx, 4
mov r8, rsi
sub r8, r13
cmp rdx, r13
jb 0x14002a3b0
jmp 0x14002a46e
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0x20], rax
mov r12d, dword [rbp + 0xb0]
lea rax, [r15 - 0x20]
mov qword [rbp + 8], rax
mov qword [rbp + 0x28], r13
lea rax, [rbx + 0x20]
mov qword [rbp + 0x10], rax
mov rdi, rsi
nop word cs:[rax + rax]
sub r12d, 1
jb 0x14002a352
mov r9, rdi
shr r9, 3
mov r14, r9
shl r14, 7
add r14, rbx
imul r8, r9, 0xe0
add r8, rbx
cmp rdi, 0x40
mov dword [rbp + 0x3c], r12d
jae 0x140029f40
movsd xmm0, qword [rbx]
movsd xmm1, qword [r14]
ucomisd xmm1, xmm0
seta al
movsd xmm2, qword [r8]
ucomisd xmm2, xmm0
seta cl
xor cl, al
ucomisd xmm2, xmm1
seta dl
xor dl, al
cmovne r14, r8
test cl, cl
cmovne r14, rbx
jmp 0x140029f4e
mov rcx, rbx
mov rdx, r14
call fcn.140026540
mov r14, rax
mov rax, r14
sub rax, rbx
shr rax, 5
mov qword [rbp + 0x18], rax
movupd xmm0, xmmword [r14]
movupd xmm1, xmmword [r14 + 0x10]
movapd xmmword [rbp - 0x40], xmm1
movapd xmmword [rbp - 0x50], xmm0
cmp qword [rbp + 0x20], 0
je 0x140029f8b
movsd xmm0, qword [r14]
mov rax, qword [rbp + 0x20]
ucomisd xmm0, qword [rax]
jbe 0x14002a180
cmp rdi, r13
ja 0x14002a6cf
mov r12, rbx
mov rbx, rdi
shl rbx, 5
mov r15, qword [rbp + 0x30]
lea r13, [r15 + rbx]
xor esi, esi
mov rax, r12
mov rcx, r13
mov rdx, qword [rbp + 0x18]
nop word cs:[rax + rax]
mov r8, rdx
shl r8, 5
add r8, r12
cmp rax, r8
jae 0x14002a014
nop
movsd xmm0, qword [r14]
add rcx, 0xffffffffffffffe0
xor r9d, r9d
ucomisd xmm0, qword [rax]
seta r9b
mov r10, rcx
cmova r10, r15
mov r11, rsi
shl r11, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [r10 + r11 + 0x10], xmm1
movupd xmmword [r10 + r11], xmm0
add rsi, r9
add rax, 0x20
cmp rax, r8
jb 0x140029fd0
cmp rdx, rdi
je 0x14002a050
mov rdx, rsi
shl rdx, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [rcx + rdx - 0x10], xmm1
movupd xmmword [rcx + rdx - 0x20], xmm0
add rcx, 0xffffffffffffffe0
add rax, 0x20
mov rdx, rdi
jmp 0x140029fc0
mov rdx, r15
mov r15, rsi
shl r15, 5
mov rcx, r12
mov r8, r15
call fcn.1400f0e80
mov rax, rdi
sub rax, rsi
movabs r10, 0x7fffffffffffffe
je 0x14002a124
lea rcx, [rsi + 1]
cmp rdi, rcx
jne 0x14002a090
xor ecx, ecx
jmp 0x14002a0f5
mov rdx, rax
and rdx, 0xfffffffffffffffe
mov rcx, qword [rbp + 0x10]
lea r8, [rcx + r15]
add rbx, qword [rbp + 8]
xor r9d, r9d
nop word cs:[rax + rax]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r8 - 0x10], xmm1
movups xmmword [r8 - 0x20], xmm0
lea rcx, [r9 + 2]
xor r9, r10
shl r9, 5
movupd xmm0, xmmword [r13 + r9]
movupd xmm1, xmmword [r13 + r9 + 0x10]
movupd xmmword [r8], xmm0
movupd xmmword [r8 + 0x10], xmm1
add r8, 0x40
add rbx, 0xffffffffffffffc0
mov r9, rcx
cmp rdx, rcx
jne 0x14002a0b0
test al, 1
je 0x14002a124
lea rax, [r12 + r15]
mov rdx, rcx
not rdx
shl rdx, 5
shl rcx, 5
movupd xmm0, xmmword [r13 + rdx]
movupd xmm1, xmmword [r13 + rdx + 0x10]
movupd xmmword [rax + rcx + 0x10], xmm1
movupd xmmword [rax + rcx], xmm0
test rsi, rsi
mov rbx, r12
mov r13, qword [rbp + 0x28]
je 0x14002a180
sub rdi, rsi
jb 0x14002a684
add r15, rbx
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
mov r12d, dword [rbp + 0x3c]
mov dword [rsp + 0x20], r12d
mov rcx, r15
mov rdx, rdi
mov r15, qword [rbp + 0x30]
mov r8, r15
mov r9, r13
call fcn.140029c20
mov rdi, rsi
cmp rsi, 0x21
jae 0x140029ed0
jmp 0x140029c5d
cmp rdi, r13
ja 0x14002a6cf
mov r12, r13
mov r13, rdi
shl r13, 5
mov rax, qword [rbp + 0x30]
lea rcx, [rax + r13]
xor r15d, r15d
mov rax, rbx
mov qword [rbp + 0x20], rcx
mov rsi, qword [rbp + 0x18]
nop dword [rax]
mov rdx, rsi
shl rdx, 5
add rdx, rbx
cmp rax, rdx
mov r11, qword [rbp + 0x30]
jae 0x14002a214
nop word cs:[rax + rax]
movsd xmm0, qword [rax]
add rcx, 0xffffffffffffffe0
xor r8d, r8d
ucomisd xmm0, qword [r14]
setbe r8b
mov r9, rcx
cmovbe r9, r11
mov r10, r15
shl r10, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [r9 + r10 + 0x10], xmm1
movupd xmmword [r9 + r10], xmm0
add r15, r8
add rax, 0x20
cmp rax, rdx
jb 0x14002a1d0
cmp rsi, rdi
je 0x14002a250
add rcx, 0xffffffffffffffe0
mov rdx, r15
shl rdx, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
mov r8, qword [rbp + 0x30]
movupd xmmword [r8 + rdx + 0x10], xmm1
movupd xmmword [r8 + rdx], xmm0
inc r15
add rax, 0x20
mov rsi, rdi
jmp 0x14002a1b0
mov r14, r15
shl r14, 5
mov rcx, rbx
mov rdx, qword [rbp + 0x30]
mov r8, r14
call fcn.1400f0e80
mov rsi, rdi
sub rsi, r15
movabs r9, 0x7fffffffffffffe
mov r10, qword [rbp + 0x20]
je 0x14002a323
lea rax, [r15 + 1]
cmp rdi, rax
jne 0x14002a28d
xor eax, eax
jmp 0x14002a2f3
mov rcx, rsi
and rcx, 0xfffffffffffffffe
lea rdx, [rbx + r14]
add rdx, 0x20
add r13, qword [rbp + 8]
xor r8d, r8d
nop word cs:[rax + rax]
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rax, [r8 + 2]
xor r8, r9
shl r8, 5
movupd xmm0, xmmword [r10 + r8]
movupd xmm1, xmmword [r10 + r8 + 0x10]
movupd xmmword [rdx], xmm0
movupd xmmword [rdx + 0x10], xmm1
add rdx, 0x40
add r13, 0xffffffffffffffc0
mov r8, rax
cmp rcx, rax
jne 0x14002a2b0
test sil, 1
je 0x14002a323
lea rcx, [rbx + r14]
mov rdx, rax
not rdx
shl rdx, 5
shl rax, 5
movupd xmm0, xmmword [r10 + rdx]
movupd xmm1, xmmword [r10 + rdx + 0x10]
movupd xmmword [rcx + rax + 0x10], xmm1
movupd xmmword [rcx + rax], xmm0
cmp rdi, r15
jb 0x14002a6b8
add rbx, r14
mov eax, 0
mov qword [rbp + 0x20], rax
cmp rsi, 0x21
mov r15, qword [rbp + 0x30]
mov r13, r12
mov r12d, dword [rbp + 0x3c]
jae 0x140029eb9
jmp 0x140029c5d
mov byte [rsp + 0x20], 1
mov rcx, rbx
mov rdx, rdi
mov r8, r15
mov r9, r13
call fcn.140027790
jmp 0x14002a670
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
mov rax, r13
shl rax, 5
movupd xmm0, xmmword [rbx + rax]
movupd xmm1, xmmword [rbx + rax + 0x10]
movupd xmmword [r15 + rax + 0x10], xmm1
movupd xmmword [r15 + rax], xmm0
mov edx, 1
mov r8, rsi
sub r8, r13
cmp rdx, r13
jae 0x14002a46e
mov ecx, edx
shl ecx, 5
mov r9, rdx
jmp 0x14002a3eb
mov r10, r15
movsd qword [r10], xmm0
movapd xmm0, xmmword [rbp - 0x30]
movupd xmmword [r10 + 8], xmm0
mov rax, qword [rbp - 0x20]
mov qword [r10 + 0x18], rax
inc r9
add rcx, 0x20
cmp r9, r13
je 0x14002a46e
mov rax, r9
shl rax, 5
movups xmm0, xmmword [rbx + rax]
movups xmm1, xmmword [rbx + rax + 0x10]
movups xmmword [r15 + rax], xmm0
movups xmmword [r15 + rax + 0x10], xmm1
movsd xmm0, qword [r15 + rax]
movsd xmm1, qword [r15 + rax - 0x20]
ucomisd xmm1, xmm0
jbe 0x14002a3db
add rax, rbx
mov r10, qword [rax + 0x18]
mov qword [rbp - 0x20], r10
movups xmm1, xmmword [rax + 8]
movaps xmmword [rbp - 0x30], xmm1
mov r10, rcx
nop
movupd xmm1, xmmword [r15 + r10 - 0x20]
movupd xmm2, xmmword [r15 + r10 - 0x10]
movupd xmmword [r15 + r10 + 0x10], xmm2
movupd xmmword [r15 + r10], xmm1
cmp r10, 0x20
je 0x14002a3c0
movsd xmm1, qword [r15 + r10 - 0x40]
add r10, 0xffffffffffffffe0
ucomisd xmm1, xmm0
ja 0x14002a430
add r10, r15
jmp 0x14002a3c3
mov r9, r13
shl r9, 5
lea rcx, [r15 + r9]
cmp rdx, r8
jae 0x14002a53e
add r9, rbx
mov r10d, edx
shl r10d, 5
jmp 0x14002a4bb
mov r11, rcx
movsd qword [r11], xmm0
movapd xmm0, xmmword [rbp - 0x30]
movupd xmmword [r11 + 8], xmm0
mov rax, qword [rbp - 0x20]
mov qword [r11 + 0x18], rax
inc rdx
add r10, 0x20
cmp rdx, r8
je 0x14002a53e
mov rax, rdx
shl rax, 5
movups xmm0, xmmword [r9 + rax]
movups xmm1, xmmword [r9 + rax + 0x10]
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm1
movsd xmm0, qword [rcx + rax]
movsd xmm1, qword [rcx + rax - 0x20]
ucomisd xmm1, xmm0
jbe 0x14002a4ab
add rax, r9
mov r11, qword [rax + 0x18]
mov qword [rbp - 0x20], r11
movups xmm1, xmmword [rax + 8]
movaps xmmword [rbp - 0x30], xmm1
mov r11, r10
nop dword [rax]
movupd xmm1, xmmword [rcx + r11 - 0x20]
movupd xmm2, xmmword [rcx + r11 - 0x10]
movupd xmmword [rcx + r11 + 0x10], xmm2
movupd xmmword [rcx + r11], xmm1
cmp r11, 0x20
je 0x14002a490
movsd xmm1, qword [rcx + r11 - 0x40]
add r11, 0xffffffffffffffe0
ucomisd xmm1, xmm0
ja 0x14002a500
add r11, rcx
jmp 0x14002a493
lea r12, [rcx - 0x20]
mov rax, rsi
shl rax, 5
lea rdx, [r15 + rax]
add rdx, 0xffffffffffffffe0
mov qword [rbp + 0x10], rax
lea r11, [rbx + rax]
add r11, 0xffffffffffffffe0
mov r9, r15
mov r10, rbx
jmp 0x14002a5c6
mov r13b, r15b
shl r13d, 5
add rcx, r13
movzx r15d, byte [rbp + 0x20]
mov bl, r15b
shl ebx, 5
add r9, rbx
movupd xmm0, xmmword [r8]
movupd xmm1, xmmword [r8 + 0x10]
mov r14b, al
shl r14d, 5
sub rdx, r14
movzx eax, byte [rbp + 0x3c]
mov dil, al
shl edi, 5
sub r12, rdi
add r10, 0x20
movupd xmmword [r11 + 0x10], xmm1
movupd xmmword [r11], xmm0
add r11, 0xffffffffffffffe0
mov r13, qword [rbp + 0x18]
dec r13
je 0x14002a61f
mov qword [rbp + 0x18], r13
movsd xmm0, qword [r9]
xor ebx, ebx
xor r13d, r13d
ucomisd xmm0, qword [rcx]
setbe byte [rbp + 0x20]
seta r15b
mov rax, rcx
ja 0x14002a5e8
mov rax, r9
movups xmm0, xmmword [rax]
movsd xmm1, qword [r12]
xor edi, edi
xor r14d, r14d
ucomisd xmm1, qword [rdx]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r10 + 0x10], xmm1
seta byte [rbp + 0x3c]
movups xmmword [r10], xmm0
setbe al
mov r8, r12
ja 0x14002a570
mov r8, rdx
jmp 0x14002a570
add r12, 0x20
test sil, 1
je 0x14002a662
xor eax, eax
xor r8d, r8d
cmp r9, r12
setae al
setb r8b
mov r11, rcx
cmovb r11, r9
movupd xmm0, xmmword [r11]
movupd xmm1, xmmword [r11 + 0x10]
movupd xmmword [r10 + 0x10], xmm1
movupd xmmword [r10], xmm0
shl r8d, 5
add r9, r8
shl eax, 5
add rcx, rax
cmp r9, r12
jne 0x14002a6ca
add rdx, 0x20
cmp rcx, rdx
jne 0x14002a6ca
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rax, [0x1400f80d8]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 1
mov qword [rbp - 0x20], 8
xorpd xmm0, xmm0
movupd xmmword [rbp - 0x18], xmm0
lea rdx, [0x1400f8188]
lea rcx, [rbp - 0x30]
call fcn.1400f47b0
lea r8, [0x1400f81a0]
mov rcx, r15
mov rdx, rdi
call fcn.1400f4bb0
call fcn.1400f4b70
ud2