user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<c_print_results>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xc0,%rsp
  mov    %rdi,-0x38(%rbp)
  mov    %esi,%eax
  mov    %edx,-0x40(%rbp)
  mov    %ecx,-0x44(%rbp)
  mov    %r8d,-0x48(%rbp)
  mov    %r9d,-0x4c(%rbp)
  movsd  %xmm0,-0x58(%rbp)
  movsd  %xmm1,-0x60(%rbp)
  mov    %al,-0x3c(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x68(%rbp)
  mov    0x20(%rbp),%rax
  mov    %rax,-0x70(%rbp)
  mov    0x28(%rbp),%rax
  mov    %rax,-0x78(%rbp)
  mov    0x30(%rbp),%rax
  mov    %rax,-0x80(%rbp)
  mov    0x38(%rbp),%rax
  mov    %rax,-0x88(%rbp)
  mov    0x40(%rbp),%rax
  mov    %rax,-0x90(%rbp)
  mov    0x48(%rbp),%rax
  mov    %rax,-0x98(%rbp)
  mov    0x50(%rbp),%rax
  mov    %rax,-0xa0(%rbp)
  mov    0x58(%rbp),%rax
  mov    %rax,-0xa8(%rbp)
  mov    0x60(%rbp),%rax
  mov    %rax,-0xb0(%rbp)
  mov    0x68(%rbp),%rax
  mov    %rax,-0xb8(%rbp)
  mov    0x70(%rbp),%rax
  mov    %rax,-0xc0(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x38(%rbp),%rax
  mov    %rax,%rsi
  lea    D275(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movsbl -0x3c(%rbp),%eax
  mov    %eax,%esi
  lea    D183(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x0,-0x44(%rbp)
  jne    L149
  cmpl   $0x0,-0x48(%rbp)
  jne    L149
  mov    -0x38(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x45,%al
  jne    L135
  mov    -0x38(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x50,%al
  jne    L135
  mov    -0x40(%rbp),%edx
  mov    D270(%rip),%rax
  mov    %edx,%edi
  movq   %rax,%xmm0
  call   <pow@plt>
  mov    %eax,%edx
  lea    -0x20(%rbp),%rax
  lea    D71(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  movl   $0xe,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  movzbl -0x20(%rbp,%rax,1),%eax
  cmp    $0x2e,%al
  jne    L6
  mov    -0x2c(%rbp),%eax
  cltq
  movb   $0x20,-0x20(%rbp,%rax,1)
  subl   $0x1,-0x2c(%rbp)
L6:
  mov    -0x2c(%rbp),%eax
  add    $0x1,%eax
  cltq
  movb   $0x0,-0x20(%rbp,%rax,1)
  lea    -0x20(%rbp),%rax
  mov    %rax,%rsi
  lea    D265(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L39
L135:
  mov    -0x40(%rbp),%eax
  mov    %eax,%esi
  lea    D46(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L39
L149:
  cmpl   $0x0,-0x48(%rbp)
  jne    L122
  mov    -0x40(%rbp),%eax
  cltq
  mov    %rax,-0x28(%rbp)
  cmpl   $0x0,-0x44(%rbp)
  je     L144
  mov    -0x44(%rbp),%eax
  cltq
  mov    -0x28(%rbp),%rdx
  imul   %rdx,%rax
  mov    %rax,-0x28(%rbp)
L144:
  mov    -0x28(%rbp),%rax
  mov    %rax,%rsi
  lea    D92(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L39
L122:
  mov    -0x48(%rbp),%ecx
  mov    -0x44(%rbp),%edx
  mov    -0x40(%rbp),%eax
  mov    %eax,%esi
  lea    D20(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L39:
  mov    -0x4c(%rbp),%eax
  mov    %eax,%esi
  lea    D211(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  lea    D63(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x60(%rbp),%rax
  movq   %rax,%xmm0
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x68(%rbp),%rax
  mov    %rax,%rsi
  lea    D197(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x0,0x18(%rbp)
  jns    L81
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L114
L81:
  cmpl   $0x0,0x18(%rbp)
  je     L41
  lea    D258(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L114
L41:
  lea    D272(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L114:
  mov    -0x70(%rbp),%rax
  mov    %rax,%rsi
  lea    D27(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x78(%rbp),%rax
  mov    %rax,%rsi
  lea    D83(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D339(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x80(%rbp),%rax
  mov    %rax,%rsi
  lea    D320(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x88(%rbp),%rax
  mov    %rax,%rsi
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x90(%rbp),%rax
  mov    %rax,%rsi
  lea    D244(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x98(%rbp),%rax
  mov    %rax,%rsi
  lea    D74(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0xa0(%rbp),%rax
  mov    %rax,%rsi
  lea    D113(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0xa8(%rbp),%rax
  mov    %rax,%rsi
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0xb0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %rax,%rax
  jle    L34
  mov    -0xb0(%rbp),%rax
  mov    %rax,%rsi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L34:
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0xb8(%rbp),%rax
  mov    %rax,%rsi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0xc0(%rbp),%rax
  mov    %rax,%rsi
  lea    D45(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D299(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D241(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D192(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D37(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L116
  call   <__stack_chk_fail@plt>
L116:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D275
type_infered: string
name: retrieve_data
arguments: data_label: D183
type_infered: string
name: retrieve_data
arguments: data_label: D270
type_infered: f64
name: retrieve_data
arguments: data_label: D71
type_infered: string
name: retrieve_data
arguments: data_label: D265
type_infered: string
name: retrieve_data
arguments: data_label: D46
type_infered: string
name: retrieve_data
arguments: data_label: D92
type_infered: string
name: retrieve_data
arguments: data_label: D20
type_infered: string
name: retrieve_data
arguments: data_label: D211
type_infered: string
name: retrieve_data
arguments: data_label: D63
type_infered: string
name: retrieve_data
arguments: data_label: D14
type_infered: string
name: retrieve_data
arguments: data_label: D197
type_infered: string
name: retrieve_data
arguments: data_label: D5
type_infered: string
name: retrieve_data
arguments: data_label: D258
type_infered: string
name: retrieve_data
arguments: data_label: D272
type_infered: string
name: retrieve_data
arguments: data_label: D27
type_infered: string
name: retrieve_data
arguments: data_label: D83
type_infered: string
name: retrieve_data
arguments: data_label: D339
type_infered: string
name: retrieve_data
arguments: data_label: D320
type_infered: string
name: retrieve_data
arguments: data_label: D16
type_infered: string
name: retrieve_data
arguments: data_label: D244
type_infered: string
name: retrieve_data
arguments: data_label: D74
type_infered: string
name: retrieve_data
arguments: data_label: D113
type_infered: string
name: retrieve_data
arguments: data_label: D120
type_infered: string
name: retrieve_data
arguments: data_label: D61
type_infered: string
name: retrieve_data
arguments: data_label: D170
type_infered: string
name: retrieve_data
arguments: data_label: D13
type_infered: string
name: retrieve_data
arguments: data_label: D45
type_infered: string
name: retrieve_data
arguments: data_label: D299
type_infered: string
name: retrieve_data
arguments: data_label: D111
type_infered: string
name: retrieve_data
arguments: data_label: D241
type_infered: string
name: retrieve_data
arguments: data_label: D192
type_infered: string
name: retrieve_data
arguments: data_label: D91
type_infered: string
name: retrieve_data
arguments: data_label: D37
type_infered: string

tool: D275: 

 %s Benchmark Completed.


tool: D183:  Class           =                        %c


tool: D270: 2

tool: D71: %15.0lf

tool: D265:  Size            =          %15s


tool: D46:  Size            =             %12d


tool: D92:  Size            =             %12ld


tool: D20:  Size            =           %4dx%4dx%4d


tool: D211:  Iterations      =             %12d


tool: D63:  Time in seconds =             %12.2f


tool: D14:  Mop/s total     =             %12.2f


tool: D197:  Operation type  = %24s


tool: D5:  Verification    =            NOT PERFORMED

tool: D258:  Verification    =               SUCCESSFUL

tool: D272:  Verification    =             UNSUCCESSFUL

tool: D27:  Version         =             %12s


tool: D83:  Compile date    =             %12s


tool: D339: 
 Compile options:

tool: D320:     CC           = %s


tool: D16:     CLINK        = %s


tool: D244:     C_LIB        = %s


tool: D74:     C_INC        = %s


tool: D113:     CFLAGS       = %s


tool: D120:     CLINKFLAGS   = %s


tool: D61:     RAND         = %s


tool: D170: 
 OpenCL options:

tool: D13:     Device type  = %s


tool: D45:     Device name  = %s


tool: D299: 
--------------------------------------

tool: D111:  Please send all errors/feedbacks to:

tool: D241:  Center for Manycore Programming

tool: D192:  cmp@aces.snu.ac.kr

tool: D91:  http://aces.snu.ac.kr

tool: D37: --------------------------------------


assistant: ```c
void c_print_results(char *name, char class, int n1, int n2, int n3, int niter, double t, double mops, char *optype, int passed_verification, char *npbversion, char *compiletime, char *cc, char *clink, char *c_lib, char *c_inc, char *cflags, char *clinkflags, char *crand, const char *ocl_dev_type, char *ocl_dev_name) {
  char size[16];
  int j;
  printf("\n\n %s Benchmark Completed.\n", name);
  printf(" Class           =                        %c\n", class);
  if ((n2 == 0) && (n3 == 0)) {
    if ((name[0] == 'E') && (name[1] == 'P')) {
      sprintf(size, "%15.0lf", pow(2.0, n1));
      j = 14;
      if (size[j] == '.') {
        size[j] = ' ';
        j--;
      }
      size[j + 1] = '\0';
      printf(" Size            =          %15s\n", size);
    } else {
      printf(" Size            =             %12d\n", n1);
    }
  } else if (n3 == 0) {
    long nn = n1;
    if (n2 != 0)
      nn *= n2;
    printf(" Size            =             %12ld\n", nn);
  } else
    printf(" Size            =           %4dx%4dx%4d\n", n1, n2, n3);
  printf(" Iterations      =             %12d\n", niter);
  printf(" Time in seconds =             %12.2f\n", t);
  printf(" Mop/s total     =             %12.2f\n", mops);
  printf(" Operation type  = %24s\n", optype);
  if (passed_verification < 0)
    printf(" Verification    =            NOT PERFORMED\n");
  else if (passed_verification)
    printf(" Verification    =               SUCCESSFUL\n");
  else
    printf(" Verification    =             UNSUCCESSFUL\n");
  printf(" Version         =             %12s\n", npbversion);
  printf(" Compile date    =             %12s\n", compiletime);
  printf("\n Compile options:\n");
  printf("    CC           = %s\n", cc);
  printf("    CLINK        = %s\n", clink);
  printf("    C_LIB        = %s\n", c_lib);
  printf("    C_INC        = %s\n", c_inc);
  printf("    CFLAGS       = %s\n", cflags);
  printf("    CLINKFLAGS   = %s\n", clinkflags);
  if (strlen(crand) > 0)
    printf("    RAND         = %s\n", crand);
  printf("\n OpenCL options:\n");
  printf("    Device type  = %s\n", ocl_dev_type);
  printf("    Device name  = %s\n", ocl_dev_name);
  printf("\n--------------------------------------\n");
  printf(" Please send all errors/feedbacks to:\n");
  printf(" Center for Manycore Programming\n");
  printf(" cmp@aces.snu.ac.kr\n");
  printf(" http://aces.snu.ac.kr\n");
  printf("--------------------------------------\n\n");
}
```