// File: /workspace/github_cpp_makefile_star2_O2/sighingnow[P]compile-pascal/pl0_parser.cpp
// Function: pl0_cond_stmt_fn(input_t*)
pair<int, pl0_ast_cond_stmt *> pl0_cond_stmt_fn(input_t *text) {
    auto parser = ((spaces >> pl0_string_literal("if") << spaces) >> pl0_condition)
        + ((spaces >> pl0_string_literal("then") << spaces) >> pl0_stmt)
        + ~((spaces >> pl0_string_literal("else") << spaces) >> pl0_stmt);
    auto res = (spaces >> parser << spaces)(text);
    if (verbose) {
        cout << "parsing: Condition Statement" << endl;
    }
    return make_pair(std::get<0>(res), new pl0_ast_cond_stmt(
        text->locate(),
        std::get<1>(res).first.first,
        std::get<1>(res).first.second,
        std::get<1>(res).second
    ));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x1858, %rsp           # imm = 0x1858
movq %rdi, %rbx
leaq 0x4bd19(%rip), %rsi     # 0x590f9
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xfa26
leaq 0x100(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x840a
leaq 0x7e2d0(%rip), %rsi     # 0x8b6d8
leaq 0x2a8(%rsp), %rdi
leaq 0x100(%rsp), %rdx
callq 0x1923c
leaq 0x7e2b4(%rip), %rdx     # 0x8b6d8
leaq 0x6e8(%rsp), %rdi
leaq 0x2a8(%rsp), %rsi
callq 0x191c8
leaq 0x7ee30(%rip), %rdx     # 0x8c270
leaq 0xac0(%rsp), %rdi
leaq 0x6e8(%rsp), %rsi
callq 0x1ba10
leaq 0x4bca0(%rip), %rsi     # 0x590fc
leaq 0x30(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xfa26
leaq 0xb8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x840a
leaq 0x7e254(%rip), %rsi     # 0x8b6d8
leaq 0x1f8(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x1923c
leaq 0x7e238(%rip), %rdx     # 0x8b6d8
leaq 0x5d0(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x191c8
leaq 0x7ea54(%rip), %rdx     # 0x8bf10
leaq 0x358(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
callq 0x1ba4a
leaq 0xf48(%rsp), %rdi
leaq 0xac0(%rsp), %rsi
leaq 0x358(%rsp), %rdx
callq 0x1b9d6
leaq 0x4bc0c(%rip), %rsi     # 0x59101
leaq 0x10(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0xfa26
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x840a
leaq 0x7e1be(%rip), %rsi     # 0x8b6d8
leaq 0x148(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1923c
leaq 0x7e1a5(%rip), %rdx     # 0x8b6d8
leaq 0x4b8(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x191c8
leaq 0x7e9c1(%rip), %rdx     # 0x8bf10
leaq 0x800(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
callq 0x1ba4a
leaq 0x960(%rsp), %rdi
leaq 0x800(%rsp), %rsi
callq 0x1b832
leaq 0x1438(%rsp), %rdi
leaq 0xf48(%rsp), %rsi
leaq 0x960(%rsp), %rdx
callq 0x1b77c
leaq 0x960(%rsp), %rdi
callq 0x1514e
leaq 0x800(%rsp), %rdi
callq 0x1514e
leaq 0x4b8(%rsp), %rdi
callq 0x12312
leaq 0x148(%rsp), %rdi
callq 0x1232c
leaq 0x70(%rsp), %rdi
callq 0x11074
leaq 0x10(%rsp), %rdi
callq 0x5120
leaq 0xf48(%rsp), %rdi
callq 0x15168
leaq 0x358(%rsp), %rdi
callq 0x1514e
leaq 0x5d0(%rsp), %rdi
callq 0x12312
leaq 0x1f8(%rsp), %rdi
callq 0x1232c
leaq 0xb8(%rsp), %rdi
callq 0x11074
leaq 0x30(%rsp), %rdi
callq 0x5120
leaq 0xac0(%rsp), %rdi
callq 0x15182
leaq 0x6e8(%rsp), %rdi
callq 0x12312
leaq 0x2a8(%rsp), %rdi
callq 0x1232c
leaq 0x100(%rsp), %rdi
callq 0x11074
leaq 0x50(%rsp), %rdi
callq 0x5120
leaq 0x7e06a(%rip), %rsi     # 0x8b6d8
leaq 0xac0(%rsp), %rdi
leaq 0x1438(%rsp), %rdx
callq 0x1bb6a
leaq 0x7e04e(%rip), %rdx     # 0x8b6d8
leaq 0xf48(%rsp), %rdi
leaq 0xac0(%rsp), %rsi
callq 0x1bab8
leaq 0x358(%rsp), %rdi
leaq 0xf48(%rsp), %rsi
movq %rbx, %rdx
callq 0x1519c
leaq 0xf48(%rsp), %rdi
callq 0x15354
leaq 0xac0(%rsp), %rdi
callq 0x1536e
pushq $0x30
popq %rdi
callq 0x5260
movq %rax, %r14
movq 0x8(%rbx), %rax
leaq 0x358(%rsp), %rdi
movq 0x30(%rdi), %rcx
movq %rax, 0x8(%r14)
movl $0x2, 0x10(%r14)
leaq 0x7cb31(%rip), %rax     # 0x8a230
movq %rax, (%r14)
movups 0x20(%rdi), %xmm0
movups %xmm0, 0x18(%r14)
movq %rcx, 0x28(%r14)
movl 0x38(%rdi), %ebx
callq 0x5120
leaq 0x1438(%rsp), %rdi
callq 0x15384
movl %ebx, %eax
movq %r14, %rdx
addq $0x1858, %rsp           # imm = 0x1858
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0x358(%rsp), %rdi
callq 0x5120
jmp 0xd76d
movq %rax, %rbx
leaq 0xf48(%rsp), %rdi
callq 0x15354
jmp 0xd75b
movq %rax, %rbx
leaq 0xac0(%rsp), %rdi
callq 0x1536e
jmp 0xd76d
movq %rax, %rbx
leaq 0x1438(%rsp), %rdi
callq 0x15384
jmp 0xd867
movq %rax, %rbx
leaq 0x960(%rsp), %rdi
callq 0x1514e
jmp 0xd794
movq %rax, %rbx
leaq 0x800(%rsp), %rdi
callq 0x1514e
jmp 0xd7a6
movq %rax, %rbx
leaq 0x4b8(%rsp), %rdi
callq 0x12312
jmp 0xd7b8
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x1232c
jmp 0xd7ca
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x11074
leaq 0x10(%rsp), %rdi
callq 0x5120
leaq 0xf48(%rsp), %rdi
callq 0x15168
leaq 0x358(%rsp), %rdi
callq 0x1514e
leaq 0x5d0(%rsp), %rdi
callq 0x12312
leaq 0x1f8(%rsp), %rdi
callq 0x1232c
leaq 0xb8(%rsp), %rdi
callq 0x11074
leaq 0x30(%rsp), %rdi
callq 0x5120
leaq 0xac0(%rsp), %rdi
callq 0x15182
leaq 0x6e8(%rsp), %rdi
callq 0x12312
leaq 0x2a8(%rsp), %rdi
callq 0x1232c
leaq 0x100(%rsp), %rdi
callq 0x11074
leaq 0x50(%rsp), %rdi
callq 0x5120
movq %rbx, %rdi
callq 0x53f0
movq %rax, %rbx
jmp 0xd7d4
movq %rax, %rbx
jmp 0xd7de
movq %rax, %rbx
jmp 0xd7eb
movq %rax, %rbx
jmp 0xd7f8
movq %rax, %rbx
jmp 0xd805
movq %rax, %rbx
jmp 0xd812
movq %rax, %rbx
jmp 0xd81f
movq %rax, %rbx
jmp 0xd829
movq %rax, %rbx
jmp 0xd836
movq %rax, %rbx
jmp 0xd843
movq %rax, %rbx
jmp 0xd850
movq %rax, %rbx
jmp 0xd85d
movq %rax, %rbx
jmp 0xd867