// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/test/test_kstring.c
// Function: main
int main(int argc, char **argv) {
    int opt, res = EXIT_SUCCESS;
    int64_t start = 0;
    int64_t end   = 0;
    char *test    = NULL;
    int verbose = 0;

    while ((opt = getopt(argc, argv, "e:s:t:v")) != -1) {
        switch (opt) {
        case 's':
            start = strtoll(optarg, NULL, 0);
            break;
        case 'e':
            end = strtoll(optarg, NULL, 0);
            break;
        case 't':
            test = optarg;
            break;
        case 'v':
            verbose++;
            break;
        default:
            fprintf(stderr, "Usage : %s [-s <num>] [-e <num>] [-t <test>]\n",
                    argv[0]);
            return EXIT_FAILURE;
        }
    }

    if (!test || strcmp(test, "kroundup_size_t") == 0)
        if (test_kroundup_size_t(verbose) != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kroundup_signed") == 0)
        if (test_kroundup_signed(verbose) != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kputuw") == 0)
        if (test_kputuw(start, end) != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kputw") == 0)
        if (test_kputw(start, end) != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kputll") == 0)
        if (test_kputll(start, end) != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kgetline") == 0)
        if (test_kgetline() != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kgetline2") == 0)
        if (test_kgetline2() != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kinsertchar") == 0)
        if (test_kinsertchar() != 0) res = EXIT_FAILURE;

    if (!test || strcmp(test, "kinsertstr") == 0)
        if (test_kinsertstr() != 0) res = EXIT_FAILURE;

    return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x4fff(%rip), %rdx      # 0x62f9
callq 0x1060
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
je 0x13b1
movl -0x14(%rbp), %eax
addl $-0x65, %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0x11, %eax
ja 0x1381
movq -0x40(%rbp), %rax
leaq 0x4ce9(%rip), %rcx      # 0x6010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x7c91(%rip), %rax      # 0x8fc8
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1050
movq %rax, -0x20(%rbp)
jmp 0x13ac
movq 0x7c76(%rip), %rax      # 0x8fc8
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1050
movq %rax, -0x28(%rbp)
jmp 0x13ac
movq 0x7c5b(%rip), %rax      # 0x8fc8
movq (%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x13ac
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x13ac
movq 0x7c50(%rip), %rax      # 0x8fd8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x4f68(%rip), %rsi      # 0x6301
movb $0x0, %al
callq 0x1170
movl $0x1, -0x4(%rbp)
jmp 0x157c
jmp 0x12ec
cmpq $0x0, -0x30(%rbp)
je 0x13cd
movq -0x30(%rbp), %rdi
leaq 0x4f6c(%rip), %rsi      # 0x632f
callq 0x1140
cmpl $0x0, %eax
jne 0x13e3
movl -0x34(%rbp), %edi
callq 0x1590
cmpl $0x0, %eax
je 0x13e1
movl $0x1, -0x18(%rbp)
jmp 0x13e3
cmpq $0x0, -0x30(%rbp)
je 0x13ff
movq -0x30(%rbp), %rdi
leaq 0x4f4a(%rip), %rsi      # 0x633f
callq 0x1140
cmpl $0x0, %eax
jne 0x1415
movl -0x34(%rbp), %edi
callq 0x18d0
cmpl $0x0, %eax
je 0x1413
movl $0x1, -0x18(%rbp)
jmp 0x1415
cmpq $0x0, -0x30(%rbp)
je 0x1431
movq -0x30(%rbp), %rdi
leaq 0x4f28(%rip), %rsi      # 0x634f
callq 0x1140
cmpl $0x0, %eax
jne 0x144c
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x1ad0
cmpl $0x0, %eax
je 0x144a
movl $0x1, -0x18(%rbp)
jmp 0x144c
cmpq $0x0, -0x30(%rbp)
je 0x1468
movq -0x30(%rbp), %rdi
leaq 0x4ef8(%rip), %rsi      # 0x6356
callq 0x1140
cmpl $0x0, %eax
jne 0x1483
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x1c80
cmpl $0x0, %eax
je 0x1481
movl $0x1, -0x18(%rbp)
jmp 0x1483
cmpq $0x0, -0x30(%rbp)
je 0x149f
movq -0x30(%rbp), %rdi
leaq 0x4ec7(%rip), %rsi      # 0x635c
callq 0x1140
cmpl $0x0, %eax
jne 0x14ba
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x1ec0
cmpl $0x0, %eax
je 0x14b8
movl $0x1, -0x18(%rbp)
jmp 0x14ba
cmpq $0x0, -0x30(%rbp)
je 0x14d6
movq -0x30(%rbp), %rdi
leaq 0x4e97(%rip), %rsi      # 0x6363
callq 0x1140
cmpl $0x0, %eax
jne 0x14e9
callq 0x2130
cmpl $0x0, %eax
je 0x14e7
movl $0x1, -0x18(%rbp)
jmp 0x14e9
cmpq $0x0, -0x30(%rbp)
je 0x1505
movq -0x30(%rbp), %rdi
leaq 0x4e71(%rip), %rsi      # 0x636c
callq 0x1140
cmpl $0x0, %eax
jne 0x1518
callq 0x2340
cmpl $0x0, %eax
je 0x1516
movl $0x1, -0x18(%rbp)
jmp 0x1518
cmpq $0x0, -0x30(%rbp)
je 0x1534
movq -0x30(%rbp), %rdi
leaq 0x4e4c(%rip), %rsi      # 0x6376
callq 0x1140
cmpl $0x0, %eax
jne 0x1547
callq 0x2550
cmpl $0x0, %eax
je 0x1545
movl $0x1, -0x18(%rbp)
jmp 0x1547
cmpq $0x0, -0x30(%rbp)
je 0x1563
movq -0x30(%rbp), %rdi
leaq 0x4e29(%rip), %rsi      # 0x6382
callq 0x1140
cmpl $0x0, %eax
jne 0x1576
callq 0x2840
cmpl $0x0, %eax
je 0x1574
movl $0x1, -0x18(%rbp)
jmp 0x1576
movl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)