// File: /workspace/github_c_makefile_star2_O0/ukontainer[P]sqlite-bench/benchmark.c
// Function: print_environment
static void print_environment() {
  fprintf(stderr, "SQLite:     version %s\n", SQLITE_VERSION);
#if defined(__linux)
  time_t now = time(NULL);
  fprintf(stderr, "Date:       %s", ctime(&now));

  FILE* cpuinfo = fopen("/proc/cpuinfo", "r");
  if (cpuinfo != NULL) {
    char line[1000];
    int num_cpus = 0;
    char* cpu_type = malloc(sizeof(char) * 1000);
    char* cache_size = malloc(sizeof(char) * 1000);
    while (fgets(line, sizeof(line), cpuinfo) != NULL) {
      char* sep = strchr(line, ':');
      if (sep == NULL) {
        continue;
      }
      char* key = calloc(sizeof(char), 1000);
      char* val = calloc(sizeof(char), 1000);
      strncpy(key, line, sep - 1 - line);
      strcpy(val, sep + 1);
      char* trimed_key = trim_space(key);
      char* trimed_val = trim_space(val);
      free(key);
      free(val);
      if (!strcmp(trimed_key, "model name")) {
        ++num_cpus;
        strcpy(cpu_type, trimed_val);
      } else if (!strcmp(trimed_key, "cache size")) {
        strcpy(cache_size, trimed_val);
      }
      free(trimed_key);
      free(trimed_val);
    }
    fclose(cpuinfo);
    fprintf(stderr, "CPU:        %d * %s\n", num_cpus, cpu_type);
    fprintf(stderr, "CPUCache:   %s\n", cache_size);
    free(cpu_type);
    free(cache_size);
  }
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x450, %rsp            # imm = 0x450
movq $0x5d07a8, %rax         # imm = 0x5D07A8
movq (%rax), %rdi
leaq 0x17412c(%rip), %rsi    # 0x5773b8
leaq 0x17413d(%rip), %rdx    # 0x5773d0
movb $0x0, %al
callq 0x4b40c0
xorl %eax, %eax
movl %eax, %edi
callq 0x50df90
movq %rax, -0x8(%rbp)
movq $0x5d07a8, %rax         # imm = 0x5D07A8
movq (%rax), %rax
movq %rax, -0x448(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x50df30
movq -0x448(%rbp), %rdi
movq %rax, %rdx
leaq 0x174105(%rip), %rsi    # 0x5773d7
movb $0x0, %al
callq 0x4b40c0
leaq 0x174106(%rip), %rdi    # 0x5773e6
leaq 0x17b77e(%rip), %rsi    # 0x57ea65
callq 0x4c2bb0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x4034fe
movl $0x0, -0x404(%rbp)
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x4d4850
movq %rax, -0x410(%rbp)
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x4d4850
movq %rax, -0x418(%rbp)
leaq -0x400(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x4c2900
cmpq $0x0, %rax
je 0x403499
leaq -0x400(%rbp), %rdi
movl $0x3a, %esi
callq 0x401100
movq %rax, -0x420(%rbp)
cmpq $0x0, -0x420(%rbp)
jne 0x40336a
jmp 0x403327
movl $0x1, %edi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x4d5ca0
movq %rax, -0x428(%rbp)
movl $0x1, %edi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x4d5ca0
movq %rax, -0x430(%rbp)
movq -0x428(%rbp), %rdi
leaq -0x400(%rbp), %rsi
movq -0x420(%rbp), %rdx
addq $-0x1, %rdx
leaq -0x400(%rbp), %rax
subq %rax, %rdx
callq 0x401090
movq -0x430(%rbp), %rdi
movq -0x420(%rbp), %rsi
addq $0x1, %rsi
callq 0x401020
movq -0x428(%rbp), %rdi
callq 0x4a9ff0
movq %rax, -0x438(%rbp)
movq -0x430(%rbp), %rdi
callq 0x4a9ff0
movq %rax, -0x440(%rbp)
movq -0x428(%rbp), %rdi
callq 0x4d4b90
movq -0x430(%rbp), %rdi
callq 0x4d4b90
movq -0x438(%rbp), %rdi
leaq 0x173fd3(%rip), %rsi    # 0x5773f4
callq 0x4010c0
cmpl $0x0, %eax
jne 0x40344f
movl -0x404(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x404(%rbp)
movq -0x410(%rbp), %rdi
movq -0x440(%rbp), %rsi
callq 0x401020
jmp 0x40347c
movq -0x438(%rbp), %rdi
leaq 0x173fa2(%rip), %rsi    # 0x5773ff
callq 0x4010c0
cmpl $0x0, %eax
jne 0x40347a
movq -0x418(%rbp), %rdi
movq -0x440(%rbp), %rsi
callq 0x401020
jmp 0x40347c
movq -0x438(%rbp), %rdi
callq 0x4d4b90
movq -0x440(%rbp), %rdi
callq 0x4d4b90
jmp 0x403327
movq -0x10(%rbp), %rdi
callq 0x4c2610
movq $0x5d07a8, %rax         # imm = 0x5D07A8
movq (%rax), %rdi
movl -0x404(%rbp), %edx
movq -0x410(%rbp), %rcx
leaq 0x173f4a(%rip), %rsi    # 0x57740a
movb $0x0, %al
callq 0x4b40c0
movq $0x5d07a8, %rax         # imm = 0x5D07A8
movq (%rax), %rdi
movq -0x418(%rbp), %rdx
leaq 0x173f40(%rip), %rsi    # 0x57741f
movb $0x0, %al
callq 0x4b40c0
movq -0x410(%rbp), %rdi
callq 0x4d4b90
movq -0x418(%rbp), %rdi
callq 0x4d4b90
addq $0x450, %rsp            # imm = 0x450
popq %rbp
retq
nopw (%rax,%rax)