user: Demonstrate the C code that generates the assembly output below:

```asm
<compress_row>:
  endbr64
  push   %r15
  lea    -0x4(%rsi),%rcx
  xor    %eax,%eax
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rsi,-0x20(%rsp)
  mov    %rdx,-0x10(%rsp)
  mov    %rcx,-0x18(%rsp)
  cmp    %rsi,%rdi
  jae    L15
  mov    %rdi,%rax
  lea    -0x3(%rsi),%r14
  nopl   0x0(%rax,%rax,1)
L62:
  cmp    %rax,-0x18(%rsp)
  jb     L294
  mov    %rax,%rcx
  jmp    L423
  nopl   0x0(%rax,%rax,1)
L395:
  add    $0x1,%rcx
  cmp    %r14,%rcx
  je     L294
L423:
  movzbl (%rcx),%r11d
  cmp    %r11b,0x1(%rcx)
  jne    L395
  cmp    %r11b,0x2(%rcx)
  jne    L395
  cmp    %r11b,0x3(%rcx)
  jne    L395
  cmp    %rcx,-0x18(%rsp)
  jb     L294
  mov    -0x20(%rsp),%rsi
  lea    0x4(%rcx),%r13
  cmp    %r13,-0x20(%rsp)
  ja     L358
  jmp    L306
L409:
  add    $0x1,%r13
  cmp    %r13,%rsi
  je     L306
L358:
  cmp    %r11b,0x0(%r13)
  je     L409
L306:
  cmp    %rcx,%rax
  jae    L211
  nopl   0x0(%rax,%rax,1)
L86:
  mov    %rcx,%r9
  mov    $0x7f,%esi
  lea    0x1(%rdx),%rbp
  sub    %rax,%r9
  cmp    %esi,%r9d
  cmovle %r9d,%esi
  lea    -0x1(%rsi),%edi
  mov    %dil,(%rdx)
  test   %r9d,%r9d
  jle    L135
  mov    %rdx,%rdi
  sub    %rax,%rdi
  cmp    $0xe,%rdi
  jbe    L54
  cmp    $0x7,%r9d
  jle    L54
  cmp    $0xf,%r9d
  jle    L174
  movdqu (%rax),%xmm0
  mov    %esi,%edi
  shr    $0x4,%edi
  movups %xmm0,0x1(%rdx)
  cmp    $0x1,%edi
  je     L51
  movdqu 0x10(%rax),%xmm1
  movups %xmm1,0x11(%rdx)
  cmp    $0x2,%edi
  je     L51
  movdqu 0x20(%rax),%xmm2
  movups %xmm2,0x21(%rdx)
  cmp    $0x3,%edi
  je     L51
  movdqu 0x30(%rax),%xmm3
  movups %xmm3,0x31(%rdx)
  cmp    $0x4,%edi
  je     L51
  movdqu 0x40(%rax),%xmm4
  movups %xmm4,0x41(%rdx)
  cmp    $0x5,%edi
  je     L51
  movdqu 0x50(%rax),%xmm5
  movups %xmm5,0x51(%rdx)
  cmp    $0x7,%edi
  jne    L51
  movdqu 0x60(%rax),%xmm6
  movups %xmm6,0x61(%rdx)
L51:
  mov    %esi,%edi
  mov    %esi,%ebx
  and    $0xfffffff0,%edi
  mov    %edi,%r8d
  sub    %edi,%ebx
  lea    0x0(%rbp,%r8,1),%r10
  add    %rax,%r8
  cmp    %esi,%edi
  je     L237
L242:
  mov    %esi,%r12d
  sub    %edi,%r12d
  lea    -0x1(%r12),%r15d
  cmp    $0x6,%r15d
  jbe    L284
  mov    (%rax,%rdi,1),%r15
  mov    %r15,0x1(%rdx,%rdi,1)
  mov    %r12d,%edx
  and    $0xfffffff8,%edx
  mov    %edx,%edi
  sub    %edx,%ebx
  add    %rdi,%r10
  add    %rdi,%r8
  cmp    %edx,%r12d
  je     L237
L284:
  movzbl (%r8),%edx
  mov    %dl,(%r10)
  cmp    $0x1,%ebx
  je     L237
  movzbl 0x1(%r8),%edx
  mov    %dl,0x1(%r10)
  cmp    $0x2,%ebx
  je     L237
  movzbl 0x2(%r8),%edx
  mov    %dl,0x2(%r10)
  cmp    $0x3,%ebx
  je     L237
  movzbl 0x3(%r8),%edx
  mov    %dl,0x3(%r10)
  cmp    $0x4,%ebx
  je     L237
  movzbl 0x4(%r8),%edx
  mov    %dl,0x4(%r10)
  cmp    $0x5,%ebx
  je     L237
  movzbl 0x5(%r8),%edx
  mov    %dl,0x5(%r10)
  cmp    $0x6,%ebx
  je     L237
  movzbl 0x6(%r8),%edx
  mov    %dl,0x6(%r10)
L237:
  sub    $0x1,%esi
  mov    $0x1,%ebx
  add    $0x1,%rsi
  test   %r9d,%r9d
  cmovle %rbx,%rsi
  add    %rsi,%rax
  lea    0x0(%rbp,%rsi,1),%rdx
  cmp    %rax,%rcx
  ja     L86
L211:
  mov    %rcx,%rax
L274:
  cmp    %r13,%rcx
  jae    L34
  nopl   0x0(%rax)
L247:
  mov    %r13,%rcx
  mov    $0x7f,%esi
  sub    %rax,%rcx
  cmp    %esi,%ecx
  cmovg  %esi,%ecx
  mov    $0x1,%esi
  add    $0x2,%rdx
  sub    %ecx,%esi
  movslq %ecx,%rcx
  mov    %sil,-0x2(%rdx)
  add    %rcx,%rax
  mov    %r11b,-0x1(%rdx)
  cmp    %r13,%rax
  jb     L247
L34:
  cmp    %rax,-0x20(%rsp)
  ja     L62
L5:
  mov    %edx,%eax
  sub    -0x10(%rsp),%eax
L15:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L54:
  xor    %edi,%edi
  nopw   0x0(%rax,%rax,1)
L173:
  movzbl (%rax,%rdi,1),%r8d
  mov    %r8b,0x1(%rdx,%rdi,1)
  add    $0x1,%rdi
  mov    %esi,%r8d
  sub    %edi,%r8d
  test   %r8d,%r8d
  jg     L173
  jmp    L237
  cs nopw 0x0(%rax,%rax,1)
L294:
  cmp    %rax,-0x20(%rsp)
  jbe    L5
  mov    -0x20(%rsp),%rcx
  mov    %rcx,%r13
  jmp    L86
  nopl   0x0(%rax)
L135:
  cmp    %rax,%rcx
  jbe    L188
  nopl   (%rax)
L367:
  add    $0x1,%rbp
  mov    %dil,-0x1(%rbp)
  jmp    L367
L174:
  mov    %esi,%ebx
  mov    %rax,%r8
  mov    %rbp,%r10
  xor    %edi,%edi
  jmp    L242
L188:
  mov    %rcx,%rax
  mov    %rbp,%rdx
  jmp    L274
```

assistant: ```c
int compress_row(char *row, char *end_row, char *compressed) {
  register char *i_exam = row;
  char *stop_exam = end_row - 4;
  register char *cptr = compressed;
  while (i_exam < end_row) {
    char *i_compr = i_exam;
    char *i_next;
    char byte_value;
    while (i_exam <= stop_exam && ((byte_value = *i_exam) != i_exam[1] || byte_value != i_exam[2] || byte_value != i_exam[3]))
      i_exam++;
    if (i_exam > stop_exam)
      i_next = i_exam = end_row;
    else {
      i_next = i_exam + 4;
      while (i_next < end_row && *i_next == byte_value)
        i_next++;
    }
    while (i_compr < i_exam) {
      int count = i_exam - i_compr;
      if (count > 127)
        count = 127;
      *cptr++ = count - 1;
      while (count > 0) {
        *cptr++ = *i_compr++;
        count--;
      }
    }
    while (i_exam < i_next) {
      int count = i_next - i_exam;
      if (count > 127)
        count = 127;
      *cptr++ = 1 - count;
      *cptr++ = byte_value;
      i_exam += count;
    }
  }
  return (cptr - compressed);
}
```