Function at 0x14012dde0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r14
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0x88
cmp dword [rcx], 0
mov r14, r9
mov eax, r8d
mov rsi, rdx
mov r15, rcx
je 0x14012de17
mov eax, 0xfffffffb
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret
mov r8d, dword [rcx + 4]
cmp r8d, 2
je 0x14012de3a
cmp dword [rcx + 8], 0
jne 0x14012de3a
mov eax, 0xfffffffa
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret
test rsi, rsi
je 0x14012e236
test eax, eax
jle 0x14012e236
mov qword [rsp + 0xb8], rbx
cdq
mov qword [rsp + 0xc0], rdi
and edx, 0x7f
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0x80], r13
lea edi, [rdx + rax]
sar edi, 7
mov dword [rbp + 0x1b], edi
test r8d, r8d
je 0x14012e208
sub r8d, 1
je 0x14012e14b
cmp r8d, 1
je 0x14012dec4
mov eax, 0xffffffff
mov r12, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb8]
mov r13, qword [rsp + 0x80]
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret
mov eax, dword [rcx + 0xc]
mov dword [rbp + 7], eax
mov eax, dword [rcx + 0x10]
mov dword [rbp + 0xb], eax
mov eax, dword [rcx + 0x14]
mov dword [rbp + 0xf], eax
mov eax, dword [rcx + 0x18]
mov dword [rbp + 0x13], eax
mov dword [rbp + 0x17], edi
test edi, edi
jle 0x14012e22c
movzx eax, byte [rbp + 0x14]
movzx ecx, byte [rbp + 0x13]
movzx ebx, byte [rbp + 0x16]
movzx r13d, byte [rbp + 0x15]
mov byte [rbp + 3], al
movzx eax, byte [rbp + 0x12]
mov byte [rbp - 5], al
movzx eax, byte [rbp + 0x10]
mov byte [rbp - 9], al
movzx eax, byte [rbp + 0xe]
mov byte [rbp - 1], cl
movzx ecx, byte [rbp + 0x11]
mov byte [rbp - 0x19], al
movzx eax, byte [rbp + 0xc]
mov byte [rbp - 7], cl
movzx ecx, byte [rbp + 0xf]
mov byte [rbp - 0x1d], al
movzx eax, byte [rbp + 0xa]
mov byte [rbp - 0x11], cl
movzx ecx, byte [rbp + 0xd]
mov byte [rbp - 0x25], al
movzx eax, byte [rbp + 8]
mov byte [rbp - 0x1b], cl
movzx ecx, byte [rbp + 0xb]
mov byte [rbp - 0x29], al
movzx eax, byte [rbp + 7]
mov byte [rbp - 0x21], cl
movzx ecx, byte [rbp + 9]
mov byte [rbp + 0x67], al
mov byte [rbp - 0x27], cl
nop dword [rax]
nop word [rax + rax]
movzx r12d, byte [rbp + 3]
xor edi, edi
nop word [rax + rax]
movaps xmm0, xmmword [rbp + 7]
lea r8, [rbp + 0x27]
lea rdx, [rbp + 0x27]
movdqa xmmword [rbp + 0x27], xmm0
mov rcx, r15
call fcn.14012e490
movzx ecx, byte [rbp - 0x29]
movzx eax, byte [rbp + 0x67]
shr cl, 7
add al, al
or cl, al
movzx eax, byte [rbp - 0x29]
mov byte [rbp + 0x67], cl
add al, al
mov byte [rbp + 7], cl
movzx ecx, byte [rbp - 0x27]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x27]
mov byte [rbp - 0x29], cl
add al, al
mov byte [rbp + 8], cl
movzx ecx, byte [rbp - 0x25]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x25]
mov byte [rbp - 0x27], cl
add al, al
mov byte [rbp + 9], cl
movzx ecx, byte [rbp - 0x21]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x21]
mov byte [rbp - 0x25], cl
add al, al
mov byte [rbp + 0xa], cl
movzx ecx, byte [rbp - 0x1d]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x1d]
mov byte [rbp - 0x21], cl
add al, al
mov byte [rbp + 0xb], cl
movzx ecx, byte [rbp - 0x1b]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x1b]
mov byte [rbp - 0x1d], cl
add al, al
mov byte [rbp + 0xc], cl
movzx ecx, byte [rbp - 0x19]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x19]
mov byte [rbp - 0x1b], cl
add al, al
mov byte [rbp + 0xd], cl
movzx ecx, byte [rbp - 0x11]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x11]
mov byte [rbp - 0x19], cl
add al, al
mov byte [rbp + 0xe], cl
movzx ecx, byte [rbp - 9]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 9]
mov byte [rbp - 0x11], cl
add al, al
mov byte [rbp + 0xf], cl
movzx ecx, byte [rbp - 7]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 7]
mov byte [rbp - 9], cl
add al, al
mov byte [rbp + 0x10], cl
movzx ecx, byte [rbp - 5]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 5]
movzx r10d, r12b
movzx r11d, byte [rbp - 1]
add al, al
mov byte [rbp - 7], cl
movzx r9d, dil
mov byte [rbp + 0x11], cl
and r9b, 7
movzx ecx, r13b
shr r11b, 7
or r11b, al
shr cl, 7
movzx eax, byte [rbp - 1]
add al, al
shr r10b, 7
or r10b, al
mov byte [rbp - 5], r11b
movzx eax, r12b
mov byte [rbp + 0x12], r11b
add al, al
mov byte [rbp - 1], r10b
movzx r12d, cl
mov byte [rbp + 0x13], r10b
or r12b, al
movzx ecx, bl
movzx eax, r13b
shr cl, 7
add al, al
mov byte [rbp + 0x14], r12b
movzx r13d, cl
or r13b, al
mov eax, edi
mov byte [rbp + 0x15], r13b
test edi, edi
jns 0x14012e0e3
lea eax, [rdi + 7]
sar eax, 3
mov ecx, 7
movsxd r8, eax
sub cl, r9b
movzx eax, bl
inc edi
add al, al
movzx edx, byte [r8 + rsi]
shr dl, cl
movzx ecx, r9b
and dl, 1
movzx ebx, dl
or bl, al
movzx eax, byte [rbp + 0x27]
and al, 0x80
mov byte [rbp + 0x16], bl
shr al, cl
xor byte [r8 + r14], al
cmp edi, 0x80
jl 0x14012df70
mov byte [rbp + 3], r12b
mov r12d, dword [rbp + 0x17]
dec r12d
mov dword [rbp + 0x17], r12d
test r12d, r12d
jg 0x14012df60
mov edi, dword [rbp + 0x1b]
shl edi, 7
mov eax, edi
jmp 0x14012de96
mov eax, dword [rcx + 0xc]
mov r13d, edi
mov dword [rbp + 7], eax
mov eax, dword [rcx + 0x10]
mov dword [rbp + 0xb], eax
mov eax, dword [rcx + 0x14]
mov dword [rbp + 0xf], eax
mov eax, dword [rcx + 0x18]
mov dword [rbp + 0x13], eax
test edi, edi
jle 0x14012e22c
lea r12, [rsi + 8]
sub rsi, r14
add rsi, 0xfffffffffffffff8
lea rdi, [r9 + 8]
nop dword [rax]
lea rbx, [rsi + rdi]
mov rcx, r15
mov rdx, rbx
lea r8, [rbp + 0x27]
call fcn.14012e8f0
mov eax, dword [rbx]
lea rdi, [rdi + 0x10]
movdqa xmm1, xmmword [rbp + 7]
lea r12, [r12 + 0x10]
pxor xmm1, xmmword [rbp + 0x27]
dec r13d
movd dword [rdi - 0x18], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 4
mov dword [rbp + 7], eax
mov eax, dword [r12 - 0x14]
movd dword [rdi - 0x14], xmm0
movdqa xmm0, xmm1
mov dword [rbp + 0xb], eax
mov eax, dword [r12 - 0x10]
psrldq xmm0, 8
movd dword [rdi - 0x10], xmm0
movdqa xmmword [rbp + 0x27], xmm1
mov dword [rbp + 0xf], eax
mov eax, dword [r12 - 0xc]
psrldq xmm1, 0xc
movd dword [rdi - 0xc], xmm1
mov dword [rbp + 0x13], eax
test r13d, r13d
jg 0x14012e180
mov edi, dword [rbp + 0x1b]
shl edi, 7
mov eax, edi
jmp 0x14012de96
mov ebx, edi
test edi, edi
jle 0x14012e22c
nop
mov r8, r14
mov rdx, rsi
mov rcx, r15
call fcn.14012e8f0
add rsi, 0x10
add r14, 0x10
dec ebx
test ebx, ebx
jg 0x14012e210
shl edi, 7
mov eax, edi
jmp 0x14012de96
xor eax, eax
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret