// File: ncbi[P]amr/common.cpp
// Function: Common_sp::JsonMap::parse(Common_sp::CharInput&)
void JsonMap::parse (CharInput& in)
{
  ASSERT (data. empty ());
  
  bool first = true;
  for (;;)
  {
    Token token (in, false, false);
    if (token. isDelimiter ('}'))
      break;
    if (! first)
    {
      if (! token. isDelimiter (','))
        in. error ("\',\'");
      token = Token (in, false, false);
    }
    if (   token. type != Token::eName
        && token. type != Token::eText
       )
      in. error ("name or text");
    string name (token. name);
    const Token colon (in, false, false);
    if (! colon. isDelimiter (':'))
      in. error ("\':\'");
    token = Token (in, false, false);
    Json::parse (in, token, this, name);
    first = false;
  }
}

// Assembly:
subq $0x3c8, %rsp            # imm = 0x3C8
movq %rdi, 0x3c0(%rsp)
movq %rsi, 0x3b8(%rsp)
movq 0x3c0(%rsp), %rax
movq %rax, 0x70(%rsp)
callq 0xc090
movq 0x70(%rsp), %rdi
movl $0x0, (%rax)
addq $0x8, %rdi
callq 0x760a0
testb $0x1, %al
jne 0x5dd2c
callq 0xc8c0
cmpl $0x0, %eax
jne 0x5dd22
leaq 0x317(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xcd00
movq 0x68(%rsp), %rdx
leaq 0x6ff48(%rip), %rsi     # 0xcda19
leaq 0x318(%rsp), %rdi
callq 0x29fd0
jmp 0x5dae0
leaq 0x2e0(%rsp), %rdi
movl $0xcd8, %esi            # imm = 0xCD8
callq 0x2ded0
jmp 0x5daf4
leaq 0x338(%rsp), %rdi
leaq 0x318(%rsp), %rsi
leaq 0x2e0(%rsp), %rdx
callq 0x2dde0
jmp 0x5db13
leaq 0x6e087(%rip), %rdx     # 0xcbba1
leaq 0x358(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0x2a2f0
jmp 0x5db31
leaq 0x29f(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xcd00
movq 0x60(%rsp), %rdx
leaq 0x71431(%rip), %rsi     # 0xcef80
leaq 0x2a0(%rsp), %rdi
callq 0x29fd0
jmp 0x5db5e
leaq 0x6feb1(%rip), %rdx     # 0xcda16
leaq 0x2c0(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x2a2f0
jmp 0x5db7c
leaq 0x378(%rsp), %rdi
leaq 0x358(%rsp), %rsi
leaq 0x2c0(%rsp), %rdx
callq 0x2dde0
jmp 0x5db9b
leaq 0x7140a(%rip), %rdx     # 0xcefac
leaq 0x398(%rsp), %rdi
leaq 0x378(%rsp), %rsi
callq 0x2a2f0
jmp 0x5dbb9
leaq 0x398(%rsp), %rdi
callq 0x3e9b0
jmp 0x5dbc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dd10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dd03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dcf6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dce9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dccf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dcc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dcb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5dca8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
leaq 0x398(%rsp), %rdi
callq 0xce98
leaq 0x378(%rsp), %rdi
callq 0xce98
leaq 0x2c0(%rsp), %rdi
callq 0xce98
leaq 0x2a0(%rsp), %rdi
callq 0xce98
leaq 0x29f(%rsp), %rdi
callq 0xc7a0
leaq 0x358(%rsp), %rdi
callq 0xce98
leaq 0x338(%rsp), %rdi
callq 0xce98
leaq 0x2e0(%rsp), %rdi
callq 0xce98
leaq 0x318(%rsp), %rdi
callq 0xce98
leaq 0x317(%rsp), %rdi
callq 0xc7a0
jmp 0x5e161
movl $0x1, %edi
callq 0xc8d0
movb $0x1, 0x29e(%rsp)
movq 0x3b8(%rsp), %rsi
leaq 0x238(%rsp), %rdi
movq %rdi, 0x50(%rsp)
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x75330
movq 0x50(%rsp), %rdi
movl $0x7d, %esi
callq 0x75410
movb %al, 0x5f(%rsp)
jmp 0x5dd67
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0x5dd71
jmp 0x5dd9a
movl $0x2, 0x234(%rsp)
jmp 0x5e10f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5e14a
testb $0x1, 0x29e(%rsp)
jne 0x5dea7
leaq 0x238(%rsp), %rdi
movl $0x2c, %esi
callq 0x75410
movb %al, 0x4f(%rsp)
jmp 0x5ddc0
movb 0x4f(%rsp), %al
testb $0x1, %al
jne 0x5de6a
jmp 0x5ddce
movq 0x3b8(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0x20f(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xcd00
movq 0x40(%rsp), %rdx
leaq 0x710f4(%rip), %rsi     # 0xceeed
leaq 0x210(%rsp), %rdi
callq 0x29fd0
jmp 0x5de08
movq 0x38(%rsp), %rdi
leaq 0x210(%rsp), %rsi
movl $0x1, %edx
callq 0x748c0
jmp 0x5de21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5de58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
leaq 0x210(%rsp), %rdi
callq 0xce98
leaq 0x20f(%rsp), %rdi
callq 0xc7a0
jmp 0x5e14a
movq 0x3b8(%rsp), %rsi
leaq 0x1a8(%rsp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x75330
jmp 0x5de85
leaq 0x238(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x75240
leaq 0x1a8(%rsp), %rdi
callq 0x752b0
cmpl $0x0, 0x240(%rsp)
je 0x5df5f
cmpl $0x2, 0x240(%rsp)
je 0x5df5f
movq 0x3b8(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x187(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcd00
movq 0x30(%rsp), %rdx
leaq 0x710cd(%rip), %rsi     # 0xcefbb
leaq 0x188(%rsp), %rdi
callq 0x29fd0
jmp 0x5defd
movq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
movl $0x1, %edx
callq 0x748c0
jmp 0x5df16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5df4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
leaq 0x188(%rsp), %rdi
callq 0xce98
leaq 0x187(%rsp), %rdi
callq 0xc7a0
jmp 0x5e14a
leaq 0x248(%rsp), %rsi
leaq 0x160(%rsp), %rdi
callq 0xc320
jmp 0x5df76
movq 0x3b8(%rsp), %rsi
leaq 0x100(%rsp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x75330
jmp 0x5df91
leaq 0x100(%rsp), %rdi
movl $0x3a, %esi
callq 0x75410
movb %al, 0x27(%rsp)
jmp 0x5dfa9
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0x5e085
jmp 0x5dfb7
movq 0x3b8(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xcd00
movq 0x18(%rsp), %rdx
leaq 0x70fe6(%rip), %rsi     # 0xcefc8
leaq 0xe0(%rsp), %rdi
callq 0x29fd0
jmp 0x5dff1
movq 0x10(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
movl $0x1, %edx
callq 0x748c0
jmp 0x5e00a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5e13d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5e130
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
jmp 0x5e073
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x308(%rsp)
movl %eax, 0x304(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0xce98
leaq 0xdf(%rsp), %rdi
callq 0xc7a0
jmp 0x5e130
movq 0x3b8(%rsp), %rsi
leaq 0x78(%rsp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x75330
jmp 0x5e09d
leaq 0x238(%rsp), %rdi
movq %rdi, 0x8(%rsp)
leaq 0x78(%rsp), %rsi
movq %rsi, (%rsp)
callq 0x75240
movq (%rsp), %rdi
callq 0x752b0
movq 0x8(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq 0x3b8(%rsp), %rdi
leaq 0x160(%rsp), %rcx
callq 0x5bee0
jmp 0x5e0e2
movb $0x0, 0x29e(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x752b0
leaq 0x160(%rsp), %rdi
callq 0xce98
movl $0x0, 0x234(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x752b0
movl 0x234(%rsp), %eax
testl %eax, %eax
je 0x5e12b
jmp 0x5e129
jmp 0x5e159
jmp 0x5dd34
leaq 0x100(%rsp), %rdi
callq 0x752b0
leaq 0x160(%rsp), %rdi
callq 0xce98
leaq 0x238(%rsp), %rdi
callq 0x752b0
jmp 0x5e161
addq $0x3c8, %rsp            # imm = 0x3C8
retq
movq 0x308(%rsp), %rdi
callq 0xccf0
nop