// File: /workspace/github_c_makefile_star2_O0/jech[P]dht/dht.c
// Function: dump_bucket
static void
dump_bucket(FILE *f, struct bucket *b)
{
    struct node *n = b->nodes;
    fprintf(f, "Bucket ");
    print_hex(f, b->first, 20);
    fprintf(f, " count %d/%d age %d%s%s:\n",
            b->count, b->max_count, (int)(now.tv_sec - b->time),
            in_bucket(myid, b) ? " (mine)" : "",
            b->cached.ss_family ? " (cached)" : "");
    while(n) {
        char buf[512];
        unsigned short port;
        fprintf(f, "    Node ");
        print_hex(f, n->id, 20);
        if(n->ss.ss_family == AF_INET) {
            struct sockaddr_in *sin = (struct sockaddr_in*)&n->ss;
            inet_ntop(AF_INET, &sin->sin_addr, buf, 512);
            port = ntohs(sin->sin_port);
        } else if(n->ss.ss_family == AF_INET6) {
            struct sockaddr_in6 *sin6 = (struct sockaddr_in6*)&n->ss;
            inet_ntop(AF_INET6, &sin6->sin6_addr, buf, 512);
            port = ntohs(sin6->sin6_port);
        } else {
            snprintf(buf, 512, "unknown(%d)", n->ss.ss_family);
            port = 0;
        }

        if(n->ss.ss_family == AF_INET6)
            fprintf(f, " [%s]:%d ", buf, port);
        else
            fprintf(f, " %s:%d ", buf, port);
        if(n->time != n->reply_time)
            fprintf(f, "age %ld, %ld",
                    (long)(now.tv_sec - n->time),
                    (long)(now.tv_sec - n->reply_time));
        else
            fprintf(f, "age %ld", (long)(now.tv_sec - n->time));
        if(n->pinged)
            fprintf(f, " (%d)", n->pinged);
        if(node_good(n))
            fprintf(f, " (good)");
        fprintf(f, "\n");
        n = n->next;
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x7e44(%rip), %rsi      # 0xc72e
movb $0x0, %al
callq 0x21c0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x4, %rsi
movl $0x14, %edx
callq 0x4860
movq -0x8(%rbp), %rax
movq %rax, -0x250(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x244(%rbp)
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %eax
movl %eax, -0x240(%rbp)
movq 0xc2dd(%rip), %rax      # 0x10c10
movq -0x10(%rbp), %rcx
subq 0x20(%rcx), %rax
movl %eax, -0x23c(%rbp)
movq -0x10(%rbp), %rsi
leaq 0xc2e4(%rip), %rdi      # 0x10c30
callq 0x9840
movq -0x250(%rbp), %rdi
movl -0x244(%rbp), %edx
movl -0x240(%rbp), %ecx
movl -0x23c(%rbp), %r8d
movl %eax, %esi
leaq 0x79aa(%rip), %r9       # 0xc31e
leaq 0x7dd5(%rip), %rax      # 0xc750
cmpl $0x0, %esi
cmovneq %rax, %r9
movq -0x10(%rbp), %rax
movzwl 0x30(%rax), %r10d
leaq 0x798c(%rip), %rax      # 0xc31e
leaq 0x7dbf(%rip), %rsi      # 0xc758
cmpl $0x0, %r10d
cmovneq %rsi, %rax
leaq 0x7d8e(%rip), %rsi      # 0xc736
movq %rax, (%rsp)
movb $0x0, %al
callq 0x21c0
cmpq $0x0, -0x18(%rbp)
je 0x4bf0
movq -0x8(%rbp), %rdi
leaq 0x7d99(%rip), %rsi      # 0xc762
movb $0x0, %al
callq 0x21c0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x14, %edx
callq 0x4860
movq -0x18(%rbp), %rax
movzwl 0x18(%rax), %eax
cmpl $0x2, %eax
jne 0x4a3b
movq -0x18(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rsi
addq $0x4, %rsi
leaq -0x220(%rbp), %rdx
movl $0x2, %edi
movl $0x200, %ecx            # imm = 0x200
callq 0x2030
movq -0x230(%rbp), %rax
movzwl 0x2(%rax), %edi
callq 0x2270
movw %ax, -0x222(%rbp)
jmp 0x4abe
movq -0x18(%rbp), %rax
movzwl 0x18(%rax), %eax
cmpl $0xa, %eax
jne 0x4a91
movq -0x18(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x238(%rbp)
movq -0x238(%rbp), %rsi
addq $0x8, %rsi
leaq -0x220(%rbp), %rdx
movl $0xa, %edi
movl $0x200, %ecx            # imm = 0x200
callq 0x2030
movq -0x238(%rbp), %rax
movzwl 0x2(%rax), %edi
callq 0x2270
movw %ax, -0x222(%rbp)
jmp 0x4abc
leaq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movzwl 0x18(%rax), %ecx
movl $0x200, %esi            # imm = 0x200
leaq 0x7cc0(%rip), %rdx      # 0xc76c
movb $0x0, %al
callq 0x2120
movw $0x0, -0x222(%rbp)
jmp 0x4abe
movq -0x18(%rbp), %rax
movzwl 0x18(%rax), %eax
cmpl $0xa, %eax
jne 0x4aed
movq -0x8(%rbp), %rdi
leaq -0x220(%rbp), %rdx
movzwl -0x222(%rbp), %ecx
leaq 0x7c94(%rip), %rsi      # 0xc778
movb $0x0, %al
callq 0x21c0
jmp 0x4b0d
movq -0x8(%rbp), %rdi
leaq -0x220(%rbp), %rdx
movzwl -0x222(%rbp), %ecx
leaq 0x7c7c(%rip), %rsi      # 0xc782
movb $0x0, %al
callq 0x21c0
movq -0x18(%rbp), %rax
movq 0xa0(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0xa8(%rcx), %rax
je 0x4b5d
movq -0x8(%rbp), %rdi
movq 0xc0e0(%rip), %rdx      # 0x10c10
movq -0x18(%rbp), %rax
subq 0xa0(%rax), %rdx
movq 0xc0ce(%rip), %rcx      # 0x10c10
movq -0x18(%rbp), %rax
subq 0xa8(%rax), %rcx
leaq 0x7c36(%rip), %rsi      # 0xc78a
movb $0x0, %al
callq 0x21c0
jmp 0x4b81
movq -0x8(%rbp), %rdi
movq 0xc0a8(%rip), %rdx      # 0x10c10
movq -0x18(%rbp), %rax
subq 0xa0(%rax), %rdx
leaq 0x7c1d(%rip), %rsi      # 0xc797
movb $0x0, %al
callq 0x21c0
movq -0x18(%rbp), %rax
cmpl $0x0, 0xb8(%rax)
je 0x4baa
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0xb8(%rax), %edx
leaq 0x772d(%rip), %rsi      # 0xc2d0
movb $0x0, %al
callq 0x21c0
movq -0x18(%rbp), %rdi
callq 0x4330
cmpl $0x0, %eax
je 0x4bca
movq -0x8(%rbp), %rdi
leaq 0x7bdc(%rip), %rsi      # 0xc79f
movb $0x0, %al
callq 0x21c0
movq -0x8(%rbp), %rdi
leaq 0x7748(%rip), %rsi      # 0xc31d
movb $0x0, %al
callq 0x21c0
movq -0x18(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x49b3
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
nopl (%rax)