// File: besm6[P]pascal-re/pascompl.cc
// Function: Statement::Statement()
Statement::Statement()
{
    NumLabel * &l2var16z = programme::super.back()->l2var16z;
    StrLabel * &strLabList = programme::super.back()->strLabList;

    super.push_back(this);
    setup(boundary);
    bool110z = false;
    startLine = lineCnt;
    if (set147z.val == halfWord)
        ParseData();
    else {
        if (SY == INTCONST) {
            set146z = Bits();
            l3var2z = numLabList;
            disableNorm();
            l3bool5z = true;
            padToLeft();
            while (l3var2z != l2var16z) {
                if (l3var2z->id != curToken) {
                    l3var2z = l3var2z->next;
                } else {
                    l3bool5z = false;
                    if (l3var2z->defined) {
                        curVal.i = l3var2z->line;
                        error(17); /* errLblAlreadyDefinedInLine */;
                    } else {
                        l3var2z->line = lineCnt;
                        l3var2z->defined = true;
                        padToLeft();
                        if (l3var2z->offset == 0) {
                            /* empty */
                        } else if (l3var2z->offset >= 074000) {
                            curVal.i = (moduleOffset - 040000);
                            symTab[l3var2z->offset] = 041000000 | (curVal.ii & 077777);
                        } else {
                            P0715(0, l3var2z->offset);
                        } /* 20342 */
                        l3var2z->offset = moduleOffset;
                    }
                    l3var2z = l2var16z;
                }
            } /* while 20346 */
            if (l3bool5z)
                error(16); /* errLblNotDefinedInBlock */;
            inSymbol();
            checkSymAndRead(COLON);
        } /* 20355*/
        if (optSflags.m.has(DebugInteractive) and
            debugLine != lineCnt) {
            P0715(-1, 96 /* "P/DD" */);
            debugLine = lineCnt;
            arithMode = 1;
        }
        l3var4z.ii = Bits(BEGINSY,CASESY,REPEATSY,SELECTSY).has(SY);
        if (l3var4z.ii)
            lineNesting = lineNesting + 1;
/*(ident)*/
        if (SY == IDENT) {
            if (hashTravPtr != NULL) try {
                l3var6z = hashTravPtr->cl;
                if (l3var6z >= VARID) {
                    assignStatement(true);
                } else {
                    if (l3var6z == ROUTINEID) {
                        if (hashTravPtr->typ == NULL) {
                            l3idr12z = hashTravPtr;
                            inSymbol();
                            if (l3idr12z->offset == 0) {
                                standProc();
                                goto exit_ident;
                            }
                            parseCallArgs(l3idr12z);
                        } else {
                            assignStatement(false);
                        }
                    } else {
                        error(32); /* errWrongStartOfOperator */
                        goto L8888;
                    }
                }
                (void) formOperator(APPLYEXPR);
                } catch (int foo) {
                    if (foo != 8888) throw;
                }
            else {
                error(errNotDefined);
L8888:
                skip(skipToSet + statEndSys);
            }
        } else if (SY == LPAREN) {
            set146z = Bits();
            inSymbol();
            if (SY != IDENT) {
                error(errNoIdent);
                goto L8888;
            }
            l3var3z = new StrLabel;
            padToLeft();
            disableNorm();
            l3var3z->next = strLabList;
            l3var3z->ident = curIdent;
            l3var3z->offset = moduleOffset;
            l3var3z->exitTarget = 0;
            strLabList = l3var3z;
            inSymbol();
            checkSymAndRead(RPAREN);
            Statement();
            P0715(0, l3var3z->exitTarget);
            strLabList = strLabList->next;
        } else if (SY == BEGINSY) {
          rep:
            inSymbol();
          skip:
            {
                compoundStatement();
                if (SY != ENDSY) {
                    stmtName = " BEGIN";
                    requiredSymErr(SEMICOLON);
                    reportStmtType(startLine);
                    skip(bigSkipSet);
                    if (statBegSys.has(SY))
                        goto skip;
                    if (SY != SEMICOLON)
                        goto exit_rep;
                    goto rep;
                }
            }
            inSymbol();
          exit_rep:;
        } else if (SY == GOTOSY) {
            inSymbol();
            if (SY != INTCONST) {
                if (structBranch(true)) {
                    inSymbol();
                    return;
                } else
                    goto L8888;
            }
            disableNorm();
            l3var2z = numLabList;
          loop:
            if (l3var2z != NULL) {
                if (l3var2z->id != curToken) {
                    l3var2z = l3var2z->next;
                } else {
                    if (curFrameRegTemplate == l3var2z->frame) {
                        if (l3var2z->offset >= 040000) {
                            form1Insn(InsnTemp[UJ] + l3var2z->offset);
                        } else {
                            formJump(l3var2z->offset);
                        }
                    } else {
                        if (l3var2z->offset == 0) {
                            l3var2z->offset = symTabPos;
                            putToSymTab(0);
                        }
                        form3Insn(l3var2z->frame + (KMTJ + 13), KVTM+I14 + l3var2z->offset,
                                  getHelperProc(18/*"P/RC"*/) + (-064100000));
                    }
                    goto exit_loop;
                }
                goto loop;
            } else
                error(18); /* errLblNotDefined */
          exit_loop:;
            inSymbol();
        } else if (SY == IFSY) {
            ifWhileStatement(THENSY);
            if (SY == ELSESY) {
                l3var11z = 0;
                formJump(l3var11z);
                P0715(0, l3var10z);
                l3var8z.i = arithMode;
                arithMode = 1;
                inSymbol();
                Statement();
                P0715(0, l3var11z);
                if (l3var8z.i != arithMode) {
                    arithMode = 2;
                    disableNorm();
                }
            } else {
                P0715(0, l3var10z);
            }
        } else if (SY == WHILESY) {
            set146z = Bits();
            disableNorm();
            padToLeft();
            l3var8z.i = moduleOffset;
            ifWhileStatement(DOSY);
            disableNorm();
            form1Insn(InsnTemp[UJ] + l3var8z.i);
            P0715(0, l3var10z);
            arithMode = 1;
        } else if (SY == REPEATSY) {
            set146z = Bits();
            disableNorm();
            padToLeft();
            l3var7z.i = moduleOffset;
            do {
                inSymbol();
                Statement();
            } while (SY == SEMICOLON);
            if (SY != UNTILSY) {
                requiredSymErr(UNTILSY);
                stmtName = "REPEAT";
                reportStmtType(startLine);
                goto L8888;
            }
            disableNorm();
            expression();
            if (curExpr->typ != BooleanType) {
                error(errBooleanNeeded);
            } else {
                jumpTarget = l3var7z.i;
                (void) formOperator(CONDJUMP);
            }
        } else if (SY == FORSY) {
            set146z = Bits();
            forStatement();
        } else if (SY == SELECTSY) {
            disableNorm();
            l3bool5z = true;
            l3var11z = 0;
            /* 20707 */
            do {
                arithMode = 1;
                expression();
                if (curExpr->typ != BooleanType) {
                    error(errBooleanNeeded);
                } else {
                    jumpTarget = 0;
                    (void) formOperator(CONDJUMP);
                    l3var10z = jumpTarget;
                }
                checkSymAndRead(COLON);
                Statement();
                formJump(l3var11z);
                l3bool5z = l3bool5z and (arithMode == 1);
                P0715(0, l3var10z);
            } while (SY == SEMICOLON);
            checkSymAndRead(ENDSY);
            P0715(0, l3var11z);
            if (not l3bool5z) {
                arithMode = 2;
                disableNorm();
            }
        } else if (SY == CASESY) {
            caseStatement();
        } else if (SY == WITHSY) {
            withStatement();
        } exit_ident:; /* 20757 */
        if (l3var4z.ii)
            lineNesting = lineNesting - 1;
        rollup(boundary);
        if (bool110z) {
            bool110z = false;
            goto L8888;
        }
    }
    /* 20766 */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x13f0, %rsp           # imm = 0x13F0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x13d0(%rbp)
leaq 0xc161f(%rip), %rdi     # 0xd8a30
callq 0x1e890
movq (%rax), %rax
addq $0x70, %rax
movq %rax, -0x10(%rbp)
leaq 0xc1608(%rip), %rdi     # 0xd8a30
callq 0x1e890
movq %rax, %rcx
movq -0x13d0(%rbp), %rax
movq (%rcx), %rcx
addq $0x78, %rcx
movq %rcx, -0x18(%rbp)
movq %rax, -0x20(%rbp)
leaq 0xc1693(%rip), %rdi     # 0xd8ae0
leaq -0x20(%rbp), %rsi
callq 0x22ad0
movq -0x13d0(%rbp), %rdi
callq 0x22b00
movq -0x13d0(%rbp), %rax
movb $0x0, 0x68bcd(%rip)     # 0x8003d
movq 0x68af9(%rip), %rcx     # 0x7ff70
movq %rcx, 0x38(%rax)
movabsq $0xffffffffffff, %rax   # imm = 0xFFFFFFFFFFFF
andq 0x68c94(%rip), %rax     # 0x80120
cmpq $0xffffff, %rax         # imm = 0xFFFFFF
jne 0x174ab
leaq -0x80(%rbp), %rdi
callq 0x22b30
leaq -0x80(%rbp), %rdi
callq 0x22fb0
jmp 0x18109
cmpl $0x1, 0x68a2a(%rip)     # 0x7fedc
jne 0x17693
callq 0x48c0
movq %rax, %rcx
movq -0x13d0(%rbp), %rax
movq %rcx, -0x88(%rbp)
movq -0x88(%rbp), %rcx
movq %rcx, 0x68c3c(%rip)     # 0x80118
movq 0x68bf5(%rip), %rcx     # 0x800d8
movq %rcx, 0x8(%rax)
callq 0x7e00
movq -0x13d0(%rbp), %rax
movb $0x1, 0x20(%rax)
callq 0x7ef0
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq (%rcx), %rax
je 0x17666
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x68bc2(%rip), %rsi     # 0x800e8
callq 0x22fd0
testb $0x1, %al
jne 0x17531
jmp 0x17549
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x17661
movq -0x13d0(%rbp), %rax
movb $0x0, 0x20(%rax)
movq 0x8(%rax), %rax
testb $0x1, 0x28(%rax)
je 0x17588
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
leaq 0x68b7c(%rip), %rdi     # 0x800f0
callq 0x4ad0
movl $0x11, %edi
callq 0x7b40
jmp 0x1764f
movq -0x13d0(%rbp), %rax
movq 0x689da(%rip), %rdx     # 0x7ff70
movq 0x8(%rax), %rcx
movq %rdx, 0x8(%rcx)
movq 0x8(%rax), %rax
movb $0x1, 0x28(%rax)
callq 0x7ef0
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x18(%rax)
jne 0x175bf
jmp 0x17639
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x7800, 0x18(%rax)     # imm = 0x7800
jl 0x1761f
movq 0x6896d(%rip), %rsi     # 0x7ff48
subq $0x4000, %rsi           # imm = 0x4000
leaq 0x68b07(%rip), %rdi     # 0x800f0
callq 0x4ad0
movq -0x13d0(%rbp), %rax
movq 0x68af4(%rip), %rdx     # 0x800f0
andq $0x7fff, %rdx           # imm = 0x7FFF
orq $0x840000, %rdx         # imm = 0x840000
movq 0x8(%rax), %rax
movq 0x18(%rax), %rcx
leaq 0x6ed97(%rip), %rax     # 0x863b0
movq %rdx, (%rax,%rcx,8)
jmp 0x17637
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
jmp 0x17639
movq -0x13d0(%rbp), %rax
movq 0x68901(%rip), %rcx     # 0x7ff48
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x13d0(%rbp), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x174fc
movq -0x13d0(%rbp), %rax
testb $0x1, 0x20(%rax)
je 0x1767d
movl $0x10, %edi
callq 0x7b40
leaq -0x1f8(%rbp), %rdi
callq 0x9790
movl $0x12, %edi
callq 0xb110
leaq 0x68a96(%rip), %rdi     # 0x80130
movl $0x2c, %esi
callq 0x1e5f0
testb $0x1, %al
jne 0x176aa
jmp 0x176e4
movq 0x6892f(%rip), %rax     # 0x7ffe0
cmpq 0x688b8(%rip), %rax     # 0x7ff70
je 0x176e4
movq $-0x1, %rdi
movl $0x60, %esi
callq 0x8910
movq 0x6889e(%rip), %rax     # 0x7ff70
movq %rax, 0x68907(%rip)     # 0x7ffe0
movq $0x1, 0x688b4(%rip) # 0x7ff98
movl $0x1f, %edi
movl $0x21, %esi
movl $0x22, %edx
movl $0x2f, %ecx
callq 0x4a00
movq %rax, -0x200(%rbp)
movl 0x687d2(%rip), %eax     # 0x7fedc
movl %eax, %esi
leaq -0x200(%rbp), %rdi
callq 0x1e5f0
movb %al, %cl
movq -0x13d0(%rbp), %rax
andb $0x1, %cl
movzbl %cl, %ecx
movq %rcx, 0x18(%rax)
cmpq $0x0, 0x18(%rax)
je 0x17744
movq 0x688af(%rip), %rax     # 0x7ffe8
addq $0x1, %rax
movq %rax, 0x688a4(%rip)     # 0x7ffe8
cmpl $0x0, 0x68791(%rip)     # 0x7fedc
jne 0x178f5
cmpq $0x0, 0x68907(%rip)     # 0x80060
je 0x178b2
movq -0x13d0(%rbp), %rax
movq 0x688f3(%rip), %rcx     # 0x80060
movl 0x20(%rcx), %ecx
movl %ecx, 0x24(%rax)
cmpl $0x3, 0x24(%rax)
jl 0x177dd
movl $0x1, %edi
callq 0x16ed0
jmp 0x17785
jmp 0x1786e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x208(%rbp)
movl %eax, -0x20c(%rbp)
movl -0x20c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x18112
movq -0x208(%rbp), %rdi
callq 0x40e0
movl (%rax), %eax
movl %eax, -0x46c(%rbp)
cmpl $0x22b8, -0x46c(%rbp)   # imm = 0x22B8
je 0x178ab
callq 0x4440
jmp 0x1811e
movq -0x13d0(%rbp), %rax
cmpl $0x2, 0x24(%rax)
jne 0x1785e
movq 0x6886f(%rip), %rax     # 0x80060
cmpq $0x0, 0x18(%rax)
jne 0x17851
movq -0x13d0(%rbp), %rax
movq 0x6885a(%rip), %rcx     # 0x80060
movq %rcx, 0x50(%rax)
leaq -0x380(%rbp), %rdi
callq 0x9790
jmp 0x17818
movq -0x13d0(%rbp), %rax
movq 0x50(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1783d
leaq -0x400(%rbp), %rdi
callq 0x23010
jmp 0x17838
jmp 0x180c3
movq -0x13d0(%rbp), %rax
movq 0x50(%rax), %rdi
callq 0x152d0
jmp 0x1784f
jmp 0x1785c
xorl %edi, %edi
callq 0x16ed0
jmp 0x1785a
jmp 0x1785c
jmp 0x1786c
movl $0x20, %edi
callq 0x7b40
jmp 0x1786a
jmp 0x178bc
jmp 0x1786e
leaq -0x468(%rbp), %rdi
movl $0x7, %esi
callq 0x112d0
jmp 0x17881
leaq -0x468(%rbp), %rdi
callq 0x21850
jmp 0x178b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x208(%rbp)
movl %eax, -0x20c(%rbp)
callq 0x4480
jmp 0x18112
callq 0x4480
jmp 0x178f0
movl $0xb, %edi
callq 0x7b40
movq 0x685cd(%rip), %rax     # 0x7fe90
movq %rax, -0x480(%rbp)
movq -0x480(%rbp), %rsi
leaq 0x685d0(%rip), %rdi     # 0x7fea8
callq 0x1db20
movq %rax, -0x478(%rbp)
movq -0x478(%rbp), %rdi
callq 0xac60
jmp 0x180c1
cmpl $0x7, 0x685e0(%rip)     # 0x7fedc
jne 0x17a08
callq 0x48c0
movq %rax, -0x488(%rbp)
movq -0x488(%rbp), %rax
movq %rax, 0x687fc(%rip)     # 0x80118
leaq -0x5f8(%rbp), %rdi
callq 0x9790
cmpl $0x0, 0x685ad(%rip)     # 0x7fedc
je 0x17940
movl $0x3, %edi
callq 0x7b40
jmp 0x178bc
movl $0x20, %edi
callq 0x1e2e0
movq %rax, %rcx
movq -0x13d0(%rbp), %rax
movq %rcx, 0x10(%rax)
callq 0x7ef0
callq 0x7e00
movq -0x13d0(%rbp), %rax
movq -0x18(%rbp), %rcx
movq (%rcx), %rdx
movq 0x10(%rax), %rcx
movq %rdx, (%rcx)
movq 0x68782(%rip), %rdx     # 0x80100
movq 0x10(%rax), %rcx
movq %rdx, 0x8(%rcx)
movq 0x685bb(%rip), %rdx     # 0x7ff48
movq 0x10(%rax), %rcx
movq %rdx, 0x10(%rcx)
movq 0x10(%rax), %rcx
movq $0x0, 0x18(%rcx)
movq 0x10(%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
leaq -0x768(%rbp), %rdi
callq 0x9790
movl $0xc, %edi
callq 0xb110
leaq -0x7c0(%rbp), %rdi
callq 0x173f0
leaq -0x7c0(%rbp), %rdi
callq 0x229f0
movq -0x13d0(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
jmp 0x180bf
cmpl $0x1f, 0x684cd(%rip)    # 0x7fedc
jne 0x17ab5
jmp 0x17a17
leaq -0x930(%rbp), %rdi
callq 0x9790
callq 0x172f0
cmpl $0x27, 0x684ad(%rip)    # 0x7fedc
je 0x17aa4
leaq 0x68568(%rip), %rdi     # 0x7ffa0
leaq 0x1a984(%rip), %rsi     # 0x323c3
callq 0x43f0
movl $0xf, %edi
callq 0x90f0
movq -0x13d0(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x163a0
movq 0x68423(%rip), %rax     # 0x7fe88
movq %rax, -0x938(%rbp)
movq -0x938(%rbp), %rdi
callq 0xac60
movl 0x6845e(%rip), %eax     # 0x7fedc
movl %eax, %esi
leaq 0x68419(%rip), %rdi     # 0x7fea0
callq 0x1e5f0
testb $0x1, %al
jne 0x17a92
jmp 0x17a94
jmp 0x17a23
cmpl $0xf, 0x68441(%rip)     # 0x7fedc
je 0x17a9f
jmp 0x17ab0
jmp 0x17a17
leaq -0xaa8(%rbp), %rdi
callq 0x9790
jmp 0x180bd
cmpl $0x26, 0x68420(%rip)    # 0x7fedc
jne 0x17c6c
leaq -0xc18(%rbp), %rdi
callq 0x9790
cmpl $0x1, 0x68407(%rip)     # 0x7fedc
je 0x17afd
movl $0x1, %edi
callq 0x163f0
testb $0x1, %al
jne 0x17ae7
jmp 0x17af8
leaq -0xd88(%rbp), %rdi
callq 0x9790
jmp 0x18109
jmp 0x178bc
callq 0x7e00
movq -0x13d0(%rbp), %rax
movq 0x685c8(%rip), %rcx     # 0x800d8
movq %rcx, 0x8(%rax)
movq -0x13d0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x17c4f
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x685b0(%rip), %rsi     # 0x800e8
callq 0x22fd0
testb $0x1, %al
jne 0x17b43
jmp 0x17b5b
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rcx
movq 0x20(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x17c4a
movq -0x13d0(%rbp), %rcx
movq 0x683ef(%rip), %rax     # 0x7ff58
movq 0x8(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x17bbe
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x4000, 0x18(%rax)     # imm = 0x4000
jl 0x17ba5
movq -0x13d0(%rbp), %rax
movq 0x6d002(%rip), %rdi     # 0x84b98
movq 0x8(%rax), %rax
addq 0x18(%rax), %rdi
callq 0x7c20
jmp 0x17bb9
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x18, %rdi
callq 0x7e70
jmp 0x17c48
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x18(%rax)
jne 0x17bef
movq -0x13d0(%rbp), %rax
movq 0x6831a(%rip), %rcx     # 0x7fef8
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
xorl %eax, %eax
movl %eax, %edi
callq 0x7f50
movq -0x13d0(%rbp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rcx), %rcx
addq $0x2400d, %rcx          # imm = 0x2400D
movq %rcx, -0x13e0(%rbp)
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
addq $0xea0000, %rax         # imm = 0xEA0000
movq %rax, -0x13d8(%rbp)
movl $0x12, %edi
callq 0x80d0
movq -0x13e0(%rbp), %rdi
movq -0x13d8(%rbp), %rsi
movq %rax, %rdx
addq $-0xd08000, %rdx        # imm = 0xFF2F8000
callq 0x7dd0
jmp 0x17c5b
jmp 0x17b14
movl $0x12, %edi
callq 0x7b40
jmp 0x17c5b
leaq -0xef8(%rbp), %rdi
callq 0x9790
jmp 0x180bb
cmpl $0x20, 0x68269(%rip)    # 0x7fedc
jne 0x17d5a
movl $0x2e, %edi
callq 0x17340
cmpl $0x28, 0x68252(%rip)    # 0x7fedc
jne 0x17d41
movq -0x13d0(%rbp), %rdi
movq $0x0, 0x48(%rdi)
addq $0x48, %rdi
callq 0x7e70
movq -0x13d0(%rbp), %rax
movq 0x40(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
movq -0x13d0(%rbp), %rdi
movq 0x682ce(%rip), %rsi     # 0x7ff98
addq $0x30, %rdi
callq 0x4ad0
movq $0x1, 0x682ba(%rip) # 0x7ff98
leaq -0x1068(%rbp), %rdi
callq 0x9790
leaq -0x10c0(%rbp), %rdi
callq 0x173f0
leaq -0x10c0(%rbp), %rdi
callq 0x229f0
movq -0x13d0(%rbp), %rax
movq 0x48(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
movq -0x13d0(%rbp), %rdi
addq $0x30, %rdi
callq 0x1dfb0
cmpq 0x6826b(%rip), %rax     # 0x7ff98
je 0x17d3f
movq $0x2, 0x6825e(%rip) # 0x7ff98
callq 0x7e00
jmp 0x17d55
movq -0x13d0(%rbp), %rax
movq 0x40(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
jmp 0x180b9
cmpl $0x23, 0x6817b(%rip)    # 0x7fedc
jne 0x17e02
callq 0x48c0
movq %rax, -0x10c8(%rbp)
movq -0x10c8(%rbp), %rax
movq %rax, 0x68397(%rip)     # 0x80118
callq 0x7e00
callq 0x7ef0
movq -0x13d0(%rbp), %rdi
movq 0x681af(%rip), %rsi     # 0x7ff48
addq $0x30, %rdi
callq 0x4ad0
movl $0x2b, %edi
callq 0x17340
callq 0x7e00
movq -0x13d0(%rbp), %rdi
movq 0x6cdd9(%rip), %rax     # 0x84b98
movq %rax, -0x13e8(%rbp)
addq $0x30, %rdi
callq 0x1dfb0
movq -0x13e8(%rbp), %rdi
addq %rax, %rdi
callq 0x7c20
movq -0x13d0(%rbp), %rax
movq 0x40(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
movq $0x1, 0x6819b(%rip) # 0x7ff98
jmp 0x180b7
cmpl $0x22, 0x680d3(%rip)    # 0x7fedc
jne 0x17f13
callq 0x48c0
movq %rax, -0x10d0(%rbp)
movq -0x10d0(%rbp), %rax
movq %rax, 0x682ef(%rip)     # 0x80118
callq 0x7e00
callq 0x7ef0
movq -0x13d0(%rbp), %rdi
movq 0x68107(%rip), %rsi     # 0x7ff48
addq $0x28, %rdi
callq 0x4ad0
leaq -0x1240(%rbp), %rdi
callq 0x9790
leaq -0x1298(%rbp), %rdi
callq 0x173f0
leaq -0x1298(%rbp), %rdi
callq 0x229f0
cmpl $0xf, 0x68067(%rip)     # 0x7fedc
je 0x17e4a
cmpl $0x29, 0x6805e(%rip)    # 0x7fedc
je 0x17eb2
movl $0x29, %edi
callq 0x90f0
leaq 0x6810f(%rip), %rdi     # 0x7ffa0
leaq 0x1a532(%rip), %rsi     # 0x323ca
callq 0x43f0
movq -0x13d0(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x163a0
jmp 0x178bc
callq 0x7e00
callq 0x14e90
movq 0x6829d(%rip), %rax     # 0x80160
movq (%rax), %rax
cmpq 0x681cb(%rip), %rax     # 0x80098
je 0x17eda
xorl %eax, %eax
movl %eax, %edi
callq 0x7b40
jmp 0x17f0e
movq -0x13d0(%rbp), %rdi
addq $0x28, %rdi
callq 0x1dfb0
movq %rax, 0x67fd7(%rip)     # 0x7fec8
leaq -0x1300(%rbp), %rdi
movl $0xf, %esi
callq 0x112d0
leaq -0x1300(%rbp), %rdi
callq 0x21850
jmp 0x180b5
cmpl $0x24, 0x67fc2(%rip)    # 0x7fedc
jne 0x17f40
callq 0x48c0
movq %rax, -0x1308(%rbp)
movq -0x1308(%rbp), %rax
movq %rax, 0x681e2(%rip)     # 0x80118
callq 0x15d40
jmp 0x180b3
cmpl $0x2f, 0x67f95(%rip)    # 0x7fedc
jne 0x1808f
callq 0x7e00
movq -0x13d0(%rbp), %rax
movb $0x1, 0x20(%rax)
movq $0x0, 0x48(%rax)
movq $0x1, 0x68028(%rip) # 0x7ff98
callq 0x14e90
movq 0x681e4(%rip), %rax     # 0x80160
movq (%rax), %rax
cmpq 0x68112(%rip), %rax     # 0x80098
je 0x17f93
xorl %eax, %eax
movl %eax, %edi
callq 0x7b40
jmp 0x17fcd
movq $0x0, 0x67f2a(%rip) # 0x7fec8
leaq -0x1370(%rbp), %rdi
movl $0xf, %esi
callq 0x112d0
leaq -0x1370(%rbp), %rdi
callq 0x21850
movq -0x13d0(%rbp), %rax
movq 0x67eff(%rip), %rcx     # 0x7fec8
movq %rcx, 0x40(%rax)
movl $0x12, %edi
callq 0xb110
leaq -0x13c8(%rbp), %rdi
callq 0x173f0
leaq -0x13c8(%rbp), %rdi
callq 0x229f0
movq -0x13d0(%rbp), %rdi
addq $0x48, %rdi
callq 0x7e70
movq -0x13d0(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x20(%rcx)
movb %al, -0x13e9(%rbp)
je 0x18025
cmpq $0x1, 0x67f7c(%rip)     # 0x7ff98
sete %al
movb %al, -0x13e9(%rbp)
movq -0x13d0(%rbp), %rax
movb -0x13e9(%rbp), %cl
andb $0x1, %cl
movb %cl, 0x20(%rax)
movq 0x40(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
cmpl $0xf, 0x67e90(%rip)     # 0x7fedc
je 0x17f65
movl $0x27, %edi
callq 0xb110
movq -0x13d0(%rbp), %rax
movq 0x48(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x8910
movq -0x13d0(%rbp), %rax
testb $0x1, 0x20(%rax)
jne 0x1808d
movq $0x2, 0x67f10(%rip) # 0x7ff98
callq 0x7e00
jmp 0x180b1
cmpl $0x21, 0x67e46(%rip)    # 0x7fedc
jne 0x1809f
callq 0x165c0
jmp 0x180af
cmpl $0x25, 0x67e36(%rip)    # 0x7fedc
jne 0x180ad
callq 0x161d0
jmp 0x180af
jmp 0x180b1
jmp 0x180b3
jmp 0x180b5
jmp 0x180b7
jmp 0x180b9
jmp 0x180bb
jmp 0x180bd
jmp 0x180bf
jmp 0x180c1
jmp 0x180c3
movq -0x13d0(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x180e3
movq 0x67f10(%rip), %rax     # 0x7ffe8
subq $0x1, %rax
movq %rax, 0x67f05(%rip)     # 0x7ffe8
movq -0x13d0(%rbp), %rax
movq (%rax), %rdi
callq 0x4d30
testb $0x1, 0x67f44(%rip)     # 0x8003d
je 0x18107
movb $0x0, 0x67f3b(%rip)     # 0x8003d
jmp 0x178bc
jmp 0x18109
addq $0x13f0, %rsp           # imm = 0x13F0
popq %rbp
retq
movq -0x208(%rbp), %rdi
callq 0x44c0
nop