// File: /workspace/github_c_makefile_star2_O0/mijallen[P]SimpleHTTPServer/lib/libyaml/tests/run-emitter.c
// Function: compare_events
int compare_events(yaml_event_t *event1, yaml_event_t *event2)
{
    int k;

    if (event1->type != event2->type)
        return 0;

    switch (event1->type)
    {
        case YAML_STREAM_START_EVENT:
            return 1;
            /* return (event1->data.stream_start.encoding ==
                    event2->data.stream_start.encoding); */

        case YAML_DOCUMENT_START_EVENT:
            if ((event1->data.document_start.version_directive && !event2->data.document_start.version_directive)
                    || (!event1->data.document_start.version_directive && event2->data.document_start.version_directive)
                    || (event1->data.document_start.version_directive && event2->data.document_start.version_directive
                        && (event1->data.document_start.version_directive->major != event2->data.document_start.version_directive->major
                            || event1->data.document_start.version_directive->minor != event2->data.document_start.version_directive->minor)))
                return 0;
            if ((event1->data.document_start.tag_directives.end - event1->data.document_start.tag_directives.start) !=
                    (event2->data.document_start.tag_directives.end - event2->data.document_start.tag_directives.start))
                return 0;
            for (k = 0; k < (event1->data.document_start.tag_directives.end - event1->data.document_start.tag_directives.start); k ++) {
                if ((strcmp((char *)event1->data.document_start.tag_directives.start[k].handle,
                                (char *)event2->data.document_start.tag_directives.start[k].handle) != 0)
                        || (strcmp((char *)event1->data.document_start.tag_directives.start[k].prefix,
                            (char *)event2->data.document_start.tag_directives.start[k].prefix) != 0))
                    return 0;
            }
            /* if (event1->data.document_start.implicit != event2->data.document_start.implicit)
                return 0; */
            return 1;

        case YAML_DOCUMENT_END_EVENT:
            return 1;
            /* return (event1->data.document_end.implicit ==
                    event2->data.document_end.implicit); */

        case YAML_ALIAS_EVENT:
            return (strcmp((char *)event1->data.alias.anchor,
                        (char *)event2->data.alias.anchor) == 0);

        case YAML_SCALAR_EVENT:
            if ((event1->data.scalar.anchor && !event2->data.scalar.anchor)
                    || (!event1->data.scalar.anchor && event2->data.scalar.anchor)
                    || (event1->data.scalar.anchor && event2->data.scalar.anchor
                        && strcmp((char *)event1->data.scalar.anchor,
                            (char *)event2->data.scalar.anchor) != 0))
                return 0;
            if ((event1->data.scalar.tag && !event2->data.scalar.tag
                        && strcmp((char *)event1->data.scalar.tag, "!") != 0)
                    || (!event1->data.scalar.tag && event2->data.scalar.tag
                        && strcmp((char *)event2->data.scalar.tag, "!") != 0)
                    || (event1->data.scalar.tag && event2->data.scalar.tag
                        && strcmp((char *)event1->data.scalar.tag,
                            (char *)event2->data.scalar.tag) != 0))
                return 0;
            if ((event1->data.scalar.length != event2->data.scalar.length)
                    || memcmp(event1->data.scalar.value, event2->data.scalar.value,
                        event1->data.scalar.length) != 0)
                return 0;
            if ((event1->data.scalar.plain_implicit != event2->data.scalar.plain_implicit)
                    || (event2->data.scalar.quoted_implicit != event2->data.scalar.quoted_implicit)
                    /* || (event2->data.scalar.style != event2->data.scalar.style) */)
                return 0;
            return 1;

        case YAML_SEQUENCE_START_EVENT:
            if ((event1->data.sequence_start.anchor && !event2->data.sequence_start.anchor)
                    || (!event1->data.sequence_start.anchor && event2->data.sequence_start.anchor)
                    || (event1->data.sequence_start.anchor && event2->data.sequence_start.anchor
                        && strcmp((char *)event1->data.sequence_start.anchor,
                            (char *)event2->data.sequence_start.anchor) != 0))
                return 0;
            if ((event1->data.sequence_start.tag && !event2->data.sequence_start.tag)
                    || (!event1->data.sequence_start.tag && event2->data.sequence_start.tag)
                    || (event1->data.sequence_start.tag && event2->data.sequence_start.tag
                        && strcmp((char *)event1->data.sequence_start.tag,
                            (char *)event2->data.sequence_start.tag) != 0))
                return 0;
            if ((event1->data.sequence_start.implicit != event2->data.sequence_start.implicit)
                    /* || (event2->data.sequence_start.style != event2->data.sequence_start.style) */)
                return 0;
            return 1;

        case YAML_MAPPING_START_EVENT:
            if ((event1->data.mapping_start.anchor && !event2->data.mapping_start.anchor)
                    || (!event1->data.mapping_start.anchor && event2->data.mapping_start.anchor)
                    || (event1->data.mapping_start.anchor && event2->data.mapping_start.anchor
                        && strcmp((char *)event1->data.mapping_start.anchor,
                            (char *)event2->data.mapping_start.anchor) != 0))
                return 0;
            if ((event1->data.mapping_start.tag && !event2->data.mapping_start.tag)
                    || (!event1->data.mapping_start.tag && event2->data.mapping_start.tag)
                    || (event1->data.mapping_start.tag && event2->data.mapping_start.tag
                        && strcmp((char *)event1->data.mapping_start.tag,
                            (char *)event2->data.mapping_start.tag) != 0))
                return 0;
            if ((event1->data.mapping_start.implicit != event2->data.mapping_start.implicit)
                    /* || (event2->data.mapping_start.style != event2->data.mapping_start.style) */)
                return 0;
            return 1;

        default:
            return 1;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x18(%rbp), %rcx
cmpl (%rcx), %eax
je 0x153a
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x8, %eax
ja 0x1a82
movq -0x28(%rbp), %rax
leaq 0x1ad0(%rip), %rcx      # 0x302c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1587
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x15e1
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x159d
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x15e1
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x15ed
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x15ed
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl (%rcx), %eax
jne 0x15e1
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl 0x4(%rcx), %eax
je 0x15ed
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq %rcx, %rax
sarq $0x4, %rax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq -0x18(%rbp), %rdx
movq 0x10(%rdx), %rdx
subq %rdx, %rcx
sarq $0x4, %rcx
cmpq %rcx, %rax
je 0x162c
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq -0x10(%rbp), %rdx
movq 0x10(%rdx), %rdx
subq %rdx, %rcx
sarq $0x4, %rcx
cmpq %rcx, %rax
jge 0x16e1
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
jne 0x16c5
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x16d1
movl $0x0, -0x4(%rbp)
jmp 0x1a89
jmp 0x16d3
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1633
movl $0x1, -0x4(%rbp)
jmp 0x1a89
movl $0x1, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1737
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x177d
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x174d
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x177d
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1789
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1789
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x1789
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x17b8
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x17b8
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x18a2(%rip), %rsi      # 0x3050
callq 0x1150
cmpl $0x0, %eax
jne 0x1817
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x17e7
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x17e7
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x1873(%rip), %rsi      # 0x3050
callq 0x1150
cmpl $0x0, %eax
jne 0x1817
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1823
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1823
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x1823
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jne 0x1857
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0x1140
cmpl $0x0, %eax
je 0x1863
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jne 0x1883
movq -0x18(%rbp), %rax
movl 0x2c(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x2c(%rcx), %eax
je 0x188f
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movl $0x1, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x18b1
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x18f7
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18c7
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18f7
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1903
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1903
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x1903
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1919
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x195f
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x192f
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x195f
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x196b
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x196b
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x196b
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x18(%rcx), %eax
je 0x1987
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movl $0x1, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x19a9
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x19ef
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x19bf
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x19ef
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x19fb
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x19fb
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x19fb
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1a11
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1a57
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1a27
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1a57
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1a60
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1a60
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x1150
cmpl $0x0, %eax
je 0x1a60
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x18(%rcx), %eax
je 0x1a79
movl $0x0, -0x4(%rbp)
jmp 0x1a89
movl $0x1, -0x4(%rbp)
jmp 0x1a89
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)