// File: /workspace/github_cpp_makefile_star2_O3/lotuskip[P]yuxtapa/server/players.cpp
// Function: output_stats()
void output_stats()
{
	// General stuff:
	cout << "Players: " << known_players.size() << endl << endl;

	struct tm *timeinfo;
	unsigned long l;
	short sh;
	for(list<PlayerStats>::const_iterator it = known_players.begin();
		it != known_players.end(); ++it)
	{
		cout << it->last_known_as << endl;
		cout << "AL " << short(it->ad_lvl) << endl;
 		timeinfo = localtime(&(it->last_seen));
		cout << "seen " << asctime(timeinfo); // asctime includes '\n'
		l = it->total_time;
		cout << "tot_time: " << l/(60*60) << ':';
		if((l%(60*60))/60 < 10)
			cout << '0';
		cout << (l%(60*60))/60 << ':';
		if(l%60 < 10)
			cout << '0';
		cout << l%60 << endl;
		if(l)
		{
			cout << "as_spec: " << 100*it->time_specced/l << '%' << endl;
			for(sh = 0; sh < NO_CLASS; ++sh)
			{
				if(100*it->time_played[sh]/l) // only print non-zeros here
					cout << "as_" << classes[sh].abbr << ": "
						<< 100*it->time_played[sh]/l << '%' << endl;
			}
		}
		l = 0;
		cout << "kills: ";
		for(sh = 0; sh < MAX_WAY_TO_KILL; ++sh)
		{
			if(it->kills[sh])
			{
				cout << it->kills[sh]  << ' ' << kill_way_name[sh] << ", ";
				l += it->kills[sh];
			}
		}
		cout << "TOTAL: " << l << endl;
		cout << "t-kills: " << it->tks << endl;
		cout << "deaths: " << it->deaths << endl;
		cout << "healing: " << it->healing_recvd << endl;
		cout << "arch: ";
		if(it->arch_shots)
			cout  << 100*it->arch_hits/(it->arch_shots) << '%';
		else
			cout << '-';
		cout << endl << "zaps: ";
		if(it->cm_shots)
			cout << 100*it->cm_hits/(it->cm_shots) << '%';
		else
			cout << '-';
		cout << endl << endl;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq 0x2c07d(%rip), %rbx     # 0x3ffb8
leaq 0x18a1e(%rip), %rsi     # 0x2c960
movl $0x9, %edx
movq %rbx, %rdi
callq 0x4460
leaq 0x2f152(%rip), %r12     # 0x430a8
movq 0x2f15b(%rip), %rsi     # 0x430b8
movq %rbx, %rdi
callq 0x4240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movq 0x2f0e8(%rip), %r15     # 0x430a8
cmpq %r12, %r15
je 0x1461c
movq 0x20(%r15), %rsi
movq 0x28(%r15), %rdx
movq %rbx, %rdi
callq 0x4460
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x18958(%rip), %rsi     # 0x2c96a
callq 0x4460
movswl 0x140(%r15), %esi
movq %rbx, %rdi
callq 0x43a0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
leaq 0x138(%r15), %rdi
callq 0x42b0
movq %rax, %r12
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x188ff(%rip), %rsi     # 0x2c96e
callq 0x4460
movq %r12, %rdi
callq 0x4190
testq %rax, %rax
movq %rbx, %r14
je 0x1409f
movq %rax, %r12
movq %rax, %rdi
callq 0x41a0
movq %r14, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x4460
jmp 0x140b7
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x4700
movq 0xb0(%r15), %r13
movl $0xa, %edx
movq %r14, %rdi
leaq 0x188a7(%rip), %rsi     # 0x2c974
callq 0x4460
movq %r13, %rax
shrq $0x4, %rax
movabsq $0x91a2b3c4d5e6f81, %rcx # imm = 0x91A2B3C4D5E6F81
mulq %rcx
movq %rdx, %r12
shrq $0x3, %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0x4240
movb $0x3a, -0x29(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x29(%rbp), %rsi
callq 0x4460
imulq $0xe10, %r12, %rax      # imm = 0xE10
movq %r13, %rbx
subq %rax, %rbx
cmpq $0x257, %rbx            # imm = 0x257
ja 0x14138
movb $0x30, -0x2a(%rbp)
movl $0x1, %edx
movq %r14, %rdi
leaq -0x2a(%rbp), %rsi
callq 0x4460
imull $0x889, %ebx, %esi      # imm = 0x889
shrl $0x11, %esi
movq %r14, %rdi
callq 0x4240
movb $0x3a, -0x2b(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x4460
movq %r13, %rax
movabsq $-0x7777777777777777, %rcx # imm = 0x8888888888888889
mulq %rcx
shrq $0x5, %rdx
imulq $0x3c, %rdx, %rax
movq %r13, %r12
subq %rax, %r12
cmpq $0x9, %r12
ja 0x14197
movb $0x30, -0x2c(%rbp)
movl $0x1, %edx
movq %r14, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x4460
movq %r14, %rdi
movq %r12, %rsi
callq 0x4240
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
testq %r13, %r13
je 0x14309
movl $0x9, %edx
movq %r14, %rdi
leaq 0x1879b(%rip), %rsi     # 0x2c97f
callq 0x4460
imulq $0x64, 0xb8(%r15), %rax
xorl %edx, %edx
divq %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x4240
movb $0x25, -0x2d(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x2d(%rbp), %rsi
callq 0x4460
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
leaq 0x18789(%rip), %r12     # 0x2c9d0
xorl %ebx, %ebx
imulq $0x64, 0xc0(%r15,%rbx,8), %rax
cmpq %rax, %r13
ja 0x142f8
movl $0x3, %edx
movq %r14, %rdi
leaq 0x1871f(%rip), %rsi     # 0x2c989
callq 0x4460
movq %r12, %rdi
callq 0x41a0
movq %r14, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x4460
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1aec7(%rip), %rsi     # 0x2f15b
callq 0x4460
imulq $0x64, 0xc0(%r15,%rbx,8), %rax
xorl %edx, %edx
divq %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x4240
movb $0x25, -0x2e(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x2e(%rbp), %rsi
callq 0x4460
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
movq 0x2bccd(%rip), %r14     # 0x3ffb8
callq 0x4040
movq %rax, %rdi
callq 0x4250
incq %rbx
addq $0xd, %r12
cmpq $0xb, %rbx
jne 0x14249
movl $0x7, %edx
movq %r14, %rdi
leaq 0x1867f(%rip), %rsi     # 0x2c997
callq 0x4460
xorl %ebx, %ebx
xorl %r12d, %r12d
leaq -0x2f(%rbp), %r13
movq 0x48(%r15,%rbx), %rsi
testq %rsi, %rsi
je 0x1437d
movq %r14, %rdi
callq 0x4240
movb $0x20, -0x2f(%rbp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x4460
leaq 0x2ebbd(%rip), %rcx     # 0x42f10
movq (%rcx,%rbx,4), %rsi
movq 0x8(%rcx,%rbx,4), %rdx
movq %rax, %rdi
callq 0x4460
movl $0x2, %edx
movq %rax, %rdi
leaq 0x214d6(%rip), %rsi     # 0x35849
callq 0x4460
addq 0x48(%r15,%rbx), %r12
addq $0x8, %rbx
cmpq $0x58, %rbx
jne 0x14326
movl $0x7, %edx
movq %r14, %rdi
leaq 0x185f7(%rip), %rsi     # 0x2c98d
callq 0x4460
movq %r14, %rdi
movq %r12, %rsi
callq 0x4240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movl $0x9, %edx
movq 0x2bbdc(%rip), %rdi     # 0x3ffb8
leaq 0x185b2(%rip), %rsi     # 0x2c995
callq 0x4460
movq 0xa0(%r15), %rsi
movq 0x2bbc2(%rip), %rdi     # 0x3ffb8
callq 0x4240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movl $0x8, %edx
movq 0x2bb87(%rip), %rdi     # 0x3ffb8
leaq 0x18567(%rip), %rsi     # 0x2c99f
callq 0x4460
movq 0x40(%r15), %rsi
movq 0x2bb70(%rip), %rdi     # 0x3ffb8
callq 0x4240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movl $0x9, %edx
movq 0x2bb35(%rip), %rdi     # 0x3ffb8
leaq 0x1851e(%rip), %rsi     # 0x2c9a8
callq 0x4460
movq 0xa8(%r15), %rsi
movq 0x2bb1b(%rip), %rdi     # 0x3ffb8
callq 0x4240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
movq 0x2baf2(%rip), %rbx     # 0x3ffb8
callq 0x4040
movq %rax, %rdi
callq 0x4250
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x184d0(%rip), %rsi     # 0x2c9b2
callq 0x4460
movq 0x120(%r15), %rcx
testq %rcx, %rcx
je 0x1451d
imulq $0x64, 0x118(%r15), %rax
xorl %edx, %edx
divq %rcx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4240
movb $0x25, -0x30(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x30(%rbp), %rsi
jmp 0x1452d
movb $0x2d, -0x31(%rbp)
movl $0x1, %edx
movq %rbx, %rdi
leaq -0x31(%rbp), %rsi
callq 0x4460
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movl $0x6, %edx
movq %rax, %rdi
leaq 0x18451(%rip), %rsi     # 0x2c9b9
callq 0x4460
movq 0x130(%r15), %rcx
testq %rcx, %rcx
je 0x145a3
imulq $0x64, 0x128(%r15), %rax
xorl %edx, %edx
divq %rcx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4240
movb $0x25, -0x32(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x32(%rbp), %rsi
jmp 0x145b3
movb $0x2d, -0x33(%rbp)
movl $0x1, %edx
movq %rbx, %rdi
leaq -0x33(%rbp), %rsi
callq 0x4460
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x43d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4250
movq (%r15), %r15
leaq 0x2ea95(%rip), %rax     # 0x430a8
cmpq %rax, %r15
jne 0x13fc9
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq