// File: /workspace/github_c_makefile_star2_O0/mijallen[P]SimpleHTTPServer/lib/libyaml/src/scanner.c
// Function: yaml_parser_scan_tag
static int
yaml_parser_scan_tag(yaml_parser_t *parser, yaml_token_t *token)
{
    yaml_char_t *handle = NULL;
    yaml_char_t *suffix = NULL;
    yaml_mark_t start_mark, end_mark;

    start_mark = parser->mark;

    /* Check if the tag is in the canonical form. */

    if (!CACHE(parser, 2)) goto error;

    if (CHECK_AT(parser->buffer, '<', 1))
    {
        /* Set the handle to '' */

        handle = yaml_malloc(1);
        if (!handle) goto error;
        handle[0] = '\0';

        /* Eat '!<' */

        SKIP(parser);
        SKIP(parser);

        /* Consume the tag value. */

        if (!yaml_parser_scan_tag_uri(parser, 0, NULL, start_mark, &suffix))
            goto error;

        /* Check for '>' and eat it. */

        if (!CHECK(parser->buffer, '>')) {
            yaml_parser_set_scanner_error(parser, "while scanning a tag",
                    start_mark, "did not find the expected '>'");
            goto error;
        }

        SKIP(parser);
    }
    else
    {
        /* The tag has either the '!suffix' or the '!handle!suffix' form. */

        /* First, try to scan a handle. */

        if (!yaml_parser_scan_tag_handle(parser, 0, start_mark, &handle))
            goto error;

        /* Check if it is, indeed, handle. */

        if (handle[0] == '!' && handle[1] != '\0' && handle[strlen((char *)handle)-1] == '!')
        {
            /* Scan the suffix now. */

            if (!yaml_parser_scan_tag_uri(parser, 0, NULL, start_mark, &suffix))
                goto error;
        }
        else
        {
            /* It wasn't a handle after all.  Scan the rest of the tag. */

            if (!yaml_parser_scan_tag_uri(parser, 0, handle, start_mark, &suffix))
                goto error;

            /* Set the handle to '!'. */

            yaml_free(handle);
            handle = yaml_malloc(2);
            if (!handle) goto error;
            handle[0] = '!';
            handle[1] = '\0';

            /*
             * A special case: the '!' tag.  Set the handle to '' and the
             * suffix to '!'.
             */

            if (suffix[0] == '\0') {
                yaml_char_t *tmp = handle;
                handle = suffix;
                suffix = tmp;
            }
        }
    }

    /* Check the character which ends the tag. */

    if (!CACHE(parser, 1)) goto error;

    if (!IS_BLANKZ(parser->buffer)) {
        yaml_parser_set_scanner_error(parser, "while scanning a tag",
                start_mark, "did not find expected whitespace or line break");
        goto error;
    }

    end_mark = parser->mark;

    /* Create a token. */

    TAG_TOKEN_INIT(*token, handle, suffix, start_mark, end_mark);

    return 1;

error:
    yaml_free(handle);
    yaml_free(suffix);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0xe0(%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0xe8(%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0xf0(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x2, 0xa8(%rax)
jb 0x1043e
movb $0x1, %al
testb $0x1, %al
jne 0x10456
jmp 0x10451
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x2060
cmpl $0x0, %eax
jne 0x10456
jmp 0x10b84
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x3c, %eax
jne 0x10814
movl $0x1, %edi
callq 0x2080
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x10488
jmp 0x10b84
movq -0x20(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0xe0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xe0(%rax)
movq -0x10(%rbp), %rax
movq 0xf0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xf0(%rax)
movq -0x10(%rbp), %rax
movq 0xa8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0xa8(%rax)
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0x104f3
movl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x1056e
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0x10517
movl $0x2, %eax
movl %eax, -0x68(%rbp)
jmp 0x10568
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0x1053b
movl $0x3, %eax
movl %eax, -0x6c(%rbp)
jmp 0x10562
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %edx
andl $0xf8, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xf0, %edx
cmovel %ecx, %eax
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x98(%rax)
movq -0x10(%rbp), %rax
movq 0xe0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xe0(%rax)
movq -0x10(%rbp), %rax
movq 0xf0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xf0(%rax)
movq -0x10(%rbp), %rax
movq 0xa8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0xa8(%rax)
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0x105ed
movl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x10668
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0x10611
movl $0x2, %eax
movl %eax, -0x74(%rbp)
jmp 0x10662
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0x10635
movl $0x3, %eax
movl %eax, -0x78(%rbp)
jmp 0x1065c
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %edx
andl $0xf8, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xf0, %edx
cmovel %ecx, %eax
movl %eax, -0x78(%rbp)
movl -0x78(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x98(%rax)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
xorl %eax, %eax
movl %eax, %edx
leaq -0x40(%rbp), %rax
leaq -0x28(%rbp), %rcx
movq (%rax), %r8
movq %r8, (%rsp)
movq 0x8(%rax), %r8
movq %r8, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe460
cmpl $0x0, %eax
jne 0x106bd
jmp 0x10b84
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0x3e, %eax
je 0x10709
movq -0x10(%rbp), %rdi
leaq 0x1bcef(%rip), %rsi     # 0x2c3ca
leaq -0x40(%rbp), %rax
leaq 0x1beea(%rip), %rdx     # 0x2c5d0
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb790
jmp 0x10b84
movq -0x10(%rbp), %rax
movq 0xe0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xe0(%rax)
movq -0x10(%rbp), %rax
movq 0xf0(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xf0(%rax)
movq -0x10(%rbp), %rax
movq 0xa8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0xa8(%rax)
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0x10770
movl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x107f4
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0x10794
movl $0x2, %eax
movl %eax, -0x80(%rbp)
jmp 0x107ee
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0x107bb
movl $0x3, %eax
movl %eax, -0x84(%rbp)
jmp 0x107e5
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %edx
andl $0xf8, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xf0, %edx
cmovel %ecx, %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
movl %eax, -0x80(%rbp)
movl -0x80(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x98(%rax)
jmp 0x10961
movq -0x10(%rbp), %rdi
xorl %esi, %esi
leaq -0x40(%rbp), %rax
leaq -0x20(%rbp), %rdx
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xd860
cmpl $0x0, %eax
jne 0x1084a
jmp 0x10b84
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x21, %eax
jne 0x108cd
movq -0x20(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x0, %eax
je 0x108cd
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20d0
movq %rax, %rcx
movq -0x90(%rbp), %rax
subq $0x1, %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x21, %eax
jne 0x108cd
movq -0x10(%rbp), %rdi
xorl %esi, %esi
xorl %eax, %eax
movl %eax, %edx
leaq -0x40(%rbp), %rax
leaq -0x28(%rbp), %rcx
movq (%rax), %r8
movq %r8, (%rsp)
movq 0x8(%rax), %r8
movq %r8, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe460
cmpl $0x0, %eax
jne 0x108c8
jmp 0x10b84
jmp 0x1095f
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
xorl %esi, %esi
leaq -0x40(%rbp), %rax
leaq -0x28(%rbp), %rcx
movq (%rax), %r8
movq %r8, (%rsp)
movq 0x8(%rax), %r8
movq %r8, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe460
cmpl $0x0, %eax
jne 0x10907
jmp 0x10b84
movq -0x20(%rbp), %rdi
callq 0x2140
movl $0x2, %edi
callq 0x2080
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x1092a
jmp 0x10b84
movq -0x20(%rbp), %rax
movb $0x21, (%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x1095d
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x1095f
jmp 0x10961
movq -0x10(%rbp), %rax
cmpq $0x1, 0xa8(%rax)
jb 0x10977
movb $0x1, %al
testb $0x1, %al
jne 0x1098f
jmp 0x1098a
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x2060
cmpl $0x0, %eax
jne 0x1098f
jmp 0x10b84
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0x9, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0xd, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0xc2, %eax
jne 0x10a1a
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x85, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0xe2, %eax
jne 0x10a5f
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x80, %eax
jne 0x10a5f
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0xa8, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0xe2, %eax
jne 0x10aa0
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x80, %eax
jne 0x10aa0
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0xa9, %eax
je 0x10aec
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x10aec
movq -0x10(%rbp), %rdi
leaq 0x1b90c(%rip), %rsi     # 0x2c3ca
leaq -0x40(%rbp), %rax
leaq 0x1b8b3(%rip), %rdx     # 0x2c37c
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb790
jmp 0x10b84
movq -0x10(%rbp), %rax
movq 0xe0(%rax), %rcx
movq %rcx, -0x58(%rbp)
movq 0xe8(%rax), %rcx
movq %rcx, -0x50(%rbp)
movq 0xf0(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x2120
movq -0x18(%rbp), %rax
movl $0x14, (%rax)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x28(%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x30(%rax)
movq -0x18(%rbp), %rax
movq -0x58(%rbp), %rcx
movq %rcx, 0x38(%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x40(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x48(%rax)
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x10b9d
movq -0x20(%rbp), %rdi
callq 0x2140
movq -0x28(%rbp), %rdi
callq 0x2140
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax)