// File: /workspace/github_c_makefile_star2_O0/ukontainer[P]sqlite-bench/main.c
// Function: main
int main(int argc, char** argv) {
  init();

  char* default_db_path = malloc(sizeof(char) * 1024);
  strcpy(default_db_path, "./");

  for (int i = 1; i < argc; i++) {
    double d;
    int n;
    char junk;
    if (starts_with(argv[i], "--benchmarks=")) {
      FLAGS_benchmarks = argv[i] + strlen("--benchmarks=");
    } else if (sscanf(argv[i], "--histogram=%d%c", &n, &junk) == 1 &&
               (n == 0 || n == 1)) {
      FLAGS_histogram = n;
    } else if (sscanf(argv[i], "--raw=%d%c", &n, &junk) == 1 &&
               (n == 0 || n == 1)) {
      FLAGS_raw = n;
    } else if (sscanf(argv[i], "--compression_ratio=%lf%c", &d, &junk) == 1) {
      FLAGS_compression_ratio = d;
    } else if (sscanf(argv[i], "--use_existing_db=%d%c", &n, &junk) == 1 &&
               (n == 0 || n == 1)) {
      FLAGS_use_existing_db = n;
    } else if (sscanf(argv[i], "--num=%d%c", &n, &junk) == 1) {
      FLAGS_num = n;
    } else if (sscanf(argv[i], "--reads=%d%c", &n, &junk) == 1) {
      FLAGS_reads = n;
    } else if (sscanf(argv[i], "--value_size=%d%c", &n, &junk) == 1) {
      FLAGS_value_size = n;
    } else if (!strcmp(argv[i], "--no_transaction")) {
      FLAGS_transaction = false;
    } else if (sscanf(argv[i], "--page_size=%d%c", &n, &junk) == 1) {
      FLAGS_page_size = n;
    } else if (sscanf(argv[i], "--num_pages=%d%c", &n, &junk) == 1) {
      FLAGS_num_pages = n;
    } else if (sscanf(argv[i], "--WAL_enabled=%d%c", &n, &junk) == 1 &&
               (n == 0 || n == 1)) {
      FLAGS_WAL_enabled = n;
    } else if (strncmp(argv[i], "--db=", 5) == 0) {
      FLAGS_db = argv[i] + 5;
    } else if (!strcmp(argv[i], "--help")) {
      print_usage(argv[0]);
      exit(0);
    } else {
      fprintf(stderr, "Invalid flag '%s'\n", argv[i]);
      exit(1);
    }
  }

  /* Choose a location for the test database if none given with --db=<path>  */
  if (FLAGS_db == NULL)
      FLAGS_db = default_db_path;

  benchmark_init();
  benchmark_run();
  benchmark_fini();

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
callq 0x403f70
movl $0x400, %edi            # imm = 0x400
callq 0x4d4850
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x188107(%rip), %rsi    # 0x58c43b
callq 0x401020
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x4046ce
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173d73(%rip), %rsi    # 0x5780d2
callq 0x4a9f80
testb $0x1, %al
jne 0x40436a
jmp 0x404386
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq $0xd, %rax
movq %rax, 0x1ce5bf(%rip)    # 0x5d2940
jmp 0x4046be
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173d47(%rip), %rsi    # 0x5780e0
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x4043cd
cmpl $0x0, -0x2c(%rbp)
je 0x4043b9
cmpl $0x1, -0x2c(%rbp)
jne 0x4043cd
cmpl $0x0, -0x2c(%rbp)
setne %al
andb $0x1, %al
movb %al, 0x1ce58c(%rip)     # 0x5d2954
jmp 0x4046bc
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173d11(%rip), %rsi    # 0x5780f1
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x404414
cmpl $0x0, -0x2c(%rbp)
je 0x404400
cmpl $0x1, -0x2c(%rbp)
jne 0x404414
cmpl $0x0, -0x2c(%rbp)
setne %al
andb $0x1, %al
movb %al, 0x1ce546(%rip)     # 0x5d2955
jmp 0x4046ba
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173cd5(%rip), %rsi    # 0x5780fc
leaq -0x28(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x40444d
movsd -0x28(%rbp), %xmm0
movsd %xmm0, 0x1ce510(%rip)   # 0x5d2958
jmp 0x4046b8
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173cb6(%rip), %rsi    # 0x578116
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x404494
cmpl $0x0, -0x2c(%rbp)
je 0x404480
cmpl $0x1, -0x2c(%rbp)
jne 0x404494
cmpl $0x0, -0x2c(%rbp)
setne %al
andb $0x1, %al
movb %al, 0x1ce4d9(%rip)     # 0x5d2968
jmp 0x4046b6
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173c86(%rip), %rsi    # 0x57812d
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x4044c9
movl -0x2c(%rbp), %eax
movl %eax, 0x1ce484(%rip)    # 0x5d2948
jmp 0x4046b4
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173c5c(%rip), %rsi    # 0x578138
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x4044fe
movl -0x2c(%rbp), %eax
movl %eax, 0x1ce453(%rip)    # 0x5d294c
jmp 0x4046b2
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173c34(%rip), %rsi    # 0x578145
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x404533
movl -0x2c(%rbp), %eax
movl %eax, 0x1ce422(%rip)    # 0x5d2950
jmp 0x4046b0
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173c11(%rip), %rsi    # 0x578157
callq 0x4010c0
cmpl $0x0, %eax
jne 0x40455c
movb $0x0, 0x1ce412(%rip)    # 0x5d2969
jmp 0x4046ae
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173bf9(%rip), %rsi    # 0x578168
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x404591
movl -0x2c(%rbp), %eax
movl %eax, 0x1ce3d4(%rip)    # 0x5d2960
jmp 0x4046ac
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173bd5(%rip), %rsi    # 0x578179
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x4045c6
movl -0x2c(%rbp), %eax
movl %eax, 0x1ce3a3(%rip)    # 0x5d2964
jmp 0x4046aa
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173bb1(%rip), %rsi    # 0x57818a
leaq -0x2c(%rbp), %rdx
leaq -0x2d(%rbp), %rcx
movb $0x0, %al
callq 0x4b4340
cmpl $0x1, %eax
jne 0x40460d
cmpl $0x0, -0x2c(%rbp)
je 0x4045f9
cmpl $0x1, -0x2c(%rbp)
jne 0x40460d
cmpl $0x0, -0x2c(%rbp)
setne %al
andb $0x1, %al
movb %al, 0x1ce362(%rip)     # 0x5d296a
jmp 0x4046a8
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173b7d(%rip), %rsi    # 0x57819d
movl $0x5, %edx
callq 0x401088
cmpl $0x0, %eax
jne 0x404648
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq $0x5, %rax
movq %rax, 0x1ce32a(%rip)    # 0x5d2970
jmp 0x4046a6
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x173b48(%rip), %rsi    # 0x5781a3
callq 0x4010c0
cmpl $0x0, %eax
jne 0x404678
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x404000
xorl %edi, %edi
callq 0x4b3590
movq $0x5d07a8, %rax         # imm = 0x5D07A8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x173b15(%rip), %rsi    # 0x5781aa
movb $0x0, %al
callq 0x4b40c0
movl $0x1, %edi
callq 0x4b3590
jmp 0x4046a8
jmp 0x4046aa
jmp 0x4046ac
jmp 0x4046ae
jmp 0x4046b0
jmp 0x4046b2
jmp 0x4046b4
jmp 0x4046b6
jmp 0x4046b8
jmp 0x4046ba
jmp 0x4046bc
jmp 0x4046be
jmp 0x4046c0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x404340
cmpq $0x0, 0x1ce29a(%rip)    # 0x5d2970
jne 0x4046e3
movq -0x18(%rbp), %rax
movq %rax, 0x1ce28d(%rip)    # 0x5d2970
callq 0x401db0
callq 0x401f60
callq 0x401ef0
xorl %eax, %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)