Function at 0x14012bc30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov ebp, ecx
mov rbx, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xd0]
movzx r10d, r8b
test dl, dl
jne 0x14012c6db
mov r15d, ebx
and r15d, 0x1f
mov rbp, rbx
and rbp, 0xffffffffffffffe0
mov r12, r13
add r12, rbp
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov cl, 1
mov qword [rsp + 0x58], r10
mov rdx, r10
mov r8, rsi
mov qword [rsp + 0x50], r9
call fcn.14012ad70
test rbp, rbp
je 0x14012bd53
xor eax, eax
pxor xmm0, xmm0
xor edi, edi
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x14012bce9
add rax, 0x20
cmp rbp, rax
je 0x14012bd3a
movdqu xmm1, xmmword [r13 + rax]
movdqu xmm2, xmmword [r13 + rax + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rcx, xmm1
add rcx, rdi
mov rdi, 0xffffffffffffffff
jb 0x14012bce0
mov rdi, rcx
jmp 0x14012bce0
lea r14, [r12 + r15]
test r15, r15
je 0x14012bd83
cmp r15d, 1
jne 0x14012bd8a
xor esi, esi
mov rax, r12
jmp 0x14012be00
lea rdi, [r12 + r15]
test r15, r15
mov qword [rsp + 0x60], r15
je 0x14012c2df
cmp r15d, 1
jne 0x14012c336
xor esi, esi
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x14012c3a0
xor esi, esi
jmp 0x14012be1e
mov ecx, ebx
and ecx, 1
mov r10, r15
sub r10, rcx
lea rax, [r12 + r10]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movzx r11d, word [r12 + r8]
movd xmm2, r11d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp r10, r8
jne 0x14012bdb0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
test rcx, rcx
je 0x14012be1e
nop word cs:[rax + rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rsi, rcx
cmp rax, r14
jne 0x14012be00
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 2
call fcn.14012ad70
xor eax, eax
pxor xmm0, xmm0
xor ebx, ebx
jmp 0x14012be69
add rax, 0x20
cmp rbp, rax
je 0x14012beba
movdqu xmm1, xmmword [r13 + rax]
movdqu xmm2, xmmword [r13 + rax + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rcx, xmm1
add rcx, rbx
mov rbx, 0xffffffffffffffff
jb 0x14012be60
mov rbx, rcx
jmp 0x14012be60
add rdi, rsi
mov rax, 0xffffffffffffffff
cmovb rdi, rax
test r15, r15
mov rdx, qword [rsp + 0x58]
je 0x14012beeb
cmp r15d, 1
jne 0x14012befb
xor r11d, r11d
mov rcx, r12
mov r8, qword [rsp + 0xe0]
jmp 0x14012bf70
xor r11d, r11d
mov r8, qword [rsp + 0xe0]
jmp 0x14012bf90
mov r8, qword [rsp + 0xf0]
and r8d, 1
mov r11, r15
sub r11, r8
lea rcx, [r12 + r11]
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
nop dword [rax]
movzx r10d, word [r12 + r9]
movd xmm2, r10d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r9, 2
cmp r11, r9
jne 0x14012bf20
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r11, xmm0
test r8, r8
mov r8, qword [rsp + 0xe0]
je 0x14012bf90
nop word [rax + rax]
movzx r10d, byte [rcx]
inc rcx
mov r9d, r10d
sar r9b, 7
xor r10b, r9b
sub r10b, r9b
movzx r9d, r10b
add r11, r9
cmp rcx, r14
jne 0x14012bf70
add rbx, r11
cmovb rbx, rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 3
mov r9, qword [rsp + 0x50]
call fcn.14012ad70
xor eax, eax
pxor xmm0, xmm0
xor esi, esi
jmp 0x14012bfe9
add rax, 0x20
cmp rbp, rax
je 0x14012c03a
movdqu xmm1, xmmword [r13 + rax]
movdqu xmm2, xmmword [r13 + rax + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rcx, xmm1
add rcx, rsi
mov rsi, 0xffffffffffffffff
jb 0x14012bfe0
mov rsi, rcx
jmp 0x14012bfe0
cmp rbx, rdi
cmovb rdi, rbx
seta al
mov bl, 2
test r15, r15
mov rdx, qword [rsp + 0x58]
je 0x14012c061
cmp r15d, 1
jne 0x14012c069
xor r10d, r10d
mov rcx, r12
jmp 0x14012c0e0
xor r10d, r10d
jmp 0x14012c100
mov r8, qword [rsp + 0xf0]
and r8d, 1
mov r11, r15
sub r11, r8
lea rcx, [r12 + r11]
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
nop word [rax + rax]
movzx r10d, word [r12 + r9]
movd xmm2, r10d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r9, 2
cmp r11, r9
jne 0x14012c090
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r10, xmm0
test r8, r8
je 0x14012c100
nop word cs:[rax + rax]
movzx r8d, byte [rcx]
inc rcx
mov r9d, r8d
sar r9b, 7
xor r8b, r9b
sub r8b, r9b
movzx r8d, r8b
add r10, r8
cmp rcx, r14
jne 0x14012c0e0
sub bl, al
add rsi, r10
mov rax, 0xffffffffffffffff
cmovb rsi, rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 4
mov r9, qword [rsp + 0x50]
call fcn.14012ad70
xor ecx, ecx
pxor xmm0, xmm0
xor eax, eax
jmp 0x14012c169
add rcx, 0x20
cmp rbp, rcx
je 0x14012c1ba
movdqu xmm1, xmmword [r13 + rcx]
movdqu xmm2, xmmword [r13 + rcx + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rdx, xmm1
add rdx, rax
mov rax, 0xffffffffffffffff
jb 0x14012c160
mov rax, rdx
jmp 0x14012c160
cmp rsi, rdi
cmovb rdi, rsi
movzx ecx, bl
mov ebp, 3
cmova ebp, ecx
test r15, r15
mov r10, qword [rsp + 0x58]
je 0x14012c1fb
cmp r15d, 1
jne 0x14012c217
xor edx, edx
mov rcx, r12
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xf0]
jmp 0x14012c290
xor edx, edx
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xf0]
jmp 0x14012c2b0
mov rbx, qword [rsp + 0xf0]
mov r8d, ebx
and r8d, 1
sub r15, r8
lea rcx, [r12 + r15]
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
nop word [rax + rax]
movzx r9d, word [r12 + rdx]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add rdx, 2
cmp r15, rdx
jne 0x14012c240
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rdx, xmm0
test r8, r8
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe0]
je 0x14012c2b0
nop
movzx r8d, byte [rcx]
inc rcx
mov r11d, r8d
sar r11b, 7
xor r8b, r11b
sub r8b, r11b
movzx r8d, r8b
add rdx, r8
cmp rcx, r14
jne 0x14012c290
add rax, rdx
mov rcx, 0xffffffffffffffff
cmovae rcx, rax
mov r14b, 4
cmp rcx, rdi
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
ja 0x14012c6db
jmp 0x14012c704
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rsi
mov r15, rbx
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rbx
mov rbp, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rbp
mov cl, 2
mov r14, qword [rsp + 0x58]
mov rdx, r14
mov r8, rsi
mov r9, qword [rsp + 0x50]
call fcn.14012ad70
mov rdx, r14
mov r8, rsi
xor esi, esi
xor ecx, ecx
mov r9, qword [rsp + 0x50]
jmp 0x14012c4be
mov ecx, ebx
and ecx, 1
mov rdx, r15
sub rdx, rcx
lea rax, [r12 + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
movzx r9d, word [r12 + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rdx, r8
jne 0x14012c350
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
je 0x14012c3be
nop dword [rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rsi, rcx
cmp rax, rdi
jne 0x14012c3a0
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 2
call fcn.14012ad70
cmp r15d, 2
jae 0x14012c410
mov r10, rbx
xor ecx, ecx
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
jmp 0x14012c480
mov edx, ebx
and edx, 1
mov rcx, r15
sub rcx, rdx
lea rax, [r12 + rcx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word [rax + rax]
movzx r9d, word [r12 + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rcx, r8
jne 0x14012c430
mov r10, rbx
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
je 0x14012c4a0
nop
movzx r9d, byte [rax]
inc rax
mov r8d, r9d
sar r8b, 7
xor r9b, r8b
sub r9b, r8b
movzx r8d, r9b
add rcx, r8
cmp rax, rdi
jne 0x14012c480
mov r9, rbx
mov r8, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov r15, r10
cmp rcx, rsi
seta al
cmovb rsi, rcx
mov r14b, 2
sub r14b, al
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbp
mov cl, 3
call fcn.14012ad70
mov r15, qword [rsp + 0x60]
test r15, r15
je 0x14012c515
cmp r15d, 1
jne 0x14012c529
xor ecx, ecx
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xf0]
jmp 0x14012c5a0
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xf0]
jmp 0x14012c5c0
mov rbx, qword [rsp + 0xf0]
mov edx, ebx
and edx, 1
mov rcx, r15
sub rcx, rdx
lea rax, [r12 + rcx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax + rax]
movzx r9d, word [r12 + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rcx, r8
jne 0x14012c550
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov rdx, qword [rsp + 0x58]
je 0x14012c5c0
nop word [rax + rax]
movzx r9d, byte [rax]
inc rax
mov r8d, r9d
sar r8b, 7
xor r9b, r8b
sub r9b, r8b
movzx r8d, r9b
add rcx, r8
cmp rax, rdi
jne 0x14012c5a0
cmp rcx, rsi
cmovb rsi, rcx
movzx eax, r14b
mov ebp, 3
cmova ebp, eax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov r14b, 4
mov cl, 4
mov r9, qword [rsp + 0x50]
call fcn.14012ad70
test r15, r15
je 0x14012c704
cmp r15d, 1
jne 0x14012c633
xor ecx, ecx
mov rax, r12
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x14012c6a0
mov edx, ebx
and edx, 1
sub r15, rdx
lea rax, [r12 + r15]
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop dword [rax]
movzx r8d, word [r12 + rcx]
movd xmm2, r8d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add rcx, 2
cmp r15, rcx
jne 0x14012c650
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
je 0x14012c6be
nop dword [rax]
movzx edx, byte [rax]
inc rax
mov r8d, edx
sar r8b, 7
xor dl, r8b
sub dl, r8b
movzx edx, dl
add rcx, rdx
cmp rax, rdi
jne 0x14012c6a0
cmp rcx, rsi
mov rsi, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
jbe 0x14012c704
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov ecx, ebp
mov rdx, r10
mov r8, rsi
call fcn.14012ad70
mov r14d, ebp
mov eax, r14d
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret