// File: ushitora-anqou[P]femtoyaml/./femtoyaml.hpp
// Function: femtoyaml::detail::parser::parse_block_collection()
value parse_block_collection()
    {
        if (pop_if<tk_block_sequence_start>()) {
            // block_sequnce
            std::vector<value> src;
            while (pop_if<tk_block_entry>())
                src.push_back(parse_block_content());
            expect<tk_block_end>();
            return value(src);
        }

        if (pop_if<tk_block_mapping_start>()) {
            // block_mapping
            std::unordered_map<std::string, value> src;
            while (pop_if<tk_key>()) {
                auto key = expect<tk_scalar_plain>().str;
                expect<tk_value>();
                if (match<tk_block_entry>()) {
                    std::vector<value> lst;
                    while (pop_if<tk_block_entry>())
                        lst.push_back(parse_block_content());
                    src.emplace(key, lst);
                }
                else {
                    auto val = parse_block_content();
                    src.emplace(key, val);
                }
            }
            expect<tk_block_end>();
            return value(src);
        }

        throw unexpected_token();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rdi, -0x1b0(%rbp)
movq %rdi, %rax
movq %rax, -0x1a8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x10470
movw %ax, -0x12(%rbp)
leaq -0x12(%rbp), %rdi
callq 0x104d0
testb $0x1, %al
jne 0xf24a
jmp 0xf30f
leaq -0x30(%rbp), %rdi
callq 0x104f0
movq -0x1a0(%rbp), %rdi
callq 0x10510
movw %ax, -0x1b2(%rbp)
jmp 0xf268
movw -0x1b2(%rbp), %ax
movw %ax, -0x32(%rbp)
leaq -0x32(%rbp), %rdi
callq 0x10570
testb $0x1, %al
jne 0xf282
jmp 0xf2d3
movq -0x1a0(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0xf020
jmp 0xf294
leaq -0x30(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x10590
jmp 0xf2a3
leaq -0x70(%rbp), %rdi
callq 0x4a10
jmp 0xf253
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xf301
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4a10
jmp 0xf301
movq -0x1a0(%rbp), %rdi
callq 0x105c0
jmp 0xf2e1
movq -0x1b0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10640
jmp 0xf2f3
leaq -0x30(%rbp), %rdi
callq 0x10690
jmp 0xf645
leaq -0x30(%rbp), %rdi
callq 0x10690
jmp 0xf655
movq -0x1a0(%rbp), %rdi
callq 0x106f0
movw %ax, -0x73(%rbp)
leaq -0x73(%rbp), %rdi
callq 0x10750
testb $0x1, %al
jne 0xf331
jmp 0xf5ff
leaq -0xb0(%rbp), %rdi
callq 0x10770
movq -0x1a0(%rbp), %rdi
callq 0x10790
movw %ax, -0x1b4(%rbp)
jmp 0xf352
movw -0x1b4(%rbp), %ax
movw %ax, -0xb2(%rbp)
leaq -0xb2(%rbp), %rdi
callq 0x107f0
testb $0x1, %al
jne 0xf375
jmp 0xf5c0
movq -0x1a0(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x10810
jmp 0xf38a
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
movq %rsi, -0x1c0(%rbp)
callq 0x3110
movq -0x1c0(%rbp), %rdi
callq 0x86e0
movq -0x1a0(%rbp), %rdi
callq 0x108f0
jmp 0xf3be
movq -0x1a0(%rbp), %rdi
callq 0x10970
movw %ax, -0x1c2(%rbp)
jmp 0xf3d3
movw -0x1c2(%rbp), %ax
movw %ax, -0xfb(%rbp)
leaq -0xfb(%rbp), %rdi
callq 0x10570
testb $0x1, %al
jne 0xf3f6
jmp 0xf521
leaq -0x118(%rbp), %rdi
callq 0x104f0
movq -0x1a0(%rbp), %rdi
callq 0x10510
movw %ax, -0x1c4(%rbp)
jmp 0xf417
movw -0x1c4(%rbp), %ax
movw %ax, -0x11a(%rbp)
leaq -0x11a(%rbp), %rdi
callq 0x10570
testb $0x1, %al
jne 0xf43a
jmp 0xf4bc
movq -0x1a0(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xf020
jmp 0xf44f
leaq -0x118(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x10590
jmp 0xf464
leaq -0x148(%rbp), %rdi
callq 0x4a10
jmp 0xf402
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xf5f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xf5b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xf510
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x4a10
jmp 0xf510
leaq -0xb0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0x109c0
movb %dl, -0x1d1(%rbp)
movq %rax, -0x1d0(%rbp)
jmp 0xf4e5
movb -0x1d1(%rbp), %al
movq -0x1d0(%rbp), %rcx
movq %rcx, -0x158(%rbp)
movb %al, -0x150(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x10690
jmp 0xf5a1
leaq -0x118(%rbp), %rdi
callq 0x10690
jmp 0xf5b2
movq -0x1a0(%rbp), %rsi
leaq -0x180(%rbp), %rdi
callq 0xf020
jmp 0xf536
leaq -0xb0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x180(%rbp), %rdx
callq 0x10a10
movb %dl, -0x1e1(%rbp)
movq %rax, -0x1e0(%rbp)
jmp 0xf55f
movb -0x1e1(%rbp), %al
movq -0x1e0(%rbp), %rcx
movq %rcx, -0x190(%rbp)
movb %al, -0x188(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x4a10
jmp 0xf5a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x4a10
jmp 0xf5b2
leaq -0xd8(%rbp), %rdi
callq 0x3120
jmp 0xf33d
leaq -0xd8(%rbp), %rdi
callq 0x3120
jmp 0xf5f1
movq -0x1a0(%rbp), %rdi
callq 0x105c0
jmp 0xf5ce
movq -0x1b0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x10a60
jmp 0xf5e3
leaq -0xb0(%rbp), %rdi
callq 0x10ab0
jmp 0xf645
leaq -0xb0(%rbp), %rdi
callq 0x10ab0
jmp 0xf655
movl $0x28, %edi
callq 0x30d0
movq %rax, %rdi
movq %rdi, -0x1f0(%rbp)
xorl %esi, %esi
movl $0x28, %edx
callq 0x30f0
movq -0x1f0(%rbp), %rdi
callq 0x10ad0
movq -0x1f0(%rbp), %rdi
leaq 0x1c5df(%rip), %rsi     # 0x2bc18
leaq 0x14b0(%rip), %rdx      # 0x10af0
callq 0x3360
movq -0x1a8(%rbp), %rax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x3390
nop