// File: /workspace/github_cpp_makefile_star2_O3/111116[P]console/./consolelog.hpp
// Function: github111116::ConsoleLogger::timeEnd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
inline void ConsoleLogger::timeEnd(const std::string& label)
{
	if (!starttimes.count(label))
	{
		warn("Timer \"" + label + "\" doesn't exist.");
		return;
	}
	mtx.lock();
	auto now = std::chrono::system_clock::now();
	std::chrono::duration<double> seconds = now - starttimes[label];
	if (loglevel <= 0)
		out << "    "+label+": " << 0.001*round(seconds.count()*1000) << "s - timer ended" << std::endl;
	starttimes.erase(label);
	mtx.unlock();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %rbx
movq %rdi, %r12
leaq 0x70(%rdi), %r14
movq %r14, %rdi
callq 0x3a56
testq %rax, %rax
je 0x33d0
leaq 0xe0(%r12), %r15
movq %r15, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x354e
callq 0x2040
movq %rax, %r13
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3bce
cmpl $0x0, 0x6c(%r12)
jg 0x352c
subq (%rax), %r13
movq (%r12), %rax
movq %rax, -0x50(%rbp)
leaq 0x1c99(%rip), %rsi      # 0x5020
leaq -0x70(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rdx
callq 0x39ca
leaq 0x1db5(%rip), %rsi      # 0x5152
movq %r12, %rdi
callq 0x2290
leaq -0x38(%rbp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x346e
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3479
leaq 0x1d1c(%rip), %rsi      # 0x50f3
leaq -0x70(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x39ca
leaq 0x1d54(%rip), %rsi      # 0x5141
movq %r14, %rdi
callq 0x2290
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3419
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3422
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
callq 0x392c
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x3453
callq 0x2160
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x353f
callq 0x2160
jmp 0x353f
movupd (%rcx), %xmm0
movupd %xmm0, (%rdx)
movq %rdx, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x50(%rbp), %rdi
callq 0x21b0
movq %rax, %r12
xorps %xmm0, %xmm0
cvtsi2sd %r13, %xmm0
divsd 0x1b7c(%rip), %xmm0     # 0x5028
mulsd 0x1b7c(%rip), %xmm0     # 0x5030
callq 0x20b0
mulsd 0x1b77(%rip), %xmm0     # 0x5038
movq %r12, %rdi
callq 0x2220
movq %rax, %r12
leaq 0x1c82(%rip), %rsi      # 0x5155
movl $0xf, %edx
movq %rax, %rdi
callq 0x21b0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2170
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x351a
callq 0x2160
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x352c
callq 0x2160
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3fde
movq %r15, %rdi
callq 0x2120
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %eax, %edi
callq 0x20f0
jmp 0x3565
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
jne 0x357a
jmp 0x357f
movq %rax, %rbx
jmp 0x357f
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x357f
callq 0x2160
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3591
callq 0x2160
movq %rbx, %rdi
callq 0x2270
nop