// File: /workspace/github_cpp_makefile_star2_O1/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 $0x70, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x14139(%rip), %rsi     # 0x3698e
leaq 0x14139(%rip), %rdx     # 0x36995
movq %rsp, %rdi
callq 0x97a0
leaq 0x24495(%rip), %r14     # 0x46d00
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x22d23
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22891
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x140ea(%rip), %rsi     # 0x36988
leaq 0x140f0(%rip), %rdx     # 0x36995
callq 0x97a0
leaq 0x40(%r14), %rdx
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22dfe
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x228d1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x140b8(%rip), %rsi     # 0x36996
leaq 0x140bc(%rip), %rdx     # 0x369a1
callq 0x97a0
leaq 0x8(%r14), %rdx
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22dfe
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22911
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x14f32(%rip), %rsi     # 0x37850
leaq 0x14f34(%rip), %rdx     # 0x37859
callq 0x97a0
leaq 0x10(%r14), %rdx
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22d23
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22951
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x14044(%rip), %rsi     # 0x369a2
leaq 0x14045(%rip), %rdx     # 0x369aa
callq 0x97a0
leaq 0x14(%r14), %rdx
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22d23
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22991
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1400d(%rip), %rsi     # 0x369ab
leaq 0x14015(%rip), %rdx     # 0x369ba
callq 0x97a0
leaq 0x18(%r14), %rdx
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22dfe
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x229d1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13fdd(%rip), %rsi     # 0x369bb
leaq 0x13fe6(%rip), %rdx     # 0x369cb
callq 0x97a0
leaq 0x20(%r14), %rdx
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22dfe
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22a11
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13fae(%rip), %rsi     # 0x369cc
leaq 0x13fb7(%rip), %rdx     # 0x369dc
callq 0x97a0
subq $-0x80, %r14
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x22dfe
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22a54
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13f7c(%rip), %rsi     # 0x369dd
leaq 0x13f86(%rip), %rdx     # 0x369ee
callq 0x97a0
movl $0x88, %edx
addq 0x23537(%rip), %rdx     # 0x45fb0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x22dfe
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22a9c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13f46(%rip), %rsi     # 0x369ef
leaq 0x13f4b(%rip), %rdx     # 0x369fb
callq 0x97a0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
xorl %edx, %edx
callq 0x22eea
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22ada
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13f15(%rip), %rsi     # 0x369fc
leaq 0x13f19(%rip), %rdx     # 0x36a07
callq 0x97a0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movl $0x1, %edx
callq 0x22eea
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22b1b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13ee0(%rip), %rsi     # 0x36a08
leaq 0x13ee8(%rip), %rdx     # 0x36a17
callq 0x97a0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movl $0x2, %edx
callq 0x22eea
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22b5c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13eaf(%rip), %rsi     # 0x36a18
leaq 0x13eb7(%rip), %rdx     # 0x36a27
callq 0x97a0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movl $0x3, %edx
callq 0x22eea
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22b9d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13e7e(%rip), %rsi     # 0x36a28
leaq 0x13e84(%rip), %rdx     # 0x36a35
callq 0x97a0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movl $0x10, %edx
callq 0x22eea
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22bde
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x13e4b(%rip), %rsi     # 0x36a36
leaq 0x13e50(%rip), %rdx     # 0x36a42
callq 0x97a0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
movl $0x11, %edx
callq 0x22eea
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22c1f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
subq %rax, %rcx
leaq 0x44(%rsp), %rdx
movb $-0x6f, (%rdx)
movq 0x8(%rbx), %rsi
movb 0x8(%rsi), %dil
movb %dil, 0x1(%rdx)
movw $0x0, 0x2(%rdx)
movl %ecx, %edi
bswapl %edi
movl %edi, 0x4(%rdx)
movq 0x10(%rsi), %rsi
movl (%rsi), %esi
movl %esi, 0x8(%rdx)
leaq 0x50(%rsp), %r8
movq %rdx, (%r8)
movq $0xc, 0x8(%r8)
movq %rax, 0x10(%r8)
movq %rcx, 0x18(%r8)
movq (%rbx), %rdi
movq %rsp, %rsi
movl $0x2, (%rsi)
movq %rdi, 0x8(%rsi)
movq %r8, 0x10(%rsi)
movb $0x1, 0x18(%rsi)
callq 0x23058
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x22ca2
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x7510
addq $0x70, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
jmp 0x22ce6
jmp 0x22d01
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x22d04
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7510
jmp 0x22d04
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x22d1b
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x7510
movq %rbx, %rdi
callq 0x79b0