// File: kulpreet[P]lightning-network-graph-analysis/src/include/degree_stats.hpp
// Function: lncentrality::get_degrees_stats[abi:cxx11](boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, lncentrality::LitVertex, lncentrality::LitEdge, boost::no_property, boost::listS>&)
map<string, double> get_degrees_stats(LitGraph &g) {
  graph_traits<LitGraph>::vertex_iterator i, end;
  accumulator_set<Degree, stats<tag::mean, tag::variance>> in_degrees,
      out_degrees, degrees;
  map<string, double> result;
  for (boost::tie(i, end) = vertices(g); i != end; ++i) {
    in_degrees(in_degree(*i, g));
    out_degrees(out_degree(*i, g));
    degrees(degree(*i, g));
  }
  result["in_degrees_mean"] = mean(in_degrees);
  result["in_degrees_variance"] = variance(in_degrees);
  result["out_degrees_mean"] = mean(out_degrees);
  result["out_degrees_variance"] = variance(out_degrees);
  result["degrees_mean"] = mean(degrees);
  result["degrees_variance"] = variance(degrees);
  return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
movq %rdi, -0x208(%rbp)
movq %rdi, %rax
movq %rax, -0x210(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x18(%rbp), %rdi
callq 0xe7d0
leaq -0x20(%rbp), %rdi
callq 0xe7d0
leaq -0x48(%rbp), %rdi
callq 0xfe10
leaq -0x70(%rbp), %rdi
callq 0xfe10
leaq -0x98(%rbp), %rdi
callq 0xfe10
movq -0x208(%rbp), %rdi
movb $0x0, -0x99(%rbp)
callq 0xfe80
movq -0x10(%rbp), %rdi
callq 0xeb90
movq %rdx, -0x200(%rbp)
movq %rax, -0x1f8(%rbp)
jmp 0xc8e0
movq -0x200(%rbp), %rax
movq -0x1f8(%rbp), %rcx
movq %rcx, -0xb0(%rbp)
movq %rax, -0xa8(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x18(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0xec10
jmp 0xc912
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xec50
jmp 0xc927
jmp 0xc929
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0xec80
movb %al, -0x211(%rbp)
jmp 0xc93e
movb -0x211(%rbp), %al
testb $0x1, %al
jne 0xc94d
jmp 0xca5a
leaq -0x18(%rbp), %rdi
callq 0xecc0
movq %rax, -0x220(%rbp)
jmp 0xc95f
movq -0x220(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xfda0
movq %rax, -0x228(%rbp)
jmp 0xc978
movq -0x228(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0x48(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0xfea0
jmp 0xc998
leaq -0x18(%rbp), %rdi
callq 0xecc0
movq %rax, -0x230(%rbp)
jmp 0xc9aa
movq -0x230(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xfdd0
movq %rax, -0x238(%rbp)
jmp 0xc9c3
movq -0x238(%rbp), %rax
movq %rax, -0xe8(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0xfea0
jmp 0xc9e3
leaq -0x18(%rbp), %rdi
callq 0xecc0
movq %rax, -0x240(%rbp)
jmp 0xc9f5
movq -0x240(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xe5c0
movq %rax, -0x248(%rbp)
jmp 0xca0e
movq -0x248(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x98(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0xfea0
jmp 0xca31
jmp 0xca33
leaq -0x18(%rbp), %rdi
callq 0xedb0
jmp 0xca3e
jmp 0xc929
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xcf81
leaq 0x3f4ad(%rip), %rdi     # 0x4bf0e
leaq -0x48(%rbp), %rsi
callq 0xff10
movsd %xmm0, -0x250(%rbp)
jmp 0xca74
leaq -0x121(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0xa7e0
movq -0x258(%rbp), %rdx
leaq 0x3e68e(%rip), %rsi     # 0x4b123
leaq -0x120(%rbp), %rdi
callq 0x10010
jmp 0xcaa3
movq -0x208(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xff30
movq %rax, -0x260(%rbp)
jmp 0xcabf
movq -0x260(%rbp), %rax
movsd -0x250(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x120(%rbp), %rdi
callq 0xa2b0
leaq -0x121(%rbp), %rdi
callq 0xa480
leaq 0x3f41e(%rip), %rdi     # 0x4bf0f
leaq -0x48(%rbp), %rsi
callq 0x100c0
movsd %xmm0, -0x268(%rbp)
jmp 0xcb04
leaq -0x149(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0xa7e0
movq -0x270(%rbp), %rdx
leaq 0x3e60e(%rip), %rsi     # 0x4b133
leaq -0x148(%rbp), %rdi
callq 0x10010
jmp 0xcb33
movq -0x208(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0xff30
movq %rax, -0x278(%rbp)
jmp 0xcb4f
movq -0x278(%rbp), %rax
movsd -0x268(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x148(%rbp), %rdi
callq 0xa2b0
leaq -0x149(%rbp), %rdi
callq 0xa480
leaq 0x3f38d(%rip), %rdi     # 0x4bf0e
leaq -0x70(%rbp), %rsi
callq 0xff10
movsd %xmm0, -0x280(%rbp)
jmp 0xcb94
leaq -0x171(%rbp), %rdi
movq %rdi, -0x288(%rbp)
callq 0xa7e0
movq -0x288(%rbp), %rdx
leaq 0x3e592(%rip), %rsi     # 0x4b147
leaq -0x170(%rbp), %rdi
callq 0x10010
jmp 0xcbc3
movq -0x208(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xff30
movq %rax, -0x290(%rbp)
jmp 0xcbdf
movq -0x290(%rbp), %rax
movsd -0x280(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x170(%rbp), %rdi
callq 0xa2b0
leaq -0x171(%rbp), %rdi
callq 0xa480
leaq 0x3f2fe(%rip), %rdi     # 0x4bf0f
leaq -0x70(%rbp), %rsi
callq 0x100c0
movsd %xmm0, -0x298(%rbp)
jmp 0xcc24
leaq -0x199(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
callq 0xa7e0
movq -0x2a0(%rbp), %rdx
leaq 0x3e513(%rip), %rsi     # 0x4b158
leaq -0x198(%rbp), %rdi
callq 0x10010
jmp 0xcc53
movq -0x208(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xff30
movq %rax, -0x2a8(%rbp)
jmp 0xcc6f
movq -0x2a8(%rbp), %rax
movsd -0x298(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x198(%rbp), %rdi
callq 0xa2b0
leaq -0x199(%rbp), %rdi
callq 0xa480
leaq 0x3f26d(%rip), %rdi     # 0x4bf0e
leaq -0x98(%rbp), %rsi
callq 0xff10
movsd %xmm0, -0x2b0(%rbp)
jmp 0xccb7
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0xa7e0
movq -0x2b8(%rbp), %rdx
leaq 0x3e44e(%rip), %rsi     # 0x4b126
leaq -0x1c0(%rbp), %rdi
callq 0x10010
jmp 0xcce6
movq -0x208(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0xff30
movq %rax, -0x2c0(%rbp)
jmp 0xcd02
movq -0x2c0(%rbp), %rax
movsd -0x2b0(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x1c0(%rbp), %rdi
callq 0xa2b0
leaq -0x1c1(%rbp), %rdi
callq 0xa480
leaq 0x3f1db(%rip), %rdi     # 0x4bf0f
leaq -0x98(%rbp), %rsi
callq 0x100c0
movsd %xmm0, -0x2c8(%rbp)
jmp 0xcd4a
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0xa7e0
movq -0x2d0(%rbp), %rdx
leaq 0x3e3cb(%rip), %rsi     # 0x4b136
leaq -0x1e8(%rbp), %rdi
callq 0x10010
jmp 0xcd79
movq -0x208(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0xff30
movq %rax, -0x2d8(%rbp)
jmp 0xcd95
movq -0x2d8(%rbp), %rax
movsd -0x2c8(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x1e8(%rbp), %rdi
callq 0xa2b0
leaq -0x1e9(%rbp), %rdi
callq 0xa480
movb $0x1, -0x99(%rbp)
testb $0x1, -0x99(%rbp)
jne 0xcf71
jmp 0xcf65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xce0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x120(%rbp), %rdi
callq 0xa2b0
leaq -0x121(%rbp), %rdi
callq 0xa480
jmp 0xcf81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xce4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x148(%rbp), %rdi
callq 0xa2b0
leaq -0x149(%rbp), %rdi
callq 0xa480
jmp 0xcf81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xce91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x170(%rbp), %rdi
callq 0xa2b0
leaq -0x171(%rbp), %rdi
callq 0xa480
jmp 0xcf81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xced4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x198(%rbp), %rdi
callq 0xa2b0
leaq -0x199(%rbp), %rdi
callq 0xa480
jmp 0xcf81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xcf17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0xa2b0
leaq -0x1c1(%rbp), %rdi
callq 0xa480
jmp 0xcf81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0xcf57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0xa2b0
leaq -0x1e9(%rbp), %rdi
callq 0xa480
jmp 0xcf81
movq -0x208(%rbp), %rdi
callq 0x100e0
movq -0x210(%rbp), %rax
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
movq -0x208(%rbp), %rdi
callq 0x100e0
movq -0xb8(%rbp), %rdi
callq 0xa7d0
nopl (%rax)