// File: /workspace/github_cpp_makefile_star2_O2/bcthomas[P]shrinksam/src/sam.h
// Function: Shrinksam::Sam::Sam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
inline Sam::Sam(const std::string &line) {
		std::vector<std::string> temp = split(line, '\t'); // from split.h
		qname = temp[0];
		flag = std::stoi(temp[1]);
		rname = temp[2];
		pos = std::stoi(temp[3]);
		mapq = std::stoi(temp[4]);
		cigar = temp[5];
		rnext = temp[6];
		pnext = std::stoi(temp[7]);
		tlen = std::stoi(temp[8]);
		seq = temp[9];
		qual = temp[10];
		// all the rest in the vector
		for(auto it = temp.begin() + 11; it < temp.end(); ++it)
			other.push_back(*it); 
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
xorl %eax, %eax
movb %al, 0x10(%rdi)
orl $-0x1, 0x20(%rdi)
leaq 0x28(%rdi), %r12
leaq 0x38(%rdi), %rcx
movq %rcx, 0x28(%rdi)
andq $0x0, 0x30(%rdi)
movb %al, 0x38(%rdi)
orq $-0x1, 0x48(%rdi)
leaq 0x60(%rdi), %rcx
movq %rcx, 0x50(%rdi)
andq $0x0, 0x58(%rdi)
leaq 0x50(%rdi), %rcx
movq %rcx, 0x20(%rsp)
movb %al, 0x60(%rdi)
leaq 0x80(%rdi), %rcx
movq %rcx, 0x70(%rdi)
andq $0x0, 0x78(%rdi)
movb %al, 0x80(%rdi)
orq $-0x1, 0x90(%rdi)
leaq 0xa8(%rdi), %rcx
movq %rcx, 0x98(%rdi)
andq $0x0, 0xa0(%rdi)
leaq 0x70(%rdi), %rcx
movq %rcx, 0x18(%rsp)
leaq 0x98(%rdi), %r13
movb %al, 0xa8(%rdi)
leaq 0xc8(%rdi), %rcx
movq %rcx, 0xb8(%rdi)
andq $0x0, 0xc0(%rdi)
leaq 0xb8(%rdi), %rbp
movb %al, 0xc8(%rdi)
leaq 0xd8(%rdi), %r14
xorps %xmm0, %xmm0
movups %xmm0, 0xd8(%rdi)
andq $0x0, 0xe8(%rdi)
movq %rsp, %rdi
pushq $0x9
popq %rdx
callq 0x4231
movq (%rsp), %rsi
movq %rbx, %rdi
callq 0x2130
movq (%rsp), %rdi
addq $0x20, %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x370c
movl %eax, 0x20(%rbx)
movq (%rsp), %rsi
addq $0x40, %rsi
movq %r12, %rdi
callq 0x2130
movq (%rsp), %rdi
addq $0x60, %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x370c
movl %eax, 0x48(%rbx)
movq (%rsp), %rdi
subq $-0x80, %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x370c
movl %eax, 0x4c(%rbx)
movl $0xa0, %esi
addq (%rsp), %rsi
movq 0x20(%rsp), %rdi
callq 0x2130
movl $0xc0, %esi
addq (%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x2130
movl $0xe0, %edi
addq (%rsp), %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x370c
movl %eax, 0x90(%rbx)
movl $0x100, %edi            # imm = 0x100
addq (%rsp), %rdi
pushq $0xa
popq %rdx
xorl %esi, %esi
callq 0x370c
movl %eax, 0x94(%rbx)
movl $0x120, %esi            # imm = 0x120
addq (%rsp), %rsi
movq %r13, %rdi
callq 0x2130
movl $0x140, %esi            # imm = 0x140
addq (%rsp), %rsi
movq %rbp, %rdi
callq 0x2130
movl $0x160, %r15d           # imm = 0x160
addq (%rsp), %r15
cmpq 0x8(%rsp), %r15
jae 0x34fa
movq %r14, %rdi
movq %r15, %rsi
callq 0x3728
addq $0x20, %r15
jmp 0x34e2
movq %rsp, %rdi
callq 0x3754
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x3523
jmp 0x3518
movq %rax, %r15
movq %rsp, %rdi
callq 0x3754
movq %r14, %rdi
callq 0x3754
movq %rbp, %rdi
callq 0x20f0
movq %r13, %rdi
callq 0x20f0
movq 0x18(%rsp), %rdi
callq 0x20f0
movq 0x20(%rsp), %rdi
callq 0x20f0
movq %r12, %rdi
callq 0x20f0
movq %rbx, %rdi
callq 0x20f0
movq %r15, %rdi
callq 0x2370