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

    /* In the block context, additional checks are required. */

    if (!parser->flow_level)
    {
        /* Check if we are allowed to start a new key (not nessesary simple). */

        if (!parser->simple_key_allowed) {
            return yaml_parser_set_scanner_error(parser, NULL, parser->mark,
                    "mapping keys are not allowed in this context");
        }

        /* Add the BLOCK-MAPPING-START token if needed. */

        if (!yaml_parser_roll_indent(parser, parser->mark.column, -1,
                    YAML_BLOCK_MAPPING_START_TOKEN, parser->mark))
            return 0;
    }

    /* Reset any potential simple keys on the current flow level. */

    if (!yaml_parser_remove_simple_key(parser))
        return 0;

    /* Simple keys are allowed after '?' in the block context. */

    parser->simple_key_allowed = (!parser->flow_level);

    /* Consume the token. */

    start_mark = parser->mark;
    SKIP(parser);
    end_mark = parser->mark;

    /* Create the KEY token and append it to the queue. */

    TOKEN_INIT(token, YAML_KEY_TOKEN, start_mark, end_mark);

    if (!ENQUEUE(parser, parser->tokens, token))
        return 0;

    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x100(%rax)
jne 0xa9b2
movq -0x10(%rbp), %rax
cmpl $0x0, 0x154(%rax)
jne 0xa95c
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
addq $0xe0, %rax
xorl %ecx, %ecx
movl %ecx, %esi
leaq 0x21bd7(%rip), %rdx     # 0x2c50d
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 0xac46
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0xf0(%rax), %rsi
movq -0x10(%rbp), %rax
addq $0xe0, %rax
movq $-0x1, %rdx
movl $0x8, %ecx
movq (%rax), %r8
movq %r8, (%rsp)
movq 0x8(%rax), %r8
movq %r8, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf740
cmpl $0x0, %eax
jne 0xa9b0
movl $0x0, -0x4(%rbp)
jmp 0xac46
jmp 0xa9b2
movq -0x10(%rbp), %rdi
callq 0xb810
cmpl $0x0, %eax
jne 0xa9cc
movl $0x0, -0x4(%rbp)
jmp 0xac46
movq -0x10(%rbp), %rax
cmpl $0x0, 0x100(%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x154(%rax)
movq -0x10(%rbp), %rax
movq 0xe0(%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0xe8(%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0xf0(%rax), %rax
movq %rax, -0x18(%rbp)
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 0xaa7a
movl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0xab0a
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xe0, %eax
cmpl $0xc0, %eax
jne 0xaaa1
movl $0x2, %eax
movl %eax, -0x98(%rbp)
jmp 0xaafe
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
cmpl $0xe0, %eax
jne 0xaac8
movl $0x3, %eax
movl %eax, -0x9c(%rbp)
jmp 0xaaf2
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, -0x9c(%rbp)
movl -0x9c(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%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
movq %rcx, -0x40(%rbp)
movq 0xe8(%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0xf0(%rax), %rax
movq %rax, -0x30(%rbp)
leaq -0x90(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x2120
movl $0x10, -0x90(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq 0x120(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xabf4
movq -0x10(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
movq -0x10(%rbp), %rsi
addq $0x108, %rsi            # imm = 0x108
addq $0x10, %rsi
movq -0x10(%rbp), %rdx
addq $0x108, %rdx            # imm = 0x108
addq $0x18, %rdx
movq -0x10(%rbp), %rcx
addq $0x108, %rcx            # imm = 0x108
addq $0x8, %rcx
callq 0x2170
cmpl $0x0, %eax
je 0xac26
movq -0x10(%rbp), %rax
movq 0x120(%rax), %rdi
movq %rdi, %rcx
addq $0x50, %rcx
movq %rcx, 0x120(%rax)
leaq -0x90(%rbp), %rsi
movl $0x50, %edx
callq 0x2180
movb $0x1, %al
testb $0x1, %al
jne 0xac3f
jmp 0xac36
movq -0x10(%rbp), %rax
movl $0x1, (%rax)
xorl %eax, %eax
testb $0x1, %al
jne 0xac3f
movl $0x0, -0x4(%rbp)
jmp 0xac46
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)