// File: /workspace/github_cpp_makefile_star2_O1/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 %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rsi, %r14
movq %rdi, %r12
callq 0xa070
movl $0x0, (%rax)
cmpb $0x1, 0x8(%r12)
je 0x41c55
cmpq $0x0, 0x8(%r14)
je 0x41cf4
movq %rax, %r15
movl $0x0, (%rax)
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xa740
cmpq $-0x1, %rax
jne 0x41d5d
movl $0x0, (%r15)
movq %r14, %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0xa740
cmpq $-0x1, %rax
jne 0x41dfc
leaq 0x218(%r12), %rdi
movq %r14, %rsi
callq 0x64f6a
cmpq $0x10100, %rax          # imm = 0x10100
jae 0x41ea5
movq %rax, %rbx
addq $0x18, %r12
movb %bh, 0x8(%rsp)
leaq 0x8(%rsp), %r14
movl $0x1, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0xa640
movb %bl, (%r14)
leaq 0x8(%rsp), %rsi
movl $0x1, %edx
movq %rax, %rdi
callq 0xa640
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xa6b0
testl %eax, %eax
jne 0x41e9b
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4acc1(%rip), %rsi     # 0x8c936
leaq 0x4accd(%rip), %rdx     # 0x8c949
leaq 0xa8(%rsp), %rdi
callq 0x2fdd8
leaq 0xc8(%rsp), %rdi
movl $0x74c, %esi            # imm = 0x74C
callq 0x2d60a
leaq 0xe8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x2d562
leaq 0x48f26(%rip), %rsi     # 0x8abe5
leaq 0xe8(%rsp), %rdi
callq 0xaac0
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x41fa1
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x41fae
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4b62e(%rip), %rsi     # 0x8d33f
leaq 0x4b665(%rip), %rdx     # 0x8d37d
leaq 0x28(%rsp), %rdi
callq 0x2fdd8
leaq 0x4b655(%rip), %rsi     # 0x8d37e
leaq 0x28(%rsp), %rdi
callq 0xaac0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x41f07
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x41f14
callq 0xa6b0
testl %eax, %eax
jne 0x41e9b
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4abb9(%rip), %rsi     # 0x8c936
leaq 0x4abc5(%rip), %rdx     # 0x8c949
leaq 0xa8(%rsp), %rdi
callq 0x2fdd8
leaq 0xc8(%rsp), %rdi
movl $0x750, %esi            # imm = 0x750
callq 0x2d60a
leaq 0xe8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x2d562
leaq 0x48e1e(%rip), %rsi     # 0x8abe5
leaq 0xe8(%rsp), %rdi
callq 0xaac0
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x4202b
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x42038
callq 0xa6b0
testl %eax, %eax
jne 0x41e9b
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4ab1a(%rip), %rsi     # 0x8c936
leaq 0x4ab26(%rip), %rdx     # 0x8c949
leaq 0xa8(%rsp), %rdi
callq 0x2fdd8
leaq 0xc8(%rsp), %rdi
movl $0x751, %esi            # imm = 0x751
callq 0x2d60a
leaq 0xe8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x2d562
leaq 0x48d7f(%rip), %rsi     # 0x8abe5
leaq 0xe8(%rsp), %rdi
callq 0xaac0
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x420b5
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x420c2
movl $0x1, %edi
callq 0xa6c0
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4b47d(%rip), %rsi     # 0x8d33f
leaq 0x4b4b4(%rip), %rdx     # 0x8d37d
leaq 0x28(%rsp), %rdi
callq 0x2fdd8
leaq 0x4b4de(%rip), %rsi     # 0x8d3b8
leaq 0x28(%rsp), %rdi
callq 0xaac0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x41f55
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x41f62
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0xa930
xorl %ebp, %ebp
movq 0x6e0a4(%rip), %rsi     # 0xaffe8
movq 0x6e015(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
jmp 0x41fa1
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0xa930
xorl %ebp, %ebp
movq 0x6e056(%rip), %rsi     # 0xaffe8
movq 0x6dfc7(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4b365(%rip), %rsi     # 0x8d33f
leaq 0x4b39c(%rip), %rdx     # 0x8d37d
leaq 0x88(%rsp), %rdi
callq 0x2fdd8
leaq 0x4a93e(%rip), %rsi     # 0x8c933
leaq 0x88(%rsp), %rdi
callq 0xaac0
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x4213f
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x4214c
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4b2db(%rip), %rsi     # 0x8d33f
leaq 0x4b312(%rip), %rdx     # 0x8d37d
leaq 0x88(%rsp), %rdi
callq 0x2fdd8
leaq 0x4a8b4(%rip), %rsi     # 0x8c933
leaq 0x88(%rsp), %rdi
callq 0xaac0
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x421b0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x421bd
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4b251(%rip), %rsi     # 0x8d33f
leaq 0x4b288(%rip), %rdx     # 0x8d37d
leaq 0x88(%rsp), %rdi
callq 0x2fdd8
leaq 0x4a82a(%rip), %rsi     # 0x8c933
leaq 0x88(%rsp), %rdi
callq 0xaac0
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42221
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x4222e
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
movq 0x8(%rax), %rsi
leaq 0x68(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x2d562
leaq 0x4b141(%rip), %rsi     # 0x8d2bf
leaq 0x28(%rsp), %rdi
callq 0xaac0
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x4228b
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x42298
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
movq 0x8(%rax), %rsi
leaq 0x68(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x2d562
leaq 0x4b19b(%rip), %rsi     # 0x8d38a
leaq 0x28(%rsp), %rdi
callq 0xaac0
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x422b9
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x422c6
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
movq 0x8(%rax), %rsi
leaq 0x68(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x2d562
leaq 0x4b141(%rip), %rsi     # 0x8d3a1
leaq 0x28(%rsp), %rdi
callq 0xaac0
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x422e7
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x422f4
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x3523b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x3523b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x3523b
jmp 0x4231d
jmp 0x42339
jmp 0x4231d
jmp 0x42339
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4233c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x4233c
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42360
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x42360
jmp 0x4235d
jmp 0x4235d
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x42380
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x42380
jmp 0x4237d
jmp 0x4237d
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x423a6
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x423a6
jmp 0x423a3
jmp 0x423a3
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x423c6
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x423c6
jmp 0x423c3
jmp 0x423c3
movq %rax, %rbx
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x423f0
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x423f0
jmp 0x423ed
jmp 0x423ed
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4241a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x4241a
jmp 0x42417
jmp 0x42417
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x42496
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x42496
jmp 0x42441
jmp 0x4245d
jmp 0x4247c
jmp 0x4247c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x42463
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x42463
movq %rax, %rbx
movb $0x1, %bpl
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x42489
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x42489
movq %rax, %rbx
jmp 0x42496
jmp 0x42483
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x42496
movq %r14, %rdi
callq 0xa440
movq %rbx, %rdi
callq 0xaa10