user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x76c,%ecx
  mov    $0x1,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  jmp    L36
  xchg   %ax,%ax
L135:
  test   %r8b,%r8b
  je     L251
  add    $0x1,%esi
L268:
  test   %r10d,%r10d
  jne    L214
L257:
  imul   $0xc28f5c29,%ecx,%edx
  mov    %edx,%r10d
  ror    $0x2,%r10d
  cmp    $0x28f5c28,%r10d
  ja     L10
  ror    $0x4,%edx
  cmp    $0xa3d70a,%edx
  ja     L214
L10:
  lea    0x1d(%rax),%r9d
L214:
  mov    %r9d,%edx
  mov    %r9d,%eax
  imul   $0x24924925,%rdx,%rdx
  shr    $0x20,%rdx
  sub    %edx,%eax
  shr    %eax
  add    %edx,%eax
  shr    $0x2,%eax
  lea    0x0(,%rax,8),%edx
  sub    %eax,%edx
  mov    %r9d,%eax
  sub    %edx,%eax
  jne    L231
  test   %r8b,%r8b
  jne    L24
L231:
  lea    0x1f(%rax),%r9d
  mov    %r9,%rax
  imul   $0x24924925,%r9,%r9
  mov    %eax,%edx
  shr    $0x20,%r9
  sub    %r9d,%edx
  shr    %edx
  add    %r9d,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%r9d
  sub    %edx,%r9d
  sub    %r9d,%eax
  mov    %eax,%edx
  jne    L152
  test   %r8b,%r8b
  je     L152
  add    $0x1,%esi
  mov    $0x3,%edx
L44:
  add    $0x1,%esi
  lea    0x1f(%rdx),%r10d
L244:
  mov    %r10d,%eax
  mov    %r10d,%r9d
  imul   $0x24924925,%rax,%rax
  shr    $0x20,%rax
  sub    %eax,%r9d
  shr    %r9d
  add    %eax,%r9d
  shr    $0x2,%r9d
  lea    0x0(,%r9,8),%eax
  sub    %r9d,%eax
  sub    %eax,%r10d
  lea    0x1e(%r10),%edx
  mov    %r10d,%r9d
  mov    %rdx,%r10
  imul   $0x24924925,%rdx,%rdx
  mov    %r10d,%eax
  shr    $0x20,%rdx
  sub    %edx,%eax
  shr    %eax
  add    %edx,%eax
  shr    $0x2,%eax
  lea    0x0(,%rax,8),%edx
  sub    %eax,%edx
  mov    %r10d,%eax
  sub    %edx,%eax
  test   %r9d,%r9d
  jne    L242
  test   %r8b,%r8b
  je     L242
  add    $0x1,%esi
  lea    0x1f(%rax),%r10d
L208:
  mov    %r10d,%eax
  mov    %r10d,%edx
  imul   $0x24924925,%rax,%rax
  shr    $0x20,%rax
  sub    %eax,%edx
  shr    %edx
  add    %eax,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%eax
  sub    %edx,%eax
  mov    %r10d,%edx
  sub    %eax,%edx
  lea    0x1e(%rdx),%r10d
  mov    %r10,%r9
  imul   $0x24924925,%r10,%r10
  mov    %r9d,%eax
  shr    $0x20,%r10
  sub    %r10d,%eax
  shr    %eax
  add    %r10d,%eax
  shr    $0x2,%eax
  lea    0x0(,%rax,8),%r10d
  sub    %eax,%r10d
  mov    %r9d,%eax
  sub    %r10d,%eax
  test   %edx,%edx
  jne    L312
  test   %r8b,%r8b
  je     L312
  add    $0x1,%esi
L275:
  lea    0x1f(%rax),%r8d
  add    $0x1,%ecx
  mov    %r8,%rax
  imul   $0x24924925,%r8,%r8
  mov    %eax,%edx
  shr    $0x20,%r8
  sub    %r8d,%edx
  shr    %edx
  add    %r8d,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%r8d
  sub    %edx,%r8d
  sub    %r8d,%eax
  mov    %eax,%edx
  cmp    $0x7d1,%ecx
  je     L62
L36:
  lea    0x1f(%rdx),%r9d
  cmp    $0x76c,%ecx
  movslq %r9d,%rax
  setg   %r8b
  mov    %r9d,%r10d
  imul   $0xffffffff92492493,%rax,%rax
  sar    $0x1f,%r10d
  shr    $0x20,%rax
  add    %r9d,%eax
  sar    $0x2,%eax
  sub    %r10d,%eax
  lea    0x0(,%rax,8),%r10d
  sub    %eax,%r10d
  mov    %r9d,%eax
  sub    %r10d,%eax
  mov    %ecx,%r10d
  lea    0x1c(%rax),%r9d
  and    $0x3,%r10d
  test   %edx,%edx
  je     L135
L251:
  test   %eax,%eax
  jne    L268
  test   %r8b,%r8b
  je     L268
  add    $0x1,%esi
  test   %r10d,%r10d
  je     L257
L24:
  add    $0x1,%esi
  mov    $0x1f,%eax
L138:
  cltd
  idiv   %edi
  lea    0x1f(%rdx),%eax
  mov    %edx,%r9d
  cltd
  idiv   %edi
  test   %r9d,%r9d
  jne    L265
  test   %r8b,%r8b
  jne    L44
  nopl   0x0(%rax)
L265:
  lea    0x1f(%r9),%eax
  mov    %rax,%r9
  imul   $0x24924925,%rax,%rax
  mov    %r9d,%edx
  shr    $0x20,%rax
  sub    %eax,%edx
  shr    %edx
  add    %eax,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%eax
  sub    %edx,%eax
  mov    %r9d,%edx
  sub    %eax,%edx
  lea    0x1f(%rdx),%eax
  mov    %rax,%r10
  imul   $0x24924925,%rax,%rax
  mov    %r10d,%r9d
  shr    $0x20,%rax
  sub    %eax,%r9d
  shr    %r9d
  add    %eax,%r9d
  shr    $0x2,%r9d
  lea    0x0(,%r9,8),%eax
  sub    %r9d,%eax
  mov    %r10d,%r9d
  sub    %eax,%r9d
  test   %edx,%edx
  jne    L244
  test   %r8b,%r8b
  je     L244
  add    $0x1,%esi
  lea    0x1e(%r9),%r10d
L242:
  mov    %r10d,%edx
  mov    %r10d,%eax
  imul   $0x24924925,%rdx,%rdx
  shr    $0x20,%rdx
  sub    %edx,%eax
  shr    %eax
  add    %edx,%eax
  shr    $0x2,%eax
  lea    0x0(,%rax,8),%edx
  sub    %eax,%edx
  mov    %r10d,%eax
  sub    %edx,%eax
  lea    0x1f(%rax),%r9d
  mov    %r9,%r10
  imul   $0x24924925,%r9,%r9
  mov    %r10d,%edx
  shr    $0x20,%r9
  sub    %r9d,%edx
  shr    %edx
  add    %r9d,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%r9d
  sub    %edx,%r9d
  mov    %r10d,%edx
  sub    %r9d,%edx
  test   %eax,%eax
  jne    L208
  test   %r8b,%r8b
  je     L208
  add    $0x1,%esi
  lea    0x1e(%rdx),%r9d
L312:
  mov    %r9d,%edx
  mov    %r9d,%eax
  imul   $0x24924925,%rdx,%rdx
  shr    $0x20,%rdx
  sub    %edx,%eax
  shr    %eax
  add    %edx,%eax
  shr    $0x2,%eax
  lea    0x0(,%rax,8),%edx
  sub    %eax,%edx
  mov    %r9d,%eax
  sub    %edx,%eax
  jne    L275
  cmp    $0x1,%r8b
  sbb    $0xffffffff,%esi
  jmp    L275
L152:
  lea    0x1e(%rdx),%r9d
  mov    %r9,%rdx
  imul   $0x24924925,%r9,%r9
  mov    %edx,%eax
  shr    $0x20,%r9
  sub    %r9d,%eax
  shr    %eax
  add    %r9d,%eax
  shr    $0x2,%eax
  lea    0x0(,%rax,8),%r9d
  sub    %eax,%r9d
  mov    %edx,%eax
  sub    %r9d,%eax
  lea    0x1f(%rax),%r9d
  mov    %r9,%r10
  imul   $0x24924925,%r9,%r9
  mov    %r10d,%edx
  shr    $0x20,%r9
  sub    %r9d,%edx
  shr    %edx
  add    %r9d,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%r9d
  sub    %edx,%r9d
  mov    %r10d,%edx
  sub    %r9d,%edx
  test   %eax,%eax
  jne    L262
  test   %r8b,%r8b
  je     L262
  add    $0x1,%esi
  lea    0x1e(%rdx),%eax
  jmp    L138
L262:
  mov    %r10d,%eax
  mov    %r10d,%edx
  imul   $0x24924925,%rax,%rax
  shr    $0x20,%rax
  sub    %eax,%edx
  shr    %edx
  add    %eax,%edx
  shr    $0x2,%edx
  lea    0x0(,%rdx,8),%eax
  sub    %edx,%eax
  mov    %r10d,%edx
  sub    %eax,%edx
  lea    0x1e(%rdx),%r10d
  mov    %r10,%rax
  imul   $0x24924925,%r10,%r10
  mov    %eax,%r9d
  shr    $0x20,%r10
  sub    %r10d,%r9d
  shr    %r9d
  add    %r10d,%r9d
  shr    $0x2,%r9d
  lea    0x0(,%r9,8),%r10d
  sub    %r9d,%r10d
  mov    %eax,%r9d
  sub    %r10d,%r9d
  test   %edx,%edx
  jne    L138
  test   %r8b,%r8b
  je     L138
  add    $0x1,%esi
  jmp    L265
L62:
  lea    D1(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  add    $0x8,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D1
datatype: string

tool: D1: %d


assistant: ```c
int main(int argc, char **argv) {
  int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  int sundays = 0;
  int weekday = 1;
  int year, month;
  for (year = 1900; year < 2001; year++) {
    for (month = 0; month < 12; month++) {
      if (year >= 1901 && weekday == 0)
        sundays++;
      weekday += days[month];
      if (month == 1 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
        weekday++;
      weekday %= 7;
    }
  }
  printf("%d\n", sundays);
  return 0;
}
```