// File: grame-cncm[P]digraph/tests.cpp
// Function: check4()
bool check4()
{
    std::stringstream ss;
    test4(ss);
    bool ok = (0 == ss.str().compare(res4()));
    if (ok) {
        std::cout << "test4 OK " << std::endl;
    } else {
        std::cout << "test4 FAIL " << std::endl;
        std::cout << "We got     \"" << ss.str() << '"' << std::endl;
        std::cout << "instead of \"" << res4() << '"' << std::endl;
    }
    return ok;
}

// Assembly:
subq $0x268, %rsp            # imm = 0x268
leaq 0xe0(%rsp), %rdi
callq 0x2110
leaq 0xf0(%rsp), %rdi
callq 0x1e780
jmp 0x1ea33
leaq 0xb0(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x2170
jmp 0x1ea4a
leaq 0x90(%rsp), %rdi
callq 0x1e990
jmp 0x1ea59
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x2030
movl %eax, 0x4c(%rsp)
jmp 0x1ea74
movl 0x4c(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
movb %al, 0x4b(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x20e0
leaq 0xb0(%rsp), %rdi
callq 0x20e0
movb 0x4b(%rsp), %al
andb $0x1, %al
movb %al, 0xd3(%rsp)
testb $0x1, 0xd3(%rsp)
je 0x1eb4c
movq 0x37511(%rip), %rdi     # 0x55fd0
leaq 0x1f7d7(%rip), %rsi     # 0x3e29d
callq 0x2180
movq %rax, 0x40(%rsp)
jmp 0x1ead2
movq 0x40(%rsp), %rdi
movq 0x374da(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1eae5
jmp 0x1eca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd8(%rsp)
movl %eax, 0xd4(%rsp)
jmp 0x1ecc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd8(%rsp)
movl %eax, 0xd4(%rsp)
jmp 0x1eb3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd8(%rsp)
movl %eax, 0xd4(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x20e0
leaq 0xb0(%rsp), %rdi
callq 0x20e0
jmp 0x1ecc7
movq 0x3747d(%rip), %rdi     # 0x55fd0
leaq 0x1f74d(%rip), %rsi     # 0x3e2a7
callq 0x2180
movq %rax, 0x38(%rsp)
jmp 0x1eb66
movq 0x38(%rsp), %rdi
movq 0x37446(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1eb79
movq 0x37450(%rip), %rdi     # 0x55fd0
leaq 0x1f68e(%rip), %rsi     # 0x3e215
callq 0x2180
movq %rax, 0x30(%rsp)
jmp 0x1eb93
leaq 0x70(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x2170
jmp 0x1eba7
movq 0x30(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2150
movq %rax, 0x28(%rsp)
jmp 0x1ebbd
movq 0x28(%rsp), %rdi
movl $0x22, %esi
callq 0x21e0
movq %rax, 0x20(%rsp)
jmp 0x1ebd3
movq 0x20(%rsp), %rdi
movq 0x373d9(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1ebe6
leaq 0x70(%rsp), %rdi
callq 0x20e0
movq 0x373d9(%rip), %rdi     # 0x55fd0
leaq 0x1f624(%rip), %rsi     # 0x3e222
callq 0x2180
movq %rax, 0x18(%rsp)
jmp 0x1ec0a
leaq 0x50(%rsp), %rdi
callq 0x1e990
jmp 0x1ec16
movq 0x18(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x2150
movq %rax, 0x10(%rsp)
jmp 0x1ec2c
movq 0x10(%rsp), %rdi
movl $0x22, %esi
callq 0x21e0
movq %rax, 0x8(%rsp)
jmp 0x1ec42
movq 0x8(%rsp), %rdi
movq 0x3736a(%rip), %rsi     # 0x55fb8
callq 0x21b0
jmp 0x1ec55
leaq 0x50(%rsp), %rdi
callq 0x20e0
jmp 0x1eca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd8(%rsp)
movl %eax, 0xd4(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x20e0
jmp 0x1ecc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd8(%rsp)
movl %eax, 0xd4(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x20e0
jmp 0x1ecc7
movb 0xd3(%rsp), %al
movb %al, 0x7(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x2120
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x268, %rsp            # imm = 0x268
retq
leaq 0xe0(%rsp), %rdi
callq 0x2120
movq 0xd8(%rsp), %rdi
callq 0x2290
nopw %cs:(%rax,%rax)