// File: /workspace/github_c_makefile_star2_O0/wuxb45[P]SLB/lib1.c
// Function: rgen_helper
int
rgen_helper(const int argc, char ** const argv, struct rgen ** const gen_out)
{
  *gen_out = NULL;
  if ((argc < 1) || (strcmp("rgen", argv[0]) != 0)) {
    return -1;
  }
  if (0 == strcmp(argv[1], "unizipf")) {
    if (argc < 5) return -1;
    const u64 min = strtoull(argv[2], NULL, 10);
    const u64 max = strtoull(argv[3], NULL, 10);
    const u64 uf = strtoull(argv[4], NULL, 10);
    struct rgen * const gen = rgen_new_unizipf(min, max, uf);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 5;
  } else if (0 == strcmp(argv[1], "uniform")) {
    if (argc < 4) return -1;
    const u64 min = strtoull(argv[2], NULL, 10);
    const u64 max = strtoull(argv[3], NULL, 10);
    struct rgen * const gen = rgen_new_uniform(min, max);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 4;
  } else if (0 == strcmp(argv[1], "zipfian")) {
    if (argc < 4) return -1;
    const u64 min = strtoull(argv[2], NULL, 10);
    const u64 max = strtoull(argv[3], NULL, 10);
    struct rgen * const gen = rgen_new_zipfian(min, max);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 4;
  } else if (0 == strcmp(argv[1], "counter")) {
    if (argc < 4) return -1;
    const u64 min = strtoull(argv[2], NULL, 10);
    const u64 max = strtoull(argv[3], NULL, 10);
    struct rgen * const gen = rgen_new_counter(min, max);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 4;
  } else if (0 == strcmp(argv[1], "reducer")) {
    if (argc < 4) return -1;
    const u64 min = strtoull(argv[2], NULL, 10);
    const u64 max = strtoull(argv[3], NULL, 10);
    struct rgen * const gen = rgen_new_reducer(min, max);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 4;
  } else if (0 == strcmp(argv[1], "skipinc")) {
    if (argc < 5) return -1;
    const u64 min = strtoull(argv[2], NULL, 10);
    const u64 max = strtoull(argv[3], NULL, 10);
    const u64 inc = strtoull(argv[4], NULL, 10);
    struct rgen * const gen = rgen_new_skipinc(min, max, inc);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 5;
  } else if (0 == strcmp(argv[1], "trace32")) {
    if (argc < 3) return -1;
    struct rgen * const gen = rgen_new_trace32(argv[2]);
    if (gen == NULL) return -1;
    *gen_out = gen;
    return 3;
  }
  return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
cmpl $0x1, -0x8(%rbp)
jl 0xc4df
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0xef23(%rip), %rdi      # 0x1b3f8
callq 0x62d0
cmpl $0x0, %eax
je 0xc4eb
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xef03(%rip), %rsi      # 0x1b3fd
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc5aa
cmpl $0x5, -0x8(%rbp)
jge 0xc51d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0xbe40
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0xc593
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xee4c(%rip), %rsi      # 0x1b405
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc64b
cmpl $0x4, -0x8(%rbp)
jge 0xc5dc
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0xbf60
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0xc634
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x4, -0x4(%rbp)
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xedb3(%rip), %rsi      # 0x1b40d
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc6ec
cmpl $0x4, -0x8(%rbp)
jge 0xc67d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0xba00
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0xc6d5
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x68(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x4, -0x4(%rbp)
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xed1a(%rip), %rsi      # 0x1b415
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc78d
cmpl $0x4, -0x8(%rbp)
jge 0xc71e
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0xb450
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
jne 0xc776
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x80(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x4, -0x4(%rbp)
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xec81(%rip), %rsi      # 0x1b41d
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc843
cmpl $0x4, -0x8(%rbp)
jge 0xc7bf
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0xb820
movq %rax, -0x98(%rbp)
cmpq $0x0, -0x98(%rbp)
jne 0xc829
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x98(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x4, -0x4(%rbp)
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xebd3(%rip), %rsi      # 0x1b425
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc91a
cmpl $0x5, -0x8(%rbp)
jge 0xc875
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x62a0
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
callq 0xb620
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xb8(%rbp)
jne 0xc903
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0xb8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0xeb04(%rip), %rsi      # 0x1b42d
callq 0x62d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xc983
cmpl $0x3, -0x8(%rbp)
jge 0xc945
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0a0
movq %rax, -0xc0(%rbp)
cmpq $0x0, -0xc0(%rbp)
jne 0xc96c
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xc996
movq -0xc0(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movl $0x3, -0x4(%rbp)
jmp 0xc996
jmp 0xc985
jmp 0xc987
jmp 0xc989
jmp 0xc98b
jmp 0xc98d
jmp 0xc98f
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)