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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x140,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x2,-0x80(%rbp)
  movl   $0x6,-0x7c(%rbp)
  movl   $0x8,-0x78(%rbp)
  movl   $0xa,-0x74(%rbp)
  movl   $0x3,-0x70(%rbp)
  movq   $0x5,-0xe0(%rbp)
  movl   $0x3,-0x140(%rbp)
  mov    -0xe0(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x13c(%rbp)
  mov    -0x140(%rbp),%eax
  cmp    -0x13c(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x2,-0x80(%rbp)
  movl   $0x6,-0x7c(%rbp)
  movl   $0x8,-0x78(%rbp)
  movl   $0xc8,-0x74(%rbp)
  movl   $0x2bc,-0x70(%rbp)
  movl   $0x1,-0x6c(%rbp)
  movl   $0x54,-0x68(%rbp)
  movl   $0xa,-0x64(%rbp)
  movl   $0x4,-0x60(%rbp)
  movq   $0x9,-0xd8(%rbp)
  movl   $0x1,-0x138(%rbp)
  mov    -0xd8(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x134(%rbp)
  mov    -0x138(%rbp),%eax
  cmp    -0x134(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x11,-0x80(%rbp)
  movl   $0x6,-0x7c(%rbp)
  movl   $0x8,-0x78(%rbp)
  movl   $0xa,-0x74(%rbp)
  movl   $0x6,-0x70(%rbp)
  movl   $0xc,-0x6c(%rbp)
  movl   $0x18,-0x68(%rbp)
  movl   $0x24,-0x64(%rbp)
  movq   $0x8,-0xd0(%rbp)
  movl   $0x11,-0x130(%rbp)
  mov    -0xd0(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x12c(%rbp)
  mov    -0x130(%rbp),%eax
  cmp    -0x12c(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x2,-0x80(%rbp)
  movl   $0x1,-0x7c(%rbp)
  movl   $0x7,-0x78(%rbp)
  movl   $0x11,-0x74(%rbp)
  movl   $0x13,-0x70(%rbp)
  movl   $0xd3,-0x6c(%rbp)
  movl   $0x7,-0x68(%rbp)
  movq   $0x7,-0xc8(%rbp)
  movl   $0x2,-0x128(%rbp)
  mov    -0xc8(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x124(%rbp)
  mov    -0x128(%rbp),%eax
  cmp    -0x124(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x1,-0x80(%rbp)
  movl   $0x1,-0x7c(%rbp)
  movl   $0x1,-0x78(%rbp)
  movl   $0x1,-0x74(%rbp)
  movl   $0x1,-0x70(%rbp)
  movl   $0x2c,-0x6c(%rbp)
  movl   $0x7,-0x68(%rbp)
  movl   $0x7,-0x64(%rbp)
  movl   $0x7,-0x60(%rbp)
  movl   $0x7,-0x5c(%rbp)
  movl   $0x7,-0x58(%rbp)
  movl   $0x7,-0x54(%rbp)
  movl   $0x7,-0x50(%rbp)
  movl   $0x7,-0x4c(%rbp)
  movq   $0xe,-0xc0(%rbp)
  movl   $0x2c,-0x120(%rbp)
  mov    -0xc0(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x11c(%rbp)
  mov    -0x120(%rbp),%eax
  cmp    -0x11c(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x3,-0x80(%rbp)
  movl   $0x3,-0x7c(%rbp)
  movl   $0x3,-0x78(%rbp)
  movl   $0x3,-0x74(%rbp)
  movl   $0x3,-0x70(%rbp)
  movl   $0x3,-0x6c(%rbp)
  movl   $0x3,-0x68(%rbp)
  movl   $0x3,-0x64(%rbp)
  movl   $0x3,-0x60(%rbp)
  movl   $0x3,-0x5c(%rbp)
  movl   $0x3,-0x58(%rbp)
  movl   $0x3,-0x54(%rbp)
  movl   $0x3,-0x50(%rbp)
  movl   $0x3,-0x4c(%rbp)
  movl   $0x23,-0x48(%rbp)
  movl   $0x5,-0x44(%rbp)
  movl   $0x5,-0x40(%rbp)
  movl   $0x5,-0x3c(%rbp)
  movl   $0x5,-0x38(%rbp)
  movl   $0x5,-0x34(%rbp)
  movl   $0x5,-0x30(%rbp)
  movl   $0x5,-0x2c(%rbp)
  movl   $0x5,-0x28(%rbp)
  movl   $0x5,-0x24(%rbp)
  movl   $0x5,-0x20(%rbp)
  movl   $0x7,-0x1c(%rbp)
  movl   $0x7,-0x18(%rbp)
  movl   $0x7,-0x14(%rbp)
  movl   $0x7,-0x10(%rbp)
  movl   $0x3e8,-0xc(%rbp)
  movq   $0x1e,-0xb8(%rbp)
  movl   $0x3e8,-0x118(%rbp)
  mov    -0xb8(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x114(%rbp)
  mov    -0x118(%rbp),%eax
  cmp    -0x114(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x2,-0x80(%rbp)
  movl   $0xfffffffa,-0x7c(%rbp)
  movl   $0x8,-0x78(%rbp)
  movl   $0xfffffff6,-0x74(%rbp)
  movl   $0xfffffffd,-0x70(%rbp)
  movq   $0x5,-0xb0(%rbp)
  movl   $0xfffffffd,-0x110(%rbp)
  mov    -0xb0(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x10c(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x2,-0x80(%rbp)
  movl   $0x6,-0x7c(%rbp)
  movl   $0x8,-0x78(%rbp)
  movl   $0x2,-0x74(%rbp)
  movl   $0xffffffbe,-0x70(%rbp)
  movl   $0x22,-0x6c(%rbp)
  movl   $0xffffffdd,-0x68(%rbp)
  movl   $0x42,-0x64(%rbp)
  movl   $0x2bc,-0x60(%rbp)
  movl   $0x3ea,-0x5c(%rbp)
  movl   $0xffffffac,-0x58(%rbp)
  movl   $0xa,-0x54(%rbp)
  movl   $0x4,-0x50(%rbp)
  movq   $0xd,-0xa8(%rbp)
  movl   $0xffffffdd,-0x108(%rbp)
  mov    -0xa8(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0x104(%rbp)
  mov    -0x108(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0xffffffec,-0x80(%rbp)
  movl   $0x1,-0x7c(%rbp)
  movl   $0x7,-0x78(%rbp)
  movl   $0x11,-0x74(%rbp)
  movl   $0x13,-0x70(%rbp)
  movl   $0xd3,-0x6c(%rbp)
  movl   $0x7,-0x68(%rbp)
  movq   $0x7,-0xa0(%rbp)
  movl   $0xffffffec,-0x100(%rbp)
  mov    -0xa0(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0xfc(%rbp)
  mov    -0x100(%rbp),%eax
  cmp    -0xfc(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x1,-0x80(%rbp)
  movl   $0x1,-0x7c(%rbp)
  movl   $0xffffffff,-0x78(%rbp)
  movl   $0x1,-0x74(%rbp)
  movl   $0x1,-0x70(%rbp)
  movl   $0xffffffd4,-0x6c(%rbp)
  movl   $0x7,-0x68(%rbp)
  movl   $0x7,-0x64(%rbp)
  movl   $0x7,-0x60(%rbp)
  movl   $0x7,-0x5c(%rbp)
  movl   $0x7,-0x58(%rbp)
  movl   $0x7,-0x54(%rbp)
  movl   $0x7,-0x50(%rbp)
  movl   $0x7,-0x4c(%rbp)
  movq   $0xe,-0x98(%rbp)
  movl   $0xffffffd4,-0xf8(%rbp)
  mov    -0x98(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0xf4(%rbp)
  mov    -0xf8(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x1,-0x80(%rbp)
  movl   $0x0,-0x7c(%rbp)
  movl   $0x0,-0x78(%rbp)
  movq   $0x3,-0x90(%rbp)
  movl   $0x1,-0xf0(%rbp)
  mov    -0x90(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0xec(%rbp)
  mov    -0xf0(%rbp),%eax
  cmp    -0xec(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  movl   $0x3,-0x80(%rbp)
  movl   $0x7,-0x7c(%rbp)
  movl   $0xffffff9d,-0x78(%rbp)
  movl   $0x51,-0x74(%rbp)
  movl   $0x16063,-0x70(%rbp)
  movl   $0x0,-0x6c(%rbp)
  movl   $0x7,-0x68(%rbp)
  movq   $0x7,-0x88(%rbp)
  movl   $0x0,-0xe8(%rbp)
  mov    -0x88(%rbp),%rdx
  lea    -0x80(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <find_outlier@plt>
  mov    %eax,-0xe4(%rbp)
  mov    -0xe8(%rbp),%eax
  cmp    -0xe4(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,%edi
  call   <assert@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L8
  call   <__stack_chk_fail@plt>
L8:
  leave
  ret
```

assistant: ```c
int main() {
  {
    int values[] = {2, 6, 8, 10, 3};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 3;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {2, 6, 8, 200, 700, 1, 84, 10, 4};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 1;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {17, 6, 8, 10, 6, 12, 24, 36};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 17;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {2, 1, 7, 17, 19, 211, 7};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 2;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {1, 1, 1, 1, 1, 44, 7, 7, 7, 7, 7, 7, 7, 7};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 44;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 1000};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 1000;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {2, -6, 8, -10, -3};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = -3;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {2, 6, 8, 2, -66, 34, -35, 66, 700, 1002, -84, 10, 4};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = -35;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {-20, 1, 7, 17, 19, 211, 7};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = -20;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {1, 1, -1, 1, 1, -44, 7, 7, 7, 7, 7, 7, 7, 7};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = -44;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {1, 0, 0};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 1;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
  {
    int values[] = {3, 7, -99, 81, 90211, 0, 7};
    size_t count = sizeof(values) / sizeof(values[0]);
    int expected = 0;
    int received = find_outlier(values, count);
    assert(expected == received);
  }
}
```