user: 下面的汇编指令对应的C源代码是什么：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x1b000(%rsp),%r11
L198:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L198
  sub    $0x7b0,%rsp
  mov    %edi,-0x1b7a4(%rbp)
  mov    %rsi,-0x1b7b0(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x1b780(%rbp),%rax
  mov    $0x1b76c,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  movl   $0xc,-0x1b7a0(%rbp)
  jmp    L62
L30:
  mov    -0x1b7a0(%rbp),%eax
  mov    %eax,%edi
  call   <sum_of_proper_divisors@plt>
  mov    %eax,-0x1b784(%rbp)
  mov    -0x1b7a0(%rbp),%eax
  cmp    -0x1b784(%rbp),%eax
  jge    L82
  cmpl   $0x6ddb,-0x1b784(%rbp)
  jg     L82
  mov    -0x1b7a0(%rbp),%eax
  cltq
  movl   $0x1,-0x1b780(%rbp,%rax,4)
L82:
  addl   $0x1,-0x1b7a0(%rbp)
L62:
  cmpl   $0x6ddb,-0x1b7a0(%rbp)
  jle    L30
  movl   $0x6ddb,-0x1b79c(%rbp)
  movl   $0x6dda,-0x1b798(%rbp)
  jmp    L202
L166:
  mov    -0x1b798(%rbp),%eax
  cltq
  mov    -0x1b780(%rbp,%rax,4),%eax
  cmp    $0x1,%eax
  jne    L37
  mov    -0x1b798(%rbp),%eax
  mov    %eax,-0x1b79c(%rbp)
  jmp    L70
L37:
  subl   $0x1,-0x1b798(%rbp)
L202:
  cmpl   $0x0,-0x1b798(%rbp)
  jns    L166
L70:
  movl   $0x0,-0x1b794(%rbp)
  movl   $0x1,-0x1b790(%rbp)
  jmp    L20
L6:
  movl   $0x0,-0x1b78c(%rbp)
  jmp    L54
L35:
  mov    -0x1b78c(%rbp),%eax
  cltq
  mov    -0x1b780(%rbp,%rax,4),%eax
  cmp    $0x1,%eax
  jne    L33
  mov    -0x1b790(%rbp),%eax
  sub    -0x1b78c(%rbp),%eax
  mov    %eax,-0x1b788(%rbp)
  cmpl   $0x0,-0x1b788(%rbp)
  je     L128
  cmpl   $0x0,-0x1b788(%rbp)
  js     L100
  mov    -0x1b788(%rbp),%eax
  cltq
  mov    -0x1b780(%rbp,%rax,4),%eax
  cmp    $0x1,%eax
  je     L147
  jmp    L33
L100:
  nop
L33:
  addl   $0x1,-0x1b78c(%rbp)
L54:
  mov    -0x1b78c(%rbp),%eax
  cmp    -0x1b79c(%rbp),%eax
  jl     L35
  jmp    L64
L128:
  nop
L64:
  mov    -0x1b790(%rbp),%eax
  add    %eax,-0x1b794(%rbp)
  jmp    L186
L147:
  nop
L186:
  addl   $0x1,-0x1b790(%rbp)
L20:
  cmpl   $0x6dda,-0x1b790(%rbp)
  jle    L6
  mov    -0x1b794(%rbp),%eax
  mov    %eax,%esi
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L109
  call   <__stack_chk_fail@plt>
L109:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D9
datatype: string

tool: D9: %i

assistant: ```c
int main(int argc, char *argv[]) {
  int abundants[28123];
  memset(abundants, 0, sizeof(int) * 28123);
  for (int i = 12; i <= 28123; i++) {
    int sum = sum_of_proper_divisors(i);
    if (i < sum && sum <= 28123) {
      abundants[i] = 1;
    }
  }
  int last_abundant = 28123;
  for (int i = 28123 - 1; i >= 0; i--) {
    if (abundants[i] == 1) {
      last_abundant = i;
      break;
    }
  }
  int sum = 0;
  for (int i = 1; i < 28123; i++) {
    for (int e = 0; e < last_abundant; e++) {
      if (abundants[e] == 1) {
        int compliment = i - e;
        if (compliment == 0)
          goto found;
        if (compliment < 0)
          continue;
        if (abundants[compliment] == 1) {
          goto not_found;
        }
      }
    }
  found:
    sum += i;
  not_found:;
  }
  printf("%i", sum);
}
```