// File: /workspace/github_cpp_makefile_star2_O2/cybozu[P]yrmcds/src/counter/counter.cpp
// Function: yrmcds::counter::response::stats()
void response::stats() {
    const statistics& s = g_stats;
    std::vector<char> body;
    add_stat_atomic(body, "objects", s.objects);
    add_stat_atomic(body, "total_objects", s.total_objects);
    add_stat_atomic(body, "used_memory", s.used_memory);
    add_stat_atomic(body, "conflicts", s.conflicts);
    add_stat_atomic(body, "gc_count", s.gc_count);
    add_stat_atomic(body, "last_gc_elapsed", s.last_gc_elapsed);
    add_stat_atomic(body, "total_gc_elapsed", s.total_gc_elapsed);
    add_stat_atomic(body, "curr_connections", s.curr_connections);
    add_stat_atomic(body, "total_connections", s.total_connections);
    add_stat_op(body, "command:noop", counter::command::Noop);
    add_stat_op(body, "command:get", counter::command::Get);
    add_stat_op(body, "command:acquire", counter::command::Acquire);
    add_stat_op(body, "command:release", counter::command::Release);
    add_stat_op(body, "command:stats", counter::command::Stats);
    add_stat_op(body, "command:dump", counter::command::Dump);

    char header[HEADER_SIZE];
    fill_header(header, counter::status::OK, body.size());
    cybozu::tcp_socket::iovec iov[] = {
        {header, HEADER_SIZE},
        {body.data(), body.size()},
    };
    m_socket.sendv(iov, 2, true);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
andq $0x0, 0x40(%rsp)
leaq 0xadd5(%rip), %rsi      # 0x2890e
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x1e1b3(%rip), %r14     # 0x3bd00
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x1deb0
movq %rsp, %rdi
callq 0x71d0
leaq 0xad9c(%rip), %rsi      # 0x28908
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x40(%r14), %rdx
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deff
movq %rsp, %rdi
callq 0x71d0
leaq 0xad7d(%rip), %rsi      # 0x28916
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x8(%r14), %rdx
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deff
movq %rsp, %rdi
callq 0x71d0
leaq 0xbc1d(%rip), %rsi      # 0x297e3
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x10(%r14), %rdx
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deb0
movq %rsp, %rdi
callq 0x71d0
leaq 0xad2f(%rip), %rsi      # 0x28922
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x14(%r14), %rdx
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deb0
movq %rsp, %rdi
callq 0x71d0
leaq 0xad0b(%rip), %rsi      # 0x2892b
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x18(%r14), %rdx
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deff
movq %rsp, %rdi
callq 0x71d0
leaq 0xacee(%rip), %rsi      # 0x2893b
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x20(%r14), %rdx
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deff
movq %rsp, %rdi
callq 0x71d0
leaq 0xacd2(%rip), %rsi      # 0x2894c
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
subq $-0x80, %r14
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x1deff
movq %rsp, %rdi
callq 0x71d0
leaq 0xacb3(%rip), %rsi      # 0x2895d
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
movl $0x88, %edx
addq 0x1d2f5(%rip), %rdx     # 0x3afb8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
callq 0x1deff
movq %rsp, %rdi
callq 0x71d0
leaq 0xac90(%rip), %rsi      # 0x2896f
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
xorl %edx, %edx
callq 0x1df4f
movq %rsp, %rdi
callq 0x71d0
leaq 0xac72(%rip), %rsi      # 0x2897c
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
pushq $0x1
popq %rdx
callq 0x1df4f
movq %rsp, %rdi
callq 0x71d0
leaq 0xac52(%rip), %rsi      # 0x28988
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
pushq $0x2
popq %rdx
callq 0x1df4f
movq %rsp, %rdi
callq 0x71d0
leaq 0xac36(%rip), %rsi      # 0x28998
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
pushq $0x3
popq %rdx
callq 0x1df4f
movq %rsp, %rdi
callq 0x71d0
leaq 0xac1a(%rip), %rsi      # 0x289a8
movq %rsp, %rdi
leaq 0x24(%rsp), %rdx
callq 0x84d8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
pushq $0x10
popq %rdx
callq 0x1df4f
movq %rsp, %rdi
callq 0x71d0
leaq 0xabfc(%rip), %rsi      # 0x289b6
movq %rsp, %rdi
leaq 0x24(%rsp), %r14
movq %r14, %rdx
callq 0x84d8
leaq 0x30(%rsp), %rdi
movq %rsp, %rsi
pushq $0x11
popq %rdx
callq 0x1df4f
movq %rsp, %r15
movq %r15, %rdi
callq 0x71d0
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movb $-0x6f, 0x24(%rsp)
movq 0x8(%rbx), %rdx
movb 0x8(%rdx), %sil
movb %sil, 0x25(%rsp)
andw $0x0, 0x26(%rsp)
subq %rax, %rcx
movl %ecx, %esi
bswapl %esi
movl %esi, 0x28(%rsp)
movq 0x10(%rdx), %rdx
movl (%rdx), %edx
movl %edx, 0x2c(%rsp)
movq %r14, (%r15)
movq $0xc, 0x8(%r15)
movq %rax, 0x10(%r15)
movq %rcx, 0x18(%r15)
movq (%rbx), %rdi
movq %rsp, %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
callq 0x1e020
leaq 0x30(%rsp), %rdi
callq 0x11e84
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
jmp 0x1de8e
jmp 0x1de9b
movq %rax, %rbx
movq %rsp, %rdi
callq 0x71d0
jmp 0x1de9e
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x11e84
movq %rbx, %rdi
callq 0x7990