// File: /workspace/github_c_makefile_star2_O0/mijallen[P]SimpleHTTPServer/lib/libyaml/src/scanner.c
// Function: yaml_parser_scan_uri_escapes
static int
yaml_parser_scan_uri_escapes(yaml_parser_t *parser, int directive,
        yaml_mark_t start_mark, yaml_string_t *string)
{
    int width = 0;

    /* Decode the required number of characters. */

    do {

        unsigned char octet = 0;

        /* Check for a URI-escaped octet. */

        if (!CACHE(parser, 3)) return 0;

        if (!(CHECK(parser->buffer, '%')
                    && IS_HEX_AT(parser->buffer, 1)
                    && IS_HEX_AT(parser->buffer, 2))) {
            return yaml_parser_set_scanner_error(parser, directive ?
                    "while parsing a %TAG directive" : "while parsing a tag",
                    start_mark, "did not find URI escaped octet");
        }

        /* Get the octet. */

        octet = (AS_HEX_AT(parser->buffer, 1) << 4) + AS_HEX_AT(parser->buffer, 2);

        /* If it is the leading octet, determine the length of the UTF-8 sequence. */

        if (!width)
        {
            width = (octet & 0x80) == 0x00 ? 1 :
                    (octet & 0xE0) == 0xC0 ? 2 :
                    (octet & 0xF0) == 0xE0 ? 3 :
                    (octet & 0xF8) == 0xF0 ? 4 : 0;
            if (!width) {
                return yaml_parser_set_scanner_error(parser, directive ?
                        "while parsing a %TAG directive" : "while parsing a tag",
                        start_mark, "found an incorrect leading UTF-8 octet");
            }
        }
        else
        {
            /* Check if the trailing octet is correct. */

            if ((octet & 0xC0) != 0x80) {
                return yaml_parser_set_scanner_error(parser, directive ?
                        "while parsing a %TAG directive" : "while parsing a tag",
                        start_mark, "found an incorrect trailing UTF-8 octet");
            }
        }

        /* Copy the octet and move the pointers. */

        *(string->pointer++) = octet;
        SKIP(parser);
        SKIP(parser);
        SKIP(parser);

    } while (--width);

    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movb $0x0, -0x25(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x3, 0xa8(%rax)
jb 0xed9f
movb $0x1, %al
testb $0x1, %al
jne 0xedbe
jmp 0xedb2
movq -0x10(%rbp), %rdi
movl $0x3, %esi
callq 0x2060
cmpl $0x0, %eax
jne 0xedbe
movl $0x0, -0x4(%rbp)
jmp 0xf4c4
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
cmpl $0x25, %eax
jne 0xeecd
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x30, %eax
jl 0xedfd
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x39, %eax
jle 0xee51
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x41, %eax
jl 0xee25
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x46, %eax
jle 0xee51
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x61, %eax
jl 0xeecd
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x66, %eax
jg 0xeecd
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x30, %eax
jl 0xee7d
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x39, %eax
jle 0xef1a
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x41, %eax
jl 0xeea5
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x46, %eax
jle 0xef1a
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x61, %eax
jl 0xeecd
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x66, %eax
jle 0xef1a
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x1d557(%rip), %rsi     # 0x2c436
leaq 0x1d531(%rip), %rcx     # 0x2c417
cmpl $0x0, %edx
cmovneq %rcx, %rsi
leaq 0x1d574(%rip), %rdx     # 0x2c468
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb790
movl %eax, -0x4(%rbp)
jmp 0xf4c4
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x41, %eax
jl 0xef5c
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x46, %eax
jg 0xef5c
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x34(%rbp)
jmp 0xefb9
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x61, %eax
jl 0xef9e
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
cmpl $0x66, %eax
jg 0xef9e
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x38(%rbp)
jmp 0xefb3
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x1(%rax), %eax
subl $0x30, %eax
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x41, %eax
jl 0xf004
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x46, %eax
jg 0xf004
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x40(%rbp)
jmp 0xf061
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x61, %eax
jl 0xf046
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
cmpl $0x66, %eax
jg 0xf046
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x44(%rbp)
jmp 0xf05b
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl 0x2(%rax), %eax
subl $0x30, %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x3c(%rbp), %eax
movl -0x40(%rbp), %ecx
addl %ecx, %eax
movb %al, -0x25(%rbp)
cmpl $0x0, -0x24(%rbp)
jne 0xf146
movzbl -0x25(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0xf08e
movl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0xf0eb
movzbl -0x25(%rbp), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0xf0a8
movl $0x2, %eax
movl %eax, -0x4c(%rbp)
jmp 0xf0e5
movzbl -0x25(%rbp), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0xf0c2
movl $0x3, %eax
movl %eax, -0x50(%rbp)
jmp 0xf0df
movzbl -0x25(%rbp), %edx
andl $0xf8, %edx
xorl %eax, %eax
movl $0x4, %ecx
cmpl $0xf0, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
jne 0xf144
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x1d32d(%rip), %rsi     # 0x2c436
leaq 0x1d307(%rip), %rcx     # 0x2c417
cmpl $0x0, %edx
cmovneq %rcx, %rsi
leaq 0x1d369(%rip), %rdx     # 0x2c487
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb790
movl %eax, -0x4(%rbp)
jmp 0xf4c4
jmp 0xf1a5
movzbl -0x25(%rbp), %eax
andl $0xc0, %eax
cmpl $0x80, %eax
je 0xf1a3
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq 0x1d2ce(%rip), %rsi     # 0x2c436
leaq 0x1d2a8(%rip), %rcx     # 0x2c417
cmpl $0x0, %edx
cmovneq %rcx, %rsi
leaq 0x1d331(%rip), %rdx     # 0x2c4ae
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb790
movl %eax, -0x4(%rbp)
jmp 0xf4c4
jmp 0xf1a5
movb -0x25(%rbp), %cl
movq -0x20(%rbp), %rdx
movq 0x10(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x10(%rdx)
movb %cl, (%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 0xf221
movl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xf29c
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0xf245
movl $0x2, %eax
movl %eax, -0x58(%rbp)
jmp 0xf296
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0xf269
movl $0x3, %eax
movl %eax, -0x5c(%rbp)
jmp 0xf290
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, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%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 0xf31b
movl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0xf396
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0xf33f
movl $0x2, %eax
movl %eax, -0x64(%rbp)
jmp 0xf390
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0xf363
movl $0x3, %eax
movl %eax, -0x68(%rbp)
jmp 0xf38a
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, -0x68(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x60(%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 0xf415
movl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0xf490
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0xf439
movl $0x2, %eax
movl %eax, -0x70(%rbp)
jmp 0xf48a
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0xf45d
movl $0x3, %eax
movl %eax, -0x74(%rbp)
jmp 0xf484
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, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x98(%rax)
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, %eax
jne 0xed85
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq