// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/common.cpp
// Function: Common_sp::Xml::BinFile::tagStart(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void Xml::BinFile::tagStart (const string &tag) 
{ 
	ASSERT (! isText);
	
	if (tag. empty ())
		throw runtime_error (FUNC "Empty tag");
  QC_ASSERT (! contains (tag, '\0'));
  QC_ASSERT (! contains (tag, '\n'));
	size_t i = names. add (tag);
//ASSERT (i);
	const uchar b = i % 256;
	i /= 256;
	if (i > 256)
		throw runtime_error (FUNC "Too many different tag names");
	os << (uchar) i << b;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rsi, %r14
movq %rdi, %rbx
callq 0xb060
andl $0x0, (%rax)
cmpb $0x1, 0x8(%rbx)
je 0x29293
cmpq $0x0, 0x8(%r14)
je 0x29367
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x1c948
testb %al, %al
jne 0x293cb
andl $0x0, (%r15)
pushq $0xa
popq %rsi
movq %r14, %rdi
callq 0x1c948
testb %al, %al
jne 0x2949f
leaq 0x218(%rbx), %rdi
movq %r14, %rsi
callq 0x3c75a
cmpq $0x10100, %rax          # imm = 0x10100
jae 0x2957b
movq %rax, %r14
shrl $0x8, %eax
addq $0x18, %rbx
movsbl %al, %esi
movq %rbx, %rdi
callq 0xb680
movsbl %r14b, %esi
movq %rax, %rdi
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xb680
callq 0xb6c0
testl %eax, %eax
jne 0x29573
leaq 0x3269a(%rip), %rsi     # 0x5b941
leaq 0xc8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1b7b6
leaq 0xa8(%rsp), %rdi
movl $0x74c, %esi            # imm = 0x74C
callq 0x1caa3
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x1ca3c
leaq 0x308f4(%rip), %rdx     # 0x59be3
leaq 0x48(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b92d
leaq 0x3302c(%rip), %rsi     # 0x5c334
leaq 0x68(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1b7b6
leaq 0x32620(%rip), %rdx     # 0x5b93e
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1b92d
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x1ca3c
leaq 0x32f66(%rip), %rdx     # 0x5c2b4
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
leaq 0x28(%rsp), %rdi
callq 0x224fc
pushq $0x10
popq %rdi
callq 0xb300
movq %rax, %r14
leaq 0x32fbb(%rip), %rsi     # 0x5c334
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x1b7b6
leaq 0x32fe4(%rip), %rdx     # 0x5c373
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0xb940
xorl %ebp, %ebp
movq 0x5ac31(%rip), %rsi     # 0x83fe8
movq 0x5aba2(%rip), %rdx     # 0x83f60
movq %r14, %rdi
callq 0xb9d0
jmp 0x295da
callq 0xb6c0
testl %eax, %eax
jne 0x29573
leaq 0x32562(%rip), %rsi     # 0x5b941
leaq 0xc8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1b7b6
leaq 0xa8(%rsp), %rdi
movl $0x750, %esi            # imm = 0x750
callq 0x1caa3
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x1ca3c
leaq 0x307bc(%rip), %rdx     # 0x59be3
leaq 0x48(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b92d
leaq 0x32ef4(%rip), %rsi     # 0x5c334
leaq 0x68(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1b7b6
leaq 0x324e8(%rip), %rdx     # 0x5b93e
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1b92d
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x1ca3c
leaq 0x32ef9(%rip), %rdx     # 0x5c37f
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
leaq 0x28(%rsp), %rdi
callq 0x224fc
callq 0xb6c0
testl %eax, %eax
jne 0x29573
leaq 0x3248e(%rip), %rsi     # 0x5b941
leaq 0xc8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1b7b6
leaq 0xa8(%rsp), %rdi
movl $0x751, %esi            # imm = 0x751
callq 0x1caa3
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x1ca3c
leaq 0x306e8(%rip), %rdx     # 0x59be3
leaq 0x48(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1b92d
leaq 0x32e20(%rip), %rsi     # 0x5c334
leaq 0x68(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1b7b6
leaq 0x32414(%rip), %rdx     # 0x5b93e
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1b92d
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x1ca3c
leaq 0x32e3c(%rip), %rdx     # 0x5c396
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
leaq 0x28(%rsp), %rdi
callq 0x224fc
pushq $0x1
popq %rdi
callq 0xb6d0
pushq $0x10
popq %rdi
callq 0xb300
movq %rax, %r14
leaq 0x32da7(%rip), %rsi     # 0x5c334
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x1b7b6
leaq 0x32e0a(%rip), %rdx     # 0x5c3ad
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0xb940
xorl %ebp, %ebp
movq 0x5aa1d(%rip), %rsi     # 0x83fe8
movq 0x5a98e(%rip), %rdx     # 0x83f60
movq %r14, %rdi
callq 0xb9d0
jmp 0x295e2
jmp 0x295f1
jmp 0x295e2
jmp 0x295f1
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb68
jmp 0x295f4
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x29607
jmp 0x29604
jmp 0x29604
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xbb68
jmp 0x2961d
jmp 0x2961a
jmp 0x2961a
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xbb68
jmp 0x29630
jmp 0x2962d
jmp 0x2962d
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xbb68
jmp 0x29643
jmp 0x29640
jmp 0x29640
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0xbb68
jmp 0x29659
jmp 0x29656
jmp 0x29656
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbb68
jmp 0x2966f
jmp 0x2966c
jmp 0x2966c
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xbb68
jmp 0x296be
jmp 0x29686
jmp 0x29695
jmp 0x296ac
jmp 0x296ac
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb68
jmp 0x2969b
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x8(%rsp), %rdi
callq 0xbb68
testb %bpl, %bpl
jne 0x296b6
jmp 0x296be
movq %rax, %rbx
jmp 0x296be
jmp 0x296b3
movq %rax, %rbx
movq %r14, %rdi
callq 0xb470
movq %rbx, %rdi
callq 0xba30