// File: /workspace/github_c_makefile_star2_O0/mkubecek[P]nperf/stats.c
// Function: xfer_stats_print_thread
void xfer_stats_print_thread(const struct xfer_stats *client,
			     const struct xfer_stats *server, unsigned int id,
			     unsigned int test_mode, double elapsed,
			     const struct print_options *opts)
{
	struct print_options byte_opts = *opts;

	if (id == XFER_STATS_TOTAL)
		fputs("total     ", stdout);
	else
		printf("thread %-3d", id);

	switch (test_mode) {
	case MODE_TCP_STREAM:
		fputs(" sent ", stdout);
		print_count(client->tx.bytes, opts);
		fputs(", rate ", stdout);
		print_rate(client->tx.bytes / elapsed, opts);
		fputs(", received ", stdout);
		print_count(server->rx.bytes, opts);
		fputs(", rate ", stdout);
		print_rate(server->rx.bytes / elapsed, opts);
		putchar('\n');
		break;
	case MODE_TCP_RR:
		print_opts_setup(&byte_opts, MODE_TCP_STREAM);
		fputs(" sent ", stdout);
		print_count(client->tx.msgs, opts);
		fputs(", rate ", stdout);
		print_rate(client->tx.msgs / elapsed, opts);
		fputs(", ", stdout);
		print_rate(client->tx.bytes / elapsed, &byte_opts);

		print_opts_setup(&byte_opts, MODE_TCP_STREAM);
		fputs(", received ", stdout);
		print_count(client->rx.msgs, opts);
		fputs(", rate ", stdout);
		print_rate(client->rx.msgs / elapsed, opts);
		fputs(", ", stdout);
		print_rate(client->rx.bytes / elapsed, &byte_opts);
		putchar('\n');
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x34(%rbp)
movl 0x8(%rax), %eax
movl %eax, -0x2c(%rbp)
cmpl $-0x1, -0x14(%rbp)
jne 0x56d1
movq 0x5910(%rip), %rax      # 0xafd0
movq (%rax), %rsi
leaq 0x29d8(%rip), %rdi      # 0x80a2
callq 0x2160
jmp 0x56e2
movl -0x14(%rbp), %esi
leaq 0x29d2(%rip), %rdi      # 0x80ad
movb $0x0, %al
callq 0x2130
movl -0x18(%rbp), %eax
movl %eax, -0x38(%rbp)
testl %eax, %eax
je 0x56ff
jmp 0x56ee
movl -0x38(%rbp), %eax
subl $0x1, %eax
je 0x57fb
jmp 0x59da
movq 0x58ca(%rip), %rax      # 0xafd0
movq %rax, -0x70(%rbp)
movq (%rax), %rsi
leaq 0x29a5(%rip), %rdi      # 0x80b9
callq 0x2160
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0x5170
movq -0x70(%rbp), %rax
movq (%rax), %rsi
leaq 0x2988(%rip), %rdi      # 0x80c0
movq %rdi, -0x68(%rbp)
callq 0x2160
movq -0x8(%rbp), %rax
movq 0x28(%rax), %xmm0
movaps 0x287f(%rip), %xmm1     # 0x7fd0
movaps %xmm1, -0x60(%rbp)
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x287f(%rip), %xmm1     # 0x7fe0
movaps %xmm1, -0x50(%rbp)
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rdi
callq 0x52f0
movq -0x70(%rbp), %rax
movq (%rax), %rsi
leaq 0x2934(%rip), %rdi      # 0x80c8
callq 0x2160
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0x5170
movq -0x70(%rbp), %rax
movq -0x68(%rbp), %rdi
movq (%rax), %rsi
callq 0x2160
movaps -0x60(%rbp), %xmm2
movaps -0x50(%rbp), %xmm1
movq -0x10(%rbp), %rax
movq 0x10(%rax), %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
divsd -0x20(%rbp), %xmm0
movq -0x28(%rbp), %rdi
callq 0x52f0
movl $0xa, %edi
callq 0x2050
jmp 0x59da
leaq -0x34(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
xorl %esi, %esi
movl %esi, -0xac(%rbp)
callq 0x5110
movq 0x57b6(%rip), %rax      # 0xafd0
movq %rax, -0xa0(%rbp)
movq (%rax), %rsi
leaq 0x288e(%rip), %rdi      # 0x80b9
callq 0x2160
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0x5170
movq -0xa0(%rbp), %rax
movq (%rax), %rsi
leaq 0x286e(%rip), %rdi      # 0x80c0
movq %rdi, -0xa8(%rbp)
callq 0x2160
movq -0x8(%rbp), %rax
movq 0x18(%rax), %xmm0
movaps 0x2762(%rip), %xmm1     # 0x7fd0
movaps %xmm1, -0x90(%rbp)
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x275f(%rip), %xmm1     # 0x7fe0
movaps %xmm1, -0x80(%rbp)
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rdi
callq 0x52f0
movq -0xa0(%rbp), %rax
movq (%rax), %rsi
leaq 0x281d(%rip), %rdi      # 0x80d4
movq %rdi, -0x98(%rbp)
callq 0x2160
movq -0xb8(%rbp), %rdi
movaps -0x90(%rbp), %xmm2
movaps -0x80(%rbp), %xmm1
movq -0x8(%rbp), %rax
movq 0x28(%rax), %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm1
divsd %xmm1, %xmm0
callq 0x52f0
movq -0xb8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x5110
movq -0xa0(%rbp), %rax
movq (%rax), %rsi
leaq 0x27a6(%rip), %rdi      # 0x80c8
callq 0x2160
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0x5170
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rax
movq (%rax), %rsi
callq 0x2160
movaps -0x90(%rbp), %xmm2
movaps -0x80(%rbp), %xmm1
movq -0x8(%rbp), %rax
movq (%rax), %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rdi
callq 0x52f0
movq -0xa0(%rbp), %rax
movq -0x98(%rbp), %rdi
movq (%rax), %rsi
callq 0x2160
movaps -0x90(%rbp), %xmm2
movaps -0x80(%rbp), %xmm1
movq -0x8(%rbp), %rax
movq 0x10(%rax), %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
divsd -0x20(%rbp), %xmm0
leaq -0x34(%rbp), %rdi
callq 0x52f0
movl $0xa, %edi
callq 0x2050
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)