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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xa0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x76c,-0x84(%rbp)
  lea    D108(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    -0xa0(%rbp),%rax
  mov    %rax,%rsi
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xa0(%rbp),%eax
  cmp    $0x1,%eax
  jne    L122
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x9c(%rbp),%rax
  mov    %rax,%rsi
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D241(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x98(%rbp),%rax
  mov    %rax,%rsi
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x98(%rbp),%eax
  mov    -0x9c(%rbp),%edx
  sub    %edx,%eax
  cmp    $0x9,%eax
  jle    L322
  lea    D304(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L289
L322:
  movl   $0x0,-0x88(%rbp)
  movl   $0x0,-0x8c(%rbp)
  mov    -0x9c(%rbp),%eax
  mov    %eax,-0x90(%rbp)
  jmp    L239
L109:
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  lea    -0x80(%rax),%rdx
  mov    -0x90(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <LeapCheck@plt>
  mov    %eax,%edx
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x7c,%rax
  mov    %edx,(%rax)
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,-0x88(%rbp)
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x7c,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L275
  subl   $0x1,-0x88(%rbp)
L275:
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  movslq %eax,%rdx
  imul   $0x51eb851f,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x5,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  sub    %esi,%edx
  imul   $0x64,%edx,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  lea    0xc8(%rax),%edx
  movslq %edx,%rax
  imul   $0x51eb851f,%rax,%rax
  shr    $0x20,%rax
  sar    $0x7,%eax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  imul   $0x190,%eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  test   %eax,%eax
  jne    L244
  subl   $0x1,-0x88(%rbp)
L244:
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  mov    %eax,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%edx
  mov    %edx,%ecx
  shl    $0x3,%ecx
  sub    %edx,%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x78,%rax
  mov    %edx,(%rax)
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x78,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  ja     L243
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D67(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D67(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D179(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D217(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D272(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D237(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D278(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D113(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D259(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L13
L243:
  lea    D235(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L13:
  addl   $0x1,-0x8c(%rbp)
  addl   $0x1,-0x90(%rbp)
L239:
  mov    -0x98(%rbp),%eax
  cmp    %eax,-0x90(%rbp)
  jle    L109
  jmp    L289
L122:
  mov    -0xa0(%rbp),%eax
  cmp    $0x2,%eax
  jne    L128
  lea    D271(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x90(%rbp)
  movl   $0x0,-0x94(%rbp)
  movl   $0x0,-0x90(%rbp)
  jmp    L197
L301:
  lea    -0x94(%rbp),%rax
  mov    %rax,%rsi
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x94(%rbp),%eax
  cmp    $0xfffffc19,%eax
  je     L292
  mov    -0x94(%rbp),%edx
  mov    -0x90(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    %edx,(%rax)
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <LeapCheck@plt>
  mov    %eax,%edx
  mov    -0x90(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x7c,%rax
  mov    %edx,(%rax)
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,-0x88(%rbp)
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x7c,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L245
  subl   $0x1,-0x88(%rbp)
L245:
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  movslq %eax,%rdx
  imul   $0x51eb851f,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x5,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  sub    %esi,%edx
  imul   $0x64,%edx,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  lea    0xc8(%rax),%edx
  movslq %edx,%rax
  imul   $0x51eb851f,%rax,%rax
  shr    $0x20,%rax
  sar    $0x7,%eax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  imul   $0x190,%eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  test   %eax,%eax
  jne    L241
  subl   $0x1,-0x88(%rbp)
L241:
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  mov    %eax,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%edx
  mov    %edx,%ecx
  shl    $0x3,%ecx
  sub    %edx,%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  mov    -0x90(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x78,%rax
  mov    %edx,(%rax)
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x78,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  ja     L272
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D195(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D195(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D179(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D217(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D272(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D237(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D278(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D113(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
  mov    -0x90(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  add    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D259(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L179
L272:
  lea    D235(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L179:
  addl   $0x1,-0x90(%rbp)
L197:
  cmpl   $0x8,-0x90(%rbp)
  jle    L301
  jmp    L289
L128:
  lea    D234(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L289
L292:
  nop
L289:
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <system@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L224
  call   <__stack_chk_fail@plt>
L224:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D108
type_infered: string
name: read_data
arguments: data_tag: D76
type_infered: string
name: read_data
arguments: data_tag: D7
type_infered: string
name: read_data
arguments: data_tag: D118
type_infered: string
name: read_data
arguments: data_tag: D241
type_infered: string
name: read_data
arguments: data_tag: D304
type_infered: string
name: read_data
arguments: data_tag: D179
type_infered: string
name: read_data
arguments: data_tag: D217
type_infered: string
name: read_data
arguments: data_tag: D272
type_infered: string
name: read_data
arguments: data_tag: D237
type_infered: string
name: read_data
arguments: data_tag: D278
type_infered: string
name: read_data
arguments: data_tag: D113
type_infered: string
name: read_data
arguments: data_tag: D259
type_infered: string
name: read_data
arguments: data_tag: D235
type_infered: string
name: read_data
arguments: data_tag: D271
type_infered: string
name: read_data
arguments: data_tag: D234
type_infered: string
name: read_data
arguments: data_tag: D28
type_infered: string

tool: D108: In this Leap year calculator 10 years is the maximum that are checked for

tool: D76: Would you like to enter   1) A range   or    2) Set of years?

tool: D7: %d

tool: D118: 
Please enter the start year: 

tool: D241: 
Please enter the end year: 

tool: D304: 
Year range is too great

tool: D179: 
%d Monday


tool: D217: 
%d Tuesday


tool: D272: 
%d Wednesday


tool: D237: 
%d Thursday


tool: D278: 
%d Friday


tool: D113: 
%d Saturday


tool: D259: 
%d Sunday


tool: D235: 
ERROR

tool: D271: 
Enter -999 to end entry. 10 Entries Max

tool: D234: 
Invalid operation

tool: D28: PAUSE

assistant: ```c
int main() {
  const int YEAR = 1900;
  int nYears[10][3], nOperation, nStartYear, nEndYear, nYearDays, nYearEntry, i, j, n;
  printf("In this Leap year calculator 10 years is the maximum that are checked for\n");
  printf("Would you like to enter   1) A range   or    2) Set of years?\n");
  scanf("%d", &nOperation);
  if (nOperation == 1) {
    printf("\nPlease enter the start year: ");
    scanf("%d", &nStartYear);
    printf("\nPlease enter the end year: ");
    scanf("%d", &nEndYear);
    if ((nEndYear - nStartYear) > 9)
      printf("\nYear range is too great\n");
    else {
      n = 0;
      for (j = 0, i = nStartYear; j < 10, i < nEndYear + 1; j++, i++) {
        nYears[j][0] = i;
        nYears[j][1] = LeapCheck(nYears[j][0]);
        n = (int)(nYears[j][0] - YEAR) / 4;
        if ((nYears[j][1] == 1))
          n--;
        if (((((nYears[j][0] - YEAR) - ((nYears[j][0] - YEAR) % 100)) + 200) % 400) == 0)
          n--;
        nYears[j][2] = (int)((nYears[j][0] - YEAR) + n) % 7;
        switch (nYears[j][2]) {
        case 0:
          printf("\n%d Monday\n", nYears[j][0]);
          break;
        case 1:
          printf("\n%d Tuesday\n", nYears[j][0]);
          break;
        case 2:
          printf("\n%d Wednesday\n", nYears[j][0]);
          break;
        case 3:
          printf("\n%d Thursday\n", nYears[j][0]);
          break;
        case 4:
          printf("\n%d Friday\n", nYears[j][0]);
          break;
        case 5:
          printf("\n%d Saturday\n", nYears[j][0]);
          break;
        case 6:
          printf("\n%d Sunday\n", nYears[j][0]);
          break;
        default:
          printf("\nERROR\n");
        }
      }
    }
  } else if (nOperation == 2) {
    printf("\nEnter -999 to end entry. 10 Entries Max\n");
    i = 0;
    nYearEntry = 0;
    for (i = 0; i < 9; i++) {
      scanf("%d", &nYearEntry);
      if (nYearEntry == -999)
        break;
      else {
        nYears[i][0] = nYearEntry;
        nYears[i][1] = LeapCheck(nYears[i][0]);
        n = (int)(nYears[i][0] - YEAR) / 4;
        if (nYears[i][1] == 1)
          n--;
        if (((((nYears[i][0] - YEAR) - ((nYears[i][0] - YEAR) % 100)) + 200) % 400) == 0)
          n--;
        nYears[i][2] = (int)((nYears[i][0] - YEAR) + n) % 7;
        switch (nYears[i][2]) {
        case 0:
          printf("\n%d Monday\n", nYears[i][0]);
          break;
        case 1:
          printf("\n%d Tuesday\n", nYears[i][0]);
          break;
        case 2:
          printf("\n%d Wednesday\n", nYears[i][0]);
          break;
        case 3:
          printf("\n%d Thursday\n", nYears[i][0]);
          break;
        case 4:
          printf("\n%d Friday\n", nYears[i][0]);
          break;
        case 5:
          printf("\n%d Saturday\n", nYears[i][0]);
          break;
        case 6:
          printf("\n%d Sunday\n", nYears[i][0]);
          break;
        default:
          printf("\nERROR\n");
        }
      }
    }
  } else {
    printf("\nInvalid operation\n");
  }
  system("PAUSE");
  return 0;
}
```