// File: /workspace/github_cpp_makefile_star2_O1/ncbi[P]amr/common.cpp
// Function: Common_sp::errorExit(char const*, bool)
[[noreturn]] void errorExit (const char* msg,
                             bool segmFault)
// alloc() may not work
{ 
	beep ();
	
	ostream* os = logPtr ? logPtr : & cerr; 
	
	// time ??
#ifndef _MSC_VER
	const string hostname (getEnv ("HOSTNAME"));
	const string shell    (getEnv ("SHELL"));	
	const string pwd      (getEnv ("PWD"));
	const string path     (getEnv ("PATH"));
#endif
  if (contains (msg, error_caption))  // msg already is the result of errorExit()
    *os << endl << msg << endl;
  else
  {
  	*os << endl;
  	{
  	  const OColor oc (*os, Color::red, true, true);
      *os << error_caption;
    }
    *os << endl
        << msg << endl << endl
      #ifndef _MSC_VER
  	    << "HOSTNAME: " << nvl (hostname, "?") << endl
  	    << "SHELL: "    << nvl (shell,    "?") << endl
  	    << "PWD: "      << nvl (pwd,      "?") << endl
  	    << "PATH: "     << nvl (path,     "?") << endl
      #endif
  	    << "Progam name:  " << programName << endl
  	    << "Command line: " << getCommandLine () << endl;
  }
  //system (("env >> " + logFName). c_str ());

  os->flush ();           

  if (cxml)
    cxml->print (string (error_caption) + ": " + msg);

  if (segmFault)
    abort ();    
  exit (1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movl %esi, %ebp
movq %rdi, %r13
callq 0x350cf
movq 0x7c529(%rip), %r12     # 0xb0ab8
testq %r12, %r12
jne 0x3459b
movq 0x7ba45(%rip), %r12     # 0xaffe0
leaq 0xe8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movabsq $0x454d414e54534f48, %rax # imm = 0x454D414E54534F48
movq %rax, (%rbx)
movq $0x8, -0x8(%rbx)
movb $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0xa6d0
movq %rax, %r14
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
testq %r14, %r14
jne 0x345f9
movq 0x7c4f5(%rip), %rsi     # 0xb0ad8
movq 0x7c4f6(%rip), %rdx     # 0xb0ae0
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x2c652
jmp 0x34614
movq %r14, %rdi
callq 0xa260
movq %r14, %rdx
addq %rax, %rdx
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x2fdd8
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x34631
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0xc8(%rsp), %r14
movq %r14, -0x10(%r14)
movl $0x4c454853, (%r14)     # imm = 0x4C454853
movw $0x4c, 0x4(%r14)
movq $0x5, -0x8(%r14)
movq %r14, %rdi
callq 0xa6d0
movq %rbx, 0xd8(%rsp)
testq %rax, %rax
jne 0x34688
movq 0x7c469(%rip), %rsi     # 0xb0ad8
movq 0x7c46a(%rip), %rdx     # 0xb0ae0
addq %rsi, %rdx
leaq 0xd8(%rsp), %rdi
callq 0x2c652
jmp 0x346a9
movq %rax, %r15
movq %rax, %rdi
callq 0xa260
movq %r15, %rdx
addq %rax, %rdx
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x2fdd8
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x346c6
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0xa0(%rsp), %rdi
movq %rdi, -0x10(%rdi)
movl $0x445750, (%rdi)       # imm = 0x445750
movq $0x3, -0x8(%rdi)
callq 0xa6d0
movq %r14, 0xb8(%rsp)
testq %rax, %rax
jne 0x34712
movq 0x7c3df(%rip), %rsi     # 0xb0ad8
movq 0x7c3e0(%rip), %rdx     # 0xb0ae0
addq %rsi, %rdx
leaq 0xb8(%rsp), %rdi
callq 0x2c652
jmp 0x34733
movq %rax, %r15
movq %rax, %rdi
callq 0xa260
movq %r15, %rdx
addq %rax, %rdx
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x2fdd8
movq %r13, 0xb0(%rsp)
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
leaq 0x80(%rsp), %r15
je 0x34768
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movl $0x48544150, (%r13)     # imm = 0x48544150
movq $0x4, -0x8(%r13)
movb $0x0, 0x4(%r13)
leaq 0x90(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x64934
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x347af
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq 0xb0(%rsp), %r13
movq %r13, %rsi
callq 0x6488a
movl %ebp, 0x2c(%rsp)
leaq 0x40(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movabsq $0x4f525245202a2a2a, %rax # imm = 0x4F525245202A2A2A
movq %rax, (%rbp)
movabsq $0x2a2a2a20524f5252, %rax # imm = 0x2A2A2A20524F5252
movq %rax, 0x5(%rbp)
movq $0xd, -0x8(%rbp)
movb $0x0, 0xd(%rbp)
leaq 0x8(%rsp), %rdi
movl $0xd, %ecx
movq %rbp, %rsi
xorl %edx, %edx
callq 0xa9e0
movq %rax, %r15
movq -0x10(%rbp), %rdi
cmpq %rbp, %rdi
je 0x3482b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
movl 0x2c(%rsp), %ebp
je 0x3484b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
cmpq $-0x1, %r15
jne 0x34c87
movq %r12, %rdi
leaq 0x80(%rsp), %r15
callq 0xa2b0
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
movl $0x1f, %edx
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x2f8a0
leaq 0x56f5f(%rip), %rsi     # 0x8b7e8
movl $0xd, %edx
movq %r12, %rdi
callq 0xa640
leaq 0x8(%rsp), %rdi
callq 0x2f97a
movq %r12, %rdi
callq 0xa2b0
movq %rax, %rdi
movq %r13, %rsi
callq 0xa580
movq %rax, %rdi
callq 0xa2b0
movq %rax, %rdi
callq 0xa2b0
movq %rax, %r13
leaq 0x58022(%rip), %rsi     # 0x8c8ef
movl $0xa, %edx
movq %rax, %rdi
callq 0xa640
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movw $0x3f, 0x40(%rsp)
movq $0x1, 0x38(%rsp)
movq 0x78(%rsp), %rdx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
testq %rdx, %rdx
je 0x3490d
movq 0x70(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x2c652
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r13, %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, %rbp
leaq 0x57fb4(%rip), %rsi     # 0x8c8fa
movl $0x7, %edx
movq %rax, %rdi
callq 0xa640
leaq 0x1a8(%rsp), %r15
movq %r15, -0x10(%r15)
movw $0x3f, (%r15)
movq $0x1, -0x8(%r15)
movq 0xe0(%rsp), %rdx
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
movq %r15, %rsi
testq %rdx, %rdx
je 0x3498e
movq 0xd8(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x2c652
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbp, %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x57f3a(%rip), %rsi     # 0x8c902
movl $0x5, %edx
movq (%rsp), %rdi
callq 0xa640
leaq 0x188(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movw $0x3f, (%rbp)
movq $0x1, -0x8(%rbp)
movq 0xc0(%rsp), %rdx
leaq 0x128(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rbp, %rsi
testq %rdx, %rdx
je 0x34a14
movq 0xb8(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0x118(%rsp), %rdi
callq 0x2c652
movq 0x118(%rsp), %rsi
movq 0x120(%rsp), %rdx
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x57eb0(%rip), %rsi     # 0x8c908
movl $0x6, %edx
movq (%rsp), %rdi
callq 0xa640
leaq 0x168(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movw $0x3f, (%rsi)
movq $0x1, -0x8(%rsi)
movq 0x98(%rsp), %rdx
leaq 0x108(%rsp), %rax
movq %rax, -0x10(%rax)
testq %rdx, %rdx
je 0x34aa0
movq 0x90(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0xf8(%rsp), %rdi
callq 0x2c652
movq 0xf8(%rsp), %rsi
movq 0x100(%rsp), %rdx
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x57e2b(%rip), %rsi     # 0x8c90f
movl $0xe, %edx
movq (%rsp), %rdi
callq 0xa640
movq 0x7bf9f(%rip), %rsi     # 0xb0a98
movq 0x7bfa0(%rip), %rdx     # 0xb0aa0
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x57e02(%rip), %rsi     # 0x8c91e
movl $0xe, %edx
movq (%rsp), %rdi
callq 0xa640
leaq 0x138(%rsp), %rdi
callq 0x3386c
movq 0x138(%rsp), %rsi
movq 0x140(%rsp), %rdx
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34b79
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x34b9e
movq 0x108(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x34bc3
movq 0x168(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x34be8
movq 0x128(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x178(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34c05
movq 0x188(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x34c1c
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x198(%rsp), %rdi
cmpq %r15, %rdi
je 0x34c39
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x34c55
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34c71
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x80(%rsp), %r15
movl 0x2c(%rsp), %ebp
movq 0xb0(%rsp), %r13
jmp 0x34caa
movq %r12, %rdi
leaq 0x80(%rsp), %r15
callq 0xa2b0
movq %rax, %rdi
movq %r13, %rsi
callq 0xa580
movq %rax, %rdi
callq 0xa2b0
movq %r12, %rdi
callq 0xa3f0
movq 0x7be57(%rip), %r12     # 0xb0b10
testq %r12, %r12
jne 0x34cc8
testb %bpl, %bpl
je 0x34d2b
callq 0xa350
leaq 0x60(%rsp), %r15
movq %r15, -0x10(%r15)
movabsq $0x4f525245202a2a2a, %rax # imm = 0x4F525245202A2A2A
movq %rax, (%r15)
movabsq $0x2a2a2a20524f5252, %rax # imm = 0x2A2A2A20524F5252
movq %rax, 0x5(%r15)
movq $0xd, -0x8(%r15)
movb $0x0, 0xd(%r15)
leaq 0x57c05(%rip), %rsi     # 0x8c905
leaq 0x50(%rsp), %rdi
callq 0xaac0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x34d35
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
jmp 0x34d42
movl $0x1, %edi
callq 0xa6c0
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rdx
leaq 0x30(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rsi
callq 0xaac0
leaq 0x18(%rsp), %r13
movq %r13, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x34d89
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x34d96
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)
movq (%r12), %rax
movq %r12, %rdi
callq *0x18(%rax)
movb $0x1, 0x8(%r12)
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34dd9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34df5
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x34e0c
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movl 0x2c(%rsp), %ebp
jmp 0x34cbe
movq %rax, %r12
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34e40
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34e40
jmp 0x34e3d
movq %rax, %r12
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x34e6a
movq 0x108(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34e6a
movq %rax, %r12
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x34e94
movq 0x168(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34e94
movq %rax, %r12
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x34ebe
movq 0x128(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34ebe
movq %rax, %r12
movq 0x178(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34ee0
movq 0x188(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34ee0
movq %rax, %r12
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x34efc
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34efc
movq %rax, %r12
movq 0x198(%rsp), %rdi
cmpq %r15, %rdi
je 0x34f1e
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34f1e
movq %rax, %r12
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x34f3f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34f3f
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34fac
movq 0x40(%rsp), %rsi
jmp 0x34fa4
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34f74
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34f74
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34f95
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34f95
movq %rax, %r12
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x34fac
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x80(%rsp), %r15
jmp 0x34fcc
movq %rax, %r12
leaq 0x8(%rsp), %rdi
callq 0x2f97a
jmp 0x34fcc
jmp 0x34fc9
jmp 0x34fc9
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x35005
movq 0xa0(%rsp), %rsi
jmp 0x34ffd
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35005
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3504c
movq 0xc8(%rsp), %rsi
jmp 0x35044
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
leaq 0x80(%rsp), %r15
je 0x3504c
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x35093
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x35093
movq %rax, %r12
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3508b
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x80(%rsp), %r15
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x350c7
movq 0x80(%rsp), %rsi
jmp 0x350bf
movq %rax, %r12
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x350c7
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
callq 0xaa10