LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: grame-cncm[P]digraph/tests.cpp
// Function: check1()
bool check1()
{
    std::stringstream ss;
    test1(ss);
    bool ok = (0 == ss.str().compare(res1()));
    if (ok) {
        std::cout << "test1 OK " << std::endl;
    } else {
        std::cout << "test1 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res1() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x1ce30
jmp 0x1d473
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x1d48a
leaq 0x80(%rsp), %rdi
callq 0x1d3d0
jmp 0x1d499
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x1d4b4
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x1d58c
movq 0x38ad1(%rip), %rdi     # 0x55fd0
leaq 0x20ad3(%rip), %rsi     # 0x3dfd9
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x1d512
movq 0x30(%rsp), %rdi
movq 0x38a9a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1d525
jmp 0x1d6b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x1d6db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x1d57a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x1d6db
movq 0x38a3d(%rip), %rdi     # 0x55fd0
leaq 0x20a49(%rip), %rsi     # 0x3dfe3
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x1d5a6
movq 0x28(%rsp), %rdi
movq 0x38a06(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1d5b9
movq 0x38a10(%rip), %rdi     # 0x55fd0
leaq 0x209fa(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x1d5d3
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x1d5e7
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x1d5fd
movq 0x18(%rsp), %rdi
movq 0x389af(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1d610
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x389af(%rip), %rdi     # 0x55fd0
leaq 0x209a5(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x1d634
leaq 0x40(%rsp), %rdi
callq 0x1d3d0
jmp 0x1d640
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x1d656
movq 0x8(%rsp), %rdi
movq 0x38956(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1d669
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x1d6b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x1d6db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x1d6db
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check2()
bool check2()
{
    std::stringstream ss;
    test2(ss);
    bool ok = (0 == ss.str().compare(res2()));
    if (ok) {
        std::cout << "test2 OK " << std::endl;
    } else {
        std::cout << "test2 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res2() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x1d700
jmp 0x1dbe3
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x1dbfa
leaq 0x80(%rsp), %rdi
callq 0x1db40
jmp 0x1dc09
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x1dc24
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x1dcfc
movq 0x38361(%rip), %rdi     # 0x55fd0
leaq 0x2048f(%rip), %rsi     # 0x3e105
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x1dc82
movq 0x30(%rsp), %rdi
movq 0x3832a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1dc95
jmp 0x1de25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x1de4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x1dcea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x1de4b
movq 0x382cd(%rip), %rdi     # 0x55fd0
leaq 0x20405(%rip), %rsi     # 0x3e10f
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x1dd16
movq 0x28(%rsp), %rdi
movq 0x38296(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1dd29
movq 0x382a0(%rip), %rdi     # 0x55fd0
leaq 0x2028a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x1dd43
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x1dd57
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x1dd6d
movq 0x18(%rsp), %rdi
movq 0x3823f(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1dd80
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x3823f(%rip), %rdi     # 0x55fd0
leaq 0x20235(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x1dda4
leaq 0x40(%rsp), %rdi
callq 0x1db40
jmp 0x1ddb0
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x1ddc6
movq 0x8(%rsp), %rdi
movq 0x381e6(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1ddd9
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x1de25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x1de4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x1de4b
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: test4(std::ostream&)
void test4(std::ostream& ss)
{
    digraph<char, int> g1, g2, g3;
    g1.add('A', 'A', 2);
    g1.add('A', 'D', 1);
    g1.add('A', 'B', 0);

    g2.add('A', 'B', 2);
    g2.add('B', 'B', 1);
    g2.add('A', 'C', 0);

    g3.add(g1).add(g2);

    ss << "test4: g3.add(g1).add(g2) = " << g3;
    // std::cout << "test4: g1= " << g1 << std::endl;
    // std::cout << "test4: g2= " << g2 << std::endl;
    // std::cout << "test4: g3= " << g3 << std::endl;
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x24270
leaq 0x60(%rsp), %rdi
callq 0x24270
jmp 0x1e7a5
leaq 0x40(%rsp), %rdi
callq 0x24270
jmp 0x1e7b1
movb $0x41, 0x3f(%rsp)
movb $0x41, 0x3e(%rsp)
movl $0x2, 0x38(%rsp)
leaq 0x70(%rsp), %rdi
leaq 0x3f(%rsp), %rsi
leaq 0x3e(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x242b0
jmp 0x1e7de
movb $0x41, 0x37(%rsp)
movb $0x44, 0x36(%rsp)
movl $0x1, 0x30(%rsp)
leaq 0x70(%rsp), %rdi
leaq 0x37(%rsp), %rsi
leaq 0x36(%rsp), %rdx
leaq 0x30(%rsp), %rcx
callq 0x242b0
jmp 0x1e80b
movb $0x41, 0x2f(%rsp)
movb $0x42, 0x2e(%rsp)
movl $0x0, 0x28(%rsp)
leaq 0x70(%rsp), %rdi
leaq 0x2f(%rsp), %rsi
leaq 0x2e(%rsp), %rdx
leaq 0x28(%rsp), %rcx
callq 0x242b0
jmp 0x1e838
movb $0x41, 0x27(%rsp)
movb $0x42, 0x26(%rsp)
movl $0x2, 0x20(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x27(%rsp), %rsi
leaq 0x26(%rsp), %rdx
leaq 0x20(%rsp), %rcx
callq 0x242b0
jmp 0x1e865
movb $0x42, 0x1f(%rsp)
movb $0x42, 0x1e(%rsp)
movl $0x1, 0x18(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rsi
leaq 0x1e(%rsp), %rdx
leaq 0x18(%rsp), %rcx
callq 0x242b0
jmp 0x1e892
movb $0x41, 0x17(%rsp)
movb $0x43, 0x16(%rsp)
movl $0x0, 0x10(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x17(%rsp), %rsi
leaq 0x16(%rsp), %rdx
leaq 0x10(%rsp), %rcx
callq 0x242b0
jmp 0x1e8bf
leaq 0x40(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x25050
movq %rax, 0x8(%rsp)
jmp 0x1e8d5
movq 0x8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x25050
jmp 0x1e8e6
movq 0x80(%rsp), %rdi
leaq 0x1f93a(%rip), %rsi     # 0x3e22f
callq 0x2180
movq %rax, (%rsp)
jmp 0x1e900
movq (%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x24300
jmp 0x1e910
leaq 0x40(%rsp), %rdi
callq 0x24610
leaq 0x60(%rsp), %rdi
callq 0x24610
leaq 0x70(%rsp), %rdi
callq 0x24610
addq $0x88, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x1e978
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x1e96e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x24610
leaq 0x60(%rsp), %rdi
callq 0x24610
leaq 0x70(%rsp), %rdi
callq 0x24610
movq 0x58(%rsp), %rdi
callq 0x2290
nopl (%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check8()
bool check8()
{
    std::stringstream ss;
    test8(ss);
    bool ok = (0 == ss.str().compare(res8()));
    if (ok) {
        std::cout << "test8 OK " << std::endl;
    } else {
        std::cout << "test8 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res8() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x1ffa0
jmp 0x205e3
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x205fa
leaq 0x80(%rsp), %rdi
callq 0x20540
jmp 0x20609
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x20624
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x206fc
movq 0x35961(%rip), %rdi     # 0x55fd0
leaq 0x1e317(%rip), %rsi     # 0x3e98d
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x20682
movq 0x30(%rsp), %rdi
movq 0x3592a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x20695
jmp 0x20825
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x2084b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x206ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x2084b
movq 0x358cd(%rip), %rdi     # 0x55fd0
leaq 0x1e28d(%rip), %rsi     # 0x3e997
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x20716
movq 0x28(%rsp), %rdi
movq 0x35896(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x20729
movq 0x358a0(%rip), %rdi     # 0x55fd0
leaq 0x1d88a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x20743
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x20757
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x2076d
movq 0x18(%rsp), %rdi
movq 0x3583f(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x20780
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x3583f(%rip), %rdi     # 0x55fd0
leaq 0x1d835(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x207a4
leaq 0x40(%rsp), %rdi
callq 0x20540
jmp 0x207b0
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x207c6
movq 0x8(%rsp), %rdi
movq 0x357e6(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x207d9
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x20825
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x2084b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x2084b
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check9()
bool check9()
{
    std::stringstream ss;
    test9(ss);
    bool ok = (0 == ss.str().compare(res9()));
    if (ok) {
        std::cout << "test9 OK " << std::endl;
    } else {
        std::cout << "test9 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res9() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x20870
jmp 0x20ea3
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x20eba
leaq 0x80(%rsp), %rdi
callq 0x20e00
jmp 0x20ec9
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x20ee4
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x20fbc
movq 0x350a1(%rip), %rdi     # 0x55fd0
leaq 0x1db64(%rip), %rsi     # 0x3ea9a
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x20f42
movq 0x30(%rsp), %rdi
movq 0x3506a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x20f55
jmp 0x210e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x2110b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x20faa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x2110b
movq 0x3500d(%rip), %rdi     # 0x55fd0
leaq 0x1dada(%rip), %rsi     # 0x3eaa4
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x20fd6
movq 0x28(%rsp), %rdi
movq 0x34fd6(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x20fe9
movq 0x34fe0(%rip), %rdi     # 0x55fd0
leaq 0x1cfca(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x21003
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x21017
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x2102d
movq 0x18(%rsp), %rdi
movq 0x34f7f(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x21040
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x34f7f(%rip), %rdi     # 0x55fd0
leaq 0x1cf75(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x21064
leaq 0x40(%rsp), %rdi
callq 0x20e00
jmp 0x21070
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x21086
movq 0x8(%rsp), %rdi
movq 0x34f26(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x21099
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x210e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x2110b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x2110b
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: test11(std::ostream&)
void test11(std::ostream& ss)
{
    digraph<char, int> g;
    g.add('A', 'B', 0).add('B', 'C', 3).add('C', 'D', 0).add('D', 'E', 0);
    g.add('A', 'I', 0).add('I', 'J', 4).add('J', 'E', 5);

    digraph<char, int> r = chain(g, false);
    ss << "chain(" << g << ", false) = " << r;
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xb0(%rsp)
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x24270
movq 0x38(%rsp), %rdi
movb $0x41, 0x9f(%rsp)
movb $0x42, 0x9e(%rsp)
movl $0x0, 0x98(%rsp)
leaq 0x9f(%rsp), %rsi
leaq 0x9e(%rsp), %rdx
leaq 0x98(%rsp), %rcx
callq 0x242b0
movq %rax, 0x40(%rsp)
jmp 0x21755
movq 0x40(%rsp), %rdi
movb $0x42, 0x8b(%rsp)
movb $0x43, 0x8a(%rsp)
movl $0x3, 0x84(%rsp)
leaq 0x8b(%rsp), %rsi
leaq 0x8a(%rsp), %rdx
leaq 0x84(%rsp), %rcx
callq 0x242b0
movq %rax, 0x30(%rsp)
jmp 0x21799
movq 0x30(%rsp), %rdi
movb $0x43, 0x83(%rsp)
movb $0x44, 0x82(%rsp)
movl $0x0, 0x7c(%rsp)
leaq 0x83(%rsp), %rsi
leaq 0x82(%rsp), %rdx
leaq 0x7c(%rsp), %rcx
callq 0x242b0
movq %rax, 0x28(%rsp)
jmp 0x217d7
movq 0x28(%rsp), %rdi
movb $0x44, 0x7b(%rsp)
movb $0x45, 0x7a(%rsp)
movl $0x0, 0x74(%rsp)
leaq 0x7b(%rsp), %rsi
leaq 0x7a(%rsp), %rdx
leaq 0x74(%rsp), %rcx
callq 0x242b0
jmp 0x21804
movb $0x41, 0x73(%rsp)
movb $0x49, 0x72(%rsp)
movl $0x0, 0x6c(%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x73(%rsp), %rsi
leaq 0x72(%rsp), %rdx
leaq 0x6c(%rsp), %rcx
callq 0x242b0
movq %rax, 0x20(%rsp)
jmp 0x21839
movq 0x20(%rsp), %rdi
movb $0x49, 0x6b(%rsp)
movb $0x4a, 0x6a(%rsp)
movl $0x4, 0x64(%rsp)
leaq 0x6b(%rsp), %rsi
leaq 0x6a(%rsp), %rdx
leaq 0x64(%rsp), %rcx
callq 0x242b0
movq %rax, 0x18(%rsp)
jmp 0x2186b
movq 0x18(%rsp), %rdi
movb $0x4a, 0x63(%rsp)
movb $0x45, 0x62(%rsp)
movl $0x5, 0x5c(%rsp)
leaq 0x63(%rsp), %rsi
leaq 0x62(%rsp), %rdx
leaq 0x5c(%rsp), %rcx
callq 0x242b0
jmp 0x21898
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
xorl %edx, %edx
callq 0x26c90
jmp 0x218ae
movq 0xb0(%rsp), %rdi
leaq 0x1d225(%rip), %rsi     # 0x3eae2
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x218c9
movq 0x10(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x24300
movq %rax, 0x8(%rsp)
jmp 0x218e2
movq 0x8(%rsp), %rdi
leaq 0x1d1fb(%rip), %rsi     # 0x3eae9
callq 0x2180
movq %rax, (%rsp)
jmp 0x218f9
movq (%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x24300
jmp 0x21909
leaq 0x48(%rsp), %rdi
callq 0x24610
leaq 0xa0(%rsp), %rdi
callq 0x24610
addq $0xb8, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
jmp 0x2195c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x24610
leaq 0xa0(%rsp), %rdi
callq 0x24610
movq 0x90(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check11()
bool check11()
{
    std::stringstream ss;
    test11(ss);
    bool ok = (0 == ss.str().compare(res11()));
    if (ok) {
        std::cout << "test11 OK " << std::endl;
    } else {
        std::cout << "test11 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res9() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x216f0
jmp 0x21a23
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x21a3a
leaq 0x80(%rsp), %rdi
callq 0x21980
jmp 0x21a49
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x21a64
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x21b3c
movq 0x34521(%rip), %rdi     # 0x55fd0
leaq 0x1d0bc(%rip), %rsi     # 0x3eb72
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x21ac2
movq 0x30(%rsp), %rdi
movq 0x344ea(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x21ad5
jmp 0x21c65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x21c8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x21b2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x21c8b
movq 0x3448d(%rip), %rdi     # 0x55fd0
leaq 0x1d033(%rip), %rsi     # 0x3eb7d
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x21b56
movq 0x28(%rsp), %rdi
movq 0x34456(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x21b69
movq 0x34460(%rip), %rdi     # 0x55fd0
leaq 0x1c44a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x21b83
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x21b97
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x21bad
movq 0x18(%rsp), %rdi
movq 0x343ff(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x21bc0
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x343ff(%rip), %rdi     # 0x55fd0
leaq 0x1c3f5(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x21be4
leaq 0x40(%rsp), %rdi
callq 0x20e00
jmp 0x21bf0
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x21c06
movq 0x8(%rsp), %rdi
movq 0x343a6(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x21c19
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x21c65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x21c8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x21c8b
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: test12(std::ostream&)
void test12(std::ostream& ss)
{
    digraph<char, int> g;
    g.add('A', 'B', 0).add('B', 'C', 3).add('C', 'D', 0).add('D', 'E', 0);
    g.add('A', 'I', 0).add('I', 'J', 4).add('J', 'E', 5);

    digraph<char, int> r = chain(g, true);
    ss << "chain(" << g << ", true) = " << r;
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xb0(%rsp)
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x24270
movq 0x38(%rsp), %rdi
movb $0x41, 0x9f(%rsp)
movb $0x42, 0x9e(%rsp)
movl $0x0, 0x98(%rsp)
leaq 0x9f(%rsp), %rsi
leaq 0x9e(%rsp), %rdx
leaq 0x98(%rsp), %rcx
callq 0x242b0
movq %rax, 0x40(%rsp)
jmp 0x21d15
movq 0x40(%rsp), %rdi
movb $0x42, 0x8b(%rsp)
movb $0x43, 0x8a(%rsp)
movl $0x3, 0x84(%rsp)
leaq 0x8b(%rsp), %rsi
leaq 0x8a(%rsp), %rdx
leaq 0x84(%rsp), %rcx
callq 0x242b0
movq %rax, 0x30(%rsp)
jmp 0x21d59
movq 0x30(%rsp), %rdi
movb $0x43, 0x83(%rsp)
movb $0x44, 0x82(%rsp)
movl $0x0, 0x7c(%rsp)
leaq 0x83(%rsp), %rsi
leaq 0x82(%rsp), %rdx
leaq 0x7c(%rsp), %rcx
callq 0x242b0
movq %rax, 0x28(%rsp)
jmp 0x21d97
movq 0x28(%rsp), %rdi
movb $0x44, 0x7b(%rsp)
movb $0x45, 0x7a(%rsp)
movl $0x0, 0x74(%rsp)
leaq 0x7b(%rsp), %rsi
leaq 0x7a(%rsp), %rdx
leaq 0x74(%rsp), %rcx
callq 0x242b0
jmp 0x21dc4
movb $0x41, 0x73(%rsp)
movb $0x49, 0x72(%rsp)
movl $0x0, 0x6c(%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x73(%rsp), %rsi
leaq 0x72(%rsp), %rdx
leaq 0x6c(%rsp), %rcx
callq 0x242b0
movq %rax, 0x20(%rsp)
jmp 0x21df9
movq 0x20(%rsp), %rdi
movb $0x49, 0x6b(%rsp)
movb $0x4a, 0x6a(%rsp)
movl $0x4, 0x64(%rsp)
leaq 0x6b(%rsp), %rsi
leaq 0x6a(%rsp), %rdx
leaq 0x64(%rsp), %rcx
callq 0x242b0
movq %rax, 0x18(%rsp)
jmp 0x21e2b
movq 0x18(%rsp), %rdi
movb $0x4a, 0x63(%rsp)
movb $0x45, 0x62(%rsp)
movl $0x5, 0x5c(%rsp)
leaq 0x63(%rsp), %rsi
leaq 0x62(%rsp), %rdx
leaq 0x5c(%rsp), %rcx
callq 0x242b0
jmp 0x21e58
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
movl $0x1, %edx
callq 0x26c90
jmp 0x21e71
movq 0xb0(%rsp), %rdi
leaq 0x1cc62(%rip), %rsi     # 0x3eae2
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x21e8c
movq 0x10(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x24300
movq %rax, 0x8(%rsp)
jmp 0x21ea5
movq 0x8(%rsp), %rdi
leaq 0x1ccd9(%rip), %rsi     # 0x3eb8a
callq 0x2180
movq %rax, (%rsp)
jmp 0x21ebc
movq (%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x24300
jmp 0x21ecc
leaq 0x48(%rsp), %rdi
callq 0x24610
leaq 0xa0(%rsp), %rdi
callq 0x24610
addq $0xb8, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
jmp 0x21f1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x24610
leaq 0xa0(%rsp), %rdi
callq 0x24610
movq 0x90(%rsp), %rdi
callq 0x2290
nopl (%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check12()
bool check12()
{
    std::stringstream ss;
    test12(ss);
    bool ok = (0 == ss.str().compare(res12()));
    if (ok) {
        std::cout << "test12 OK " << std::endl;
    } else {
        std::cout << "test12 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res12() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x21cb0
jmp 0x21fe3
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x21ffa
leaq 0x80(%rsp), %rdi
callq 0x21f40
jmp 0x22009
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x22024
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x220fc
movq 0x33f61(%rip), %rdi     # 0x55fd0
leaq 0x1cb95(%rip), %rsi     # 0x3ec0b
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x22082
movq 0x30(%rsp), %rdi
movq 0x33f2a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x22095
jmp 0x22225
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x2224b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x220ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x2224b
movq 0x33ecd(%rip), %rdi     # 0x55fd0
leaq 0x1cb0c(%rip), %rsi     # 0x3ec16
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x22116
movq 0x28(%rsp), %rdi
movq 0x33e96(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x22129
movq 0x33ea0(%rip), %rdi     # 0x55fd0
leaq 0x1be8a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x22143
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x22157
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x2216d
movq 0x18(%rsp), %rdi
movq 0x33e3f(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x22180
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x33e3f(%rip), %rdi     # 0x55fd0
leaq 0x1be35(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x221a4
leaq 0x40(%rsp), %rdi
callq 0x21f40
jmp 0x221b0
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x221c6
movq 0x8(%rsp), %rdi
movq 0x33de6(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x221d9
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x22225
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x2224b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x2224b
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check13()
bool check13()
{
    std::stringstream ss;
    test13(ss);
    bool ok = (0 == ss.str().compare(res13()));
    if (ok) {
        std::cout << "test13 OK " << std::endl;
    } else {
        std::cout << "test13 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res13() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x22270
jmp 0x22903
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x2291a
leaq 0x80(%rsp), %rdi
callq 0x22860
jmp 0x22929
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x22944
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x22a1c
movq 0x33641(%rip), %rdi     # 0x55fd0
leaq 0x1c3c3(%rip), %rsi     # 0x3ed59
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x229a2
movq 0x30(%rsp), %rdi
movq 0x3360a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x229b5
jmp 0x22b45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x22b6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x22a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x22b6b
movq 0x335ad(%rip), %rdi     # 0x55fd0
leaq 0x1c33a(%rip), %rsi     # 0x3ed64
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x22a36
movq 0x28(%rsp), %rdi
movq 0x33576(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x22a49
movq 0x33580(%rip), %rdi     # 0x55fd0
leaq 0x1b56a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x22a63
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x22a77
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x22a8d
movq 0x18(%rsp), %rdi
movq 0x3351f(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x22aa0
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x3351f(%rip), %rdi     # 0x55fd0
leaq 0x1b515(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x22ac4
leaq 0x40(%rsp), %rdi
callq 0x22860
jmp 0x22ad0
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x22ae6
movq 0x8(%rsp), %rdi
movq 0x334c6(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x22af9
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x22b45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x22b6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x22b6b
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check14()
bool check14()
{
    std::stringstream ss;
    test14(ss);
    bool ok = (0 == ss.str().compare(res14()));
    if (ok) {
        std::cout << "test14 OK " << std::endl;
    } else {
        std::cout << "test14 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res14() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x22b90
jmp 0x23043
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x2305a
leaq 0x80(%rsp), %rdi
callq 0x22fa0
jmp 0x23069
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x23084
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x2315c
movq 0x32f01(%rip), %rdi     # 0x55fd0
leaq 0x1bd39(%rip), %rsi     # 0x3ee0f
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x230e2
movq 0x30(%rsp), %rdi
movq 0x32eca(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x230f5
jmp 0x23285
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x232ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x2314a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x232ab
movq 0x32e6d(%rip), %rdi     # 0x55fd0
leaq 0x1bcb0(%rip), %rsi     # 0x3ee1a
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x23176
movq 0x28(%rsp), %rdi
movq 0x32e36(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x23189
movq 0x32e40(%rip), %rdi     # 0x55fd0
leaq 0x1ae2a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x231a3
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x231b7
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x231cd
movq 0x18(%rsp), %rdi
movq 0x32ddf(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x231e0
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x32ddf(%rip), %rdi     # 0x55fd0
leaq 0x1add5(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x23204
leaq 0x40(%rsp), %rdi
callq 0x22fa0
jmp 0x23210
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x23226
movq 0x8(%rsp), %rdi
movq 0x32d86(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x23239
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x23285
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x232ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x232ab
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/tests.cpp
// Function: check15()
bool check15()
{
    std::stringstream ss;
    test15(ss);
    bool ok = (0 == ss.str().compare(res15()));
    if (ok) {
        std::cout << "test15 OK " << std::endl;
    } else {
        std::cout << "test15 FAIL " << std::endl;
        std::cout << "We got     " << ss.str() << std::endl;
        std::cout << "instead of " << res15() << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0xd0(%rsp), %rdi
callq 0x2110
leaq 0xe0(%rsp), %rdi
callq 0x232d0
jmp 0x23963
leaq 0xa0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x2397a
leaq 0x80(%rsp), %rdi
callq 0x238c0
jmp 0x23989
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x2030
movl %eax, 0x3c(%rsp)
jmp 0x239a4
movl 0x3c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x3b(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
movb 0x3b(%rsp), %al
andb $0x1, %al
movb %al, 0xc3(%rsp)
testb $0x1, 0xc3(%rsp)
je 0x23a7c
movq 0x325e1(%rip), %rdi     # 0x55fd0
leaq 0x1b564(%rip), %rsi     # 0x3ef5a
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x23a02
movq 0x30(%rsp), %rdi
movq 0x325aa(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x23a15
jmp 0x23ba5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x23bcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x23a6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x20e0
leaq 0xa0(%rsp), %rdi
callq 0x20e0
jmp 0x23bcb
movq 0x3254d(%rip), %rdi     # 0x55fd0
leaq 0x1b4db(%rip), %rsi     # 0x3ef65
callq 0x2180
movq %rax, 0x28(%rsp)
jmp 0x23a96
movq 0x28(%rsp), %rdi
movq 0x32516(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x23aa9
movq 0x32520(%rip), %rdi     # 0x55fd0
leaq 0x1a50a(%rip), %rsi     # 0x3dfc1
callq 0x2180
movq %rax, 0x20(%rsp)
jmp 0x23ac3
leaq 0x60(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x2170
jmp 0x23ad7
movq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2150
movq %rax, 0x18(%rsp)
jmp 0x23aed
movq 0x18(%rsp), %rdi
movq 0x324bf(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x23b00
leaq 0x60(%rsp), %rdi
callq 0x20e0
movq 0x324bf(%rip), %rdi     # 0x55fd0
leaq 0x1a4b5(%rip), %rsi     # 0x3dfcd
callq 0x2180
movq %rax, 0x10(%rsp)
jmp 0x23b24
leaq 0x40(%rsp), %rdi
callq 0x238c0
jmp 0x23b30
movq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2150
movq %rax, 0x8(%rsp)
jmp 0x23b46
movq 0x8(%rsp), %rdi
movq 0x32466(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x23b59
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x23ba5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x23bcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x20e0
jmp 0x23bcb
movb 0xc3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0xd0(%rsp), %rdi
callq 0x2120
movq 0xc8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
// File: grame-cncm[P]digraph/./dglib/digraph.hh
// Function: digraph<char, int>::add(digraph<char, int> const&)
digraph& add(const digraph& g)
    {
        for (auto& n : g.nodes()) {
            add(n);
            for (auto& c : g.connections(n)) {
                add(n, c.first, c.second);
            }
        }
        return *this;
    }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq 0x50(%rsp), %rax
movq %rax, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x2ad80
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
callq 0xa150
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
callq 0xa180
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xa1b0
testb $0x1, %al
jne 0x250ac
jmp 0x2515b
leaq 0x38(%rsp), %rdi
callq 0xa1d0
movq (%rsp), %rdi
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movsbl (%rax), %esi
callq 0x2d4d0
movq 0x48(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x2ada0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0x2add0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
callq 0x2ae00
movq %rax, 0x10(%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2ae30
testb $0x1, %al
jne 0x25113
jmp 0x2514a
leaq 0x18(%rsp), %rdi
callq 0x2ae50
movq (%rsp), %rdi
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x8(%rsp), %rcx
addq $0x4, %rcx
callq 0x242b0
leaq 0x18(%rsp), %rdi
callq 0x2ae70
jmp 0x250fe
jmp 0x2514c
leaq 0x38(%rsp), %rdi
callq 0xa350
jmp 0x25094
movq (%rsp), %rax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: grame-cncm[P]digraph/./dglib/digraphop.hh
// Function: void splitgraph<char, int>(digraph<char, int> const&, std::function<bool (char const&)>, digraph<char, int>&, digraph<char, int>&)
void splitgraph(const digraph<N, A>& G, std::function<bool(const N&)> left, digraph<N, A>& L, digraph<N, A>& R)
{
    for (auto n : G.nodes()) {
        if (left(n)) {
            L.add(n);
            for (const auto& c : G.connections(n)) {
                if (left(c.first)) {
                    L.add(n, c.first, c.second);
                }
            }
        } else {
            R.add(n);
            for (const auto& c : G.connections(n)) {
                if (!left(c.first)) {
                    R.add(n, c.first, c.second);
                }
            }
        }
    }
}

// Assembly:
subq $0x88, %rsp
movq %rsi, (%rsp)
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
movq %rcx, 0x68(%rsp)
movq 0x80(%rsp), %rdi
callq 0x2ad80
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rdi
callq 0xa150
movq %rax, 0x58(%rsp)
movq 0x60(%rsp), %rdi
callq 0xa180
movq %rax, 0x50(%rsp)
leaq 0x58(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xa1b0
testb $0x1, %al
jne 0x251da
jmp 0x25365
leaq 0x58(%rsp), %rdi
callq 0xa1d0
movq (%rsp), %rdi
movb (%rax), %al
movb %al, 0x4f(%rsp)
leaq 0x4f(%rsp), %rsi
callq 0x34af0
testb $0x1, %al
jne 0x25201
jmp 0x252ad
movq 0x70(%rsp), %rdi
movsbl 0x4f(%rsp), %esi
callq 0x2d4d0
movq 0x80(%rsp), %rdi
leaq 0x4f(%rsp), %rsi
callq 0x2ada0
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
callq 0x2add0
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
callq 0x2ae00
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x2ae30
testb $0x1, %al
jne 0x2525a
jmp 0x252a8
leaq 0x38(%rsp), %rdi
callq 0x2ae50
movq (%rsp), %rdi
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rsi
callq 0x34af0
testb $0x1, %al
jne 0x2527d
jmp 0x2529a
movq 0x70(%rsp), %rdi
movq 0x28(%rsp), %rdx
movq 0x28(%rsp), %rcx
addq $0x4, %rcx
leaq 0x4f(%rsp), %rsi
callq 0x242b0
jmp 0x2529c
leaq 0x38(%rsp), %rdi
callq 0x2ae70
jmp 0x25245
jmp 0x25354
movq 0x68(%rsp), %rdi
movsbl 0x4f(%rsp), %esi
callq 0x2d4d0
movq 0x80(%rsp), %rdi
leaq 0x4f(%rsp), %rsi
callq 0x2ada0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0x2add0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
callq 0x2ae00
movq %rax, 0x10(%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2ae30
testb $0x1, %al
jne 0x25306
jmp 0x25352
leaq 0x18(%rsp), %rdi
callq 0x2ae50
movq (%rsp), %rdi
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rsi
callq 0x34af0
testb $0x1, %al
jne 0x25344
movq 0x68(%rsp), %rdi
movq 0x8(%rsp), %rdx
movq 0x8(%rsp), %rcx
addq $0x4, %rcx
leaq 0x4f(%rsp), %rsi
callq 0x242b0
jmp 0x25346
leaq 0x18(%rsp), %rdi
callq 0x2ae70
jmp 0x252f1
jmp 0x25354
jmp 0x25356
leaq 0x58(%rsp), %rdi
callq 0xa350
jmp 0x251c2
addq $0x88, %rsp
retq
nopl (%rax)
// File: grame-cncm[P]digraph/./dglib/digraphop.hh
// Function: std::vector<std::vector<digraph<char, int>, std::allocator<digraph<char, int>>>, std::allocator<std::vector<digraph<char, int>, std::allocator<digraph<char, int>>>>> rparallelize<digraph<char, int>, int>(digraph<digraph<char, int>, int> const&)
inline std::vector<std::vector<N>> rparallelize(const digraph<N, A>& G)
{
    std::vector<std::vector<N>> P = parallelize(G);
    int                         i = 0;
    int                         j = P.size() - 1;

    while (i < j) {
        swap(P[i], P[j]);
        ++i;
        --j;
    }

    return P;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x10(%rsp)
movq %rdi, %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movb $0x0, 0x27(%rsp)
movq 0x28(%rsp), %rsi
callq 0x25380
movq 0x10(%rsp), %rdi
movl $0x0, 0x20(%rsp)
callq 0x35290
subq $0x1, %rax
movl %eax, 0x1c(%rsp)
movl 0x20(%rsp), %eax
cmpl 0x1c(%rsp), %eax
jge 0x256b4
movq 0x10(%rsp), %rdi
movslq 0x20(%rsp), %rsi
callq 0x34d00
movq 0x10(%rsp), %rdi
movq %rax, (%rsp)
movslq 0x1c(%rsp), %rsi
callq 0x34d00
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x367f0
movl 0x20(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x20(%rsp)
movl 0x1c(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x25664
movb $0x1, 0x27(%rsp)
testb $0x1, 0x27(%rsp)
jne 0x256ca
movq 0x10(%rsp), %rdi
callq 0x26410
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: grame-cncm[P]digraph/./dglib/digraphop.hh
// Function: std::vector<digraph<char, int>, std::allocator<digraph<char, int>>> serialize<digraph<char, int>, int>(digraph<digraph<char, int>, int> const&)
inline std::vector<N> serialize(const digraph<N, A>& G)
{
    //------------------------------------------------------------------------
    // visit : a local std::function (simulated using a lambda) to visit a graph
    // g : the graph
    // n : the node
    // V : std::set of already visited nodes
    // S : serialized std::vector of nodes
    //------------------------------------------------------------------------
    using Visitfun = std::function<void(const digraph<N, A>&, const N&, std::set<N>&, std::vector<N>&)>;
    Visitfun visit = [&visit](const digraph<N, A>& g, const N& n, std::set<N>& V, std::vector<N>& S) {
        if (V.find(n) == V.end()) {
            V.insert(n);
            for (const auto& p : g.connections(n)) {
                visit(g, p.first, V, S);
            }
            S.push_back(n);
        }
    };

    std::vector<N> S;
    std::set<N>    V;
    for (const N& n : G.nodes()) {
        visit(G, n, V, S);
    }
    return S;
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, (%rsp)
movq %rdi, 0xb0(%rsp)
movq %rsi, 0xa8(%rsp)
leaq 0x88(%rsp), %rdi
movq %rdi, 0x80(%rsp)
leaq 0x80(%rsp), %rsi
callq 0x369c0
movq 0x8(%rsp), %rdi
movb $0x0, 0x7f(%rsp)
callq 0x359b0
leaq 0x48(%rsp), %rdi
callq 0x2d820
movq 0xa8(%rsp), %rdi
callq 0x32690
movq %rax, 0x10(%rsp)
jmp 0x2574d
movq 0x10(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
callq 0x326b0
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rdi
callq 0x326e0
movq %rax, 0x20(%rsp)
leaq 0x28(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x32710
testb $0x1, %al
jne 0x2578a
jmp 0x257fe
leaq 0x28(%rsp), %rdi
callq 0x32730
movq 0x8(%rsp), %r8
movq %rax, 0x18(%rsp)
movq 0xa8(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rcx
callq 0x36a50
jmp 0x257bf
jmp 0x257c1
leaq 0x28(%rsp), %rdi
callq 0x32850
jmp 0x25775
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x2dbc0
movq 0x8(%rsp), %rdi
callq 0x263b0
leaq 0x88(%rsp), %rdi
callq 0x36ab0
jmp 0x25837
movb $0x1, 0x7f(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x2dbc0
testb $0x1, 0x7f(%rsp)
jne 0x2581e
movq 0x8(%rsp), %rdi
callq 0x263b0
leaq 0x88(%rsp), %rdi
callq 0x36ab0
movq (%rsp), %rax
addq $0xb8, %rsp
retq
movq 0x38(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)
// File: grame-cncm[P]digraph/./dglib/stdprinting.hh
// Function: std::ostream& operator<<<std::vector<digraph<char, int>, std::allocator<digraph<char, int>>>>(std::ostream&, std::vector<std::vector<digraph<char, int>, std::allocator<digraph<char, int>>>, std::allocator<std::vector<digraph<char, int>, std::allocator<digraph<char, int>>>>> const&)
inline std::ostream& operator<<(std::ostream& file, const std::vector<N>& V)
{
    std::string sep = "";

    file << "std::vector{";
    for (const N& e : V) {
        file << sep << e;
        sep = ", ";
    }
    return file << "}";
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
leaq 0x57(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x22a0
movq 0x18(%rsp), %rdx
leaq 0x17792(%rip), %rsi     # 0x3d081
leaq 0x58(%rsp), %rdi
callq 0x2200
jmp 0x258fb
leaq 0x57(%rsp), %rdi
callq 0x21c0
movq 0x80(%rsp), %rdi
leaq 0x19692(%rip), %rsi     # 0x3efa6
callq 0x2180
jmp 0x2591b
movq 0x78(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0x37250
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
callq 0x37280
movq %rax, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x372b0
testb $0x1, %al
jne 0x2595b
jmp 0x259e9
leaq 0x30(%rsp), %rdi
callq 0x372f0
movq %rax, 0x20(%rsp)
movq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x2150
movq %rax, 0x10(%rsp)
jmp 0x25983
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x25a30
jmp 0x25994
leaq 0x1768f(%rip), %rsi     # 0x3d02a
leaq 0x58(%rsp), %rdi
callq 0x21f0
jmp 0x259a7
jmp 0x259a9
leaq 0x30(%rsp), %rdi
callq 0x37300
jmp 0x25943
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x57(%rsp), %rdi
callq 0x21c0
jmp 0x25a1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x20e0
jmp 0x25a1b
movq 0x80(%rsp), %rdi
leaq 0x188a3(%rip), %rsi     # 0x3e29b
callq 0x2180
movq %rax, 0x8(%rsp)
jmp 0x25a04
leaq 0x58(%rsp), %rdi
callq 0x20e0
movq 0x8(%rsp), %rax
addq $0x88, %rsp
retq
movq 0x48(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)
nop
// File: grame-cncm[P]digraph/./dglib/stdprinting.hh
// Function: std::ostream& operator<<<char>(std::ostream&, std::set<char, std::less<char>, std::allocator<char>> const&)
inline std::ostream& operator<<(std::ostream& file, const std::set<N>& S)
{
    std::string sep = "";

    file << "std::set{";
    for (const N& e : S) {
        file << sep << e;
        sep = ", ";
    }
    return file << "}";
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
leaq 0x57(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x22a0
movq 0x18(%rsp), %rdx
leaq 0x167b2(%rip), %rsi     # 0x3d081
leaq 0x58(%rsp), %rdi
callq 0x2200
jmp 0x268db
leaq 0x57(%rsp), %rdi
callq 0x21c0
movq 0x80(%rsp), %rdi
leaq 0x186bf(%rip), %rsi     # 0x3efb3
callq 0x2180
jmp 0x268fb
movq 0x78(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xa150
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
callq 0xa180
movq %rax, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xa1b0
testb $0x1, %al
jne 0x2693b
jmp 0x269cc
leaq 0x30(%rsp), %rdi
callq 0xa1d0
movq %rax, 0x20(%rsp)
movq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x2150
movq %rax, 0x10(%rsp)
jmp 0x26963
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rax
movsbl (%rax), %esi
callq 0x21e0
jmp 0x26977
leaq 0x166ac(%rip), %rsi     # 0x3d02a
leaq 0x58(%rsp), %rdi
callq 0x21f0
jmp 0x2698a
jmp 0x2698c
leaq 0x30(%rsp), %rdi
callq 0xa350
jmp 0x26923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x57(%rsp), %rdi
callq 0x21c0
jmp 0x269fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x20e0
jmp 0x269fe
movq 0x80(%rsp), %rdi
leaq 0x178c0(%rip), %rsi     # 0x3e29b
callq 0x2180
movq %rax, 0x8(%rsp)
jmp 0x269e7
leaq 0x58(%rsp), %rdi
callq 0x20e0
movq 0x8(%rsp), %rax
addq $0x88, %rsp
retq
movq 0x48(%rsp), %rdi
callq 0x2290
nopl (%rax,%rax)