user: What is the c source code of the assembly code below?

```asm
<julian2std>:
  endbr64
  mov    %edi,%r11d
  and    $0x3,%edi
  push   %r12
  mov    %esi,%r10d
  push   %rbp
  mov    %edx,%esi
  mov    $0x16d,%eax
  push   %rbx
  mov    %ecx,%ebx
  mov    0x20(%rsp),%rbp
  movl   $0x1c,D5(%rip)
  jne    L21
  imul   $0xc28f5c29,%r11d,%edx
  add    $0x51eb850,%edx
  ror    $0x2,%edx
  cmp    $0x28f5c28,%edx
  ja     L8
L21:
  imul   $0xc28f5c29,%r11d,%edx
  add    $0x51eb850,%edx
  ror    $0x4,%edx
  cmp    $0xa3d70a,%edx
  ja     L115
  mov    $0x1d,%edx
  mov    $0x16e,%eax
L37:
  mov    %edx,D59(%rip)
  cmp    %eax,%r10d
  jl     L62
  nopl   0x0(%rax,%rax,1)
L87:
  sub    %eax,%r10d
  add    $0x1,%r11d
  cmp    %eax,%r10d
  jge    L87
  cmp    $0x17,%esi
  jle    L110
  nopl   0x0(%rax)
L92:
  add    $0x1,%r10d
  sub    $0x18,%esi
  cmp    %eax,%r10d
  jl     L62
  add    $0x1,%r11d
  sub    %eax,%r10d
L62:
  cmp    $0x17,%esi
  jg     L92
L110:
  mov    $0x1,%eax
  xor    %edx,%edx
  lea    D59(%rip),%rdi
  jmp    L31
L7:
  add    $0x1,%rax
  cmp    $0xd,%rax
  je     L47
L31:
  mov    %edx,%ecx
  add    (%rdi,%rax,4),%edx
  cmp    %r10d,%edx
  jl     L7
  sub    $0x8,%rsp
  sub    %ecx,%r10d
  mov    %eax,%edx
  mov    %rbp,%rdi
  push   %r9
  mov    %r10d,%ecx
  mov    %esi,%r9d
  xor    %eax,%eax
  push   %r8
  lea    D67(%rip),%rsi
  lea    -0x76c(%r11),%r8d
  push   %rbx
  call   <sprintf@plt>
  add    $0x20,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L115:
  mov    D59(%rip),%edx
  jmp    L37
L8:
  movl   $0x1d,D59(%rip)
  mov    $0x16e,%eax
  jmp    L21
L47:
  mov    %r8d,0x20(%rsp)
  mov    %ebx,%r9d
  mov    %esi,%r8d
  pop    %rbx
  mov    %rbp,%rdi
  mov    %r10d,%ecx
  pop    %rbp
  mov    %r11d,%edx
  lea    D44(%rip),%rsi
  xor    %eax,%eax
  pop    %r12
  jmp    1050 <sprintf@plt>
```

tool_calls: name: retrieve_data
arguments: label: D67
data_type: string
name: retrieve_data
arguments: label: D44
data_type: string

tool: D67: %2d/%2d/%2d  %2d:%02d:%02d  %s

tool: D44: %d%d  %2d:%02d:%02d:02d:02d JULIAN

assistant: ```c
julian2std(inputyear, inputday, inputhour, inputmin, inputsec, std_ext, str) int inputyear, inputday, inputhour, inputmin, inputsec;
char *std_ext;
char *str;
{
  int year, day, hour, min, sec;
  static int days_per_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  int days_per_year;
  register int i, j, k, found;
  year = inputyear;
  day = inputday;
  hour = inputhour;
  min = inputmin;
  sec = inputsec;
  days_per_year = 365;
  days_per_month[1] = 28;
  if ((!(year % 4)) && (year % 100)) {
    days_per_month[1] = 29;
    days_per_year = 366;
  }
  if (!(year % 400)) {
    days_per_month[1] = 29;
    days_per_year = 366;
  }
  while (day >= days_per_year) {
    ++year;
    day -= days_per_year;
  }
  while (hour >= 24) {
    ++day;
    hour -= 24;
    while (day >= days_per_year) {
      ++year;
      day -= days_per_year;
    }
  }
  found = j = k = 0;
  for (i = 0; ((i < 12) && (!found)); ++i) {
    j += days_per_month[i];
    if (day <= j) {
      sprintf(str, "%2d/%2d/%2d  %2d:%02d:%02d  %s", i + 1, day - k, year - 1900, hour, min, sec, std_ext);
      found = 1;
    }
    k = j;
  }
  if (!found)
    sprintf(str, "%d%d  %2d:%02d:%02d:02d:02d JULIAN", year, day, hour, min, sec);
}
```