Function at 0x14029ac50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rax, rdx
mov edx, r8d
and edx, 0xf
cmp edx, 4
jae 0x14029aca9
cmp edx, 2
jae 0x14029acbf
test edx, edx
je 0x14029ad68
test ecx, ecx
je 0x14029acb0
test r8b, r8b
jns 0x14029af9d
mov rcx, rax
mov rsi, r9
mov rbx, rax
mov edi, r8d
call fcn.1400954d0
mov r8d, edi
mov rax, rbx
test r8b, 0x20
jne 0x14029af9d
mov r9, rsi
jmp 0x14029ad1d
jne 0x14029acf4
test r9d, r9d
je 0x14029ace6
mov rdx, rcx
test r8b, 0x10
jne 0x14029af9d
jmp 0x14029ad22
cmp edx, 3
jne 0x14029ad0d
test ecx, ecx
je 0x14029adb0
mov rsi, rcx
mov rcx, r9
mov rdi, r9
mov ebx, r8d
call fcn.1400954d0
mov r8d, ebx
mov r9, rdi
mov rcx, rsi
mov rax, r9
test r8b, 0x40
je 0x14029ad42
jmp 0x14029af9d
cmp edx, 6
jbe 0x14029ad4a
cmp edx, 7
jne 0x14029ad95
xor r11d, r11d
mov rdx, rax
mov r10, rax
jmp 0x14029ad1d
test ecx, ecx
je 0x14029af9a
mov rdx, r9
test r8b, r8b
js 0x14029ad22
jmp 0x14029af76
mov rsi, rcx
mov rcx, rdx
mov rdi, r9
mov ebx, r8d
call fcn.1400954d0
mov rcx, rsi
mov rax, rdi
test bl, 0x20
jne 0x14029af9d
mov rax, rcx
jmp 0x14029af9d
jne 0x14029ada4
cmp rcx, rax
jae 0x14029adb5
test r8b, 0x10
je 0x14029af9d
xor esi, esi
mov rdi, rcx
mov rbx, rax
jmp 0x14029af5a
mov rcx, qword [rcx + 8]
movzx eax, byte [0x140739972]
cmp al, 0xbf
je 0x14029ae45
mov dl, 0x70
nop dword [rax]
mov al, 0x58
lock cmpxchg byte [0x140739972], dl
je 0x14029ade1
cmp al, 0xbf
jne 0x14029ad80
jmp 0x14029ae45
mov rcx, r9
call fcn.1402bc2a0
xor eax, eax
jmp 0x14029af9d
call fcn.14059bc90
mov eax, eax
jmp 0x14029af9d
jmp 0x14029af8e
test r9, r9
je 0x14029ad42
cmp r9, 4
jb 0x14029aee1
mov rdx, rax
sub rdx, rcx
cmp rdx, 0x10
jb 0x14029aee1
cmp r9, 0x10
jae 0x14029ae58
xor edx, edx
jmp 0x14029ae99
xor eax, eax
lea rdx, [0x140739960]
lea r8, [0x1405f5ad0]
nop word cs:[rax + rax]
mov r9d, eax
and r9d, 0xe
mov r10, r9
xor r10, 7
movzx r11d, byte [rax + rdx]
movzx ebx, byte [rax + rdx + 1]
xor r11b, byte [r10 + r8]
xor r11b, 0xa4
mov byte [rax + rdx], r11b
xor r9, 6
xor bl, byte [r9 + r8]
xor bl, 0xa4
mov byte [rax + rdx + 1], bl
add rax, 2
cmp rax, 0x12
jne 0x14029ae00
mov al, 0xbf
xchg byte [0x140739972], al
test rcx, rcx
lea rax, [0x140739960]
cmovne rax, rcx
jmp 0x14029af9d
mov rdx, r9
and rdx, 0xfffffffffffffff0
lea r8, [rcx + r9]
add r8, 0xfffffffffffffff0
lea r10, [rax + r9]
add r10, 0xfffffffffffffff0
mov r11, rdx
neg r11
xor esi, esi
movups xmm0, xmmword [r10 + rsi]
movups xmmword [r8 + rsi], xmm0
add rsi, 0xfffffffffffffff0
cmp r11, rsi
jne 0x14029ae77
cmp rdx, r9
je 0x14029ad42
test r9b, 0xc
je 0x14029aedd
mov r8, r9
and r8, 0xfffffffffffffffc
mov r10d, r9d
and r10d, 3
lea r11, [rcx + r9]
add r11, 0xfffffffffffffffc
neg rdx
lea rsi, [rax + r9]
add rsi, 0xfffffffffffffffc
mov rdi, r8
neg rdi
mov ebx, dword [rsi + rdx]
mov dword [r11 + rdx], ebx
add rdx, 0xfffffffffffffffc
cmp rdi, rdx
jne 0x14029aec0
cmp r8, r9
mov r9, r10
jne 0x14029aee1
jmp 0x14029ad42
and r9d, 0xf
lea r8, [r9 - 1]
mov r10, r9
and r10, 3
je 0x14029af09
nop
lea rdx, [r9 - 1]
movzx r11d, byte [rax + r9 - 1]
mov byte [rcx + r9 - 1], r11b
mov r9, rdx
dec r10
jne 0x14029aef0
jmp 0x14029af0c
mov rdx, r9
cmp r8, 3
jb 0x14029ad42
mov r8, rdx
nop dword [rax]
movzx r9d, byte [rax + rdx - 1]
mov byte [rcx + rdx - 1], r9b
movzx r9d, byte [rax + rdx - 2]
mov byte [rcx + rdx - 2], r9b
movzx r9d, byte [rax + rdx - 3]
mov byte [rcx + rdx - 3], r9b
movzx r9d, byte [rax + rdx - 4]
mov byte [rcx + rdx - 4], r9b
add r8, 0xfffffffffffffffc
mov rdx, r8
jne 0x14029af20
jmp 0x14029ad42
mov rax, rcx
mov rcx, r15
mov r14, rax
cmp rsi, r9
jb 0x14029af7e
jmp 0x14029af9d
movzx eax, byte [rcx + r11]
mov byte [r10 + r11], al
inc r11
mov rax, rdx
cmp r11, r9
jae 0x14029af9d
test r8b, 0x40
je 0x14029af6a
movzx eax, byte [rbx + rsi]
mov byte [rdi + rsi], al
inc rsi
mov r15, rcx
mov rcx, r14
test r8b, 0x20
jne 0x14029af5a
mov rax, r9
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret