// File: ncbi[P]amr/common.cpp
// Function: Common_sp::getChar(std::istream&, char&)
bool getChar (istream &is,
              char &c)
{
  QC_ASSERT (is. good ());

  const int i = is. get ();
  c = EOF;
  if (i == c)
  {
    QC_ASSERT (is. eof ());
    return false;
  }
  if (! (i >= 0 && i <= 255))
    throw runtime_error (FUNC "Cannot read character: " + to_string (i));
  c = static_cast<char> (i);

  return true;
}

// Assembly:
subq $0x308, %rsp            # imm = 0x308
movq %rdi, 0x2f8(%rsp)
movq %rsi, 0x2f0(%rsp)
callq 0xc090
movl $0x0, (%rax)
movq 0x2f8(%rsp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0xcc60
testb $0x1, %al
jne 0x496c5
callq 0xc8c0
cmpl $0x0, %eax
jne 0x496bb
leaq 0x24f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xcd00
movq 0x28(%rsp), %rdx
leaq 0x845af(%rip), %rsi     # 0xcda19
leaq 0x250(%rsp), %rdi
callq 0x29fd0
jmp 0x49479
leaq 0x218(%rsp), %rdi
movl $0x606, %esi            # imm = 0x606
callq 0x2ded0
jmp 0x4948d
leaq 0x270(%rsp), %rdi
leaq 0x250(%rsp), %rsi
leaq 0x218(%rsp), %rdx
callq 0x2dde0
jmp 0x494ac
leaq 0x826ee(%rip), %rdx     # 0xcbba1
leaq 0x290(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x2a2f0
jmp 0x494ca
leaq 0x1d7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcd00
movq 0x20(%rsp), %rdx
leaq 0x84ca7(%rip), %rsi     # 0xce18f
leaq 0x1d8(%rsp), %rdi
callq 0x29fd0
jmp 0x494f7
leaq 0x84518(%rip), %rdx     # 0xcda16
leaq 0x1f8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x2a2f0
jmp 0x49515
leaq 0x2b0(%rsp), %rdi
leaq 0x290(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x2dde0
jmp 0x49534
leaq 0x84c7f(%rip), %rdx     # 0xce1ba
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rsi
callq 0x2a2f0
jmp 0x49552
leaq 0x2d0(%rsp), %rdi
callq 0x3e9b0
jmp 0x49561
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x496a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x4969c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x4968f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49682
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49668
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x4965b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x4964e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
leaq 0x2d0(%rsp), %rdi
callq 0xce98
leaq 0x2b0(%rsp), %rdi
callq 0xce98
leaq 0x1f8(%rsp), %rdi
callq 0xce98
leaq 0x1d8(%rsp), %rdi
callq 0xce98
leaq 0x1d7(%rsp), %rdi
callq 0xc7a0
leaq 0x290(%rsp), %rdi
callq 0xce98
leaq 0x270(%rsp), %rdi
callq 0xce98
leaq 0x218(%rsp), %rdi
callq 0xce98
leaq 0x250(%rsp), %rdi
callq 0xce98
leaq 0x24f(%rsp), %rdi
callq 0xc7a0
jmp 0x49b73
movl $0x1, %edi
callq 0xc8d0
movq 0x2f8(%rsp), %rdi
callq 0xc8b0
movl %eax, 0x1d0(%rsp)
movq 0x2f0(%rsp), %rax
movb $-0x1, (%rax)
movl 0x1d0(%rsp), %eax
movq 0x2f0(%rsp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x499b9
callq 0xc090
movl $0x0, (%rax)
movq 0x2f8(%rsp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0xcd60
testb $0x1, %al
jne 0x499ac
callq 0xc8c0
cmpl $0x0, %eax
jne 0x499a2
leaq 0x12f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xcd00
movq 0x18(%rsp), %rdx
leaq 0x842c8(%rip), %rsi     # 0xcda19
leaq 0x130(%rsp), %rdi
callq 0x29fd0
jmp 0x49760
leaq 0x108(%rsp), %rdi
movl $0x60c, %esi            # imm = 0x60C
callq 0x2ded0
jmp 0x49774
leaq 0x150(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0x2dde0
jmp 0x49793
leaq 0x82407(%rip), %rdx     # 0xcbba1
leaq 0x170(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x2a2f0
jmp 0x497b1
leaq 0xc7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xcd00
movq 0x10(%rsp), %rdx
leaq 0x849c0(%rip), %rsi     # 0xce18f
leaq 0xc8(%rsp), %rdi
callq 0x29fd0
jmp 0x497de
leaq 0x84231(%rip), %rdx     # 0xcda16
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x2a2f0
jmp 0x497fc
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x2dde0
jmp 0x4981b
leaq 0x849a4(%rip), %rdx     # 0xce1c6
leaq 0x1b0(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x2a2f0
jmp 0x49839
leaq 0x1b0(%rsp), %rdi
callq 0x3e9b0
jmp 0x49848
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49990
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49983
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49976
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49969
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x4994f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49942
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49935
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49928
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0xce98
leaq 0x190(%rsp), %rdi
callq 0xce98
leaq 0xe8(%rsp), %rdi
callq 0xce98
leaq 0xc8(%rsp), %rdi
callq 0xce98
leaq 0xc7(%rsp), %rdi
callq 0xc7a0
leaq 0x170(%rsp), %rdi
callq 0xce98
leaq 0x150(%rsp), %rdi
callq 0xce98
leaq 0x108(%rsp), %rdi
callq 0xce98
leaq 0x130(%rsp), %rdi
callq 0xce98
leaq 0x12f(%rsp), %rdi
callq 0xc7a0
jmp 0x49b73
movl $0x1, %edi
callq 0xc8d0
movb $0x0, 0x307(%rsp)
jmp 0x49b62
cmpl $0x0, 0x1d0(%rsp)
jl 0x499d4
cmpl $0xff, 0x1d0(%rsp)
jle 0x49b47
movb $0x1, 0x37(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, (%rsp)
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xcd00
movq 0x8(%rsp), %rdx
leaq 0x8478d(%rip), %rsi     # 0xce18f
leaq 0x60(%rsp), %rdi
callq 0x29fd0
jmp 0x49a0e
leaq 0x847bc(%rip), %rdx     # 0xce1d1
leaq 0x80(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2a2f0
jmp 0x49a29
movl 0x1d0(%rsp), %esi
leaq 0x38(%rsp), %rdi
callq 0x2ded0
jmp 0x49a3c
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x2dde0
jmp 0x49a58
movq (%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xcbb0
jmp 0x49a6b
movq (%rsp), %rdi
movb $0x0, 0x37(%rsp)
movq 0xbc575(%rip), %rsi     # 0x105ff0
movq 0xbc4ee(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x49b80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49b29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49b1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49b12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
jmp 0x49b08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x240(%rsp)
movl %eax, 0x23c(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xce98
leaq 0x38(%rsp), %rdi
callq 0xce98
leaq 0x80(%rsp), %rdi
callq 0xce98
leaq 0x60(%rsp), %rdi
callq 0xce98
leaq 0x5f(%rsp), %rdi
callq 0xc7a0
testb $0x1, 0x37(%rsp)
jne 0x49b3c
jmp 0x49b45
movq (%rsp), %rdi
callq 0xc580
jmp 0x49b73
movl 0x1d0(%rsp), %eax
movb %al, %cl
movq 0x2f0(%rsp), %rax
movb %cl, (%rax)
movb $0x1, 0x307(%rsp)
movb 0x307(%rsp), %al
andb $0x1, %al
addq $0x308, %rsp            # imm = 0x308
retq
movq 0x240(%rsp), %rdi
callq 0xccf0