// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/api/SamReadGroup.h
// Function: BamTools::SamReadGroup::operator=(BamTools::SamReadGroup const&)
struct API_EXPORT SamReadGroup {

    // ctor & dtor
    SamReadGroup(void);
    SamReadGroup(const std::string& id);
    SamReadGroup(const SamReadGroup& other);
    ~SamReadGroup(void);

    // query/modify entire read group
    void Clear(void);                          // clears all data fields

    // convenience query methods
    bool HasDescription(void) const;           // returns true if read group has a description
    bool HasFlowOrder(void) const;             // returns true if read group has a flow order entry
    bool HasID(void) const;                    // returns true if read group has a group ID
    bool HasKeySequence(void) const;           // returns true if read group has a key sequence
    bool HasLibrary(void) const;               // returns true if read group has a library name
    bool HasPlatformUnit(void) const;          // returns true if read group has a platform unit ID
    bool HasPredictedInsertSize(void) const;   // returns true if read group has a predicted insert size
    bool HasProductionDate(void) const;        // returns true if read group has a production date
    bool HasProgram(void) const;               // returns true if read group has a program entry
    bool HasSample(void) const;                // returns true if read group has a sample name
    bool HasSequencingCenter(void) const;      // returns true if read group has a sequencing center ID
    bool HasSequencingTechnology(void) const;  // returns true if read group has a sequencing technology ID


    // data fields
    std::string Description;                   // DS:<Description>
    std::string FlowOrder;                     // FO:<FlowOrder>
    std::string ID;                            // ID:<ID>              *Required for valid SAM header*
    std::string KeySequence;                   // KS:<KeySequence>
    std::string Library;                       // LB:<Library>
    std::string PlatformUnit;                  // PU:<PlatformUnit>
    std::string PredictedInsertSize;           // PI:<PredictedInsertSize>
    std::string ProductionDate;                // DT:<ProductionDate>
    std::string Program;                       // PG:<Program>
    std::string Sample;                        // SM:<Sample>
    std::string SequencingCenter;              // CN:<SequencingCenter>
    std::string SequencingTechnology;          // PL:<SequencingTechnology>
    std::vector<CustomHeaderTag> CustomTags;   // optional custom tags
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x32060
leaq 0x20(%rbx), %rdi
leaq 0x20(%r14), %rsi
callq 0x32060
leaq 0x40(%rbx), %rdi
leaq 0x40(%r14), %rsi
callq 0x32060
leaq 0x60(%rbx), %rdi
leaq 0x60(%r14), %rsi
callq 0x32060
movl $0x80, %esi
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0xa0, %esi
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0xc0, %esi
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0xe0, %esi
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0x100, %esi            # imm = 0x100
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0x120, %esi            # imm = 0x120
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0x140, %esi            # imm = 0x140
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0x160, %esi            # imm = 0x160
leaq (%rbx,%rsi), %rdi
addq %r14, %rsi
callq 0x32060
movl $0x180, %eax            # imm = 0x180
leaq (%rbx,%rax), %rdi
addq %rax, %r14
movq %r14, %rsi
callq 0x32550
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop