// File: ncbi[P]amr/common.cpp
// Function: Common_sp::Json::Json(Common_sp::JsonContainer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
Json::Json (JsonContainer* parent,
            const string& name)
{ 
  ASSERT (parent);
  
  if (const JsonArray* jArray = parent->asJsonArray ())
  {
    ASSERT (name. empty ());  
    var_cast (jArray) -> data << this;
  }
  else if (const JsonMap* jMap = parent->asJsonMap ())
  {
    ASSERT (! name. empty ());  
    if (contains (jMap->data, name))
      throw runtime_error (FUNC "Duplicate name in JSON map: " + strQuote (name));
    var_cast (jMap) -> data [name] = this;
  }
  // throw() in a child constructor will invoke terminate() if an ancestor is JsonArray or JsonMap
}

// Assembly:
subq $0x478, %rsp            # imm = 0x478
movq %rdi, 0x470(%rsp)
movq %rsi, 0x468(%rsp)
movq %rdx, 0x460(%rsp)
movq 0x470(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x2aad0
movq 0x78(%rsp), %rax
leaq 0xa9753(%rip), %rcx     # 0x104940
addq $0x10, %rcx
movq %rcx, (%rax)
callq 0xc090
movl $0x0, (%rax)
cmpq $0x0, 0x468(%rsp)
jne 0x5b495
callq 0xc8c0
cmpl $0x0, %eax
jne 0x5b48b
leaq 0x3bf(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xcd00
movq 0x70(%rsp), %rdx
leaq 0x727df(%rip), %rsi     # 0xcda19
leaq 0x3c0(%rsp), %rdi
callq 0x29fd0
jmp 0x5b249
leaq 0x388(%rsp), %rdi
movl $0xbe3, %esi            # imm = 0xBE3
callq 0x2ded0
jmp 0x5b25d
leaq 0x3e0(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
leaq 0x388(%rsp), %rdx
callq 0x2dde0
jmp 0x5b27c
leaq 0x7091e(%rip), %rdx     # 0xcbba1
leaq 0x400(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b29a
leaq 0x347(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xcd00
movq 0x68(%rsp), %rdx
leaq 0x73b03(%rip), %rsi     # 0xcedbb
leaq 0x348(%rsp), %rdi
callq 0x29fd0
jmp 0x5b2c7
leaq 0x72748(%rip), %rdx     # 0xcda16
leaq 0x368(%rsp), %rdi
leaq 0x348(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b2e5
leaq 0x420(%rsp), %rdi
leaq 0x400(%rsp), %rsi
leaq 0x368(%rsp), %rdx
callq 0x2dde0
jmp 0x5b304
leaq 0x73ae7(%rip), %rdx     # 0xcedf2
leaq 0x440(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b322
leaq 0x440(%rsp), %rdi
callq 0x3e9b0
jmp 0x5b331
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b46c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b45f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b452
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b438
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b42b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b41e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b411
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
leaq 0x440(%rsp), %rdi
callq 0xce98
leaq 0x420(%rsp), %rdi
callq 0xce98
leaq 0x368(%rsp), %rdi
callq 0xce98
leaq 0x348(%rsp), %rdi
callq 0xce98
leaq 0x347(%rsp), %rdi
callq 0xc7a0
leaq 0x400(%rsp), %rdi
callq 0xce98
leaq 0x3e0(%rsp), %rdi
callq 0xce98
leaq 0x388(%rsp), %rdi
callq 0xce98
leaq 0x3c0(%rsp), %rdi
callq 0xce98
leaq 0x3bf(%rsp), %rdi
callq 0xc7a0
jmp 0x5bca5
movl $0x1, %edi
callq 0xc8d0
movq 0x468(%rsp), %rdi
movq (%rdi), %rax
movq 0x70(%rax), %rax
callq *%rax
movq %rax, 0x60(%rsp)
jmp 0x5b4ad
movq 0x60(%rsp), %rax
movq %rax, 0x338(%rsp)
cmpq $0x0, 0x338(%rsp)
je 0x5b7b7
callq 0xc090
movl $0x0, (%rax)
movq 0x460(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0x5b789
callq 0xc8c0
cmpl $0x0, %eax
jne 0x5b77f
leaq 0x297(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xcd00
movq 0x58(%rsp), %rdx
leaq 0x72504(%rip), %rsi     # 0xcda19
leaq 0x298(%rsp), %rdi
callq 0x29fd0
jmp 0x5b524
leaq 0x270(%rsp), %rdi
movl $0xbe7, %esi            # imm = 0xBE7
callq 0x2ded0
jmp 0x5b538
leaq 0x2b8(%rsp), %rdi
leaq 0x298(%rsp), %rsi
leaq 0x270(%rsp), %rdx
callq 0x2dde0
jmp 0x5b557
leaq 0x70643(%rip), %rdx     # 0xcbba1
leaq 0x2d8(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b575
leaq 0x22f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xcd00
movq 0x50(%rsp), %rdx
leaq 0x73828(%rip), %rsi     # 0xcedbb
leaq 0x230(%rsp), %rdi
callq 0x29fd0
jmp 0x5b5a2
leaq 0x7246d(%rip), %rdx     # 0xcda16
leaq 0x250(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b5c0
leaq 0x2f8(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
leaq 0x250(%rsp), %rdx
callq 0x2dde0
jmp 0x5b5df
leaq 0x732a7(%rip), %rdx     # 0xce88d
leaq 0x318(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b5fd
leaq 0x318(%rsp), %rdi
callq 0x3e9b0
jmp 0x5b60c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5bca5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b76d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b760
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b753
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b746
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b72c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b71f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b712
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5b705
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
leaq 0x318(%rsp), %rdi
callq 0xce98
leaq 0x2f8(%rsp), %rdi
callq 0xce98
leaq 0x250(%rsp), %rdi
callq 0xce98
leaq 0x230(%rsp), %rdi
callq 0xce98
leaq 0x22f(%rsp), %rdi
callq 0xc7a0
leaq 0x2d8(%rsp), %rdi
callq 0xce98
leaq 0x2b8(%rsp), %rdi
callq 0xce98
leaq 0x270(%rsp), %rdi
callq 0xce98
leaq 0x298(%rsp), %rdi
callq 0xce98
leaq 0x297(%rsp), %rdi
callq 0xc7a0
jmp 0x5bca5
movl $0x1, %edi
callq 0xc8d0
movq 0x338(%rsp), %rdi
callq 0x75860
movq %rax, 0x48(%rsp)
jmp 0x5b79d
movq 0x78(%rsp), %rsi
movq 0x48(%rsp), %rdi
addq $0x8, %rdi
callq 0x75870
jmp 0x5b7b2
jmp 0x5bc9d
movq 0x468(%rsp), %rdi
movq (%rdi), %rax
movq 0x78(%rax), %rax
callq *%rax
movq %rax, 0x40(%rsp)
jmp 0x5b7cf
movq 0x40(%rsp), %rax
movq %rax, 0x220(%rsp)
cmpq $0x0, 0x220(%rsp)
je 0x5bc9b
callq 0xc090
movl $0x0, (%rax)
movq 0x460(%rsp), %rdi
callq 0xcc10
testb $0x1, %al
jne 0x5b80c
jmp 0x5ba93
callq 0xc8c0
cmpl $0x0, %eax
jne 0x5ba89
leaq 0x17f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xcd00
movq 0x38(%rsp), %rdx
leaq 0x721e1(%rip), %rsi     # 0xcda19
leaq 0x180(%rsp), %rdi
callq 0x29fd0
jmp 0x5b847
leaq 0x158(%rsp), %rdi
movl $0xbec, %esi            # imm = 0xBEC
callq 0x2ded0
jmp 0x5b85b
leaq 0x1a0(%rsp), %rdi
leaq 0x180(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x2dde0
jmp 0x5b87a
leaq 0x70320(%rip), %rdx     # 0xcbba1
leaq 0x1c0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b898
leaq 0x117(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcd00
movq 0x30(%rsp), %rdx
leaq 0x73505(%rip), %rsi     # 0xcedbb
leaq 0x118(%rsp), %rdi
callq 0x29fd0
jmp 0x5b8c5
leaq 0x7214a(%rip), %rdx     # 0xcda16
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b8e3
leaq 0x1e0(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x138(%rsp), %rdx
callq 0x2dde0
jmp 0x5b902
leaq 0x72f82(%rip), %rdx     # 0xce88b
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x2a2f0
jmp 0x5b920
leaq 0x200(%rsp), %rdi
callq 0x3e9b0
jmp 0x5b92f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5ba0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
leaq 0x200(%rsp), %rdi
callq 0xce98
leaq 0x1e0(%rsp), %rdi
callq 0xce98
leaq 0x138(%rsp), %rdi
callq 0xce98
leaq 0x118(%rsp), %rdi
callq 0xce98
leaq 0x117(%rsp), %rdi
callq 0xc7a0
leaq 0x1c0(%rsp), %rdi
callq 0xce98
leaq 0x1a0(%rsp), %rdi
callq 0xce98
leaq 0x158(%rsp), %rdi
callq 0xce98
leaq 0x180(%rsp), %rdi
callq 0xce98
leaq 0x17f(%rsp), %rdi
callq 0xc7a0
jmp 0x5bca5
movl $0x1, %edi
callq 0xc8d0
movq 0x220(%rsp), %rdi
addq $0x8, %rdi
movq 0x460(%rsp), %rsi
callq 0x758a0
movb %al, 0x2f(%rsp)
jmp 0x5bab2
movb 0x2f(%rsp), %al
testb $0x1, %al
jne 0x5babf
jmp 0x5bc5d
movb $0x1, 0x87(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x18(%rsp)
leaq 0xaf(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcd00
movq 0x20(%rsp), %rdx
leaq 0x732c7(%rip), %rsi     # 0xcedbb
leaq 0xb0(%rsp), %rdi
callq 0x29fd0
jmp 0x5bb03
leaq 0x732ef(%rip), %rdx     # 0xcedf9
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x2a2f0
jmp 0x5bb21
movq 0x460(%rsp), %rsi
leaq 0x88(%rsp), %rdi
movl $0x22, %edx
callq 0x424f0
jmp 0x5bb3d
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x2dde0
jmp 0x5bb5c
movq 0x18(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xcbb0
jmp 0x5bb70
movq 0x18(%rsp), %rdi
movb $0x0, 0x87(%rsp)
movq 0xaa46c(%rip), %rsi     # 0x105ff0
movq 0xaa3e5(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x5bcbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5bc38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5bc2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5bc1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
jmp 0x5bc11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3b0(%rsp)
movl %eax, 0x3ac(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0xce98
leaq 0x88(%rsp), %rdi
callq 0xce98
leaq 0xd0(%rsp), %rdi
callq 0xce98
leaq 0xb0(%rsp), %rdi
callq 0xce98
leaq 0xaf(%rsp), %rdi
callq 0xc7a0
testb $0x1, 0x87(%rsp)
jne 0x5bc51
jmp 0x5bc5b
movq 0x18(%rsp), %rdi
callq 0xc580
jmp 0x5bca5
movq 0x220(%rsp), %rdi
callq 0x758f0
movq %rax, 0x10(%rsp)
jmp 0x5bc71
movq 0x10(%rsp), %rdi
addq $0x8, %rdi
movq 0x460(%rsp), %rsi
callq 0x75900
movq %rax, 0x8(%rsp)
jmp 0x5bc8e
movq 0x8(%rsp), %rax
movq 0x78(%rsp), %rcx
movq %rcx, (%rax)
jmp 0x5bc9d
addq $0x478, %rsp            # imm = 0x478
retq
movq 0x78(%rsp), %rdi
callq 0x2ab40
movq 0x3b0(%rsp), %rdi
callq 0xccf0
nopl (%rax)