// File: /workspace/github_c_makefile_star2_O0/ukontainer[P]sqlite-bench/benchmark.c
// Function: benchmark_run
void benchmark_run() {
  print_header();
  benchmark_open();

  char* benchmarks = FLAGS_benchmarks;
  while (benchmarks != NULL) {
    char* sep = strchr(benchmarks, ',');
    char* name;
    if (sep == NULL) {
      name = benchmarks;
      benchmarks = NULL;
    } else {
      name = calloc(sizeof(char), (sep - benchmarks + 1));
      strncpy(name, benchmarks, sep - benchmarks);
      benchmarks = sep + 1;
    }
    bytes_ = 0;
    start();
    bool known = true;
    bool write_sync = false;
    if (!strcmp(name, "fillseq")) {
      benchmark_write(write_sync, SEQUENTIAL, FRESH, num_, FLAGS_value_size, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillseqbatch")) {
      benchmark_write(write_sync, SEQUENTIAL, FRESH, num_, FLAGS_value_size, 1000);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillrandom")) {
      benchmark_write(write_sync, RANDOM, FRESH, num_, FLAGS_value_size, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillrandbatch")) {
      benchmark_write(write_sync, RANDOM, FRESH, num_, FLAGS_value_size, 1000);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "overwrite")) {
      benchmark_write(write_sync, RANDOM, EXISTING, num_, FLAGS_value_size, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "overwritebatch")) {
      benchmark_write(write_sync, RANDOM, EXISTING, num_, FLAGS_value_size, 1000);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillrandsync")) {
      write_sync = true;
      benchmark_write(write_sync, RANDOM, FRESH, num_ / 100, FLAGS_value_size, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillseqsync")) {
      write_sync = true;
      benchmark_write(write_sync, SEQUENTIAL, FRESH, num_ / 100, FLAGS_value_size, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillrand100K")) {
      benchmark_write(write_sync, RANDOM, FRESH, num_ / 1000, 100 * 1000, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "fillseq100K")) {
      benchmark_write(write_sync, SEQUENTIAL, FRESH, num_ / 1000, 100 * 1000, 1);
      wal_checkpoint(db_);
    } else if (!strcmp(name, "readseq")) {
      benchmark_read(SEQUENTIAL, 1);
    } else if (!strcmp(name, "readrandom")) {
      benchmark_read(RANDOM, 1);
    } else if (!strcmp(name, "readrand100K")) {
      int n = reads_;
      reads_ /= 1000;
      benchmark_read(RANDOM, 1);
      reads_ = n;
    } else {
      known = false;
      if (strcmp(name, "")) {
        fprintf(stderr, "unknown benchmark '%s'\n", name);
      }
    }
    if (known) {
      stop(name);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
callq 0x402460
callq 0x402540
movq $0x5d2940, %rax         # imm = 0x5D2940
movq (%rax), %rax
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x402454
movq -0x8(%rbp), %rdi
movl $0x2c, %esi
callq 0x401100
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x401fb6
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x8(%rbp)
jmp 0x401ff7
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rax
subq %rax, %rsi
addq $0x1, %rsi
movl $0x1, %edi
callq 0x4d5ca0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rax
subq %rax, %rdx
callq 0x401090
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq $0x0, 0x1d0906(%rip) # 0x5d2908
callq 0x402800
movb $0x1, -0x19(%rbp)
movb $0x0, -0x1a(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x175079(%rip), %rsi    # 0x577093
callq 0x4010c0
cmpl $0x0, %eax
jne 0x40205c
movb -0x1a(%rbp), %al
movl 0x1d08cf(%rip), %ecx    # 0x5d28fc
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
xorl %edx, %edx
movl $0x1, %r9d
andb $0x1, %al
movzbl %al, %edi
movl %edx, %esi
callq 0x4028c0
movq 0x1d089e(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x402440
movq -0x18(%rbp), %rdi
leaq 0x175034(%rip), %rsi    # 0x57709b
callq 0x4010c0
cmpl $0x0, %eax
jne 0x4020a9
movb -0x1a(%rbp), %al
movl 0x1d0882(%rip), %ecx    # 0x5d28fc
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
xorl %edx, %edx
movl $0x3e8, %r9d            # imm = 0x3E8
andb $0x1, %al
movzbl %al, %edi
movl %edx, %esi
callq 0x4028c0
movq 0x1d0851(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x40243e
movq -0x18(%rbp), %rdi
leaq 0x174ff4(%rip), %rsi    # 0x5770a8
callq 0x4010c0
cmpl $0x0, %eax
jne 0x4020f7
movb -0x1a(%rbp), %al
movl 0x1d0835(%rip), %ecx    # 0x5d28fc
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
movl $0x1, %r9d
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %edi
movl %r9d, %esi
callq 0x4028c0
movq 0x1d0803(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x40243c
movq -0x18(%rbp), %rdi
leaq 0x174fb1(%rip), %rsi    # 0x5770b3
callq 0x4010c0
cmpl $0x0, %eax
jne 0x402147
movb -0x1a(%rbp), %al
movl 0x1d07e7(%rip), %ecx    # 0x5d28fc
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
movl $0x1, %esi
xorl %edx, %edx
movl $0x3e8, %r9d            # imm = 0x3E8
andb $0x1, %al
movzbl %al, %edi
callq 0x4028c0
movq 0x1d07b3(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x40243a
movq -0x18(%rbp), %rdi
leaq 0x174f6f(%rip), %rsi    # 0x5770c1
callq 0x4010c0
cmpl $0x0, %eax
jne 0x402196
movb -0x1a(%rbp), %al
movl 0x1d0797(%rip), %ecx    # 0x5d28fc
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
movl $0x1, %r9d
andb $0x1, %al
movzbl %al, %edi
movl %r9d, %esi
movl %r9d, %edx
callq 0x4028c0
movq 0x1d0764(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x402438
movq -0x18(%rbp), %rdi
leaq 0x174f2a(%rip), %rsi    # 0x5770cb
callq 0x4010c0
cmpl $0x0, %eax
jne 0x4021e6
movb -0x1a(%rbp), %al
movl 0x1d0748(%rip), %ecx    # 0x5d28fc
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
movl $0x1, %edx
movl $0x3e8, %r9d            # imm = 0x3E8
andb $0x1, %al
movzbl %al, %edi
movl %edx, %esi
callq 0x4028c0
movq 0x1d0714(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x402436
movq -0x18(%rbp), %rdi
leaq 0x174ee9(%rip), %rsi    # 0x5770da
callq 0x4010c0
cmpl $0x0, %eax
jne 0x402248
movb $0x1, -0x1a(%rbp)
movb -0x1a(%rbp), %al
movb %al, -0x21(%rbp)
movl 0x1d06f1(%rip), %eax    # 0x5d28fc
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movb -0x21(%rbp), %al
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
movl $0x1, %r9d
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %edi
movl %r9d, %esi
callq 0x4028c0
movq 0x1d06b2(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x402434
movq -0x18(%rbp), %rdi
leaq 0x174e94(%rip), %rsi    # 0x5770e7
callq 0x4010c0
cmpl $0x0, %eax
jne 0x4022a9
movb $0x1, -0x1a(%rbp)
movb -0x1a(%rbp), %al
movb %al, -0x22(%rbp)
movl 0x1d068f(%rip), %eax    # 0x5d28fc
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movb -0x22(%rbp), %al
movq $0x5d2950, %rdx         # imm = 0x5D2950
movl (%rdx), %r8d
xorl %edx, %edx
movl $0x1, %r9d
andb $0x1, %al
movzbl %al, %edi
movl %edx, %esi
callq 0x4028c0
movq 0x1d0651(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x402432
movq -0x18(%rbp), %rdi
leaq 0x174e3f(%rip), %rsi    # 0x5770f3
callq 0x4010c0
cmpl $0x0, %eax
jne 0x402303
movb -0x1a(%rbp), %al
movb %al, -0x23(%rbp)
movl 0x1d0632(%rip), %eax    # 0x5d28fc
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
movl %eax, %ecx
movb -0x23(%rbp), %al
movl $0x1, %r9d
xorl %edx, %edx
movl $0x186a0, %r8d          # imm = 0x186A0
andb $0x1, %al
movzbl %al, %edi
movl %r9d, %esi
callq 0x4028c0
movq 0x1d05f7(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x402430
movq -0x18(%rbp), %rdi
leaq 0x174df2(%rip), %rsi    # 0x577100
callq 0x4010c0
cmpl $0x0, %eax
jne 0x40235c
movb -0x1a(%rbp), %al
movb %al, -0x24(%rbp)
movl 0x1d05d8(%rip), %eax    # 0x5d28fc
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
movl %eax, %ecx
movb -0x24(%rbp), %al
xorl %edx, %edx
movl $0x186a0, %r8d          # imm = 0x186A0
movl $0x1, %r9d
andb $0x1, %al
movzbl %al, %edi
movl %edx, %esi
callq 0x4028c0
movq 0x1d059e(%rip), %rdi    # 0x5d28f0
callq 0x402ca0
jmp 0x40242e
movq -0x18(%rbp), %rdi
leaq 0x174da5(%rip), %rsi    # 0x57710c
callq 0x4010c0
cmpl $0x0, %eax
jne 0x402382
xorl %edi, %edi
movl $0x1, %esi
callq 0x402ce0
jmp 0x40242c
movq -0x18(%rbp), %rdi
leaq 0x174d87(%rip), %rsi    # 0x577114
callq 0x4010c0
cmpl $0x0, %eax
jne 0x4023a8
movl $0x1, %esi
movl %esi, %edi
callq 0x402ce0
jmp 0x40242a
movq -0x18(%rbp), %rdi
leaq 0x174d6c(%rip), %rsi    # 0x57711f
callq 0x4010c0
cmpl $0x0, %eax
jne 0x4023f1
movl 0x1d053d(%rip), %eax    # 0x5d2900
movl %eax, -0x20(%rbp)
movl 0x1d0534(%rip), %eax    # 0x5d2900
movl $0x3e8, %ecx            # imm = 0x3E8
cltd
idivl %ecx
movl %eax, 0x1d0526(%rip)    # 0x5d2900
movl $0x1, %esi
movl %esi, %edi
callq 0x402ce0
movl -0x20(%rbp), %eax
movl %eax, 0x1d0511(%rip)    # 0x5d2900
jmp 0x402428
movb $0x0, -0x19(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x19db0d(%rip), %rsi    # 0x59ff0d
callq 0x4010c0
cmpl $0x0, %eax
je 0x402426
movq $0x5d07a8, %rax         # imm = 0x5D07A8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x174d0d(%rip), %rsi    # 0x57712c
movb $0x0, %al
callq 0x4b40c0
jmp 0x402428
jmp 0x40242a
jmp 0x40242c
jmp 0x40242e
jmp 0x402430
jmp 0x402432
jmp 0x402434
jmp 0x402436
jmp 0x402438
jmp 0x40243a
jmp 0x40243c
jmp 0x40243e
jmp 0x402440
testb $0x1, -0x19(%rbp)
je 0x40244f
movq -0x18(%rbp), %rdi
callq 0x402f70
jmp 0x401f80
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)