// File: /workspace/github_c_makefile_star2_O0/mijallen[P]SimpleHTTPServer/lib/libyaml/src/parser.c
// Function: yaml_parser_state_machine
static int
yaml_parser_state_machine(yaml_parser_t *parser, yaml_event_t *event)
{
    switch (parser->state)
    {
        case YAML_PARSE_STREAM_START_STATE:
            return yaml_parser_parse_stream_start(parser, event);

        case YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE:
            return yaml_parser_parse_document_start(parser, event, 1);

        case YAML_PARSE_DOCUMENT_START_STATE:
            return yaml_parser_parse_document_start(parser, event, 0);

        case YAML_PARSE_DOCUMENT_CONTENT_STATE:
            return yaml_parser_parse_document_content(parser, event);

        case YAML_PARSE_DOCUMENT_END_STATE:
            return yaml_parser_parse_document_end(parser, event);

        case YAML_PARSE_BLOCK_NODE_STATE:
            return yaml_parser_parse_node(parser, event, 1, 0);

        case YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:
            return yaml_parser_parse_node(parser, event, 1, 1);

        case YAML_PARSE_FLOW_NODE_STATE:
            return yaml_parser_parse_node(parser, event, 0, 0);

        case YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:
            return yaml_parser_parse_block_sequence_entry(parser, event, 1);

        case YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:
            return yaml_parser_parse_block_sequence_entry(parser, event, 0);

        case YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:
            return yaml_parser_parse_indentless_sequence_entry(parser, event);

        case YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:
            return yaml_parser_parse_block_mapping_key(parser, event, 1);

        case YAML_PARSE_BLOCK_MAPPING_KEY_STATE:
            return yaml_parser_parse_block_mapping_key(parser, event, 0);

        case YAML_PARSE_BLOCK_MAPPING_VALUE_STATE:
            return yaml_parser_parse_block_mapping_value(parser, event);

        case YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:
            return yaml_parser_parse_flow_sequence_entry(parser, event, 1);

        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE:
            return yaml_parser_parse_flow_sequence_entry(parser, event, 0);

        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:
            return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event);

        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:
            return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event);

        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:
            return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event);

        case YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:
            return yaml_parser_parse_flow_mapping_key(parser, event, 1);

        case YAML_PARSE_FLOW_MAPPING_KEY_STATE:
            return yaml_parser_parse_flow_mapping_key(parser, event, 0);

        case YAML_PARSE_FLOW_MAPPING_VALUE_STATE:
            return yaml_parser_parse_flow_mapping_value(parser, event, 0);

        case YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:
            return yaml_parser_parse_flow_mapping_value(parser, event, 1);

        default:
            assert(1);      /* Invalid state. */
    }

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x188(%rax), %eax
movq %rax, -0x20(%rbp)
subq $0x16, %rax
ja 0x18d29
movq -0x20(%rbp), %rax
leaq 0x13cb5(%rip), %rcx     # 0x2c7c8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x18d40
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x18ed0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x18ed0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x19560
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x19670
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x19870
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %ecx
movl %ecx, %edx
callq 0x19870
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x19870
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x1a7d0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x1a7d0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1acf0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x1afd0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x1afd0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1b500
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x1b790
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x1b790
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1bd60
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1bf50
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1c170
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x1c250
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x1c250
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x1c8e0
movl %eax, -0x4(%rbp)
jmp 0x18d32
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x1c8e0
movl %eax, -0x4(%rbp)
jmp 0x18d32
jmp 0x18d2b
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)