// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/test/sam.c
// Function: samrecord_layout
static void samrecord_layout(void)
{
    static const char qnames[] = "data:,"
"@SQ\tSN:CHROMOSOME_II\tLN:5000\n"
    "a\t0\tCHROMOSOME_II\t100\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
   "bc\t0\tCHROMOSOME_II\t200\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
  "def\t0\tCHROMOSOME_II\t300\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
 "ghij\t0\tCHROMOSOME_II\t400\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
"klmno\t0\tCHROMOSOME_II\t500\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
     ABC250 "\t0\tCHROMOSOME_II\t600\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
    ABC250 "1\t0\tCHROMOSOME_II\t650\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
   ABC250 "12\t0\tCHROMOSOME_II\t700\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
  ABC250 "123\t0\tCHROMOSOME_II\t750\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
 ABC250 "1234\t0\tCHROMOSOME_II\t800\t10\t4M\t*\t0\t0\tATGC\tqqqq\n"
;

    size_t bam1_t_size, bam1_t_size2;

    assert(sizeof(hts_pos_t) == 8 || sizeof(hts_pos_t) == 4);
    int core_size = sizeof(hts_pos_t) == 8 ? 48 : 36;
    bam1_t_size = (core_size + sizeof(int) + sizeof(char *) + sizeof(uint64_t)
                   + 2 * sizeof(uint32_t));
    bam1_t_size2 = bam1_t_size + 4;  // Account for padding on some platforms

    if (sizeof (bam1_core_t) != core_size)
        fail("sizeof bam1_core_t is %zu, expected %d",
             sizeof (bam1_core_t), core_size);

    if (sizeof (bam1_t) != bam1_t_size && sizeof (bam1_t) != bam1_t_size2)
        fail("sizeof bam1_t is %zu, expected either %zu or %zu",
             sizeof(bam1_t), bam1_t_size, bam1_t_size2);

    copy_check_alignment(qnames, "SAM",
                         "test/sam_alignment.tmp.bam", "wb", NULL);
    copy_check_alignment("test/sam_alignment.tmp.bam", "BAM",
                         "test/sam_alignment.tmp.cram", "wc", "test/ce.fa");
    copy_check_alignment("test/sam_alignment.tmp.cram", "CRAM",
                         "test/sam_alignment.tmp.sam_", "w", NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x30, -0x14(%rbp)
movslq -0x14(%rbp), %rax
addq $0x4, %rax
addq $0x8, %rax
addq $0x8, %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x10(%rbp)
movslq -0x14(%rbp), %rcx
movl $0x30, %eax
cmpq %rcx, %rax
je 0x7627
movl -0x14(%rbp), %edx
leaq 0xe9ecd(%rip), %rdi     # 0xf14e8
movl $0x30, %esi
movb $0x0, %al
callq 0x5b50
movl $0x50, %eax
cmpq -0x8(%rbp), %rax
je 0x7658
movl $0x50, %eax
cmpq -0x10(%rbp), %rax
je 0x7658
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
leaq 0xe9ec3(%rip), %rdi     # 0xf150f
movl $0x50, %esi
movb $0x0, %al
callq 0x5b50
leaq 0xe7fe1(%rip), %rdi     # 0xef640
leaq 0xeacf4(%rip), %rsi     # 0xf235a
leaq 0xe9ed3(%rip), %rdx     # 0xf1540
leaq 0xe9ee7(%rip), %rcx     # 0xf155b
xorl %eax, %eax
movl %eax, %r8d
callq 0xd7c0
leaq 0xe9ebb(%rip), %rdi     # 0xf1540
leaq 0xe9ed2(%rip), %rsi     # 0xf155e
leaq 0xe9ecf(%rip), %rdx     # 0xf1562
leaq 0xe9ee4(%rip), %rcx     # 0xf157e
leaq 0xe9ee0(%rip), %r8      # 0xf1581
callq 0xd7c0
leaq 0xe9eb5(%rip), %rdi     # 0xf1562
leaq 0xe9ed8(%rip), %rsi     # 0xf158c
leaq 0xe9ed6(%rip), %rdx     # 0xf1591
leaq 0xef62c(%rip), %rcx     # 0xf6cee
xorl %eax, %eax
movl %eax, %r8d
callq 0xd7c0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)