// File: /workspace/github_cpp_makefile_star2_O3/WilstonOreo[P]Log/./log/Log.hpp
// Function: Log::logHeader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
string logHeader(string& file, string& function, 
			int linenumber, int _level, string& type)
	{
#ifdef LOGGING
		stringstream ss; 
		int color = 39;
#ifdef OUTPUT_COLOR				    //former "default" values	
		if (type=="ERR") color = COLOR_ERR; //31;  
		if (type=="MSG") color = COLOR_MSG; //37; 
		if (type=="WRN") color = COLOR_WRN; //33;
#endif 

#ifdef OUTPUT_COUNTER
		ss << colorStr(color,0,DELIMITER,counter);
		counter++;
#endif 

#ifdef OUTPUT_TIME
		time_t rawtime;
		struct tm * timeinfo;
		char timeBuffer[30];
		time(&rawtime);
		timeinfo = localtime(&rawtime);
		strftime(timeBuffer,30,"%Y/%m/%d-%H:%M:%S",timeinfo); 
		ss << colorStr(color,0,DELIMITER,timeBuffer);		
#endif
#ifdef OUTPUT_TIMER
		timespec newTime;
		clock_gettime(CLOCK_REALTIME,&newTime);
		timespec difference;
		/* Add and two values. */ 
		difference.tv_sec 	= newTime.tv_sec - ts.tv_sec; 
		difference.tv_nsec 	= newTime.tv_nsec- ts.tv_nsec; /* Return the normalized difference. */ 
		timespec_normalize(&difference);
		double diff = difference.tv_sec + difference.tv_nsec/1000000000.0;
		ss << colorStr(color,0,DELIMITER,diff);
#endif 

#ifdef OUTPUT_MSG
		stringstream st; st << type << _level;
		ss << colorStr(color,1,DELIMITER,st.str());
#endif

#ifdef OUTPUT_SRC
		int pPos = 0;
		for (int i = file.length()-1; i > 0; i--)
			if (file.substr(i,1)==string("/"))
			{ pPos = i+1; break; }
		file = file.substr(pPos,file.length()-pPos);
		ss << colorStr(COLOR_FILE,0,':',file); //35
		ss << colorStr(COLOR_LINE,1,':',linenumber); //32
		ss << colorStr(COLOR_FUNC,0,DELIMITER,function); //36
#endif

		return ss.str();
#endif
#ifndef LOGGING		
		return string();
#endif
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3a8, %rsp            # imm = 0x3A8
movl %r9d, 0x28(%rsp)
movq %rcx, %r14
movq %rdx, 0x30(%rsp)
movq %rsi, %r15
movq %rdi, %r12
movq 0x3e0(%rsp), %r13
movl %r8d, 0x3c(%rsp)
leaq 0x220(%rsp), %rdi
callq 0x20e0
leaq 0x1daa(%rip), %rsi      # 0x5061
movq %r13, %rdi
callq 0x2050
xorl %ecx, %ecx
testl %eax, %eax
setne %cl
leal 0x1f(,%rcx,8), %ebx
leaq 0x1d41(%rip), %rsi      # 0x5015
movq %r13, %rdi
callq 0x2050
testl %eax, %eax
movl $0x25, %ebp
cmovnel %ebx, %ebp
leaq 0x1d66(%rip), %rsi      # 0x5053
movq %r13, %rdi
callq 0x2050
testl %eax, %eax
movl $0x21, %ebx
cmovnel %ebp, %ebx
movq %r15, %rbp
leaq 0x8(%r15), %r9
leaq 0x78(%rsp), %rdi
movq %r15, %rsi
movl %ebx, %edx
xorl %ecx, %ecx
movl $0x7c, %r8d
callq 0x381e
movq %r14, 0x68(%rsp)
leaq 0x230(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
callq 0x21c0
leaq 0x88(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x335d
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2190
incl 0x8(%rbp)
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x2160
movq %r14, %rdi
callq 0x2110
leaq 0x1cef(%rip), %rdx      # 0x506b
leaq 0x200(%rsp), %r14
movl $0x1e, %esi
movq %r14, %rdi
movq %rax, %rcx
callq 0x2130
leaq 0x78(%rsp), %rdi
movq %rbp, %rsi
movl %ebx, %edx
xorl %ecx, %ecx
movl $0x7c, %r8d
movq %r14, %r9
callq 0x3960
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
leaq 0x230(%rsp), %rdi
callq 0x21c0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x33e2
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x78(%rsp), %rdi
callq 0x20e0
leaq 0x88(%rsp), %rdi
movq (%r13), %rsi
movq 0x8(%r13), %rdx
callq 0x21c0
movq %rax, %rdi
movl 0x28(%rsp), %esi
callq 0x2200
leaq 0x90(%rsp), %rsi
leaq 0x40(%rsp), %rdi
callq 0x21f0
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %r9
movq %rbp, %rsi
movl %ebx, %edx
movl $0x1, %ecx
movl $0x7c, %r8d
callq 0x3aae
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x230(%rsp), %rdi
callq 0x21c0
movq %rbp, 0x60(%rsp)
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3475
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
movq %r12, 0x28(%rsp)
leaq 0x50(%rsp), %rbp
movq -0x10(%rbp), %rdi
cmpq %rbp, %rdi
je 0x3495
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x30(%rsp), %rax
movl 0x8(%rax), %r13d
leaq 0x1bd9(%rip), %r15      # 0x507e
leaq 0x40(%rsp), %r12
decq %r13
testl %r13d, %r13d
jle 0x3564
movl %r13d, %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
movl $0x1, %ecx
leaq 0x8(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x21b0
movq %rbp, 0x40(%rsp)
movq %r12, %rdi
leaq 0x1b9b(%rip), %rsi      # 0x507d
movq %r15, %rdx
callq 0x3bf4
movq 0x10(%rsp), %rdx
cmpq 0x48(%rsp), %rdx
jne 0x3515
movq 0x40(%rsp), %rbx
testq %rdx, %rdx
je 0x351f
movq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x21a0
testl %eax, %eax
sete %r14b
jmp 0x3522
movq 0x40(%rsp), %rbx
xorl %r14d, %r14d
jmp 0x3522
movb $0x1, %r14b
cmpq %rbp, %rbx
je 0x3537
movq 0x50(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0x2190
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3553
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
testb %r14b, %r14b
je 0x34aa
incq %r13
movq %r13, %rdx
jmp 0x3566
xorl %edx, %edx
movq 0x30(%rsp), %r12
movq 0x8(%r12), %rcx
subq %rdx, %rcx
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x21b0
movq 0x28(%rsp), %r15
movq 0x60(%rsp), %r14
leaq 0x8(%rsp), %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x21d0
movq (%rbx), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x35b4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl $0x23, %edx
xorl %ecx, %ecx
movl $0x3a, %r8d
movq %r12, %r9
callq 0x3aae
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x230(%rsp), %rdi
callq 0x21c0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3604
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x8(%rsp), %rdi
leaq 0x3c(%rsp), %r9
movq %r14, %rsi
movl $0x20, %edx
movl $0x1, %ecx
movl $0x3a, %r8d
callq 0x381e
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x230(%rsp), %rdi
callq 0x21c0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3659
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movl $0x24, %edx
xorl %ecx, %ecx
movl $0x7c, %r8d
movq 0x68(%rsp), %r9
callq 0x3aae
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x230(%rsp), %rdi
callq 0x21c0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x36ab
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x238(%rsp), %rsi
movq %r15, %rdi
callq 0x21f0
movq 0x38fe(%rip), %rbx      # 0x6fc0
leaq 0x78(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x2100
movl $0x80, %r14d
addq %r14, %r12
movq %r12, %rdi
callq 0x2060
leaq 0x220(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x2100
addq %r14, %r12
movq %r12, %rdi
callq 0x2060
movq %r15, %rax
addq $0x3a8, %rsp            # imm = 0x3A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x37b2
jmp 0x37b7
jmp 0x37b2
jmp 0x37b7
jmp 0x37b2
jmp 0x37b7
jmp 0x37b2
jmp 0x37b2
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x375b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x375b
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37d6
movq 0x50(%rsp), %rsi
jmp 0x37ce
jmp 0x37b2
jmp 0x37ab
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
jne 0x3799
jmp 0x37f4
jmp 0x37ab
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37f4
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x37f4
movq %rax, %rbx
jmp 0x37f4
jmp 0x37b2
movq %rax, %rbx
jmp 0x37d6
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x37d6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x37e3(%rip), %rsi      # 0x6fc0
leaq 0x78(%rsp), %rdi
callq 0x2100
leaq 0xf8(%rsp), %rdi
callq 0x2060
movq 0x37c5(%rip), %rsi      # 0x6fc0
leaq 0x220(%rsp), %rdi
callq 0x2100
leaq 0x2a0(%rsp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x2210
nop