Function at 0x14035c8c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm6
mov r15, r9
mov r14d, ecx
mov r10, qword [rsp + 0x120]
mov r13, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x110]
mov r11, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
movzx r9d, r8b
test dl, dl
jne 0x14035cfd4
mov r14d, r10d
and r14d, 0x1f
mov rsi, r10
and rsi, 0xffffffffffffffe0
lea rdi, [rsi + r13]
lea r12, [rdi + r14]
test rsi, rsi
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x60], r14
je 0x14035cb3b
mov qword [rsp + 0x68], r15
mov eax, r10d
and eax, 1
mov r15, r14
mov qword [rsp + 0x78], rax
sub r15, rax
lea rax, [rdi + r15]
mov qword [rsp + 0x70], rax
lea rbx, [0x1404edb08]
xor r14d, r14d
pxor xmm6, xmm6
mov rbp, 0xffffffffffffffff
jmp 0x14035c9c5
xor ecx, ecx
inc rbx
add rax, rcx
mov rcx, 0xffffffffffffffff
cmovb rax, rcx
cmp rax, rbp
cmovb rbp, rax
movzx eax, r14b
movzx r14d, byte [rsp + 0x57]
cmova r14d, eax
lea rax, [0x1404edb0c]
cmp rbx, rax
mov r9, qword [rsp + 0x58]
mov r10, qword [rsp + 0x120]
je 0x14035cb15
movzx ecx, byte [rbx]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r11
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x57], cl
mov rdx, r9
mov r9, qword [rsp + 0x68]
call fcn.14035b8e0
xor ecx, ecx
xor eax, eax
mov r8, qword [rsp + 0x60]
jmp 0x14035ca19
add rcx, 0x20
cmp rsi, rcx
je 0x14035ca70
movdqu xmm0, xmmword [r13 + rcx]
movdqu xmm1, xmmword [r13 + rcx + 0x10]
pxor xmm2, xmm2
psubb xmm2, xmm0
pminub xmm2, xmm0
pxor xmm0, xmm0
psubb xmm0, xmm1
pminub xmm0, xmm1
psadbw xmm0, xmm6
psadbw xmm2, xmm6
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
paddq xmm0, xmm2
movq rdx, xmm0
add rdx, rax
mov rax, 0xffffffffffffffff
jb 0x14035ca10
mov rax, rdx
jmp 0x14035ca10
test r8, r8
mov r11, qword [rsp + 0x108]
je 0x14035c980
cmp r8d, 1
jne 0x14035ca90
xor ecx, ecx
mov rdx, rdi
jmp 0x14035caf0
pxor xmm0, xmm0
xor ecx, ecx
nop word cs:[rax + rax]
movzx edx, word [rdi + rcx]
movd xmm1, edx
pxor xmm2, xmm2
psubb xmm2, xmm1
pminub xmm2, xmm1
punpcklbw xmm2, xmm6
punpcklwd xmm2, xmm6
punpckldq xmm2, xmm6
paddq xmm0, xmm2
add rcx, 2
cmp r15, rcx
jne 0x14035caa0
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
movq rcx, xmm1
mov rdx, qword [rsp + 0x70]
cmp qword [rsp + 0x78], 0
je 0x14035c982
nop dword [rax]
movzx r8d, byte [rdx]
inc rdx
mov r9d, r8d
sar r9b, 7
xor r8b, r9b
sub r8b, r9b
movzx r8d, r8b
add rcx, r8
cmp rdx, r12
jne 0x14035caf0
jmp 0x14035c982
mov al, 4
cmp r14b, 4
mov r15, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x100]
jne 0x14035cfd4
jmp 0x14035d001
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], rcx
mov cl, 1
mov rdx, r9
mov r8, rbx
mov rsi, r9
mov r9, r15
mov rbp, r11
call fcn.14035b8e0
test r14, r14
je 0x14035cb98
cmp r14d, 1
jne 0x14035cc11
xor ebp, ebp
mov rax, rdi
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x108]
jmp 0x14035cca0
mov rdi, qword [rsp + 0x120]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov r12, rbp
mov qword [rsp + 0x28], rbp
mov rbp, qword [rsp + 0x100]
mov qword [rsp + 0x20], rbp
mov cl, 2
mov rdx, rsi
mov r8, rbx
mov r9, r15
call fcn.14035b8e0
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rbp
mov cl, 3
mov rdx, rsi
mov r8, rbx
mov r9, r15
call fcn.14035b8e0
mov r14b, 4
mov r9, rsi
mov rcx, rbp
mov r11, r12
mov r10, rdi
jmp 0x14035cfd4
mov rcx, qword [rsp + 0x120]
and ecx, 1
mov rdx, r14
sub rdx, rcx
lea rax, [rdi + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movzx r9d, word [rdi + 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 0x14035cc40
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rbp, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x108]
je 0x14035ccbe
nop word [rax + rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rbp, rcx
cmp rax, r12
jne 0x14035cca0
mov rsi, qword [rsp + 0x120]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r9
mov cl, 2
mov r8, rbx
mov r9, r15
call fcn.14035b8e0
mov rdx, qword [rsp + 0x60]
cmp edx, 2
jae 0x14035cd13
xor r14d, r14d
mov rax, rdi
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x108]
jmp 0x14035cd90
mov ecx, esi
and ecx, 1
sub rdx, rcx
lea rax, [rdi + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word [rax + rax]
movzx r9d, word [rdi + 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 0x14035cd30
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r14, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x108]
je 0x14035cdae
nop word [rax + rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add r14, rcx
cmp rax, r12
jne 0x14035cd90
mov rsi, qword [rsp + 0x120]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r9
mov cl, 3
mov r8, rbx
mov r9, r15
call fcn.14035b8e0
mov rdx, qword [rsp + 0x60]
cmp edx, 2
jae 0x14035ce02
xor esi, esi
mov rax, rdi
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x108]
jmp 0x14035ce80
mov ecx, esi
and ecx, 1
sub rdx, rcx
lea rax, [rdi + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax]
movzx r9d, word [rdi + 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 0x14035ce20
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x108]
je 0x14035ce9e
nop word [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, r12
jne 0x14035ce80
cmp rbp, r14
mov al, 2
sbb al, 0
mov byte [rsp + 0x57], al
mov rbx, qword [rsp + 0x120]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r9
mov cl, 4
mov r9, r15
call fcn.14035b8e0
mov r9, qword [rsp + 0x60]
cmp r9d, 2
jae 0x14035cf09
xor ecx, ecx
mov rax, rdi
mov r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x100]
mov r11, qword [rsp + 0x108]
movzx r10d, byte [rsp + 0x57]
jmp 0x14035cf80
mov edx, ebx
and edx, 1
sub r9, rdx
lea rax, [rdi + r9]
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop
movzx r8d, word [rdi + 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 r9, rcx
jne 0x14035cf20
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x100]
mov r11, qword [rsp + 0x108]
movzx r10d, byte [rsp + 0x57]
je 0x14035cf9e
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, r12
jne 0x14035cf80
cmp r14, rbp
cmovb rbp, r14
cmp rsi, rbp
movzx eax, r10b
mov r14d, 3
cmova r14d, eax
cmovb rbp, rsi
mov al, 4
cmp rcx, rbp
mov rbx, qword [rsp + 0x110]
mov r10, qword [rsp + 0x120]
jbe 0x14035d001
mov rcx, rdi
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], rcx
mov ecx, r14d
mov rdx, r9
mov r8, rbx
mov r9, r15
call fcn.14035b8e0
mov eax, r14d
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret