// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/top.c
// Function: display
static void display() {
    int y, w, h;
    func_entry_t *el;
    size_t i;

    if (func_list_len > 0) {
        qsort(func_list, func_list_len, sizeof(func_entry_t*), func_list_compare);
        for (i = 0; i < func_list_len; i++) {
            func_list[i]->total_count_excl += func_list[i]->count_excl;
            func_list[i]->total_count_incl += func_list[i]->count_incl;
            func_list[i]->percent_excl = samp_count < 1 ? 0.f : (100.f * func_list[i]->count_excl / samp_count);
        }
    }
    total_samp_count += samp_count;

    tb_clear();
    w = tb_width();
    h = tb_height();
    y = 0;
    tb_printf(0,  y++, TB_BOLD, 0, "%s", phpspy_args);
    tb_printf(0,  y++, 0, 0, "samp_count=%llu  err_count=%llu  func_count=%llu", total_samp_count, total_err_count, func_list_len);
    y++;
    tb_printf(
        0, y, TB_BOLD | TB_REVERSE, 0,
        "%-10s %-10s %-10s %-10s %-7s ",
        "tincl", "texcl", "incl", "excl", "excl%"
    );
    tb_printf(52, y++, TB_BOLD | TB_REVERSE, 0, "%-*s", w-52, "func");
    i = 0;
    while (y < h && i < func_list_len) {
        el = func_list[i++];
        tb_printf(0, y++, 0, 0,
            "%-9llu  %-9llu  %-9llu  %-9llu  %-6.2f  %s",
            el->total_count_incl,
            el->total_count_excl,
            el->count_incl,
            el->count_excl,
            el->percent_excl,
            el->func
        );
    }

    for (i = 0; i < func_list_len; i++) {
        func_list[i]->count_excl = 0;
        func_list[i]->count_incl = 0;
    }
    samp_count = 0;

    if (!is_paused) tb_present();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x68, %rsp
cmpq $0x0, 0x109c7(%rip)     # 0x3ca78
jbe 0x2c24b
movq 0x109ca(%rip), %rdi     # 0x3ca88
movq 0x109b3(%rip), %rsi     # 0x3ca78
movl $0x8, %edx
leaq 0x3ef(%rip), %rcx       # 0x2c4c0
callq 0x60b0
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq 0x1098f(%rip), %rax     # 0x3ca78
jae 0x2c249
movq 0x10992(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x100(%rax), %rcx
movq 0x1097c(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x110(%rax), %rcx
movq %rcx, 0x110(%rax)
movq 0x1095f(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x108(%rax), %rcx
movq 0x10949(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x118(%rax), %rcx
movq %rcx, 0x118(%rax)
cmpq $0x1, 0x10933(%rip)     # 0x3ca90
jae 0x2c16c
xorps %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
jmp 0x2c21c
movq 0x10915(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x100(%rax), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, -0x34(%rbp)
testq %rax, %rax
movss %xmm0, -0x30(%rbp)
js 0x2c1b7
movss -0x34(%rbp), %xmm0
movss %xmm0, -0x30(%rbp)
movss -0x30(%rbp), %xmm0
movss 0x8f44(%rip), %xmm1     # 0x35108
mulss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movq 0x108bc(%rip), %rax     # 0x3ca90
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, -0x3c(%rbp)
testq %rax, %rax
movss %xmm0, -0x38(%rbp)
js 0x2c209
movss -0x3c(%rbp), %xmm0
movss %xmm0, -0x38(%rbp)
movss -0x40(%rbp), %xmm0
movss -0x38(%rbp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x2c(%rbp), %xmm0
movq 0x10860(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movss %xmm0, 0x120(%rax)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x2c0de
jmp 0x2c24b
movq 0x1083e(%rip), %rax     # 0x3ca90
addq 0x1084f(%rip), %rax     # 0x3caa8
movq %rax, 0x10848(%rip)     # 0x3caa8
callq 0x71a0
callq 0x7140
movl %eax, -0x10(%rbp)
callq 0x7170
movl %eax, -0x14(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
xorl %ecx, %ecx
movl $0x100, %edx            # imm = 0x100
leaq 0x8f48(%rip), %r8       # 0x351dd
leaq 0x103c4(%rip), %r9      # 0x3c660
movl %ecx, %edi
movb $0x0, %al
callq 0x88a0
movl -0xc(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movq 0x107f1(%rip), %r9      # 0x3caa8
movq 0x107da(%rip), %r10     # 0x3ca98
movq 0x107b3(%rip), %rax     # 0x3ca78
xorl %ecx, %ecx
leaq 0x8e81(%rip), %r8       # 0x3514f
movl %ecx, %edi
movl %ecx, %edx
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x88a0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %esi
xorl %ecx, %ecx
movl $0x500, %edx            # imm = 0x500
leaq 0x8e84(%rip), %r8       # 0x35180
leaq 0x8e9b(%rip), %r9       # 0x3519e
leaq 0x8e9a(%rip), %rbx      # 0x351a4
leaq 0x8e8e(%rip), %r11      # 0x3519f
leaq 0x8e8d(%rip), %r10      # 0x351a5
leaq 0x8e8b(%rip), %rax      # 0x351aa
movl %ecx, %edi
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x88a0
movl -0xc(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %r9d
subl $0x34, %r9d
movl $0x34, %edi
movl $0x500, %edx            # imm = 0x500
xorl %ecx, %ecx
leaq 0x8e4f(%rip), %r8       # 0x351b0
leaq 0x8c31(%rip), %rax      # 0x34f99
movq %rax, (%rsp)
movb $0x0, %al
callq 0x88a0
movq $0x0, -0x28(%rbp)
movl -0xc(%rbp), %ecx
xorl %eax, %eax
cmpl -0x14(%rbp), %ecx
movb %al, -0x41(%rbp)
jge 0x2c399
movq -0x28(%rbp), %rax
cmpq 0x106e5(%rip), %rax     # 0x3ca78
setb %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x2c3a5
jmp 0x2c43a
movq 0x106dc(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movl -0xc(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movq -0x20(%rbp), %rax
movq 0x118(%rax), %r9
movq -0x20(%rbp), %rax
movq 0x110(%rax), %rbx
movq -0x20(%rbp), %rax
movq 0x108(%rax), %r11
movq -0x20(%rbp), %rax
movq 0x100(%rax), %r10
movq -0x20(%rbp), %rax
movss 0x120(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x20(%rbp), %rax
xorl %ecx, %ecx
leaq 0x8d9e(%rip), %r8       # 0x351b5
movl %ecx, %edi
movl %ecx, %edx
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x1, %al
callq 0x88a0
jmp 0x2c37b
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq 0x1062b(%rip), %rax     # 0x3ca78
jae 0x2c491
movq 0x10632(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq $0x0, 0x100(%rax)
movq 0x10618(%rip), %rax     # 0x3ca88
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq $0x0, 0x108(%rax)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x2c442
movq $0x0, 0x105f4(%rip) # 0x3ca90
cmpl $0x0, 0x105fd(%rip)     # 0x3caa0
jne 0x2c4aa
callq 0x72c0
addq $0x68, %rsp
popq %rbx
popq %rbp
retq
nopw %cs:(%rax,%rax)