user: 这段汇编代码用C语言表示是什么样的？

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x380,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x374(%rbp)
  movl   $0x1f,-0x360(%rbp)
  movl   $0x1d,-0x35c(%rbp)
  movl   $0x1f,-0x358(%rbp)
  movl   $0x1e,-0x354(%rbp)
  movl   $0x1f,-0x350(%rbp)
  movl   $0x1e,-0x34c(%rbp)
  movl   $0x1f,-0x348(%rbp)
  movl   $0x1f,-0x344(%rbp)
  movl   $0x1e,-0x340(%rbp)
  movl   $0x1f,-0x33c(%rbp)
  movl   $0x1e,-0x338(%rbp)
  movl   $0x1f,-0x334(%rbp)
L49:
  lea    -0x1a0(%rbp),%rdx
  mov    -0x374(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rax,%rdx
  lea    -0x330(%rbp),%rcx
  mov    -0x374(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    %rax,%rsi
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x374(%rbp),%eax
  cltq
  mov    -0x330(%rbp,%rax,4),%eax
  test   %eax,%eax
  je     L58
  addl   $0x1,-0x374(%rbp)
  jmp    L49
L58:
  nop
  movl   $0x0,-0x370(%rbp)
  jmp    L115
L94:
  movl   $0x0,-0x368(%rbp)
  movl   $0x0,-0x36c(%rbp)
  jmp    L87
L31:
  mov    -0x36c(%rbp),%eax
  cltq
  mov    -0x360(%rbp,%rax,4),%eax
  add    %eax,-0x368(%rbp)
  addl   $0x1,-0x36c(%rbp)
L87:
  mov    -0x370(%rbp),%eax
  cltq
  mov    -0x330(%rbp,%rax,4),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x36c(%rbp)
  jl     L31
  mov    -0x370(%rbp),%eax
  cltq
  mov    -0x1a0(%rbp,%rax,4),%eax
  add    %eax,-0x368(%rbp)
  mov    -0x368(%rbp),%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %ecx,%edx
  shl    $0x3,%edx
  sub    %ecx,%edx
  sub    %edx,%eax
  mov    %eax,-0x364(%rbp)
  cmpl   $0x6,-0x364(%rbp)
  ja     L52
  mov    -0x364(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D65(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D65(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L52
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L52
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L52
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L52
  lea    D88(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L52
  lea    D30(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L52
  lea    D36(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
L52:
  addl   $0x1,-0x370(%rbp)
L115:
  mov    -0x370(%rbp),%eax
  cmp    -0x374(%rbp),%eax
  jl     L94
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L100
  call   <__stack_chk_fail@plt>
L100:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: tag: D59
type_guessed: string
name: unpack_data
arguments: tag: D28
type_guessed: string
name: unpack_data
arguments: tag: D38
type_guessed: string
name: unpack_data
arguments: tag: D96
type_guessed: string
name: unpack_data
arguments: tag: D49
type_guessed: string
name: unpack_data
arguments: tag: D88
type_guessed: string
name: unpack_data
arguments: tag: D30
type_guessed: string
name: unpack_data
arguments: tag: D36
type_guessed: string

tool: D59: %d %d

tool: D28: Thursday


tool: D38: Friday


tool: D96: Saturday


tool: D49: Sunday


tool: D88: Monday


tool: D30: Tuesday


tool: D36: Wednesday


assistant: ```c
int main(void) {
  int i = 0, j, k, sum, n, month[100], date[100], md[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  while (1) {
    scanf("%d %d", &month[i], &date[i]);
    if (month[i] == 0)
      break;
    i++;
  }
  for (j = 0; j < i; j++) {
    sum = 0;
    for (k = 0; k < month[j] - 1; k++)
      sum += md[k];
    sum += date[j];
    n = sum % 7;
    switch (n) {
    case 1:
      printf("Thursday\n");
      break;
    case 2:
      printf("Friday\n");
      break;
    case 3:
      printf("Saturday\n");
      break;
    case 4:
      printf("Sunday\n");
      break;
    case 5:
      printf("Monday\n");
      break;
    case 6:
      printf("Tuesday\n");
      break;
    case 0:
      printf("Wednesday\n");
      break;
    }
  }
  return 0;
}
```