// File: /workspace/github_cpp_makefile_star2_O2/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 $0x1a8, %rsp            # imm = 0x1A8
movl %esi, %ebx
movq %rdi, %r14
callq 0x2243d
movq 0x62c92(%rip), %r15     # 0x84ad8
testq %r15, %r15
jne 0x21e52
movq 0x6218e(%rip), %r15     # 0x83fe0
leaq 0x39a87(%rip), %rsi     # 0x5b8e0
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x1b7b6
leaq 0x188(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x3c19a
leaq 0xa8(%rsp), %rdi
callq 0xbb68
leaq 0x39a52(%rip), %rsi     # 0x5b8e9
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x1b7b6
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x3c19a
leaq 0x88(%rsp), %rdi
callq 0xbb68
leaq 0x39a1d(%rip), %rsi     # 0x5b8ef
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1b7b6
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x3c19a
leaq 0x68(%rsp), %rdi
callq 0xbb68
leaq 0x399ef(%rip), %rsi     # 0x5b8f3
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b7b6
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3c19a
leaq 0x8(%rsp), %rdi
callq 0xbb68
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r14, %rsi
callq 0x1b7b6
leaq 0x388a1(%rip), %rsi     # 0x5a7e6
leaq 0x28(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x1b7b6
leaq 0x8(%rsp), %r12
leaq 0x28(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x1d40b
movl %eax, %ebp
movq %r13, %rdi
callq 0xbb68
movq %r12, %rdi
callq 0xbb68
testb %bpl, %bpl
je 0x21fc3
movq %r15, %rdi
callq 0xb2f0
movq %rax, %rdi
movq %r14, %rsi
callq 0xb590
movq %rax, %rdi
callq 0xb2f0
movq %r15, %rdi
callq 0xb420
movq 0x62b83(%rip), %r15     # 0x84b30
testq %r15, %r15
jne 0x22256
testb %bl, %bl
je 0x222cd
callq 0xb380
movq %r15, %rdi
callq 0xb2f0
leaq 0x8(%rsp), %rdi
pushq $0x1f
popq %rdx
pushq $0x1
popq %rcx
movq %r15, %rsi
movl %ecx, %r8d
callq 0x1e0c2
leaq 0x387fe(%rip), %rsi     # 0x5a7e6
movq %r15, %rdi
callq 0xb590
leaq 0x8(%rsp), %rdi
callq 0x1e15c
movq %r15, %rdi
callq 0xb2f0
movq %rax, %rdi
movq %r14, %rsi
callq 0xb590
movq %rax, %rdi
callq 0xb2f0
movq %rax, %rdi
callq 0xb2f0
leaq 0x398d4(%rip), %rsi     # 0x5b8f8
movq %rax, %rdi
callq 0xb590
movq %rax, %r12
leaq 0x398cd(%rip), %rsi     # 0x5b903
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1b7b6
leaq 0x8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x1e63c
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0xb510
movq %rax, %rdi
callq 0xb2f0
leaq 0x3988d(%rip), %rsi     # 0x5b905
movq %rax, %rdi
callq 0xb590
movq %rax, %r12
leaq 0x39879(%rip), %rsi     # 0x5b903
leaq 0xc8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1b7b6
leaq 0x48(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x1e63c
leaq 0x48(%rsp), %rsi
movq %r12, %rdi
callq 0xb510
movq %rax, %rdi
callq 0xb2f0
leaq 0x3983b(%rip), %rsi     # 0x5b90d
movq %rax, %rdi
callq 0xb590
movq %rax, %r12
leaq 0x3981f(%rip), %rsi     # 0x5b903
leaq 0x148(%rsp), %rdi
leaq 0x5(%rsp), %rdx
callq 0x1b7b6
leaq 0x168(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x148(%rsp), %rdx
callq 0x1e63c
leaq 0x168(%rsp), %rsi
movq %r12, %rdi
callq 0xb510
movq %rax, %rdi
callq 0xb2f0
leaq 0x397e1(%rip), %rsi     # 0x5b913
movq %rax, %rdi
callq 0xb590
movq %rax, %r12
leaq 0x397bf(%rip), %rsi     # 0x5b903
leaq 0x108(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x1b7b6
leaq 0x128(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0x1e63c
leaq 0x128(%rsp), %rsi
movq %r12, %rdi
callq 0xb510
movq %rax, %rdi
callq 0xb2f0
leaq 0x3978b(%rip), %rsi     # 0x5b91a
movq %rax, %rdi
callq 0xb590
leaq 0x6291a(%rip), %rsi     # 0x84ab8
movq %rax, %rdi
callq 0xb510
movq %rax, %rdi
callq 0xb2f0
leaq 0x39774(%rip), %rsi     # 0x5b929
movq %rax, %rdi
callq 0xb590
movq %rax, %r12
leaq 0xe8(%rsp), %rdi
callq 0x21694
leaq 0xe8(%rsp), %rsi
movq %r12, %rdi
callq 0xb510
movq %rax, %rdi
callq 0xb2f0
leaq 0xe8(%rsp), %rdi
callq 0xbb68
leaq 0x128(%rsp), %rdi
callq 0xbb68
leaq 0x108(%rsp), %rdi
callq 0xbb68
leaq 0x168(%rsp), %rdi
callq 0xbb68
leaq 0x148(%rsp), %rdi
callq 0xbb68
leaq 0x48(%rsp), %rdi
callq 0xbb68
leaq 0xc8(%rsp), %rdi
callq 0xbb68
leaq 0x8(%rsp), %rdi
callq 0xbb68
leaq 0x28(%rsp), %rdi
callq 0xbb68
jmp 0x21f9e
leaq 0x38589(%rip), %rsi     # 0x5a7e6
leaq 0x48(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x1b7b6
leaq 0x3969a(%rip), %rdx     # 0x5b910
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1b92d
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movq %r14, %rdx
callq 0x1b92d
movq (%r15), %rax
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq *0x18(%rax)
movb $0x1, 0x8(%r15)
leaq 0x8(%rsp), %rdi
callq 0xbb68
leaq 0x28(%rsp), %rdi
callq 0xbb68
leaq 0x48(%rsp), %rdi
callq 0xbb68
jmp 0x21fb6
pushq $0x1
popq %rdi
callq 0xb6d0
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0xbb68
jmp 0x222ec
jmp 0x222e9
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0xbb68
jmp 0x222fe
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0xbb68
jmp 0x22312
jmp 0x2230f
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
callq 0xbb68
jmp 0x22324
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0xbb68
jmp 0x22338
jmp 0x22335
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xbb68
jmp 0x22347
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xbb68
jmp 0x2235b
jmp 0x22358
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x2236a
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0x223b8
jmp 0x223bf
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x22385
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb68
jmp 0x22394
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x223b8
jmp 0x223bf
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x1e15c
jmp 0x223c2
jmp 0x223bf
jmp 0x223bf
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x223c2
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0x223d1
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x223db
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
jmp 0x223ed
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xbb68
jmp 0x223f7
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
jmp 0x2240c
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xbb68
jmp 0x22416
movq %rax, %rbx
leaq 0x188(%rsp), %rdi
jmp 0x2242b
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbb68
jmp 0x22435
movq %rax, %rbx
movq %rbx, %rdi
callq 0xba30