// File: /workspace/github_cpp_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
subq $0x90, %rsp
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
movq 0x18(%rsi), %rdx
movq 0x20(%rsi), %rax
subq %rdx, %rax
je 0x91d5
sarq $0x3, %rax
movabsq $-0x2c8590b21642c859, %rcx # imm = 0xD37A6F4DE9BD37A7
imulq %rax, %rcx
addq $0x8, %rdx
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
xorl %eax, %eax
movq 0x130c2(%rip), %xmm1    # 0x1c010
movapd 0x130ca(%rip), %xmm0    # 0x1c020
xorl %r9d, %r9d
xorl %esi, %esi
xorpd %xmm2, %xmm2
movapd %xmm2, 0x50(%rsp)
movapd %xmm2, 0x40(%rsp)
xorl %edi, %edi
movq (%rdx), %r10
subq -0x8(%rdx), %r10
sarq $0x4, %r10
leaq 0x1(%r9), %r8
addq %r10, %rdi
cmpq $0x2, %r8
jb 0x9015
movq %r10, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm2
unpckhpd %xmm3, %xmm2            # xmm2 = xmm2[1],xmm3[1]
addsd %xmm3, %xmm2
movq %rdi, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
movq %r8, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm5
unpckhpd %xmm3, %xmm5            # xmm5 = xmm5[1],xmm3[1]
addsd %xmm3, %xmm5
divsd %xmm5, %xmm4
subsd %xmm4, %xmm2
movq %r9, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
movapd 0x50(%rsp), %xmm3
mulsd %xmm4, %xmm3
divsd %xmm5, %xmm3
mulsd %xmm2, %xmm2
divsd %xmm4, %xmm2
addsd %xmm2, %xmm3
movapd %xmm3, 0x50(%rsp)
addq %r10, %rsi
cmpq $0x2, %r8
jb 0x90ae
movq %r10, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm2
unpckhpd %xmm3, %xmm2            # xmm2 = xmm2[1],xmm3[1]
addsd %xmm3, %xmm2
movq %rsi, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
movq %r8, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm5
unpckhpd %xmm3, %xmm5            # xmm5 = xmm5[1],xmm3[1]
addsd %xmm3, %xmm5
divsd %xmm5, %xmm4
subsd %xmm4, %xmm2
movq %r9, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
movapd 0x40(%rsp), %xmm3
mulsd %xmm4, %xmm3
divsd %xmm5, %xmm3
mulsd %xmm2, %xmm2
divsd %xmm4, %xmm2
addsd %xmm2, %xmm3
movapd %xmm3, 0x40(%rsp)
addq %r10, %rax
cmpq $0x2, %r8
jb 0x9147
movq %r10, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm2
unpckhpd %xmm3, %xmm2            # xmm2 = xmm2[1],xmm3[1]
addsd %xmm3, %xmm2
movq %rax, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
movq %r8, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm5
unpckhpd %xmm3, %xmm5            # xmm5 = xmm5[1],xmm3[1]
addsd %xmm3, %xmm5
divsd %xmm5, %xmm4
subsd %xmm4, %xmm2
movq %r9, %xmm3
punpckldq %xmm1, %xmm3    # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm0, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
movapd 0x30(%rsp), %xmm3
mulsd %xmm4, %xmm3
divsd %xmm5, %xmm3
mulsd %xmm2, %xmm2
divsd %xmm4, %xmm2
addsd %xmm2, %xmm3
movapd %xmm3, 0x30(%rsp)
addq $0xb8, %rdx
movq %r8, %r9
cmpq %r8, %rcx
jne 0x8f6d
movq %rdi, %xmm2
punpckldq %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
subpd %xmm0, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
movapd %xmm3, 0x80(%rsp)
movq %rcx, %xmm2
punpckldq %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
subpd %xmm0, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
movapd %xmm3, 0x20(%rsp)
movq %rsi, %xmm2
punpckldq %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
subpd %xmm0, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
movapd %xmm3, 0x70(%rsp)
movq %rax, %xmm2
punpckldq %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
subpd %xmm0, %xmm2
movapd %xmm2, %xmm0
unpckhpd %xmm2, %xmm0            # xmm0 = xmm0[1],xmm2[1]
addsd %xmm2, %xmm0
jmp 0x9200
xorpd %xmm0, %xmm0
movapd %xmm0, 0x80(%rsp)
movapd %xmm0, 0x40(%rsp)
movapd %xmm0, 0x50(%rsp)
movapd %xmm0, 0x70(%rsp)
movapd %xmm0, 0x20(%rsp)
movapd %xmm0, 0x30(%rsp)
movapd %xmm0, 0x60(%rsp)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x12f00(%rip), %rsi     # 0x1c116
leaq 0x12f08(%rip), %rdx     # 0x1c125
movq %rsp, %rdi
callq 0xac56
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9faa
movapd 0x80(%rsp), %xmm0
divsd 0x20(%rsp), %xmm0
movsd %xmm0, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x9259
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x12ec0(%rip), %rsi     # 0x1c126
leaq 0x12ecc(%rip), %rdx     # 0x1c139
callq 0xac56
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9faa
movapd 0x50(%rsp), %xmm0
movsd %xmm0, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x929d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x12e90(%rip), %rsi     # 0x1c13a
leaq 0x12e99(%rip), %rdx     # 0x1c14a
callq 0xac56
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9faa
movapd 0x70(%rsp), %xmm0
divsd 0x20(%rsp), %xmm0
movsd %xmm0, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x92e7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x12e57(%rip), %rsi     # 0x1c14b
leaq 0x12e64(%rip), %rdx     # 0x1c15f
callq 0xac56
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9faa
movapd 0x40(%rsp), %xmm0
movsd %xmm0, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x932b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x12de1(%rip), %rsi     # 0x1c119
leaq 0x12de6(%rip), %rdx     # 0x1c125
callq 0xac56
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9faa
movapd 0x60(%rsp), %xmm0
divsd 0x20(%rsp), %xmm0
movsd %xmm0, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x9375
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x12da7(%rip), %rsi     # 0x1c129
leaq 0x12db0(%rip), %rdx     # 0x1c139
callq 0xac56
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9faa
movaps 0x30(%rsp), %xmm0
movsd %xmm0, (%rax)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x93b8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
movq %rbx, %rax
addq $0x90, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x93dc
jmp 0x93f7
jmp 0x93dc
jmp 0x93f7
jmp 0x93dc
jmp 0x93f7
jmp 0x93dc
jmp 0x93f7
jmp 0x93dc
jmp 0x93f7
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x93fa
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7300
jmp 0x93fa
movq %rax, %r14
movq %rbx, %rdi
callq 0xa600
movq %r14, %rdi
callq 0x7550