// File: /workspace/github_cpp_makefile_star2_O3/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 0x34e36
movq 0x7c7c2(%rip), %r12     # 0xb0ab8
testq %r12, %r12
jne 0x34302
movq 0x7bcde(%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 0x34360
movq 0x7c78e(%rip), %rsi     # 0xb0ad8
movq 0x7c78f(%rip), %rdx     # 0xb0ae0
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x2c212
jmp 0x3437b
movq %r14, %rdi
callq 0xa260
movq %r14, %rdx
addq %rax, %rdx
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x2fa1a
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x34398
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 0x343ef
movq 0x7c702(%rip), %rsi     # 0xb0ad8
movq 0x7c703(%rip), %rdx     # 0xb0ae0
addq %rsi, %rdx
leaq 0xd8(%rsp), %rdi
callq 0x2c212
jmp 0x34410
movq %rax, %r15
movq %rax, %rdi
callq 0xa260
movq %r15, %rdx
addq %rax, %rdx
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x2fa1a
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3442d
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 0x34479
movq 0x7c678(%rip), %rsi     # 0xb0ad8
movq 0x7c679(%rip), %rdx     # 0xb0ae0
addq %rsi, %rdx
leaq 0xb8(%rsp), %rdi
callq 0x2c212
jmp 0x3449a
movq %rax, %r15
movq %rax, %rdi
callq 0xa260
movq %r15, %rdx
addq %rax, %rdx
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x2fa1a
movq %r13, 0xb0(%rsp)
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
leaq 0x80(%rsp), %r15
je 0x344cf
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 0x644ca
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34516
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq 0xb0(%rsp), %r13
movq %r13, %rsi
callq 0x64418
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 0x34592
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
movl 0x2c(%rsp), %ebp
je 0x345b2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
cmpq $-0x1, %r15
jne 0x349ee
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 0x2f4e2
leaq 0x571f8(%rip), %rsi     # 0x8b7e8
movl $0xd, %edx
movq %r12, %rdi
callq 0xa640
leaq 0x8(%rsp), %rdi
callq 0x2f5bc
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 0x582bb(%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 0x34674
movq 0x70(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x2c212
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r13, %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, %rbp
leaq 0x5824d(%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 0x346f5
movq 0xd8(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x2c212
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbp, %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x581d3(%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 0x3477b
movq 0xb8(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0x118(%rsp), %rdi
callq 0x2c212
movq 0x118(%rsp), %rsi
movq 0x120(%rsp), %rdx
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x58149(%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 0x34807
movq 0x90(%rsp), %rsi
cmpq $0x1, %rdx
adcq $0x0, %rdx
addq %rsi, %rdx
leaq 0xf8(%rsp), %rdi
callq 0x2c212
movq 0xf8(%rsp), %rsi
movq 0x100(%rsp), %rdx
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x580c4(%rip), %rsi     # 0x8c90f
movl $0xe, %edx
movq (%rsp), %rdi
callq 0xa640
movq 0x7c238(%rip), %rsi     # 0xb0a98
movq 0x7c239(%rip), %rdx     # 0xb0aa0
movq (%rsp), %rdi
callq 0xa640
movq %rax, %rdi
callq 0xa2b0
movq %rax, (%rsp)
leaq 0x5809b(%rip), %rsi     # 0x8c91e
movl $0xe, %edx
movq (%rsp), %rdi
callq 0xa640
leaq 0x138(%rsp), %rdi
callq 0x335b8
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 0x348e0
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x34905
movq 0x108(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x3492a
movq 0x168(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x3494f
movq 0x128(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x178(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3496c
movq 0x188(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x34983
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x198(%rsp), %rdi
cmpq %r15, %rdi
je 0x349a0
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x349bc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x349d8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x80(%rsp), %r15
movl 0x2c(%rsp), %ebp
movq 0xb0(%rsp), %r13
jmp 0x34a11
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 0x7c0f0(%rip), %r12     # 0xb0b10
testq %r12, %r12
jne 0x34a2f
testb %bpl, %bpl
je 0x34a92
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 0x57e9e(%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 0x34a9c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
jmp 0x34aa9
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 0x34af0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x34afd
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 0x34b40
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34b5c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x34b73
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movl 0x2c(%rsp), %ebp
jmp 0x34a25
movq %rax, %r12
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34ba7
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34ba7
jmp 0x34ba4
movq %rax, %r12
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x34bd1
movq 0x108(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34bd1
movq %rax, %r12
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x34bfb
movq 0x168(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34bfb
movq %rax, %r12
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x34c25
movq 0x128(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34c25
movq %rax, %r12
movq 0x178(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34c47
movq 0x188(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34c47
movq %rax, %r12
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x34c63
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34c63
movq %rax, %r12
movq 0x198(%rsp), %rdi
cmpq %r15, %rdi
je 0x34c85
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34c85
movq %rax, %r12
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x34ca6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34ca6
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34d13
movq 0x40(%rsp), %rsi
jmp 0x34d0b
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34cdb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34cdb
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x34cfc
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34cfc
movq %rax, %r12
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x34d13
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x80(%rsp), %r15
jmp 0x34d33
movq %rax, %r12
leaq 0x8(%rsp), %rdi
callq 0x2f5bc
jmp 0x34d33
jmp 0x34d30
jmp 0x34d30
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x34d6c
movq 0xa0(%rsp), %rsi
jmp 0x34d64
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34d6c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x34db3
movq 0xc8(%rsp), %rsi
jmp 0x34dab
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
leaq 0x80(%rsp), %r15
je 0x34db3
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x34dfa
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x34dfa
movq %rax, %r12
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x34df2
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x80(%rsp), %r15
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x34e2e
movq 0x80(%rsp), %rsi
jmp 0x34e26
movq %rax, %r12
movq 0xd8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x34e2e
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
callq 0xaa10