// File: /workspace/github_c_makefile_star2_O2/samtools[P]htslib/synced_bcf_reader.c
// Function: bcf_sr_set_opt
int bcf_sr_set_opt(bcf_srs_t *readers, bcf_sr_opt_t opt, ...)
{
    va_list args;
    switch (opt)
    {
        case BCF_SR_REQUIRE_IDX:
            readers->require_index = REQUIRE_IDX_;
            return 0;

        case BCF_SR_ALLOW_NO_IDX:
            readers->require_index = ALLOW_NO_IDX_;
            return 0;

        case BCF_SR_PAIR_LOGIC:
            va_start(args, opt);
            BCF_SR_AUX(readers)->sort.pair = va_arg(args, int);
            return 0;

        case BCF_SR_REGIONS_OVERLAP:
            va_start(args, opt);
            BCF_SR_AUX(readers)->regions_overlap = va_arg(args, int);
            if ( readers->regions ) readers->regions->overlap = BCF_SR_AUX(readers)->regions_overlap;
            return 0;

        case BCF_SR_TARGETS_OVERLAP:
            va_start(args, opt);
            BCF_SR_AUX(readers)->targets_overlap = va_arg(args, int);
            if ( readers->targets ) readers->targets->overlap = BCF_SR_AUX(readers)->targets_overlap;
            return 0;

        default:
            break;
    }
    return 1;
}

// Assembly:
subq $0x58, %rsp
movq %rdx, -0x50(%rsp)
movq %rcx, -0x48(%rsp)
movq %r8, -0x40(%rsp)
movq %r9, -0x38(%rsp)
testb %al, %al
je 0x20d40
movaps %xmm0, -0x30(%rsp)
movaps %xmm1, -0x20(%rsp)
movaps %xmm2, -0x10(%rsp)
movaps %xmm3, (%rsp)
movaps %xmm4, 0x10(%rsp)
movaps %xmm5, 0x20(%rsp)
movaps %xmm6, 0x30(%rsp)
movaps %xmm7, 0x40(%rsp)
cmpl $0x4, %esi
ja 0x20e46
movl %esi, %eax
leaq 0x69e6a(%rip), %rcx     # 0x8abbc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, 0x10(%rdi)
jmp 0x20ebd
leaq -0x60(%rsp), %rax
movq %rax, -0x70(%rsp)
leaq 0x60(%rsp), %rax
movq %rax, -0x78(%rsp)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, -0x80(%rsp)
movabsq $0x10, %rcx
cmpq $0x28, %rcx
ja 0x20e4d
movq %rcx, %rax
addq -0x70(%rsp), %rax
addl $0x8, %ecx
movl %ecx, -0x80(%rsp)
jmp 0x20e5b
movl $0x2, 0x10(%rdi)
jmp 0x20ebd
leaq -0x60(%rsp), %rax
movq %rax, -0x70(%rsp)
leaq 0x60(%rsp), %rax
movq %rax, -0x78(%rsp)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, -0x80(%rsp)
movabsq $0x10, %rcx
cmpq $0x28, %rcx
ja 0x20e70
movq %rcx, %rax
addq -0x70(%rsp), %rax
addl $0x8, %ecx
movl %ecx, -0x80(%rsp)
jmp 0x20e7e
leaq -0x60(%rsp), %rax
movq %rax, -0x70(%rsp)
leaq 0x60(%rsp), %rax
movq %rax, -0x78(%rsp)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, -0x80(%rsp)
movabsq $0x10, %rcx
cmpq $0x28, %rcx
ja 0x20ea0
movq %rcx, %rax
addq -0x70(%rsp), %rax
addl $0x8, %ecx
movl %ecx, -0x80(%rsp)
jmp 0x20eae
movl $0x1, %eax
jmp 0x20ebf
movq -0x78(%rsp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, -0x78(%rsp)
movl (%rax), %ecx
movq 0x88(%rdi), %rax
movl %ecx, 0x1dc(%rax)
movq 0x50(%rdi), %rdx
jmp 0x20e91
movq -0x78(%rsp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, -0x78(%rsp)
movl (%rax), %ecx
movq 0x88(%rdi), %rax
movl %ecx, 0x1d8(%rax)
movq 0x48(%rdi), %rdx
xorl %eax, %eax
testq %rdx, %rdx
je 0x20ebf
movl %ecx, 0xc8(%rdx)
jmp 0x20ebf
movq -0x78(%rsp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, -0x78(%rsp)
movl (%rax), %eax
movq 0x88(%rdi), %rcx
movl %eax, 0x1c0(%rcx)
xorl %eax, %eax
addq $0x58, %rsp
retq