// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/synced_bcf_reader.c
// Function: bcf_sr_set_regions
int bcf_sr_set_regions(bcf_srs_t *readers, const char *regions, int is_file)
{
    if ( readers->nreaders || readers->regions )
    {
        if ( readers->regions ) bcf_sr_regions_destroy(readers->regions);
        readers->regions = bcf_sr_regions_init(regions,is_file,0,1,-2);
        bcf_sr_seek_start(readers);
        return 0;
    }

    readers->regions = bcf_sr_regions_init(regions,is_file,0,1,-2);
    if ( !readers->regions ) return -1;
    readers->explicit_regs = 1;
    readers->require_index = REQUIRE_IDX_;
    readers->regions->overlap = BCF_SR_AUX(readers)->regions_overlap;
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r14
cmpl $0x0, 0x30(%rdi)
movq 0x48(%rdi), %rdi
je 0x28d74
addq $0x48, %r14
testq %rdi, %rdi
jne 0x28d81
jmp 0x28d86
testq %rdi, %rdi
je 0x28eed
addq $0x48, %r14
callq 0x28f39
xorl %ebx, %ebx
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl $0x1, %ecx
movl $0xfffffffe, %r8d       # imm = 0xFFFFFFFE
callq 0x2903e
movq %rax, (%r14)
movslq 0x98(%rax), %rdx
testq %rdx, %rdx
jle 0x28eba
movq 0x80(%rax), %rcx
leal 0x3(%rdx), %esi
decq %rdx
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
shrl $0x2, %esi
shlq $0x5, %rsi
leaq (%rsi,%rsi,2), %rdx
movdqa 0x89e14(%rip), %xmm1    # 0xb2bf0
movdqa 0x89e1c(%rip), %xmm2    # 0xb2c00
xorl %esi, %esi
movdqa 0x89e22(%rip), %xmm3    # 0xb2c10
pxor %xmm3, %xmm0
pcmpeqd %xmm4, %xmm4
movdqa 0x89e22(%rip), %xmm5    # 0xb2c20
movdqa %xmm2, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm0, %xmm7
pcmpeqd %xmm0, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
movd %xmm6, %edi
notl %edi
testb $0x1, %dil
je 0x28e3b
movl $0xffffffff, 0x10(%rcx,%rsi) # imm = 0xFFFFFFFF
pxor %xmm4, %xmm6
pextrw $0x4, %xmm6, %edi
testb $0x1, %dil
je 0x28e52
movl $0xffffffff, 0x28(%rcx,%rsi) # imm = 0xFFFFFFFF
movdqa %xmm1, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm0, %xmm7
pcmpeqd %xmm0, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
pxor %xmm4, %xmm6
pextrw $0x0, %xmm6, %edi
testb $0x1, %dil
je 0x28e92
movl $0xffffffff, 0x40(%rcx,%rsi) # imm = 0xFFFFFFFF
pextrw $0x4, %xmm6, %edi
testb $0x1, %dil
je 0x28ea5
movl $0xffffffff, 0x58(%rcx,%rsi) # imm = 0xFFFFFFFF
paddq %xmm5, %xmm2
paddq %xmm5, %xmm1
addq $0x60, %rsi
cmpq %rsi, %rdx
jne 0x28dfe
movl $0x0, 0x9c(%rax)
pcmpeqd %xmm0, %xmm0
movdqu %xmm0, 0xa0(%rax)
movl $0xffffffff, 0xb0(%rax) # imm = 0xFFFFFFFF
movdqu %xmm0, 0xb8(%rax)
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
xorl %ebx, %ebx
movl $0x1, %r12d
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl $0x1, %ecx
movl $0xfffffffe, %r8d       # imm = 0xFFFFFFFE
callq 0x2903e
movq %rax, 0x48(%r14)
testq %rax, %rax
je 0x28f32
movl %r12d, 0x38(%r14)
movl %r12d, 0x10(%r14)
movq 0x88(%r14), %rcx
movl 0x1d8(%rcx), %ecx
movl %ecx, 0xc8(%rax)
jmp 0x28ee2
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0x28ee2