// File: /workspace/github_cpp_makefile_star2_O3/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 0x417b9
cmpq $0x0, 0x8(%r14)
je 0x41858
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xa740
cmpq $-0x1, %rax
jne 0x418c1
movl $0x0, (%r15)
movq %r14, %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0xa740
cmpq $-0x1, %rax
jne 0x41960
leaq 0x218(%r12), %rdi
movq %r14, %rsi
callq 0x64b14
cmpq $0x10100, %rax          # imm = 0x10100
jae 0x41a09
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 0x419ff
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4b15d(%rip), %rsi     # 0x8c936
leaq 0x4b169(%rip), %rdx     # 0x8c949
leaq 0xa8(%rsp), %rdi
callq 0x2fa1a
leaq 0xc8(%rsp), %rdi
movl $0x74c, %esi            # imm = 0x74C
callq 0x2d1fa
leaq 0xe8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x2d152
leaq 0x493c2(%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 0x41b05
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x41b12
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4bab4(%rip), %rsi     # 0x8d329
leaq 0x4baeb(%rip), %rdx     # 0x8d367
leaq 0x28(%rsp), %rdi
callq 0x2fa1a
leaq 0x4badb(%rip), %rsi     # 0x8d368
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 0x41a6b
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x41a78
callq 0xa6b0
testl %eax, %eax
jne 0x419ff
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4b055(%rip), %rsi     # 0x8c936
leaq 0x4b061(%rip), %rdx     # 0x8c949
leaq 0xa8(%rsp), %rdi
callq 0x2fa1a
leaq 0xc8(%rsp), %rdi
movl $0x750, %esi            # imm = 0x750
callq 0x2d1fa
leaq 0xe8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x2d152
leaq 0x492ba(%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 0x41b8f
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x41b9c
callq 0xa6b0
testl %eax, %eax
jne 0x419ff
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4afb6(%rip), %rsi     # 0x8c936
leaq 0x4afc2(%rip), %rdx     # 0x8c949
leaq 0xa8(%rsp), %rdi
callq 0x2fa1a
leaq 0xc8(%rsp), %rdi
movl $0x751, %esi            # imm = 0x751
callq 0x2d1fa
leaq 0xe8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x2d152
leaq 0x4921b(%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 0x41c19
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x41c26
movl $0x1, %edi
callq 0xa6c0
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4b903(%rip), %rsi     # 0x8d329
leaq 0x4b93a(%rip), %rdx     # 0x8d367
leaq 0x28(%rsp), %rdi
callq 0x2fa1a
leaq 0x4b964(%rip), %rsi     # 0x8d3a2
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 0x41ab9
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x41ac6
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 0x6e540(%rip), %rsi     # 0xaffe8
movq 0x6e4b1(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
jmp 0x41b05
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 0x6e4f2(%rip), %rsi     # 0xaffe8
movq 0x6e463(%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 0x4b7eb(%rip), %rsi     # 0x8d329
leaq 0x4b822(%rip), %rdx     # 0x8d367
leaq 0x88(%rsp), %rdi
callq 0x2fa1a
leaq 0x4adda(%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 0x41ca3
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x41cb0
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 0x4b761(%rip), %rsi     # 0x8d329
leaq 0x4b798(%rip), %rdx     # 0x8d367
leaq 0x88(%rsp), %rdi
callq 0x2fa1a
leaq 0x4ad50(%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 0x41d14
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x41d21
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 0x4b6d7(%rip), %rsi     # 0x8d329
leaq 0x4b70e(%rip), %rdx     # 0x8d367
leaq 0x88(%rsp), %rdi
callq 0x2fa1a
leaq 0x4acc6(%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 0x41d85
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x41d92
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 0x2d152
leaq 0x4b5c7(%rip), %rsi     # 0x8d2a9
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 0x41def
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x41dfc
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 0x2d152
leaq 0x4b621(%rip), %rsi     # 0x8d374
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 0x41e1d
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x41e2a
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 0x2d152
leaq 0x4b5c7(%rip), %rsi     # 0x8d38b
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 0x41e4b
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x41e58
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 0x34fa2
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 0x34fa2
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 0x34fa2
jmp 0x41e81
jmp 0x41e9d
jmp 0x41e81
jmp 0x41e9d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x41ea0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41ea0
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x41ec4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41ec4
jmp 0x41ec1
jmp 0x41ec1
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x41ee4
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41ee4
jmp 0x41ee1
jmp 0x41ee1
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x41f0a
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41f0a
jmp 0x41f07
jmp 0x41f07
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x41f2a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41f2a
jmp 0x41f27
jmp 0x41f27
movq %rax, %rbx
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x41f54
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41f54
jmp 0x41f51
jmp 0x41f51
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x41f7e
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x41f7e
jmp 0x41f7b
jmp 0x41f7b
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x4200f
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x4200f
jmp 0x41fa9
jmp 0x41fe1
jmp 0x41ffd
jmp 0x41ffd
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x41fc3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x41fda
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %bpl, %bpl
jne 0x42007
jmp 0x4200f
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x42007
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x42007
movq %rax, %rbx
jmp 0x4200f
jmp 0x42004
movq %rax, %rbx
movq %r14, %rdi
callq 0xa440
movq %rbx, %rdi
callq 0xaa10
nop