"use strict";
// Generated by Air::dumpAsJS from scanIdentifier#EPcFQe in Octane/typescript
function createPayloadTypescriptScanIdentifier()
{
    let code = new Code();
    let bb0 = code.addBlock();
    let bb1 = code.addBlock();
    let bb2 = code.addBlock();
    let bb3 = code.addBlock();
    let bb4 = code.addBlock();
    let bb5 = code.addBlock();
    let bb6 = code.addBlock();
    let bb7 = code.addBlock();
    let bb8 = code.addBlock();
    let bb9 = code.addBlock();
    let bb10 = code.addBlock();
    let bb11 = code.addBlock();
    let bb12 = code.addBlock();
    let bb13 = code.addBlock();
    let bb14 = code.addBlock();
    let bb15 = code.addBlock();
    let bb16 = code.addBlock();
    let bb17 = code.addBlock();
    let bb18 = code.addBlock();
    let bb19 = code.addBlock();
    let bb20 = code.addBlock();
    let bb21 = code.addBlock();
    let bb22 = code.addBlock();
    let bb23 = code.addBlock();
    let bb24 = code.addBlock();
    let bb25 = code.addBlock();
    let bb26 = code.addBlock();
    let bb27 = code.addBlock();
    let bb28 = code.addBlock();
    let bb29 = code.addBlock();
    let bb30 = code.addBlock();
    let bb31 = code.addBlock();
    let bb32 = code.addBlock();
    let bb33 = code.addBlock();
    let bb34 = code.addBlock();
    let slot0 = code.addStackSlot(56, Locked);
    let slot1 = code.addStackSlot(8, Spill);
    let slot2 = code.addStackSlot(8, Spill);
    let slot3 = code.addStackSlot(8, Spill);
    let slot4 = code.addStackSlot(8, Spill);
    let slot5 = code.addStackSlot(4, Spill);
    let slot6 = code.addStackSlot(8, Spill);
    let slot7 = code.addStackSlot(8, Spill);
    let slot8 = code.addStackSlot(8, Spill);
    let slot9 = code.addStackSlot(40, Locked);
    slot9.setOffsetFromFP(-40);
    let tmp98 = code.newTmp(GP);
    let tmp97 = code.newTmp(GP);
    let tmp96 = code.newTmp(GP);
    let tmp95 = code.newTmp(GP);
    let tmp94 = code.newTmp(GP);
    let tmp93 = code.newTmp(GP);
    let tmp92 = code.newTmp(GP);
    let tmp91 = code.newTmp(GP);
    let tmp90 = code.newTmp(GP);
    let tmp89 = code.newTmp(GP);
    let tmp88 = code.newTmp(GP);
    let tmp87 = code.newTmp(GP);
    let tmp86 = code.newTmp(GP);
    let tmp85 = code.newTmp(GP);
    let tmp84 = code.newTmp(GP);
    let tmp83 = code.newTmp(GP);
    let tmp82 = code.newTmp(GP);
    let tmp81 = code.newTmp(GP);
    let tmp80 = code.newTmp(GP);
    let tmp79 = code.newTmp(GP);
    let tmp78 = code.newTmp(GP);
    let tmp77 = code.newTmp(GP);
    let tmp76 = code.newTmp(GP);
    let tmp75 = code.newTmp(GP);
    let tmp74 = code.newTmp(GP);
    let tmp73 = code.newTmp(GP);
    let tmp72 = code.newTmp(GP);
    let tmp71 = code.newTmp(GP);
    let tmp70 = code.newTmp(GP);
    let tmp69 = code.newTmp(GP);
    let tmp68 = code.newTmp(GP);
    let tmp67 = code.newTmp(GP);
    let tmp66 = code.newTmp(GP);
    let tmp65 = code.newTmp(GP);
    let tmp64 = code.newTmp(GP);
    let tmp63 = code.newTmp(GP);
    let tmp62 = code.newTmp(GP);
    let tmp61 = code.newTmp(GP);
    let tmp60 = code.newTmp(GP);
    let tmp59 = code.newTmp(GP);
    let tmp58 = code.newTmp(GP);
    let tmp57 = code.newTmp(GP);
    let tmp56 = code.newTmp(GP);
    let tmp55 = code.newTmp(GP);
    let tmp54 = code.newTmp(GP);
    let tmp53 = code.newTmp(GP);
    let tmp52 = code.newTmp(GP);
    let tmp51 = code.newTmp(GP);
    let tmp50 = code.newTmp(GP);
    let tmp49 = code.newTmp(GP);
    let tmp48 = code.newTmp(GP);
    let tmp47 = code.newTmp(GP);
    let tmp46 = code.newTmp(GP);
    let tmp45 = code.newTmp(GP);
    let tmp44 = code.newTmp(GP);
    let tmp43 = code.newTmp(GP);
    let tmp42 = code.newTmp(GP);
    let tmp41 = code.newTmp(GP);
    let tmp40 = code.newTmp(GP);
    let tmp39 = code.newTmp(GP);
    let tmp38 = code.newTmp(GP);
    let tmp37 = code.newTmp(GP);
    let tmp36 = code.newTmp(GP);
    let tmp35 = code.newTmp(GP);
    let tmp34 = code.newTmp(GP);
    let tmp33 = code.newTmp(GP);
    let tmp32 = code.newTmp(GP);
    let tmp31 = code.newTmp(GP);
    let tmp30 = code.newTmp(GP);
    let tmp29 = code.newTmp(GP);
    let tmp28 = code.newTmp(GP);
    let tmp27 = code.newTmp(GP);
    let tmp26 = code.newTmp(GP);
    let tmp25 = code.newTmp(GP);
    let tmp24 = code.newTmp(GP);
    let tmp23 = code.newTmp(GP);
    let tmp22 = code.newTmp(GP);
    let tmp21 = code.newTmp(GP);
    let tmp20 = code.newTmp(GP);
    let tmp19 = code.newTmp(GP);
    let tmp18 = code.newTmp(GP);
    let tmp17 = code.newTmp(GP);
    let tmp16 = code.newTmp(GP);
    let tmp15 = code.newTmp(GP);
    let tmp14 = code.newTmp(GP);
    let tmp13 = code.newTmp(GP);
    let tmp12 = code.newTmp(GP);
    let tmp11 = code.newTmp(GP);
    let tmp10 = code.newTmp(GP);
    let tmp9 = code.newTmp(GP);
    let tmp8 = code.newTmp(GP);
    let tmp7 = code.newTmp(GP);
    let tmp6 = code.newTmp(GP);
    let tmp5 = code.newTmp(GP);
    let tmp4 = code.newTmp(GP);
    let tmp3 = code.newTmp(GP);
    let tmp2 = code.newTmp(GP);
    let tmp1 = code.newTmp(GP);
    let tmp0 = code.newTmp(GP);
    let inst;
    let arg;
    bb0.successors.push(new FrequentedBlock(bb5, Normal));
    bb0.successors.push(new FrequentedBlock(bb4, Normal));
    inst = new Inst(Move);
    arg = Arg.createBigImm(177329888, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbp, 16);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbp);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.extraEarlyClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.r11);
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Scratch, type: GP, width: 64});
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbp, 40);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(2, -65536);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createRelCond(NotEqual);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbx, 5);
    inst.args.push(arg);
    arg = Arg.createImm(21);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 8});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 8});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createRelCond(NotEqual);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbx, 0);
    inst.args.push(arg);
    arg = Arg.createImm(2540);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbx, 72);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Compare32);
    arg = Arg.createRelCond(Equal);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createImm(92);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(154991936, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createRelCond(NotEqual);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rcx, 0);
    inst.args.push(arg);
    arg = Arg.createImm(80);
    inst.args.push(arg);
    arg = Arg.createBigImm(154991936, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(154991944, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rcx, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createAddr(Reg.r12, -8);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r8);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createRelCond(AboveOrEqual);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r8);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    bb0.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createIndex(Reg.r12, Reg.rax, 8, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(10);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(MoveConditionallyTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createImm(-1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Xor64);
    arg = Arg.createImm(6);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(-2);
    inst.args.push(arg);
    arg = Arg.createStack(slot2, 0);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(-2);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(1);
    inst.args.push(arg);
    arg = Arg.createStack(slot1, 0);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(129987312, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createStack(slot4, 0);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(108418352, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(0, -65536);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r14);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb0.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb0.append(inst);
    bb1.predecessors.push(bb6);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb1.append(inst);
    inst = new Inst(Oops);
    bb1.append(inst);
    bb2.predecessors.push(bb23);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb2.append(inst);
    inst = new Inst(Oops);
    bb2.append(inst);
    bb3.predecessors.push(bb32);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb3.append(inst);
    inst = new Inst(Oops);
    bb3.append(inst);
    bb4.predecessors.push(bb0);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    bb4.append(inst);
    inst = new Inst(Oops);
    bb4.append(inst);
    bb5.successors.push(new FrequentedBlock(bb8, Normal));
    bb5.successors.push(new FrequentedBlock(bb6, Rare));
    bb5.predecessors.push(bb0);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbx, 56);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    bb5.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbx, 8);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb5.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rax, -24);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    bb5.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.r10, 16);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb5.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb5.append(inst);
    bb6.successors.push(new FrequentedBlock(bb1, Rare));
    bb6.successors.push(new FrequentedBlock(bb7, Normal));
    bb6.predecessors.push(bb5);
    inst = new Inst(Move32);
    arg = Arg.createImm(1);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbp, 36);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    arg = Arg.createStack(slot8, 0);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r8);
    inst.args.push(arg);
    arg = Arg.createStack(slot7, 0);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    arg = Arg.createStack(slot6, 0);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rbp);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.xmm0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.extraClobberedRegs.add(Reg.rcx);
    inst.extraClobberedRegs.add(Reg.rsi);
    inst.extraClobberedRegs.add(Reg.rdi);
    inst.extraClobberedRegs.add(Reg.r8);
    inst.extraClobberedRegs.add(Reg.r9);
    inst.extraClobberedRegs.add(Reg.r10);
    inst.extraClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.xmm1);
    inst.extraClobberedRegs.add(Reg.xmm2);
    inst.extraClobberedRegs.add(Reg.xmm3);
    inst.extraClobberedRegs.add(Reg.xmm4);
    inst.extraClobberedRegs.add(Reg.xmm5);
    inst.extraClobberedRegs.add(Reg.xmm6);
    inst.extraClobberedRegs.add(Reg.xmm7);
    inst.extraClobberedRegs.add(Reg.xmm8);
    inst.extraClobberedRegs.add(Reg.xmm9);
    inst.extraClobberedRegs.add(Reg.xmm10);
    inst.extraClobberedRegs.add(Reg.xmm11);
    inst.extraClobberedRegs.add(Reg.xmm12);
    inst.extraClobberedRegs.add(Reg.xmm13);
    inst.extraClobberedRegs.add(Reg.xmm14);
    inst.extraClobberedRegs.add(Reg.xmm15);
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: FP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createStack(slot8, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createStack(slot7, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r8);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createStack(slot6, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(129987312, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb6.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rcx, 0);
    inst.args.push(arg);
    arg = Arg.createImm(-1);
    inst.args.push(arg);
    bb6.append(inst);
    bb7.successors.push(new FrequentedBlock(bb11, Normal));
    bb7.predecessors.push(bb6);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rax, 8);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb7.append(inst);
    inst = new Inst(Jump);
    bb7.append(inst);
    bb8.successors.push(new FrequentedBlock(bb11, Normal));
    bb8.predecessors.push(bb5);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rax, 8);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb8.append(inst);
    inst = new Inst(Jump);
    bb8.append(inst);
    bb9.successors.push(new FrequentedBlock(bb11, Normal));
    bb9.predecessors.push(bb15);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r9);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb9.append(inst);
    inst = new Inst(Jump);
    bb9.append(inst);
    bb10.successors.push(new FrequentedBlock(bb11, Normal));
    bb10.predecessors.push(bb18);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r9);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb10.append(inst);
    inst = new Inst(Jump);
    bb10.append(inst);
    bb11.successors.push(new FrequentedBlock(bb12, Normal));
    bb11.successors.push(new FrequentedBlock(bb16, Normal));
    bb11.predecessors.push(bb7);
    bb11.predecessors.push(bb10);
    bb11.predecessors.push(bb9);
    bb11.predecessors.push(bb8);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r9);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbx, 40);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createResCond(Overflow);
    inst.args.push(arg);
    arg = Arg.createImm(1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.UseZDef, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
    bb11.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Add64);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r14);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r11);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r11);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbx, 40);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbx, 32);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createResCond(Overflow);
    inst.args.push(arg);
    arg = Arg.createImm(1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.UseZDef, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
    bb11.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Add64);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r14);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbx, 32);
    inst.args.push(arg);
    bb11.append(inst);
    inst = new Inst(Branch32);
    arg = Arg.createRelCond(LessThan);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    bb11.append(inst);
    bb12.successors.push(new FrequentedBlock(bb13, Normal));
    bb12.successors.push(new FrequentedBlock(bb14, Normal));
    bb12.predecessors.push(bb11);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createRelCond(AboveOrEqual);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.r10, 12);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb12.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.r10, 16);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb12.append(inst);
    inst = new Inst(BranchTest32);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rax, 16);
    inst.args.push(arg);
    arg = Arg.createImm(8);
    inst.args.push(arg);
    bb12.append(inst);
    bb13.successors.push(new FrequentedBlock(bb15, Normal));
    bb13.predecessors.push(bb12);
    inst = new Inst(Load8);
    arg = Arg.createIndex(Reg.r9, Reg.rdx, 1, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb13.append(inst);
    inst = new Inst(Jump);
    bb13.append(inst);
    bb14.successors.push(new FrequentedBlock(bb15, Normal));
    bb14.predecessors.push(bb12);
    inst = new Inst(Load16);
    arg = Arg.createIndex(Reg.r9, Reg.rdx, 2, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb14.append(inst);
    inst = new Inst(Jump);
    bb14.append(inst);
    bb15.successors.push(new FrequentedBlock(bb9, Normal));
    bb15.successors.push(new FrequentedBlock(bb17, Normal));
    bb15.predecessors.push(bb14);
    bb15.predecessors.push(bb13);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Add64);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r14);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbx, 72);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createRelCond(AboveOrEqual);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r8);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    bb15.append(inst);
    inst = new Inst(Move);
    arg = Arg.createIndex(Reg.r12, Reg.rax, 8, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(MoveConditionallyTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createImm(-1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Xor64);
    arg = Arg.createImm(6);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(-2);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb15.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb15.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb15.append(inst);
    bb16.predecessors.push(bb11);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb16.append(inst);
    inst = new Inst(Oops);
    bb16.append(inst);
    bb17.successors.push(new FrequentedBlock(bb18, Normal));
    bb17.successors.push(new FrequentedBlock(bb19, Normal));
    bb17.predecessors.push(bb15);
    inst = new Inst(Branch32);
    arg = Arg.createRelCond(GreaterThanOrEqual);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createImm(48);
    inst.args.push(arg);
    bb17.append(inst);
    bb18.successors.push(new FrequentedBlock(bb10, Normal));
    bb18.successors.push(new FrequentedBlock(bb19, Normal));
    bb18.predecessors.push(bb17);
    inst = new Inst(Branch32);
    arg = Arg.createRelCond(LessThanOrEqual);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createImm(57);
    inst.args.push(arg);
    bb18.append(inst);
    bb19.successors.push(new FrequentedBlock(bb20, Normal));
    bb19.successors.push(new FrequentedBlock(bb21, Normal));
    bb19.predecessors.push(bb17);
    bb19.predecessors.push(bb18);
    inst = new Inst(Branch32);
    arg = Arg.createRelCond(GreaterThanOrEqual);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createImm(128);
    inst.args.push(arg);
    bb19.append(inst);
    bb20.predecessors.push(bb19);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb20.append(inst);
    inst = new Inst(Oops);
    bb20.append(inst);
    bb21.successors.push(new FrequentedBlock(bb22, Normal));
    bb21.successors.push(new FrequentedBlock(bb23, Normal));
    bb21.predecessors.push(bb19);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    bb21.append(inst);
    inst = new Inst(Branch32);
    arg = Arg.createRelCond(Equal);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createImm(92);
    inst.args.push(arg);
    bb21.append(inst);
    bb22.predecessors.push(bb21);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createStack(slot5, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb22.append(inst);
    inst = new Inst(Oops);
    bb22.append(inst);
    bb23.successors.push(new FrequentedBlock(bb2, Rare));
    bb23.successors.push(new FrequentedBlock(bb24, Normal));
    bb23.predecessors.push(bb21);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rbx, 48);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(155021568, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createCallArg(8);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createImm(3);
    inst.args.push(arg);
    arg = Arg.createCallArg(16);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r10);
    inst.args.push(arg);
    arg = Arg.createCallArg(24);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createCallArg(32);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r11);
    inst.args.push(arg);
    arg = Arg.createCallArg(40);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createCallArg(8);
    inst.args.push(arg);
    arg = Arg.createCallArg(16);
    inst.args.push(arg);
    arg = Arg.createCallArg(24);
    inst.args.push(arg);
    arg = Arg.createCallArg(32);
    inst.args.push(arg);
    arg = Arg.createCallArg(40);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r14);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.extraEarlyClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.rcx);
    inst.extraClobberedRegs.add(Reg.rdx);
    inst.extraClobberedRegs.add(Reg.rsi);
    inst.extraClobberedRegs.add(Reg.rdi);
    inst.extraClobberedRegs.add(Reg.r8);
    inst.extraClobberedRegs.add(Reg.r9);
    inst.extraClobberedRegs.add(Reg.r10);
    inst.extraClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.xmm0);
    inst.extraClobberedRegs.add(Reg.xmm1);
    inst.extraClobberedRegs.add(Reg.xmm2);
    inst.extraClobberedRegs.add(Reg.xmm3);
    inst.extraClobberedRegs.add(Reg.xmm4);
    inst.extraClobberedRegs.add(Reg.xmm5);
    inst.extraClobberedRegs.add(Reg.xmm6);
    inst.extraClobberedRegs.add(Reg.xmm7);
    inst.extraClobberedRegs.add(Reg.xmm8);
    inst.extraClobberedRegs.add(Reg.xmm9);
    inst.extraClobberedRegs.add(Reg.xmm10);
    inst.extraClobberedRegs.add(Reg.xmm11);
    inst.extraClobberedRegs.add(Reg.xmm12);
    inst.extraClobberedRegs.add(Reg.xmm13);
    inst.extraClobberedRegs.add(Reg.xmm14);
    inst.extraClobberedRegs.add(Reg.xmm15);
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(155041288, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rax, 0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.rax, -1336);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createAddr(Reg.r13, 24);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    arg = Arg.createStack(slot0, 0);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createImm(2);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbp, 36);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(108356304, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createStack(slot3, 0);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rbp);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.xmm0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.extraClobberedRegs.add(Reg.rcx);
    inst.extraClobberedRegs.add(Reg.rsi);
    inst.extraClobberedRegs.add(Reg.rdi);
    inst.extraClobberedRegs.add(Reg.r8);
    inst.extraClobberedRegs.add(Reg.r9);
    inst.extraClobberedRegs.add(Reg.r10);
    inst.extraClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.xmm1);
    inst.extraClobberedRegs.add(Reg.xmm2);
    inst.extraClobberedRegs.add(Reg.xmm3);
    inst.extraClobberedRegs.add(Reg.xmm4);
    inst.extraClobberedRegs.add(Reg.xmm5);
    inst.extraClobberedRegs.add(Reg.xmm6);
    inst.extraClobberedRegs.add(Reg.xmm7);
    inst.extraClobberedRegs.add(Reg.xmm8);
    inst.extraClobberedRegs.add(Reg.xmm9);
    inst.extraClobberedRegs.add(Reg.xmm10);
    inst.extraClobberedRegs.add(Reg.xmm11);
    inst.extraClobberedRegs.add(Reg.xmm12);
    inst.extraClobberedRegs.add(Reg.xmm13);
    inst.extraClobberedRegs.add(Reg.xmm14);
    inst.extraClobberedRegs.add(Reg.xmm15);
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: FP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb23.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(129987312, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb23.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rcx, 0);
    inst.args.push(arg);
    arg = Arg.createImm(-1);
    inst.args.push(arg);
    bb23.append(inst);
    bb24.successors.push(new FrequentedBlock(bb25, Normal));
    bb24.successors.push(new FrequentedBlock(bb26, Normal));
    bb24.predecessors.push(bb23);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r13);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb24.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    bb24.append(inst);
    bb25.successors.push(new FrequentedBlock(bb27, Normal));
    bb25.successors.push(new FrequentedBlock(bb26, Normal));
    bb25.predecessors.push(bb24);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb25.append(inst);
    inst = new Inst(And64);
    arg = Arg.createImm(-9);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb25.append(inst);
    inst = new Inst(Branch64);
    arg = Arg.createRelCond(Equal);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createImm(2);
    inst.args.push(arg);
    bb25.append(inst);
    bb26.successors.push(new FrequentedBlock(bb29, Normal));
    bb26.successors.push(new FrequentedBlock(bb28, Normal));
    bb26.predecessors.push(bb24);
    bb26.predecessors.push(bb25);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    bb26.append(inst);
    bb27.successors.push(new FrequentedBlock(bb30, Normal));
    bb27.predecessors.push(bb25);
    inst = new Inst(Move);
    arg = Arg.createImm(2);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb27.append(inst);
    inst = new Inst(Jump);
    bb27.append(inst);
    bb28.successors.push(new FrequentedBlock(bb32, Normal));
    bb28.predecessors.push(bb26);
    inst = new Inst(Jump);
    bb28.append(inst);
    bb29.successors.push(new FrequentedBlock(bb30, Normal));
    bb29.predecessors.push(bb26);
    inst = new Inst(Jump);
    bb29.append(inst);
    bb30.successors.push(new FrequentedBlock(bb34, Normal));
    bb30.successors.push(new FrequentedBlock(bb31, Normal));
    bb30.predecessors.push(bb29);
    bb30.predecessors.push(bb27);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb30.append(inst);
    inst = new Inst(And64);
    arg = Arg.createImm(-9);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb30.append(inst);
    inst = new Inst(Branch64);
    arg = Arg.createRelCond(Equal);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createImm(2);
    inst.args.push(arg);
    bb30.append(inst);
    bb31.successors.push(new FrequentedBlock(bb32, Normal));
    bb31.predecessors.push(bb30);
    inst = new Inst(Jump);
    bb31.append(inst);
    bb32.successors.push(new FrequentedBlock(bb3, Rare));
    bb32.successors.push(new FrequentedBlock(bb33, Normal));
    bb32.predecessors.push(bb28);
    bb32.predecessors.push(bb31);
    inst = new Inst(Move32);
    arg = Arg.createImm(3);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rbp, 36);
    inst.args.push(arg);
    bb32.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(154991632, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb32.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    bb32.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    bb32.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rbp);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    bb32.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createBigImm(108356304, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.xmm0);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rsi);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rdx);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.extraClobberedRegs.add(Reg.rcx);
    inst.extraClobberedRegs.add(Reg.rsi);
    inst.extraClobberedRegs.add(Reg.rdi);
    inst.extraClobberedRegs.add(Reg.r8);
    inst.extraClobberedRegs.add(Reg.r9);
    inst.extraClobberedRegs.add(Reg.r10);
    inst.extraClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.xmm1);
    inst.extraClobberedRegs.add(Reg.xmm2);
    inst.extraClobberedRegs.add(Reg.xmm3);
    inst.extraClobberedRegs.add(Reg.xmm4);
    inst.extraClobberedRegs.add(Reg.xmm5);
    inst.extraClobberedRegs.add(Reg.xmm6);
    inst.extraClobberedRegs.add(Reg.xmm7);
    inst.extraClobberedRegs.add(Reg.xmm8);
    inst.extraClobberedRegs.add(Reg.xmm9);
    inst.extraClobberedRegs.add(Reg.xmm10);
    inst.extraClobberedRegs.add(Reg.xmm11);
    inst.extraClobberedRegs.add(Reg.xmm12);
    inst.extraClobberedRegs.add(Reg.xmm13);
    inst.extraClobberedRegs.add(Reg.xmm14);
    inst.extraClobberedRegs.add(Reg.xmm15);
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: FP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb32.append(inst);
    inst = new Inst(Move);
    arg = Arg.createBigImm(129987312, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rcx);
    inst.args.push(arg);
    bb32.append(inst);
    inst = new Inst(BranchTest64);
    arg = Arg.createResCond(NonZero);
    inst.args.push(arg);
    arg = Arg.createAddr(Reg.rcx, 0);
    inst.args.push(arg);
    arg = Arg.createImm(-1);
    inst.args.push(arg);
    bb32.append(inst);
    bb33.predecessors.push(bb32);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb33.append(inst);
    inst = new Inst(Ret64);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb33.append(inst);
    bb34.predecessors.push(bb30);
    inst = new Inst(Move);
    arg = Arg.createBigImm(153835296, 1);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb34.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createCallArg(8);
    inst.args.push(arg);
    bb34.append(inst);
    inst = new Inst(Move32);
    arg = Arg.createImm(3);
    inst.args.push(arg);
    arg = Arg.createCallArg(16);
    inst.args.push(arg);
    bb34.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createCallArg(24);
    inst.args.push(arg);
    bb34.append(inst);
    inst = new Inst(Move);
    arg = Arg.createTmp(Reg.r12);
    inst.args.push(arg);
    arg = Arg.createCallArg(32);
    inst.args.push(arg);
    bb34.append(inst);
    inst = new Inst(Move);
    arg = Arg.createImm(6);
    inst.args.push(arg);
    arg = Arg.createCallArg(40);
    inst.args.push(arg);
    bb34.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    arg = Arg.createCallArg(8);
    inst.args.push(arg);
    arg = Arg.createCallArg(16);
    inst.args.push(arg);
    arg = Arg.createCallArg(24);
    inst.args.push(arg);
    arg = Arg.createCallArg(32);
    inst.args.push(arg);
    arg = Arg.createCallArg(40);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r15);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.r14);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.extraEarlyClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.rcx);
    inst.extraClobberedRegs.add(Reg.rdx);
    inst.extraClobberedRegs.add(Reg.rsi);
    inst.extraClobberedRegs.add(Reg.rdi);
    inst.extraClobberedRegs.add(Reg.r8);
    inst.extraClobberedRegs.add(Reg.r9);
    inst.extraClobberedRegs.add(Reg.r10);
    inst.extraClobberedRegs.add(Reg.r11);
    inst.extraClobberedRegs.add(Reg.xmm0);
    inst.extraClobberedRegs.add(Reg.xmm1);
    inst.extraClobberedRegs.add(Reg.xmm2);
    inst.extraClobberedRegs.add(Reg.xmm3);
    inst.extraClobberedRegs.add(Reg.xmm4);
    inst.extraClobberedRegs.add(Reg.xmm5);
    inst.extraClobberedRegs.add(Reg.xmm6);
    inst.extraClobberedRegs.add(Reg.xmm7);
    inst.extraClobberedRegs.add(Reg.xmm8);
    inst.extraClobberedRegs.add(Reg.xmm9);
    inst.extraClobberedRegs.add(Reg.xmm10);
    inst.extraClobberedRegs.add(Reg.xmm11);
    inst.extraClobberedRegs.add(Reg.xmm12);
    inst.extraClobberedRegs.add(Reg.xmm13);
    inst.extraClobberedRegs.add(Reg.xmm14);
    inst.extraClobberedRegs.add(Reg.xmm15);
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Def, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 32});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    bb34.append(inst);
    inst = new Inst(Patch);
    arg = Arg.createSpecial();
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rbx);
    inst.args.push(arg);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    inst.patchHasNonArgEffects = true;
    inst.extraEarlyClobberedRegs = new Set();
    inst.extraClobberedRegs = new Set();
    inst.patchArgData = [];
    inst.patchArgData.push({role: Arg.Use, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
    bb34.append(inst);
    inst = new Inst(Ret64);
    arg = Arg.createTmp(Reg.rax);
    inst.args.push(arg);
    bb34.append(inst);
    return code;
}
