// File: cybozu[P]yrmcds/src/counter/handler.cpp
// Function: yrmcds::counter::handler::dump_stats()
void handler::dump_stats() {
    std::uint64_t ops = 0;
    for( auto& v: g_stats.ops ) {
        ops += v.load(relaxed);
    }
    using logger = cybozu::logger;
    logger::info() << "counter: "
                   << g_stats.objects.load(relaxed) << " objects, "
                   << g_stats.curr_connections.load(relaxed) << " clients, "
                   << ops << " total ops.";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
leaq 0x84142(%rip), %rax     # 0xafe40
addq $0xc0, %rax
movq %rax, -0x60(%rbp)
leaq 0x84131(%rip), %rax     # 0xafe40
addq $0xc0, %rax
movq %rax, -0x68(%rbp)
leaq 0x84120(%rip), %rax     # 0xafe40
addq $0xc0, %rax
addq $0x98, %rax
movq %rax, -0x70(%rbp)
movq -0x68(%rbp), %rax
cmpq -0x70(%rbp), %rax
je 0x2bdda
movq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xb0(%rbp)
movl -0x24(%rbp), %edi
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x104e0
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0xa4(%rbp)
decl %eax
subl $0x2, %eax
jb 0x2bd9f
jmp 0x2bd82
movl -0xa4(%rbp), %eax
subl $0x5, %eax
je 0x2bdaf
jmp 0x2bd8f
movq -0xb0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x2bdbd
movq -0xb0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x2bdbd
movq -0xb0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x68(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x68(%rbp)
jmp 0x2bd30
leaq -0x88(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x22390
movq -0xc0(%rbp), %rdi
leaq 0x4f055(%rip), %rsi     # 0x7ae50
callq 0x22600
movq %rax, -0xb8(%rbp)
jmp 0x2be09
leaq 0x84030(%rip), %rax     # 0xafe40
movq %rax, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xd0(%rbp)
movl -0xc(%rbp), %edi
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x104e0
movl %eax, -0x10(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0xc4(%rbp)
decl %eax
subl $0x2, %eax
jb 0x2be63
jmp 0x2be48
movl -0xc4(%rbp), %eax
subl $0x5, %eax
je 0x2be71
jmp 0x2be55
movq -0xd0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
jmp 0x2be7d
movq -0xd0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
jmp 0x2be7d
movq -0xd0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
movq -0xb8(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x98(%rbp)
leaq -0x98(%rbp), %rsi
callq 0x24620
movq %rax, -0xd8(%rbp)
jmp 0x2bea2
movq -0xd8(%rbp), %rdi
leaq 0x4efaa(%rip), %rsi     # 0x7ae5a
callq 0x2cd60
movq %rax, -0xe0(%rbp)
jmp 0x2bebe
leaq 0x83f7b(%rip), %rax     # 0xafe40
subq $-0x80, %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0xf0(%rbp)
movl -0x3c(%rbp), %edi
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x104e0
movl %eax, -0x40(%rbp)
movl -0x3c(%rbp), %eax
movl %eax, -0xe4(%rbp)
decl %eax
subl $0x2, %eax
jb 0x2bf1e
jmp 0x2bf01
movl -0xe4(%rbp), %eax
subl $0x5, %eax
je 0x2bf2e
jmp 0x2bf0e
movq -0xf0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x2bf3c
movq -0xf0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x2bf3c
movq -0xf0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0xe0(%rbp), %rdi
movq -0x48(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq -0xa0(%rbp), %rsi
callq 0x24e10
movq %rax, -0xf8(%rbp)
jmp 0x2bf63
movq -0xf8(%rbp), %rdi
leaq 0x4eef4(%rip), %rsi     # 0x7ae65
callq 0x2cd60
movq %rax, -0x100(%rbp)
jmp 0x2bf7f
movq -0x100(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x24e10
movq %rax, -0x108(%rbp)
jmp 0x2bf98
movq -0x108(%rbp), %rdi
leaq 0x4eeca(%rip), %rsi     # 0x7ae70
callq 0x225a0
jmp 0x2bfad
leaq -0x88(%rbp), %rdi
callq 0xa770
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xa770
movq -0x90(%rbp), %rdi
callq 0x8bc0
nopl (%rax)