// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x14b8, %rsp           # imm = 0x14B8
movq %rdi, %rbx
movabsq $0xffffffffffff, %r14   # imm = 0xFFFFFFFFFFFF
movq 0xaca85(%rip), %rax     # 0xbd378
movq -0x8(%rax), %r15
leaq 0x2f8(%rsp), %rsi
movq %rdi, (%rsi)
leaq 0xacb17(%rip), %rdi     # 0xbd420
callq 0x1b9fa
movq 0x1395b(%rip), %rax     # 0x24270
leaq 0x13ea4(%rip), %rcx     # 0x247c0
leaq (%rcx,%rax,8), %rax
movq %rax, (%rbx)
movb $0x0, 0x54053(%rip)     # 0x6497d
movq 0x53f7f(%rip), %rax     # 0x648b0
movq %rax, 0x38(%rbx)
movq 0x54124(%rip), %rax     # 0x64a60
andq %r14, %rax
cmpq $0xffffff, %rax         # imm = 0xFFFFFF
jne 0x10971
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1814e
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x1143c
movq 0x58(%rsp), %rsi
subq %rdi, %rsi
callq 0x3260
jmp 0x1143c
cmpl $0x1, 0x53ea4(%rip)     # 0x6481c
jne 0x10b12
movq $0x0, 0x540cf(%rip) # 0x64a58
movq 0x54088(%rip), %rax     # 0x64a18
movq %rax, 0x8(%rbx)
cmpq $0x1, 0x53f3c(%rip)     # 0x648d8
je 0x109b5
movq 0x138e3(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x53f23(%rip) # 0x648d8
leaq 0x70(%r15), %r12
movb $0x1, 0x20(%rbx)
cmpb $0x0, 0x53fb0(%rip)     # 0x64974
jne 0x109d2
movq 0x58adb(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x0, 0x53f7b(%rip) # 0x64958
movq 0x8(%rbx), %rax
cmpq (%r12), %rax
je 0x10aeb
movabsq $0x1ffffffffff, %r13    # imm = 0x1FFFFFFFFFF
leaq 0x54034(%rip), %r14     # 0x64a30
leaq 0x5a2ed(%rip), %rbp     # 0x6acf0
movq 0x5401e(%rip), %rcx     # 0x64a28
xorq (%rax), %rcx
testq %r13, %rcx
je 0x10a1b
addq $0x20, %rax
jmp 0x10ada
movb $0x0, 0x20(%rbx)
cmpb $0x1, 0x28(%rax)
jne 0x10a40
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x3c48
movl $0x11, %edi
callq 0x58ff
jmp 0x10ad7
movq 0x53e69(%rip), %rcx     # 0x648b0
movq %rcx, 0x8(%rax)
movb $0x1, 0x28(%rax)
cmpb $0x0, 0x53f1e(%rip)     # 0x64974
jne 0x10a68
movq 0x58a49(%rip), %rdi     # 0x694a8
callq 0x59a2
movq 0x8(%rbx), %rax
movq $0x0, 0x53ee5(%rip) # 0x64958
movq 0x18(%rax), %rsi
testq %rsi, %rsi
je 0x10acc
cmpq $0x7800, %rsi           # imm = 0x7800
jl 0x10ac1
movq 0x53dfc(%rip), %rsi     # 0x64888
movq $-0x4000, %rax          # imm = 0xC000
addq %rax, %rsi
movq %r14, %rdi
callq 0x3c48
movq 0x53f8b(%rip), %rcx     # 0x64a30
andl $0x7fff, %ecx           # imm = 0x7FFF
orq $0x840000, %rcx         # imm = 0x840000
movq 0x8(%rbx), %rax
movq 0x18(%rax), %rdx
movq %rcx, (%rbp,%rdx,8)
jmp 0x10acc
xorl %edi, %edi
callq 0x61d5
movq 0x8(%rbx), %rax
movq 0x53db5(%rip), %rcx     # 0x64888
movq %rcx, 0x18(%rax)
movq %r12, %rax
movq (%rax), %rax
movq %rax, 0x8(%rbx)
cmpq (%r12), %rax
jne 0x10a03
cmpb $0x1, 0x20(%rbx)
jne 0x10afb
movl $0x10, %edi
callq 0x58ff
leaq 0x1348(%rsp), %rdi
callq 0x6f40
movl $0x12, %edi
callq 0x83e7
testb $0x8, 0x53f57(%rip)     # 0x64a70
je 0x10b55
movq 0x53dfe(%rip), %rax     # 0x64920
cmpq 0x53d87(%rip), %rax     # 0x648b0
je 0x10b55
movl $0x60, %esi
movq $-0x1, %rdi
callq 0x61d5
movq 0x53d6d(%rip), %rax     # 0x648b0
movq %rax, 0x53dd6(%rip)     # 0x64920
movq $0x1, 0x53d83(%rip) # 0x648d8
movl 0x53cc1(%rip), %eax     # 0x6481c
cmpq $0x30, %rax
jae 0x10b8b
movb $0x2f, %cl
subb %al, %cl
movl $0x1, %edx
shlq %cl, %rdx
leaq 0x18(%rbx), %r13
xorl %ecx, %ecx
testl $0x16001, %edx          # imm = 0x16001
setne %cl
movq %rcx, 0x18(%rbx)
je 0x10b97
incq 0x53d9f(%rip)           # 0x64928
jmp 0x10b97
leaq 0x18(%rbx), %r13
movq $0x0, 0x18(%rbx)
leal -0x1f(%rax), %ecx
cmpl $0x10, %ecx
ja 0x10c95
leaq 0xbbce(%rip), %rax      # 0x1c778
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x4e8(%rsp), %rdi
leaq 0xc832(%rip), %r12      # 0x1d3f4
leaq 0xc810(%rip), %r14      # 0x1d3d9
leaq 0x2f8(%rsp), %rbp
callq 0x6f40
callq 0x107cc
cmpl $0x27, 0x53c3a(%rip)    # 0x6481c
je 0x110d9
movq 0x53cf9(%rip), %rdx     # 0x648e8
movl $0x6, %r8d
leaq 0x53ce4(%rip), %rdi     # 0x648e0
xorl %esi, %esi
movq %r12, %rcx
callq 0x3380
movq 0x53c63(%rip), %rax     # 0x64870
cmpq 0x53c64(%rip), %rax     # 0x64878
je 0x10c20
movl $0x67, %edi
callq 0x58ff
movq 0xac801(%rip), %rax     # 0xbd428
movq -0x8(%rax), %rax
movq 0x53cae(%rip), %rsi     # 0x648e0
movq 0x38(%rax), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x3030
movq 0x53b81(%rip), %r15     # 0x647c8
movl 0x53bcf(%rip), %eax     # 0x6481c
cmpq $0x2f, %rax
ja 0x10c68
movb $0x2f, %cl
subb %al, %cl
movl $0x1, %edx
shlq %cl, %rdx
movzbl %cl, %ecx
btq %rcx, %r15
jb 0x10c72
movq %rbp, %rdi
callq 0x6f40
jmp 0x10c47
testq %rdx, 0x53b67(%rip)     # 0x647e0
jne 0x10bd6
cmpl $0xf, %eax
leaq 0x4e8(%rsp), %rdi
je 0x10bd1
jmp 0x11494
testl %eax, %eax
je 0x110eb
cmpl $0x7, %eax
jne 0x11494
movq $0x0, 0x53da7(%rip) # 0x64a58
leaq 0x1068(%rsp), %rdi
callq 0x6f40
cmpl $0x0, 0x53b57(%rip)     # 0x6481c
je 0x111d5
movl $0x3, %edi
jmp 0x112a1
movq $0x0, 0x53d78(%rip) # 0x64a58
cmpq $0x1, 0x53bf0(%rip)     # 0x648d8
je 0x10d01
movq 0x13597(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x53bd7(%rip) # 0x648d8
cmpb $0x0, 0x53c6c(%rip)     # 0x64974
jne 0x10d16
movq 0x58797(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x0, 0x53c37(%rip) # 0x64958
movq 0x53b60(%rip), %rsi     # 0x64888
leaq 0x30(%rbx), %rdi
callq 0x3c48
movl $0x2b, %edi
callq 0x10823
cmpq $0x1, 0x53b95(%rip)     # 0x648d8
je 0x10d5c
movq 0x1353c(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x53b7c(%rip) # 0x648d8
movq 0x30(%rbx), %rdi
shlq $0x17, %rdi
sarq $0x17, %rdi
addq 0x58769(%rip), %rdi     # 0x694d8
callq 0x59a2
movq 0x40(%rbx), %rsi
xorl %edi, %edi
callq 0x61d5
jmp 0x1101e
callq 0xfeb7
jmp 0x11494
cmpq $0x1, 0x53b42(%rip)     # 0x648d8
je 0x10daf
movq 0x134e9(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x53b29(%rip) # 0x648d8
movb $0x1, 0x20(%rbx)
leaq 0x48(%rbx), %r14
movq $0x0, 0x48(%rbx)
leaq 0x1c0(%rsp), %r15
leaq 0x60(%rsp), %r12
movq $0x1, 0x53b01(%rip) # 0x648d8
callq 0xee5e
movq 0x53cbd(%rip), %rax     # 0x64aa0
movq (%rax), %rax
cmpq 0x53beb(%rip), %rax     # 0x649d8
je 0x10df8
xorl %edi, %edi
callq 0x58ff
jmp 0x10e23
movq $0x0, 0x53a05(%rip) # 0x64808
movq %r15, %rdi
movl $0xf, %esi
callq 0xc308
addq $-0x8, 0xac5a8(%rip)    # 0xbd3c0
movq 0x539e9(%rip), %rax     # 0x64808
movq %rax, 0x40(%rbx)
movl $0x12, %edi
callq 0x83e7
movq %r12, %rdi
callq 0x108ce
addq $-0x8, 0xac5eb(%rip)    # 0xbd428
movq %r14, %rdi
callq 0x5b33
cmpq $0x1, 0x53a8b(%rip)     # 0x648d8
sete %al
andb %al, 0x20(%rbx)
movq 0x40(%rbx), %rsi
xorl %edi, %edi
callq 0x61d5
cmpl $0xf, 0x539b7(%rip)     # 0x6481c
je 0x10dcc
movl $0x27, %edi
callq 0x83e7
movq 0x48(%rbx), %rsi
xorl %edi, %edi
callq 0x61d5
cmpb $0x0, 0x20(%rbx)
je 0x11007
jmp 0x11494
movq $0x0, 0x53bbe(%rip) # 0x64a58
cmpq $0x1, 0x53a36(%rip)     # 0x648d8
je 0x10ebb
movq 0x133dd(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x53a1d(%rip) # 0x648d8
cmpb $0x0, 0x53ab2(%rip)     # 0x64974
jne 0x10ed0
movq 0x585dd(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x0, 0x53a7d(%rip) # 0x64958
movq 0x539a6(%rip), %rsi     # 0x64888
leaq 0x28(%rbx), %r14
movq %r14, %rdi
callq 0x3c48
leaq 0x658(%rsp), %r15
leaq 0xb8(%rsp), %r12
movq %r15, %rdi
callq 0x6f40
movq %r12, %rdi
callq 0x108ce
addq $-0x8, 0xac512(%rip)    # 0xbd428
movl 0x53900(%rip), %eax     # 0x6481c
cmpl $0xf, %eax
je 0x10efe
cmpl $0x29, %eax
jne 0x1113c
cmpq $0x1, 0x539a6(%rip)     # 0x648d8
je 0x10f4b
movq 0x1334d(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x5398d(%rip) # 0x648d8
callq 0xee5e
movq 0x53b49(%rip), %rax     # 0x64aa0
movq (%rax), %rax
cmpq 0x53a77(%rip), %rax     # 0x649d8
je 0x112ab
xorl %edi, %edi
callq 0x58ff
jmp 0x11494
movl $0x2e, %edi
callq 0x10823
cmpl $0x28, 0x53898(%rip)    # 0x6481c
jne 0x111a1
leaq 0x48(%rbx), %rdi
movq $0x0, 0x48(%rbx)
callq 0x5b33
movq 0x40(%rbx), %rsi
xorl %edi, %edi
callq 0x61d5
movq 0x5392b(%rip), %rsi     # 0x648d8
leaq 0x30(%rbx), %rdi
callq 0x3c48
movq $0x1, 0x53917(%rip) # 0x648d8
leaq 0x7c8(%rsp), %rdi
callq 0x6f40
leaq 0x110(%rsp), %rdi
callq 0x108ce
addq $-0x8, 0xac445(%rip)    # 0xbd428
movq 0x48(%rbx), %rsi
xorl %edi, %edi
callq 0x61d5
movq 0x30(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
cmpq 0x538d7(%rip), %rax     # 0x648d8
je 0x11494
movq $0x2, 0x538c6(%rip) # 0x648d8
movq 0x1326f(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x538af(%rip) # 0x648d8
jmp 0x11494
callq 0xfbbc
jmp 0x11494
leaq 0xc18(%rsp), %rdi
callq 0x6f40
cmpl $0x1, 0x537d0(%rip)     # 0x6481c
jne 0x111b1
cmpq $0x1, 0x5387e(%rip)     # 0x648d8
je 0x11073
movq 0x13225(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x53865(%rip) # 0x648d8
movq 0x5399e(%rip), %rax     # 0x64a18
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x110b0
movabsq $0x1ffffffffff, %rcx    # imm = 0x1FFFFFFFFFF
movq 0x53994(%rip), %rdx     # 0x64a28
movq (%rax), %rsi
xorq %rdx, %rsi
testq %rcx, %rsi
je 0x112dc
movq 0x20(%rax), %rax
movq %rax, 0x8(%rbx)
testq %rax, %rax
jne 0x11094
movl $0x12, %edi
callq 0x58ff
leaq 0x938(%rsp), %rdi
jmp 0x110e1
movq $0x0, 0x53989(%rip) # 0x64a58
callq 0xf85d
jmp 0x11494
leaq 0xd88(%rsp), %rdi
callq 0x6f40
jmp 0x11494
movq 0x538ae(%rip), %rax     # 0x649a0
testq %rax, %rax
je 0x1129c
movl 0x20(%rax), %ecx
movl %ecx, 0x24(%rbx)
cmpl $0x2, %ecx
jg 0x11117
jne 0x11312
cmpq $0x0, 0x18(%rax)
je 0x11361
xorl %edi, %edi
cmpl $0x3, %ecx
setge %dil
callq 0x1053f
leaq 0x290(%rsp), %rdi
movl $0x7, %esi
callq 0xc308
jmp 0x112cf
movq 0x5372d(%rip), %rax     # 0x64870
cmpq 0x5372e(%rip), %rax     # 0x64878
je 0x11156
movl $0x81, %edi
callq 0x58ff
movq 0x5378b(%rip), %rdx     # 0x648e8
leaq 0x5377c(%rip), %rdi     # 0x648e0
leaq 0xc290(%rip), %rcx      # 0x1d3fb
movl $0x6, %r8d
xorl %esi, %esi
callq 0x3380
movq 0xac2a9(%rip), %rax     # 0xbd428
movq -0x8(%rax), %rax
movq 0x53756(%rip), %rsi     # 0x648e0
movq 0x38(%rax), %rdx
leaq 0xc244(%rip), %rdi      # 0x1d3d9
xorl %eax, %eax
callq 0x3030
jmp 0x1144e
movq 0x40(%rbx), %rsi
xorl %edi, %edi
callq 0x61d5
jmp 0x11494
movl $0x1, %edi
callq 0xfd17
testb %al, %al
je 0x1144e
leaq 0xaa8(%rsp), %rdi
callq 0x6f40
jmp 0x1143c
movl $0x20, %edi
callq 0x3d77
movq %rax, 0x10(%rbx)
cmpb $0x0, 0x5378a(%rip)     # 0x64974
jne 0x111f8
movq 0x582b5(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x0, 0x53755(%rip) # 0x64958
cmpq $0x1, 0x536cd(%rip)     # 0x648d8
je 0x11224
movq 0x13074(%rip), %rdi     # 0x24288
callq 0x59a2
movq $0x1, 0x536b4(%rip) # 0x648d8
movq 0x78(%r15), %rax
movq 0x10(%rbx), %rcx
movq %rax, (%rcx)
movq 0x5380a(%rip), %rax     # 0x64a40
movq %rax, 0x8(%rcx)
movq 0x53647(%rip), %rax     # 0x64888
movq %rax, 0x10(%rcx)
movq $0x0, 0x18(%rcx)
movq %rcx, 0x78(%r15)
leaq 0xef8(%rsp), %rdi
callq 0x6f40
movl $0xc, %edi
callq 0x83e7
leaq 0x168(%rsp), %rdi
callq 0x108ce
addq $-0x8, 0xac1ab(%rip)    # 0xbd428
movq 0x10(%rbx), %rax
movq 0x18(%rax), %rsi
xorl %edi, %edi
callq 0x61d5
movq 0x78(%r15), %rax
movq (%rax), %rax
movq %rax, 0x78(%r15)
jmp 0x11494
movl $0xb, %edi
callq 0x58ff
jmp 0x1144e
movq (%r14), %rax
shlq $0x17, %rax
sarq $0x17, %rax
movq %rax, 0x5354b(%rip)     # 0x64808
leaq 0x228(%rsp), %rdi
movl $0xf, %esi
callq 0xc308
addq $-0x8, 0xac0e9(%rip)    # 0xbd3c0
jmp 0x11494
movq 0x10(%rax), %r15
movq 0x18(%rax), %r14
leaq 0x18(%rax), %rdi
cmpq %r15, 0x535a9(%rip)     # 0x64898
jne 0x11321
cmpq $0x4000, %r14           # imm = 0x4000
jl 0x11387
addq 0x581d3(%rip), %r14     # 0x694d8
movq %r14, %rdi
callq 0x59a2
jmp 0x110ba
movl $0x20, %edi
callq 0x58ff
jmp 0x1144e
testq %r14, %r14
jne 0x113b5
movq 0x53507(%rip), %rcx     # 0x64838
movq %rcx, (%rdi)
leaq 0x599b5(%rip), %rdx     # 0x6acf0
movq $0x0, (%rdx,%rcx,8)
cmpq $0x7fff, %rcx           # imm = 0x7FFF
jne 0x113a3
movl $0x32, %edi
callq 0x58ff
movq 0x8(%rbx), %rax
movl $0x7800, %ecx           # imm = 0x7800
jmp 0x113a6
movq %rax, 0x50(%rbx)
leaq 0x11d8(%rsp), %rdi
callq 0x6f40
movq 0x50(%rbx), %rdi
cmpq $0x0, 0x8(%rdi)
je 0x11391
callq 0xf0de
jmp 0x11125
callq 0x5b33
jmp 0x110ba
leaq 0x468(%rsp), %rdi
callq 0x184ec
jmp 0x11494
incq %rcx
movq %rcx, 0x5348b(%rip)     # 0x64838
movq 0x10(%rax), %r15
movq 0x18(%rax), %r14
addq $0x2400d, %r15          # imm = 0x2400D
addq $0xea0000, %r14         # imm = 0xEA0000
movq 0x59696(%rip), %rdx     # 0x6aa60
testq %rdx, %rdx
jne 0x113f1
movq 0x1303a(%rip), %rax     # 0x24410
movq %rax, 0x53653(%rip)     # 0x64a30
movl $0x8c0000, %edi         # imm = 0x8C0000
callq 0x5c15
movq %rax, %rdx
movq %rax, 0x5966f(%rip)     # 0x6aa60
addq $0xc0000, %rdx          # imm = 0xC0000
movq %r15, %rdi
movq %r14, %rsi
callq 0x5acc
jmp 0x110ba
movq %rax, %r14
cmpl $0x1, %edx
jne 0x11434
movq %r14, %rdi
callq 0x30d0
cmpl $0x22b8, (%rax)         # imm = 0x22B8
jne 0x11427
callq 0x33d0
jmp 0x11494
callq 0x3350
movq %rax, %r14
callq 0x33d0
movq %r14, %rdi
callq 0x3400
addq $0x14b8, %rsp           # imm = 0x14B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x53393(%rip), %r15     # 0x647e8
movabsq $0xffffffffffff, %rax   # imm = 0xFFFFFFFFFFFF
andq %rax, %r15
orq 0x53367(%rip), %r15     # 0x647d0
leaq 0x2f8(%rsp), %r14
jmp 0x1147b
movq %r14, %rdi
callq 0x6f40
movl 0x5339b(%rip), %eax     # 0x6481c
cmpq $0x2f, %rax
ja 0x11473
movb $0x2f, %cl
subb %al, %cl
movzbl %cl, %eax
btq %rax, %r15
jae 0x11473
cmpq $0x0, (%r13)
je 0x114a2
decq 0x53486(%rip)           # 0x64928
movq (%rbx), %rdi
callq 0x3dae
cmpb $0x1, 0x534cc(%rip)     # 0x6497d
jne 0x1143c
movb $0x0, 0x534c3(%rip)     # 0x6497d
jmp 0x1144e