// File: xnevs[P]bullimp/examples/../graph/ullimp_order.hpp
// Function: int ullimp::detail::clustering1<boost::adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, boost::no_property, Color, boost::no_property, boost::listS>>(boost::graph_traits<boost::adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, boost::no_property, Color, boost::no_property, boost::listS>>::vertex_descriptor, boost::adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, boost::no_property, Color, boost::no_property, boost::listS> const&)
int clustering1(typename boost::graph_traits<Graph>::vertex_descriptor u, Graph const & g) {
    using namespace boost;

    int c = 0;
    BGL_FORALL_ADJ_T(u, w, g, Graph) {
        BGL_FORALL_ADJ_T(w, r, g, Graph) {
            if(edge(r, u, g).second || edge(u, r, g).second) 
                ++c;
        }
        BGL_FORALL_INV_ADJ_T(w, r, g, Graph) {
            if(edge(r, u, g).second || edge(u, r, g).second) 
                ++c;
        }
    }
    BGL_FORALL_INV_ADJ_T(u, w, g, Graph) {
        BGL_FORALL_ADJ_T(w, r, g, Graph) {
            if(edge(r, u, g).second || edge(u, r, g).second) 
                ++c;
        }
        BGL_FORALL_INV_ADJ_T(w, r, g, Graph) {
            if(edge(r, u, g).second || edge(u, r, g).second) 
                ++c;
        }
    }
    return c;
}

// Assembly:
subq $0x278, %rsp            # imm = 0x278
movq %rdi, 0x270(%rsp)
movq %rsi, 0x268(%rsp)
movl $0x0, 0x264(%rsp)
movq 0x270(%rsp), %rsi
movq 0x268(%rsp), %rdx
leaq 0x230(%rsp), %rdi
callq 0xba30
leaq 0x230(%rsp), %rdi
leaq 0x230(%rsp), %rsi
addq $0x18, %rsi
callq 0xbb20
testb $0x1, %al
jne 0xb0b1
jmp 0xb409
jmp 0xb0b3
leaq 0x230(%rsp), %rdi
leaq 0x230(%rsp), %rsi
addq $0x18, %rsi
callq 0xbb20
testb $0x1, %al
jne 0xb0d2
jmp 0xb0ef
leaq 0x230(%rsp), %rdi
callq 0xbb70
movq %rax, 0x228(%rsp)
movb $0x1, %al
movb %al, 0xf(%rsp)
jmp 0xb0f7
xorl %eax, %eax
movb %al, 0xf(%rsp)
jmp 0xb0f7
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0xb104
jmp 0xb3d2
movq 0x228(%rsp), %rsi
movq 0x268(%rsp), %rdx
leaq 0x1f8(%rsp), %rdi
callq 0xba30
leaq 0x1f8(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
addq $0x18, %rsi
callq 0xbb20
testb $0x1, %al
jne 0xb143
jmp 0xb261
jmp 0xb145
leaq 0x1f8(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
addq $0x18, %rsi
callq 0xbb20
testb $0x1, %al
jne 0xb164
jmp 0xb181
leaq 0x1f8(%rsp), %rdi
callq 0xbb70
movq %rax, 0x1f0(%rsp)
movb $0x1, %al
movb %al, 0xe(%rsp)
jmp 0xb189
xorl %eax, %eax
movb %al, 0xe(%rsp)
jmp 0xb189
movb 0xe(%rsp), %al
testb $0x1, %al
jne 0xb196
jmp 0xb22a
movq 0x1f0(%rsp), %rsi
movq 0x270(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x1d0(%rsp), %rdi
callq 0xcd80
movb $0x1, %al
testb $0x1, 0x1e8(%rsp)
movb %al, 0xd(%rsp)
jne 0xb1fb
movq 0x270(%rsp), %rsi
movq 0x1f0(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x1b0(%rsp), %rdi
callq 0xcd80
movb 0x1c8(%rsp), %al
movb %al, 0xd(%rsp)
movb 0xd(%rsp), %al
testb $0x1, %al
jne 0xb205
jmp 0xb216
movl 0x264(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x264(%rsp)
jmp 0xb218
leaq 0x1f8(%rsp), %rdi
callq 0xbb90
jmp 0xb145
jmp 0xb22c
movq 0x210(%rsp), %rax
movq %rax, 0x1f8(%rsp)
movq 0x218(%rsp), %rax
movq %rax, 0x200(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x208(%rsp)
jmp 0xb121
movq 0x228(%rsp), %rsi
movq 0x268(%rsp), %rdx
leaq 0x180(%rsp), %rdi
callq 0xbbc0
leaq 0x180(%rsp), %rdi
leaq 0x180(%rsp), %rsi
addq $0x18, %rsi
callq 0xbcb0
testb $0x1, %al
jne 0xb2a0
jmp 0xb3be
jmp 0xb2a2
leaq 0x180(%rsp), %rdi
leaq 0x180(%rsp), %rsi
addq $0x18, %rsi
callq 0xbcb0
testb $0x1, %al
jne 0xb2c1
jmp 0xb2de
leaq 0x180(%rsp), %rdi
callq 0xbd00
movq %rax, 0x178(%rsp)
movb $0x1, %al
movb %al, 0xc(%rsp)
jmp 0xb2e6
xorl %eax, %eax
movb %al, 0xc(%rsp)
jmp 0xb2e6
movb 0xc(%rsp), %al
testb $0x1, %al
jne 0xb2f3
jmp 0xb387
movq 0x178(%rsp), %rsi
movq 0x270(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x158(%rsp), %rdi
callq 0xcd80
movb $0x1, %al
testb $0x1, 0x170(%rsp)
movb %al, 0xb(%rsp)
jne 0xb358
movq 0x270(%rsp), %rsi
movq 0x178(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x138(%rsp), %rdi
callq 0xcd80
movb 0x150(%rsp), %al
movb %al, 0xb(%rsp)
movb 0xb(%rsp), %al
testb $0x1, %al
jne 0xb362
jmp 0xb373
movl 0x264(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x264(%rsp)
jmp 0xb375
leaq 0x180(%rsp), %rdi
callq 0xbd20
jmp 0xb2a2
jmp 0xb389
movq 0x198(%rsp), %rax
movq %rax, 0x180(%rsp)
movq 0x1a0(%rsp), %rax
movq %rax, 0x188(%rsp)
movq 0x1a8(%rsp), %rax
movq %rax, 0x190(%rsp)
jmp 0xb27e
jmp 0xb3c0
leaq 0x230(%rsp), %rdi
callq 0xbb90
jmp 0xb0b3
jmp 0xb3d4
movq 0x248(%rsp), %rax
movq %rax, 0x230(%rsp)
movq 0x250(%rsp), %rax
movq %rax, 0x238(%rsp)
movq 0x258(%rsp), %rax
movq %rax, 0x240(%rsp)
jmp 0xb08f
movq 0x270(%rsp), %rsi
movq 0x268(%rsp), %rdx
leaq 0x108(%rsp), %rdi
callq 0xbbc0
leaq 0x108(%rsp), %rdi
leaq 0x108(%rsp), %rsi
addq $0x18, %rsi
callq 0xbcb0
testb $0x1, %al
jne 0xb448
jmp 0xb764
jmp 0xb44a
leaq 0x108(%rsp), %rdi
leaq 0x108(%rsp), %rsi
addq $0x18, %rsi
callq 0xbcb0
testb $0x1, %al
jne 0xb469
jmp 0xb486
leaq 0x108(%rsp), %rdi
callq 0xbd00
movq %rax, 0x100(%rsp)
movb $0x1, %al
movb %al, 0xa(%rsp)
jmp 0xb48e
xorl %eax, %eax
movb %al, 0xa(%rsp)
jmp 0xb48e
movb 0xa(%rsp), %al
testb $0x1, %al
jne 0xb49b
jmp 0xb72d
movq 0x100(%rsp), %rsi
movq 0x268(%rsp), %rdx
leaq 0xd0(%rsp), %rdi
callq 0xba30
leaq 0xd0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
addq $0x18, %rsi
callq 0xbb20
testb $0x1, %al
jne 0xb4da
jmp 0xb5f8
jmp 0xb4dc
leaq 0xd0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
addq $0x18, %rsi
callq 0xbb20
testb $0x1, %al
jne 0xb4fb
jmp 0xb518
leaq 0xd0(%rsp), %rdi
callq 0xbb70
movq %rax, 0xc8(%rsp)
movb $0x1, %al
movb %al, 0x9(%rsp)
jmp 0xb520
xorl %eax, %eax
movb %al, 0x9(%rsp)
jmp 0xb520
movb 0x9(%rsp), %al
testb $0x1, %al
jne 0xb52d
jmp 0xb5c1
movq 0xc8(%rsp), %rsi
movq 0x270(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0xa8(%rsp), %rdi
callq 0xcd80
movb $0x1, %al
testb $0x1, 0xc0(%rsp)
movb %al, 0x8(%rsp)
jne 0xb592
movq 0x270(%rsp), %rsi
movq 0xc8(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x88(%rsp), %rdi
callq 0xcd80
movb 0xa0(%rsp), %al
movb %al, 0x8(%rsp)
movb 0x8(%rsp), %al
testb $0x1, %al
jne 0xb59c
jmp 0xb5ad
movl 0x264(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x264(%rsp)
jmp 0xb5af
leaq 0xd0(%rsp), %rdi
callq 0xbb90
jmp 0xb4dc
jmp 0xb5c3
movq 0xe8(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0xe0(%rsp)
jmp 0xb4b8
movq 0x100(%rsp), %rsi
movq 0x268(%rsp), %rdx
leaq 0x58(%rsp), %rdi
callq 0xbbc0
leaq 0x58(%rsp), %rdi
leaq 0x58(%rsp), %rsi
addq $0x18, %rsi
callq 0xbcb0
testb $0x1, %al
jne 0xb62e
jmp 0xb719
jmp 0xb630
leaq 0x58(%rsp), %rdi
leaq 0x58(%rsp), %rsi
addq $0x18, %rsi
callq 0xbcb0
testb $0x1, %al
jne 0xb649
jmp 0xb660
leaq 0x58(%rsp), %rdi
callq 0xbd00
movq %rax, 0x50(%rsp)
movb $0x1, %al
movb %al, 0x7(%rsp)
jmp 0xb668
xorl %eax, %eax
movb %al, 0x7(%rsp)
jmp 0xb668
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0xb672
jmp 0xb6f1
movq 0x50(%rsp), %rsi
movq 0x270(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x30(%rsp), %rdi
callq 0xcd80
movb $0x1, %al
testb $0x1, 0x48(%rsp)
movb %al, 0x6(%rsp)
jne 0xb6c5
movq 0x270(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x268(%rsp), %rcx
leaq 0x10(%rsp), %rdi
callq 0xcd80
movb 0x28(%rsp), %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %al
testb $0x1, %al
jne 0xb6cf
jmp 0xb6e0
movl 0x264(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x264(%rsp)
jmp 0xb6e2
leaq 0x58(%rsp), %rdi
callq 0xbd20
jmp 0xb630
jmp 0xb6f3
movq 0x70(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0xb612
jmp 0xb71b
leaq 0x108(%rsp), %rdi
callq 0xbd20
jmp 0xb44a
jmp 0xb72f
movq 0x120(%rsp), %rax
movq %rax, 0x108(%rsp)
movq 0x128(%rsp), %rax
movq %rax, 0x110(%rsp)
movq 0x130(%rsp), %rax
movq %rax, 0x118(%rsp)
jmp 0xb426
movl 0x264(%rsp), %eax
addq $0x278, %rsp            # imm = 0x278
retq
nopw %cs:(%rax,%rax)
nopl (%rax)