// File: /workspace/github_cpp_makefile_star2_O1/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 0x8519e(%rip), %rsi     # 0x970f9
leaq 0x85199(%rip), %rdx     # 0x970fb
leaq 0x48(%rsp), %rdi
callq 0x2670a
leaq 0xf8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0xa172
leaq 0xae72b(%rip), %rsi     # 0xc06b0
leaq 0x400(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x2c376
leaq 0xae70f(%rip), %rdx     # 0xc06b0
leaq 0x6e0(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x2c1d8
leaq 0xaf28b(%rip), %rdx     # 0xc1248
leaq 0xab8(%rsp), %rdi
leaq 0x6e0(%rsp), %rsi
callq 0x320fa
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x85119(%rip), %rsi     # 0x970fc
leaq 0x85116(%rip), %rdx     # 0x97100
leaq 0x28(%rsp), %rdi
callq 0x2670a
leaq 0xb0(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xa172
leaq 0xae6a3(%rip), %rsi     # 0xc06b0
leaq 0x350(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
callq 0x2c376
leaq 0xae687(%rip), %rdx     # 0xc06b0
leaq 0x5c8(%rsp), %rdi
leaq 0x350(%rsp), %rsi
callq 0x2c1d8
leaq 0xaeea3(%rip), %rdx     # 0xc0ee8
leaq 0x140(%rsp), %rdi
leaq 0x5c8(%rsp), %rsi
callq 0x32228
leaq 0x1360(%rsp), %rdi
leaq 0xab8(%rsp), %rsi
leaq 0x140(%rsp), %rdx
callq 0x320c0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x8507a(%rip), %rsi     # 0x97101
leaq 0x85077(%rip), %rdx     # 0x97105
leaq 0x8(%rsp), %rdi
callq 0x2670a
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xa172
leaq 0xae602(%rip), %rsi     # 0xc06b0
leaq 0x2a0(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x2c376
leaq 0xae5e9(%rip), %rdx     # 0xc06b0
leaq 0x4b0(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x2c1d8
leaq 0xaee05(%rip), %rdx     # 0xc0ee8
leaq 0x7f8(%rsp), %rdi
leaq 0x4b0(%rsp), %rsi
callq 0x32228
leaq 0x958(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x31ec0
leaq 0xf40(%rsp), %rdi
leaq 0x1360(%rsp), %rsi
leaq 0x958(%rsp), %rdx
callq 0x31d30
leaq 0xa70(%rsp), %r14
movq %r14, %rdi
callq 0x32356
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12155
leaq 0xa50(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0xa08(%rsp), %rdi
callq 0x161e0
leaq 0x9c0(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x1218d
leaq 0x9a0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x958(%rsp), %rdi
callq 0x161e0
leaq 0x910(%rsp), %r14
movq %r14, %rdi
callq 0x32356
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x121c5
leaq 0x8f0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x8a8(%rsp), %rdi
callq 0x161e0
leaq 0x860(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x121fd
leaq 0x840(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x7f8(%rsp), %rdi
callq 0x161e0
movq 0x5b8(%rsp), %rax
testq %rax, %rax
je 0x12229
leaq 0x5a8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x560(%rsp), %rdi
callq 0x161e0
leaq 0x518(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12261
leaq 0x4f8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x4b0(%rsp), %rdi
callq 0x161e0
leaq 0x308(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12299
leaq 0x2e8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x2a0(%rsp), %rdi
callq 0x161e0
leaq 0x68(%rsp), %rdi
callq 0x191e0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x122c7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x1360(%rsp), %rdi
callq 0x2294e
leaq 0x258(%rsp), %r14
movq %r14, %rdi
callq 0x32356
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x122ff
leaq 0x238(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x1f0(%rsp), %rdi
callq 0x161e0
leaq 0x1a8(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12337
leaq 0x188(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x140(%rsp), %rdi
callq 0x161e0
movq 0x6d0(%rsp), %rax
testq %rax, %rax
je 0x12363
leaq 0x6c0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x678(%rsp), %rdi
callq 0x161e0
leaq 0x630(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x1239b
leaq 0x610(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x5c8(%rsp), %rdi
callq 0x161e0
leaq 0x3b8(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x123d3
leaq 0x398(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x350(%rsp), %rdi
callq 0x161e0
leaq 0xb0(%rsp), %rdi
callq 0x191e0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x12404
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xbd0(%rsp), %r14
movq %r14, %rdi
callq 0x32394
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x1242f
leaq 0xbb0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0xb68(%rsp), %rdi
callq 0x161e0
leaq 0xb20(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12467
leaq 0xb00(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0xab8(%rsp), %rdi
callq 0x161e0
movq 0x7e8(%rsp), %rax
testq %rax, %rax
je 0x12493
leaq 0x7d8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x790(%rsp), %rdi
callq 0x161e0
leaq 0x748(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x124cb
leaq 0x728(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x6e0(%rsp), %rdi
callq 0x161e0
leaq 0x468(%rsp), %r14
movq %r14, %rdi
callq 0x191e0
movq -0x10(%r14), %rax
testq %rax, %rax
je 0x12503
leaq 0x448(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x400(%rsp), %rdi
callq 0x161e0
leaq 0xf8(%rsp), %rdi
callq 0x191e0
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x12534
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xae175(%rip), %rsi     # 0xc06b0
leaq 0xab8(%rsp), %rdi
leaq 0xf40(%rsp), %rdx
callq 0x32568
leaq 0xae159(%rip), %rdx     # 0xc06b0
leaq 0x1360(%rsp), %rdi
leaq 0xab8(%rsp), %rsi
callq 0x323d2
leaq 0x140(%rsp), %rdi
leaq 0x1360(%rsp), %rsi
movq %rbx, %rdx
callq 0x22a94
movq 0x1840(%rsp), %rax
testq %rax, %rax
je 0x125a3
leaq 0x1830(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x17e8(%rsp), %rdi
callq 0x161e0
leaq 0x1360(%rsp), %rdi
callq 0x22f38
leaq 0xab8(%rsp), %rdi
callq 0x22f38
movl $0x30, %edi
callq 0x5250
movq %rax, %r14
movq 0x8(%rbx), %rax
leaq 0x150(%rsp), %rcx
movups 0x10(%rcx), %xmm0
movq 0x20(%rcx), %rdx
movq %rax, 0x8(%r14)
movl $0x2, 0x10(%r14)
leaq 0xacc32(%rip), %rax     # 0xbf230
movq %rax, (%r14)
movups %xmm0, 0x18(%r14)
movq %rdx, 0x28(%r14)
movl 0x28(%rcx), %ebx
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x12626
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0x1318(%rsp), %r15
movq %r15, %rdi
callq 0x32356
movq -0x10(%r15), %rax
testq %rax, %rax
je 0x12651
leaq 0x12f8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x12b0(%rsp), %rdi
callq 0x161e0
leaq 0x1268(%rsp), %r15
movq %r15, %rdi
callq 0x191e0
movq -0x10(%r15), %rax
testq %rax, %rax
je 0x12689
leaq 0x1248(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x1200(%rsp), %rdi
callq 0x161e0
leaq 0xf40(%rsp), %rdi
callq 0x2294e
movl %ebx, %eax
movq %r14, %rdx
addq $0x1850, %rsp           # imm = 0x1850
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
jmp 0x126df
movq %rax, %rdi
callq 0x266fe
movq %rax, %rbx
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12734
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x12734
movq %rax, %rbx
leaq 0x1360(%rsp), %rdi
callq 0x22efa
jmp 0x12722
movq %rax, %rbx
leaq 0xab8(%rsp), %rdi
callq 0x22f38
jmp 0x12734
movq %rax, %rbx
leaq 0xf40(%rsp), %rdi
callq 0x22fe8
jmp 0x1285f
movq %rax, %rbx
leaq 0x958(%rsp), %rdi
callq 0x22876
jmp 0x1275b
movq %rax, %rbx
leaq 0x7f8(%rsp), %rdi
callq 0x228e2
jmp 0x1276d
movq %rax, %rbx
leaq 0x4b0(%rsp), %rdi
callq 0x1bfb2
jmp 0x1277f
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
callq 0x1c012
jmp 0x12791
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x191e0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x127bc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5260
jmp 0x127bc
movq %rax, %rbx
jmp 0x1279b
movq %rax, %rbx
leaq 0x1360(%rsp), %rdi
callq 0x2294e
leaq 0x140(%rsp), %rdi
callq 0x228e2
leaq 0x5c8(%rsp), %rdi
callq 0x1bfb2
leaq 0x350(%rsp), %rdi
callq 0x1c012
leaq 0xb0(%rsp), %rdi
callq 0x191e0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x12814
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5260
leaq 0xab8(%rsp), %rdi
callq 0x22a28
leaq 0x6e0(%rsp), %rdi
callq 0x1bfb2
leaq 0x400(%rsp), %rdi
callq 0x1c012
leaq 0xf8(%rsp), %rdi
callq 0x191e0
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x1285f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5260
movq %rbx, %rdi
callq 0x53d0
movq %rax, %rbx
jmp 0x127c9
movq %rax, %rbx
jmp 0x127d6
movq %rax, %rbx
jmp 0x127e3
movq %rax, %rbx
jmp 0x127f0
movq %rax, %rbx
jmp 0x127fd
movq %rax, %rbx
jmp 0x12814
movq %rax, %rbx
jmp 0x12821
movq %rax, %rbx
jmp 0x1282e
movq %rax, %rbx
jmp 0x1283b
movq %rax, %rbx
jmp 0x12848
movq %rax, %rbx
jmp 0x1285f