text: "use strict";
  // Generated by Air::dumpAsJS from gaussianBlur#A8vcYg in Kraken/imaging-gaussian-blur
  function createPayloadImagingGaussianBlurGaussianBlur()
  {
      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 bb35 = code.addBlock();
      let bb36 = code.addBlock();
      let slot0 = code.addStackSlot(40, Locked);
      let slot1 = code.addStackSlot(8, Spill);
      let slot2 = code.addStackSlot(8, Spill);
      let slot3 = code.addStackSlot(4, Spill);
      let slot4 = code.addStackSlot(8, Spill);
      let slot5 = code.addStackSlot(8, Spill);
      let slot6 = code.addStackSlot(40, Locked);
      slot6.setOffsetFromFP(-40);
      let tmp141 = code.newTmp(GP);
      let tmp140 = code.newTmp(GP);
      let tmp139 = code.newTmp(GP);
      let tmp138 = code.newTmp(GP);
      let tmp137 = code.newTmp(GP);
      let tmp136 = code.newTmp(GP);
      let tmp135 = code.newTmp(GP);
      let tmp134 = code.newTmp(GP);
      let tmp133 = code.newTmp(GP);
      let tmp132 = code.newTmp(GP);
      let tmp131 = code.newTmp(GP);
      let tmp130 = code.newTmp(GP);
      let tmp129 = code.newTmp(GP);
      let tmp128 = code.newTmp(GP);
      let tmp127 = code.newTmp(GP);
      let tmp126 = code.newTmp(GP);
      let tmp125 = code.newTmp(GP);
      let tmp124 = code.newTmp(GP);
      let tmp123 = code.newTmp(GP);
      let tmp122 = code.newTmp(GP);
      let tmp121 = code.newTmp(GP);
      let tmp120 = code.newTmp(GP);
      let tmp119 = code.newTmp(GP);
      let tmp118 = code.newTmp(GP);
      let tmp117 = code.newTmp(GP);
      let tmp116 = code.newTmp(GP);
      let tmp115 = code.newTmp(GP);
      let tmp114 = code.newTmp(GP);
      let tmp113 = code.newTmp(GP);
      let tmp112 = code.newTmp(GP);
      let tmp111 = code.newTmp(GP);
      let tmp110 = code.newTmp(GP);
      let tmp109 = code.newTmp(GP);
      let tmp108 = code.newTmp(GP);
      let tmp107 = code.newTmp(GP);
      let tmp106 = code.newTmp(GP);
      let tmp105 = code.newTmp(GP);
      let tmp104 = code.newTmp(GP);
      let tmp103 = code.newTmp(GP);
      let tmp102 = code.newTmp(GP);
      let tmp101 = code.newTmp(GP);
      let tmp100 = code.newTmp(GP);
      let tmp99 = code.newTmp(GP);
      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 ftmp74 = code.newTmp(FP);
      let ftmp73 = code.newTmp(FP);
      let ftmp72 = code.newTmp(FP);
      let ftmp71 = code.newTmp(FP);
      let ftmp70 = code.newTmp(FP);
      let ftmp69 = code.newTmp(FP);
      let ftmp68 = code.newTmp(FP);
      let ftmp67 = code.newTmp(FP);
      let ftmp66 = code.newTmp(FP);
      let ftmp65 = code.newTmp(FP);
      let ftmp64 = code.newTmp(FP);
      let ftmp63 = code.newTmp(FP);
      let ftmp62 = code.newTmp(FP);
      let ftmp61 = code.newTmp(FP);
      let ftmp60 = code.newTmp(FP);
      let ftmp59 = code.newTmp(FP);
      let ftmp58 = code.newTmp(FP);
      let ftmp57 = code.newTmp(FP);
      let ftmp56 = code.newTmp(FP);
      let ftmp55 = code.newTmp(FP);
      let ftmp54 = code.newTmp(FP);
      let ftmp53 = code.newTmp(FP);
      let ftmp52 = code.newTmp(FP);
      let ftmp51 = code.newTmp(FP);
      let ftmp50 = code.newTmp(FP);
      let ftmp49 = code.newTmp(FP);
      let ftmp48 = code.newTmp(FP);
      let ftmp47 = code.newTmp(FP);
      let ftmp46 = code.newTmp(FP);
      let ftmp45 = code.newTmp(FP);
      let ftmp44 = code.newTmp(FP);
      let ftmp43 = code.newTmp(FP);
      let ftmp42 = code.newTmp(FP);
      let ftmp41 = code.newTmp(FP);
      let ftmp40 = code.newTmp(FP);
      let ftmp39 = code.newTmp(FP);
      let ftmp38 = code.newTmp(FP);
      let ftmp37 = code.newTmp(FP);
      let ftmp36 = code.newTmp(FP);
      let ftmp35 = code.newTmp(FP);
      let ftmp34 = code.newTmp(FP);
      let ftmp33 = code.newTmp(FP);
      let ftmp32 = code.newTmp(FP);
      let ftmp31 = code.newTmp(FP);
      let ftmp30 = code.newTmp(FP);
      let ftmp29 = code.newTmp(FP);
      let ftmp28 = code.newTmp(FP);
      let ftmp27 = code.newTmp(FP);
      let ftmp26 = code.newTmp(FP);
      let ftmp25 = code.newTmp(FP);
      let ftmp24 = code.newTmp(FP);
      let ftmp23 = code.newTmp(FP);
      let ftmp22 = code.newTmp(FP);
      let ftmp21 = code.newTmp(FP);
      let ftmp20 = code.newTmp(FP);
      let ftmp19 = code.newTmp(FP);
      let ftmp18 = code.newTmp(FP);
      let ftmp17 = code.newTmp(FP);
      let ftmp16 = code.newTmp(FP);
      let ftmp15 = code.newTmp(FP);
      let ftmp14 = code.newTmp(FP);
      let ftmp13 = code.newTmp(FP);
      let ftmp12 = code.newTmp(FP);
      let ftmp11 = code.newTmp(FP);
      let ftmp10 = code.newTmp(FP);
      let ftmp9 = code.newTmp(FP);
      let ftmp8 = code.newTmp(FP);
      let ftmp7 = code.newTmp(FP);
      let ftmp6 = code.newTmp(FP);
      let ftmp5 = code.newTmp(FP);
      let ftmp4 = code.newTmp(FP);
      let ftmp3 = code.newTmp(FP);
      let ftmp2 = code.newTmp(FP);
      let ftmp1 = code.newTmp(FP);
      let ftmp0 = code.newTmp(FP);
      let inst;
      let arg;
      bb0.successors.push(new FrequentedBlock(bb2, Normal));
      bb0.successors.push(new FrequentedBlock(bb1, Rare));
      inst = new Inst(Move);
      arg = Arg.createBigImm(144305904, 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.createBigImm(142547168, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.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);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547184, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rax, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547192, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rax, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547200, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rax, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547208, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rax, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547216, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rax, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547224, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rax, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547232, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb0.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);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(142547240, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rdi, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(0, -65536);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Add64);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(Move64ToDouble);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      bb0.append(inst);
      inst = new Inst(BranchDouble);
      arg = Arg.createDoubleCond(DoubleEqual);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      bb0.append(inst);
      bb1.successors.push(new FrequentedBlock(bb2, Normal));
      bb1.predecessors.push(bb0);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb1.append(inst);
      inst = new Inst(ConvertInt32ToDouble);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      bb1.append(inst);
      inst = new Inst(Jump);
      bb1.append(inst);
      bb2.successors.push(new FrequentedBlock(bb4, Normal));
      bb2.successors.push(new FrequentedBlock(bb3, Rare));
      bb2.predecessors.push(bb0);
      bb2.predecessors.push(bb1);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb2.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb2.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb2.append(inst);
      inst = new Inst(Add64);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb2.append(inst);
      inst = new Inst(Move64ToDouble);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      bb2.append(inst);
      inst = new Inst(BranchDouble);
      arg = Arg.createDoubleCond(DoubleEqual);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      bb2.append(inst);
      bb3.successors.push(new FrequentedBlock(bb4, Normal));
      bb3.predecessors.push(bb2);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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: 64});
      bb3.append(inst);
      inst = new Inst(ConvertInt32ToDouble);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      bb3.append(inst);
      inst = new Inst(Jump);
      bb3.append(inst);
      bb4.successors.push(new FrequentedBlock(bb6, Normal));
      bb4.successors.push(new FrequentedBlock(bb5, Rare));
      bb4.predecessors.push(bb2);
      bb4.predecessors.push(bb3);
      inst = new Inst(Add64);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb4.append(inst);
      inst = new Inst(Move64ToDouble);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      bb4.append(inst);
      inst = new Inst(BranchDouble);
      arg = Arg.createDoubleCond(DoubleEqual);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      bb4.append(inst);
      bb5.successors.push(new FrequentedBlock(bb6, Normal));
      bb5.predecessors.push(bb4);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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: 64});
      bb5.append(inst);
      inst = new Inst(ConvertInt32ToDouble);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      bb5.append(inst);
      inst = new Inst(Jump);
      bb5.append(inst);
      bb6.successors.push(new FrequentedBlock(bb8, Normal));
      bb6.successors.push(new FrequentedBlock(bb7, Rare));
      bb6.predecessors.push(bb4);
      bb6.predecessors.push(bb5);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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: 64});
      bb6.append(inst);
      inst = new Inst(Add64);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb6.append(inst);
      inst = new Inst(Move64ToDouble);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      bb6.append(inst);
      inst = new Inst(BranchDouble);
      arg = Arg.createDoubleCond(DoubleEqual);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      bb6.append(inst);
      bb7.successors.push(new FrequentedBlock(bb8, Normal));
      bb7.predecessors.push(bb6);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      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.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb7.append(inst);
      inst = new Inst(ConvertInt32ToDouble);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      bb7.append(inst);
      inst = new Inst(Jump);
      bb7.append(inst);
      bb8.successors.push(new FrequentedBlock(bb10, Normal));
      bb8.successors.push(new FrequentedBlock(bb9, Rare));
      bb8.predecessors.push(bb6);
      bb8.predecessors.push(bb7);
      inst = new Inst(Move);
      arg = Arg.createBigImm(117076488, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb8.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.r8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r9);
      inst.args.push(arg);
      bb8.append(inst);
      inst = new Inst(Add64);
      arg = Arg.createTmp(Reg.r9);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb8.append(inst);
      inst = new Inst(Move64ToDouble);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      bb8.append(inst);
      inst = new Inst(BranchDouble);
      arg = Arg.createDoubleCond(DoubleEqual);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      bb8.append(inst);
      bb9.successors.push(new FrequentedBlock(bb10, Normal));
      bb9.predecessors.push(bb8);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(Below);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r9);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r9);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb9.append(inst);
      inst = new Inst(ConvertInt32ToDouble);
      arg = Arg.createTmp(Reg.r9);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      bb9.append(inst);
      inst = new Inst(Jump);
      bb9.append(inst);
      bb10.successors.push(new FrequentedBlock(bb18, Normal));
      bb10.predecessors.push(bb8);
      bb10.predecessors.push(bb9);
      inst = new Inst(Move);
      arg = Arg.createBigImm(144506584, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rdi, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r9);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createAddr(Reg.r9, -8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(144506544, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb10.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.rdi, 0);
      inst.args.push(arg);
      arg = Arg.createImm(80);
      inst.args.push(arg);
      arg = Arg.createBigImm(144506544, 1);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      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});
      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});
      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: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(144506552, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rdi, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot2, 0);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createAddr(Reg.rdi, -8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot3, 0);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(MoveZeroToDouble);
      arg = Arg.createTmp(Reg.xmm7);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createImm(10);
      inst.args.push(arg);
      arg = Arg.createStack(slot4, 0);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Move);
      arg = Arg.createBigImm(2, -65536);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      bb10.append(inst);
      inst = new Inst(Jump);
      bb10.append(inst);
      bb11.successors.push(new FrequentedBlock(bb13, Normal));
      bb11.predecessors.push(bb35);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      bb11.append(inst);
      inst = new Inst(Move);
      arg = Arg.createImm(0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      bb11.append(inst);
      inst = new Inst(Jump);
      bb11.append(inst);
      bb12.successors.push(new FrequentedBlock(bb13, Normal));
      bb12.predecessors.push(bb34);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      bb12.append(inst);
      inst = new Inst(Jump);
      bb12.append(inst);
      bb13.successors.push(new FrequentedBlock(bb15, Normal));
      bb13.predecessors.push(bb11);
      bb13.predecessors.push(bb12);
      inst = new Inst(Move);
      arg = Arg.createImm(-6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb13.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm7);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      bb13.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm7);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      bb13.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm7);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      bb13.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm7);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      bb13.append(inst);
      inst = new Inst(Jump);
      bb13.append(inst);
      bb14.successors.push(new FrequentedBlock(bb15, Normal));
      bb14.predecessors.push(bb31);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rsi);
      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(bb28, Normal));
      bb15.successors.push(new FrequentedBlock(bb16, Normal));
      bb15.predecessors.push(bb13);
      bb15.predecessors.push(bb14);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb15.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.createImm(0);
      inst.args.push(arg);
      bb15.append(inst);
      bb16.successors.push(new FrequentedBlock(bb29, Normal));
      bb16.successors.push(new FrequentedBlock(bb17, Normal));
      bb16.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(267);
      inst.args.push(arg);
      bb16.append(inst);
      bb17.successors.push(new FrequentedBlock(bb18, Normal));
      bb17.predecessors.push(bb16);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb17.append(inst);
      inst = new Inst(Move);
      arg = Arg.createImm(-6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      bb17.append(inst);
      inst = new Inst(Jump);
      bb17.append(inst);
      bb18.successors.push(new FrequentedBlock(bb20, Normal));
      bb18.successors.push(new FrequentedBlock(bb19, Rare));
      bb18.predecessors.push(bb10);
      bb18.predecessors.push(bb17);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      bb18.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb18.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createImm(400);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb18.append(inst);
      inst = new Inst(BranchTest32);
      arg = Arg.createResCond(NonZero);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      bb18.append(inst);
      bb19.successors.push(new FrequentedBlock(bb20, Normal));
      bb19.predecessors.push(bb18);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(LessThan);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createImm(0);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb19.append(inst);
      inst = new Inst(Jump);
      bb19.append(inst);
      bb20.successors.push(new FrequentedBlock(bb22, Normal));
      bb20.predecessors.push(bb18);
      bb20.predecessors.push(bb19);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Rshift32);
      arg = Arg.createImm(31);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Xor32);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(LessThan);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createImm(0);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb20.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.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot3, 0);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb20.append(inst);
      inst = new Inst(Move);
      arg = Arg.createStack(slot2, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Move);
      arg = Arg.createIndex(Reg.rsi, Reg.rdi, 8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Move);
      arg = Arg.createImm(10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(MoveConditionallyTest64);
      arg = Arg.createResCond(NonZero);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      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.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb20.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.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r10);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb20.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.rdi, 0);
      inst.args.push(arg);
      arg = Arg.createImm(79);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb20.append(inst);
      inst = new Inst(Move);
      arg = Arg.createAddr(Reg.rdi, 8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r12);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createAddr(Reg.r12, -8);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r13);
      inst.args.push(arg);
      bb20.append(inst);
      inst = new Inst(Jump);
      bb20.append(inst);
      bb21.successors.push(new FrequentedBlock(bb22, Normal));
      bb21.predecessors.push(bb27);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      bb21.append(inst);
      inst = new Inst(Jump);
      bb21.append(inst);
      bb22.successors.push(new FrequentedBlock(bb25, Normal));
      bb22.successors.push(new FrequentedBlock(bb23, Normal));
      bb22.predecessors.push(bb20);
      bb22.predecessors.push(bb21);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      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.rsi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb22.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.createImm(0);
      inst.args.push(arg);
      bb22.append(inst);
      bb23.successors.push(new FrequentedBlock(bb26, Normal));
      bb23.successors.push(new FrequentedBlock(bb24, Normal));
      bb23.predecessors.push(bb22);
      inst = new Inst(Branch32);
      arg = Arg.createRelCond(GreaterThanOrEqual);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createImm(400);
      inst.args.push(arg);
      bb23.append(inst);
      bb24.successors.push(new FrequentedBlock(bb27, Normal));
      bb24.predecessors.push(bb23);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      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.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      bb24.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      arg = Arg.createImm(4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      bb24.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createImm(3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r14);
      inst.args.push(arg);
      bb24.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.r15);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      bb24.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.r14);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      bb24.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createIndex(Reg.r9, Reg.r15, 8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Rshift32);
      arg = Arg.createImm(31);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Xor32);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(LessThan);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rbx);
      inst.args.push(arg);
      arg = Arg.createImm(0);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      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.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.Use, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      bb24.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.rbx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r13);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      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.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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      bb24.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createIndex(Reg.r12, Reg.rbx, 8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(MulDouble);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(AddDouble);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createImm(1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(MulDouble);
      arg = Arg.createIndex(Reg.r9, Reg.rsi, 8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(AddDouble);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createImm(2);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r15);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(MulDouble);
      arg = Arg.createIndex(Reg.r9, Reg.r15, 8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(AddDouble);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(MulDouble);
      arg = Arg.createIndex(Reg.r9, Reg.r14, 8, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(AddDouble);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      bb24.append(inst);
      inst = new Inst(Jump);
      bb24.append(inst);
      bb25.successors.push(new FrequentedBlock(bb27, Normal));
      bb25.predecessors.push(bb22);
      inst = new Inst(Jump);
      bb25.append(inst);
      bb26.successors.push(new FrequentedBlock(bb27, Normal));
      bb26.predecessors.push(bb23);
      inst = new Inst(Jump);
      bb26.append(inst);
      bb27.successors.push(new FrequentedBlock(bb21, Normal));
      bb27.successors.push(new FrequentedBlock(bb30, Normal));
      bb27.predecessors.push(bb24);
      bb27.predecessors.push(bb26);
      bb27.predecessors.push(bb25);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb27.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.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb27.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.createImm(7);
      inst.args.push(arg);
      bb27.append(inst);
      bb28.successors.push(new FrequentedBlock(bb31, Normal));
      bb28.predecessors.push(bb15);
      inst = new Inst(Jump);
      bb28.append(inst);
      bb29.successors.push(new FrequentedBlock(bb31, Normal));
      bb29.predecessors.push(bb16);
      inst = new Inst(Jump);
      bb29.append(inst);
      bb30.successors.push(new FrequentedBlock(bb31, Normal));
      bb30.predecessors.push(bb27);
      inst = new Inst(Move);
      arg = Arg.createStack(slot1, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      bb30.append(inst);
      inst = new Inst(Jump);
      bb30.append(inst);
      bb31.successors.push(new FrequentedBlock(bb14, Normal));
      bb31.successors.push(new FrequentedBlock(bb32, Normal));
      bb31.predecessors.push(bb30);
      bb31.predecessors.push(bb29);
      bb31.predecessors.push(bb28);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb31.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.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb31.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.createImm(7);
      inst.args.push(arg);
      bb31.append(inst);
      bb32.successors.push(new FrequentedBlock(bb34, Normal));
      bb32.successors.push(new FrequentedBlock(bb33, Rare));
      bb32.predecessors.push(bb31);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createImm(400);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      bb32.append(inst);
      inst = new Inst(BranchTest32);
      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);
      bb32.append(inst);
      bb33.successors.push(new FrequentedBlock(bb34, Normal));
      bb33.predecessors.push(bb32);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createRelCond(LessThan);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createImm(0);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb33.append(inst);
      inst = new Inst(Jump);
      bb33.append(inst);
      bb34.successors.push(new FrequentedBlock(bb12, Normal));
      bb34.successors.push(new FrequentedBlock(bb35, Normal));
      bb34.predecessors.push(bb32);
      bb34.predecessors.push(bb33);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      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.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      bb34.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createResCond(Overflow);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createImm(4);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      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.ZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      bb34.append(inst);
      inst = new Inst(DivDouble);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      bb34.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.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createDoubleCond(DoubleNotEqualOrUnordered);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm1);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.Use, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm1);
      inst.args.push(arg);
      arg = Arg.createIndex(Reg.r9, Reg.rsi, 8, 0);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      bb34.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.rdi);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      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.UseZDef, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.LateColdUse, type: GP, width: 32});
      bb34.append(inst);
      inst = new Inst(DivDouble);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createImm(1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r11);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createImm(3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb34.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.r11);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.r8);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.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.createStack(slot5, 0);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createDoubleCond(DoubleNotEqualOrUnordered);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      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.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rdi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm2);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.Use, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, 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});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm2);
      inst.args.push(arg);
      arg = Arg.createIndex(Reg.r9, Reg.rdi, 8, 0);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Add32);
      arg = Arg.createImm(2);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(DivDouble);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createDoubleCond(DoubleNotEqualOrUnordered);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      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.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rsi);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm3);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.Use, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, 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});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm3);
      inst.args.push(arg);
      arg = Arg.createIndex(Reg.r9, Reg.rsi, 8, 0);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(DivDouble);
      arg = Arg.createTmp(Reg.xmm6);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Patch);
      arg = Arg.createSpecial();
      inst.args.push(arg);
      arg = Arg.createDoubleCond(DoubleNotEqualOrUnordered);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createStack(slot5, 0);
      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.xmm5);
      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: FP, width: 64});
      inst.patchArgData.push({role: Arg.Use, type: FP, width: 64});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, 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});
      inst.patchArgData.push({role: Arg.ColdUse, type: GP, width: 32});
      inst.patchArgData.push({role: Arg.ColdUse, type: FP, width: 64});
      bb34.append(inst);
      inst = new Inst(MoveDouble);
      arg = Arg.createTmp(Reg.xmm5);
      inst.args.push(arg);
      arg = Arg.createIndex(Reg.r9, Reg.rax, 8, 0);
      inst.args.push(arg);
      bb34.append(inst);
      inst = new Inst(Move32);
      arg = Arg.createTmp(Reg.rdx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb34.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.createStack(slot5, 0);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rcx);
      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: 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: 32});
      bb34.append(inst);
      inst = new Inst(Branch32);
      arg = Arg.createRelCond(LessThan);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createImm(400);
      inst.args.push(arg);
      bb34.append(inst);
      bb35.successors.push(new FrequentedBlock(bb11, Normal));
      bb35.successors.push(new FrequentedBlock(bb36, Normal));
      bb35.predecessors.push(bb34);
      inst = new Inst(Move);
      arg = Arg.createTmp(Reg.rcx);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb35.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.createStack(slot5, 0);
      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});
      bb35.append(inst);
      inst = new Inst(Branch32);
      arg = Arg.createRelCond(LessThan);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      arg = Arg.createImm(267);
      inst.args.push(arg);
      bb35.append(inst);
      bb36.predecessors.push(bb35);
      inst = new Inst(Move);
      arg = Arg.createBigImm(144506576, 1);
      inst.args.push(arg);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb36.append(inst);
      inst = new Inst(Ret64);
      arg = Arg.createTmp(Reg.rax);
      inst.args.push(arg);
      bb36.append(inst);
      return code;
  }
  