// File: /workspace/github_cpp_makefile_star2_O3/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1850, %rsp           # imm = 0x1850
movq %rdi, %rbx
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x7f149(%rip), %rsi     # 0x910f9
leaq 0x7f144(%rip), %rdx     # 0x910fb
leaq 0x48(%rsp), %rdi
callq 0x253d0
leaq 0xf8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0xa299
leaq 0xa86d6(%rip), %rsi     # 0xba6b0
leaq 0x400(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x2afb2
leaq 0xa86ba(%rip), %rdx     # 0xba6b0
leaq 0x6e0(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x2ae14
leaq 0xa9236(%rip), %rdx     # 0xbb248
leaq 0xab8(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
callq 0x30cbc
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x7f0c4(%rip), %rsi     # 0x910fc
leaq 0x7f0c1(%rip), %rdx     # 0x91100
leaq 0x28(%rsp), %rdi
callq 0x253d0
leaq 0xb0(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xa299
leaq 0xa864e(%rip), %rsi     # 0xba6b0
leaq 0x350(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
callq 0x2afb2
leaq 0xa8632(%rip), %rdx     # 0xba6b0
leaq 0x5c8(%rsp), %rdi
leaq 0x350(%rsp), %rsi
callq 0x2ae14
leaq 0xa8e4e(%rip), %rdx     # 0xbaee8
leaq 0x140(%rsp), %rdi
leaq 0x5c8(%rsp), %rsi
callq 0x30dea
leaq 0x1360(%rsp), %rdi
leaq 0xab8(%rsp), %rsi
leaq 0x140(%rsp), %rdx
callq 0x30c82
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x7f025(%rip), %rsi     # 0x91101
leaq 0x7f022(%rip), %rdx     # 0x91105
leaq 0x8(%rsp), %rdi
callq 0x253d0
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xa299
leaq 0xa85ad(%rip), %rsi     # 0xba6b0
leaq 0x2a0(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x2afb2
leaq 0xa8594(%rip), %rdx     # 0xba6b0
leaq 0x4b0(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x2ae14
leaq 0xa8db0(%rip), %rdx     # 0xbaee8
leaq 0x7f8(%rsp), %rdi
leaq 0x4b0(%rsp), %rsi
callq 0x30dea
leaq 0x958(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x30a92
leaq 0xf40(%rsp), %rdi
leaq 0x1360(%rsp), %rsi
leaq 0x958(%rsp), %rdx
callq 0x30902
leaq 0xa70(%rsp), %r14
movq %r14, %rdi
callq 0x30f18
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x121aa
leaq 0xa50(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0xa08(%rsp), %rdi
callq 0x161f6
leaq 0x9c0(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x121e2
leaq 0x9a0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x958(%rsp), %rdi
callq 0x161f6
leaq 0x910(%rsp), %r14
movq %r14, %rdi
callq 0x30f18
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x1221a
leaq 0x8f0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x8a8(%rsp), %rdi
callq 0x161f6
leaq 0x860(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12252
leaq 0x840(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x7f8(%rsp), %rdi
callq 0x161f6
movq 0x5b8(%rsp), %rax
testq %rax, %rax
je 0x1227e
leaq 0x5a8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x560(%rsp), %rdi
callq 0x161f6
leaq 0x518(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x122b6
leaq 0x4f8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x4b0(%rsp), %rdi
callq 0x161f6
leaq 0x308(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x122ee
leaq 0x2e8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x2a0(%rsp), %rdi
callq 0x161f6
leaq 0x68(%rsp), %rdi
callq 0x18eaa
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1231c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x1360(%rsp), %rdi
callq 0x21a30
leaq 0x258(%rsp), %r14
movq %r14, %rdi
callq 0x30f18
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12354
leaq 0x238(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x1f0(%rsp), %rdi
callq 0x161f6
leaq 0x1a8(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x1238c
leaq 0x188(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x140(%rsp), %rdi
callq 0x161f6
movq 0x6d0(%rsp), %rax
testq %rax, %rax
je 0x123b8
leaq 0x6c0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x678(%rsp), %rdi
callq 0x161f6
leaq 0x630(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x123f0
leaq 0x610(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x5c8(%rsp), %rdi
callq 0x161f6
leaq 0x3b8(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12428
leaq 0x398(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x350(%rsp), %rdi
callq 0x161f6
leaq 0xb0(%rsp), %rdi
callq 0x18eaa
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x12459
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xbd0(%rsp), %r14
movq %r14, %rdi
callq 0x30f56
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12484
leaq 0xbb0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0xb68(%rsp), %rdi
callq 0x161f6
leaq 0xb20(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x124bc
leaq 0xb00(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0xab8(%rsp), %rdi
callq 0x161f6
movq 0x7e8(%rsp), %rax
testq %rax, %rax
je 0x124e8
leaq 0x7d8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x790(%rsp), %rdi
callq 0x161f6
leaq 0x748(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12520
leaq 0x728(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x6e0(%rsp), %rdi
callq 0x161f6
leaq 0x468(%rsp), %r14
movq %r14, %rdi
callq 0x18eaa
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12558
leaq 0x448(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x400(%rsp), %rdi
callq 0x161f6
leaq 0xf8(%rsp), %rdi
callq 0x18eaa
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x12589
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xa8120(%rip), %rsi     # 0xba6b0
leaq 0xab8(%rsp), %rdi
leaq 0xf40(%rsp), %rdx
callq 0x3112a
leaq 0xa8104(%rip), %rdx     # 0xba6b0
leaq 0x1360(%rsp), %rdi
leaq 0xab8(%rsp), %rsi
callq 0x30f94
leaq 0x140(%rsp), %rdi
leaq 0x1360(%rsp), %rsi
movq %rbx, %rdx
callq 0x21b76
movq 0x1840(%rsp), %rax
testq %rax, %rax
je 0x125f8
leaq 0x1830(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x17e8(%rsp), %rdi
callq 0x161f6
leaq 0x1360(%rsp), %rdi
callq 0x21f28
leaq 0xab8(%rsp), %rdi
callq 0x21f28
movl $0x30, %edi
callq 0x5250
movq %rax, %r14
movq 0x8(%rbx), %rax
leaq 0x150(%rsp), %rcx
movq 0x20(%rcx), %rdx
movq %rax, 0x8(%r14)
movl $0x2, 0x10(%r14)
leaq 0xa6be1(%rip), %rax     # 0xb9230
movq %rax, (%r14)
movups 0x10(%rcx), %xmm0
movups %xmm0, 0x18(%r14)
movq %rdx, 0x28(%r14)
movl 0x28(%rcx), %ebx
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x1267b
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x1318(%rsp), %r15
movq %r15, %rdi
callq 0x30f18
movq -0x10(%r15), %rax
testq %rax, %rax
je 0x126a6
leaq 0x12f8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x12b0(%rsp), %rdi
callq 0x161f6
leaq 0x1268(%rsp), %r15
movq %r15, %rdi
callq 0x18eaa
movq -0x10(%r15), %rax
testq %rax, %rax
je 0x126de
leaq 0x1248(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x1200(%rsp), %rdi
callq 0x161f6
leaq 0xf40(%rsp), %rdi
callq 0x21a30
movl %ebx, %eax
movq %r14, %rdx
addq $0x1850, %rsp           # imm = 0x1850
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
jmp 0x12734
movq %rax, %rdi
callq 0x253c4
movq %rax, %rbx
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12789
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x12789
movq %rax, %rbx
leaq 0x1360(%rsp), %rdi
callq 0x21eea
jmp 0x12777
movq %rax, %rbx
leaq 0xab8(%rsp), %rdi
callq 0x21f28
jmp 0x12789
movq %rax, %rbx
leaq 0xf40(%rsp), %rdi
callq 0x21fd8
jmp 0x128b4
movq %rax, %rbx
leaq 0x958(%rsp), %rdi
callq 0x21958
jmp 0x127b0
movq %rax, %rbx
leaq 0x7f8(%rsp), %rdi
callq 0x219c4
jmp 0x127c2
movq %rax, %rbx
leaq 0x4b0(%rsp), %rdi
callq 0x1b9bc
jmp 0x127d4
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
callq 0x1ba1c
jmp 0x127e6
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x18eaa
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x12811
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x12811
movq %rax, %rbx
jmp 0x127f0
movq %rax, %rbx
leaq 0x1360(%rsp), %rdi
callq 0x21a30
leaq 0x140(%rsp), %rdi
callq 0x219c4
leaq 0x5c8(%rsp), %rdi
callq 0x1b9bc
leaq 0x350(%rsp), %rdi
callq 0x1ba1c
leaq 0xb0(%rsp), %rdi
callq 0x18eaa
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x12869
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xab8(%rsp), %rdi
callq 0x21b0a
leaq 0x6e0(%rsp), %rdi
callq 0x1b9bc
leaq 0x400(%rsp), %rdi
callq 0x1ba1c
leaq 0xf8(%rsp), %rdi
callq 0x18eaa
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x128b4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rbx, %rdi
callq 0x53d0
movq %rax, %rbx
jmp 0x1281e
movq %rax, %rbx
jmp 0x1282b
movq %rax, %rbx
jmp 0x12838
movq %rax, %rbx
jmp 0x12845
movq %rax, %rbx
jmp 0x12852
movq %rax, %rbx
jmp 0x12869
movq %rax, %rbx
jmp 0x12876
movq %rax, %rbx
jmp 0x12883
movq %rax, %rbx
jmp 0x12890
movq %rax, %rbx
jmp 0x1289d
movq %rax, %rbx
jmp 0x128b4