// File: /workspace/github_cpp_makefile_star2_O3/metopa[P]HTTP_Server/src/logger/CLogger.cpp
// Function: CLogger::printStatistic(int, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void CLogger::printStatistic( int port, const high_resolution_clock::time_point& time, const string& input,
							  const string& output ) {
	if ( !initialized_m || config.checkLogFlag( STATISTICS ) ) {
		mutex_m.lock();
		printTimestamp();
		auto us = chrono::duration_cast<chrono::microseconds>( high_resolution_clock::now() - time ).count();
		auto ms = us / 1000;
		us %= 1000;
		*logStream_m << '\t' << logflagsNS::logFlagsToStringPrintable( STATISTICS ) << ' ' <<
		"port:" << port << '\t' <<
		"processing_time(ms):" << ms << '.' << us << '\t' <<
		//"request_header:" << substractHeader( inputMsg_m ) << '\t' <<
		"request_size:" << input.size() << "\t" <<

		"response_size:" << output.size() << endl;
		mutex_m.unlock();
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, %rbx
movq %rcx, %r15
movq %rdx, %r12
movl %esi, %ebp
movq %rdi, %r14
cmpb $0x1, 0x3c(%rdi)
jne 0x10de3
leaq 0x116ef(%rip), %rdi     # 0x224c0
movl $0xa, %esi
callq 0x67b4
testb %al, %al
je 0x11004
movq %r15, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
leaq 0x10(%r14), %rbx
movq %rbx, %rdi
callq 0x17b4e
movq %r14, %rdi
callq 0x10a90
callq 0x5080
movq %rax, %rcx
subq (%r12), %rcx
movabsq $0x20c49ba5e353f7cf, %rsi # imm = 0x20C49BA5E353F7CF
movq %rcx, %rax
imulq %rsi
movq %rdx, %r12
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x7, %r12
addq %rax, %r12
movabsq $0x431bde82d7b634db, %rdx # imm = 0x431BDE82D7B634DB
movq %rcx, %rax
imulq %rdx
movq %rdx, %r13
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x12, %r13
addq %rax, %r13
movq %r12, %rax
imulq %rsi
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x7, %rdx
addq %rax, %rdx
imulq $0x3e8, %rdx, %rax      # imm = 0x3E8
subq %rax, %r12
movq (%r14), %rdi
leaq 0x3(%rsp), %rsi
movb $0x9, (%rsi)
movl $0x1, %edx
callq 0x5450
movq %rax, %r14
movl $0xa, %edi
callq 0x1102f
testq %rax, %rax
je 0x10eaf
movq %rax, %r15
movq %rax, %rdi
callq 0x51f0
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x5450
jmp 0x10ec9
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r14, %rdi
addq %rax, %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x56e0
leaq 0x4(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %r14, %rdi
callq 0x5450
movq %rax, %r14
leaq 0x782d(%rip), %rsi      # 0x18715
movl $0x5, %edx
movq %rax, %rdi
callq 0x5450
movq %r14, %rdi
movl %ebp, %esi
callq 0x5700
movb $0x9, %bpl
leaq 0x5(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x5450
movq %rax, %r14
leaq 0x77fa(%rip), %rsi      # 0x1871b
movl $0x14, %edx
movq %rax, %rdi
callq 0x5450
movq %r14, %rdi
movq %r13, %rsi
callq 0x53b0
leaq 0x6(%rsp), %rsi
movb $0x2e, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x5450
movq %rax, %rdi
movq %r12, %rsi
callq 0x53b0
leaq 0x7(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x5450
movq %rax, %r14
leaq 0x77b8(%rip), %rsi      # 0x18730
movl $0xd, %edx
movq %rax, %rdi
callq 0x5450
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x5280
movq %rax, %r14
leaq 0x7f2b(%rip), %rsi      # 0x18ecb
movl $0x1, %edx
movq %rax, %rdi
callq 0x5450
leaq 0x778a(%rip), %rsi      # 0x1873e
movl $0xe, %edx
movq %r14, %rdi
callq 0x5450
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x5280
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x53c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5290
movq %rbx, %rdi
callq 0x17b62
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop