diff --git a/bench/benches/primitives/rc2_cbc.rs b/bench/benches/primitives/rc2_cbc.rs index 014ee0a15..00eff2d70 100644 --- a/bench/benches/primitives/rc2_cbc.rs +++ b/bench/benches/primitives/rc2_cbc.rs @@ -3,7 +3,7 @@ use criterion::Criterion; /// The library modules whose code these benchmarks run. -pub const USES: &[&str] = &["rc2_cbc"]; +pub const USES: &[&str] = &["rc2_cbc", "rc2"]; #[cfg(any( target_arch = "x86_64", diff --git a/ci/bench_arches.py b/ci/bench_arches.py index da0356174..2cd598bb4 100644 --- a/ci/bench_arches.py +++ b/ci/bench_arches.py @@ -47,7 +47,7 @@ "arm": { "os": "ubuntu-24.04-arm", "image": "ghcr.io/pyca/cryptography-runner-ubuntu-rolling:armv7l", - "options": "--env RUSTUP_HOME=/root/.rustup", + "options": "--env RUSTUP_HOME=/tmp/verified-garbage-rustup", }, } diff --git a/lean/VerifiedGarbage/Artifacts/Rc2/X86_64.lean b/lean/VerifiedGarbage/Artifacts/Rc2/X86_64.lean index 2abe94ffd..fd63d8743 100644 --- a/lean/VerifiedGarbage/Artifacts/Rc2/X86_64.lean +++ b/lean/VerifiedGarbage/Artifacts/Rc2/X86_64.lean @@ -39,7 +39,7 @@ def artifacts : List Artifact := [ { Spec.Rc2.encryptBlockApi with target := X86_64.target doc := Spec.Rc2.encryptBlockApi.doc - (notes := ["Baseline x86-64. Mashing scans all 64 schedule words in a fixed order."]) + (notes := ["Baseline x86-64 SSE2. Mashing scans all 64 schedule words in a fixed order, eight words per vector."]) code := Impl.Rc2.X86_64.encryptBlock contract := Spec.Rc2.encryptBlockContract X86_64.abi stack := 0 @@ -48,7 +48,7 @@ def artifacts : List Artifact := [ { Spec.Rc2.decryptBlockApi with target := X86_64.target doc := Spec.Rc2.decryptBlockApi.doc - (notes := ["Baseline x86-64. Reverse mashing scans all 64 schedule words in a fixed order."]) + (notes := ["Baseline x86-64 SSE2. Reverse mashing scans all 64 schedule words in a fixed order, eight words per vector."]) code := Impl.Rc2.X86_64.decryptBlock contract := Spec.Rc2.decryptBlockContract X86_64.abi stack := 0 diff --git a/lean/VerifiedGarbage/Impl/Rc2/X86_64/Block.lean b/lean/VerifiedGarbage/Impl/Rc2/X86_64/Block.lean index a1c09ad79..bfa4c6015 100644 --- a/lean/VerifiedGarbage/Impl/Rc2/X86_64/Block.lean +++ b/lean/VerifiedGarbage/Impl/Rc2/X86_64/Block.lean @@ -1,4 +1,4 @@ -import VerifiedGarbage.Impl.Rc2.X86_64.Lookup +import VerifiedGarbage.Impl.Rc2.X86_64.Sse2KeyLookup /-! # RC2 block encryption and decryption on baseline x86-64 -/ @@ -48,7 +48,7 @@ def reverseMix (j i : Nat) : List Instr := .alu .and (wordReg i) (.imm 65535)] def mash (direction : Spec.Rc2.Direction) (i : Nat) : List Instr := - [rr .rax (wordReg (i + 3))] ++ keyLookup ++ + [rr .rax (wordReg (i + 3))] ++ Sse2.keyLookup ++ [.alu (if direction = .encrypt then .add else .sub) (wordReg i) (.reg .rax), .alu .and (wordReg i) (.imm 65535)] diff --git a/lean/VerifiedGarbage/Impl/Rc2/X86_64/Sse2KeyLookup.lean b/lean/VerifiedGarbage/Impl/Rc2/X86_64/Sse2KeyLookup.lean new file mode 100644 index 000000000..07221ba04 --- /dev/null +++ b/lean/VerifiedGarbage/Impl/Rc2/X86_64/Sse2KeyLookup.lean @@ -0,0 +1,15 @@ +import VerifiedGarbage.Impl.Rc2.X86_64.Sse2Lookup + +/-! # Eight-way constant-time RC2 schedule scans on baseline x86-64 -/ + +namespace VG.Impl.Rc2.X86_64.Sse2 + +open VG.X86_64 VG.Impl.Rc2.X86_64 + +def keyStep (n : Nat) : List Instr := + [.movdquLoad .xmm4 (memOp .rdi (16 * n))] ++ select + +def keyLookup : List Instr := + start .rdx 63 ++ (List.range 8).flatMap keyStep ++ finish .rdx + +end VG.Impl.Rc2.X86_64.Sse2 diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Block.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Block.lean index d05d9967d..f9746202f 100644 --- a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Block.lean +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Block.lean @@ -63,8 +63,15 @@ theorem block_correct (d : Spec.Rc2.Direction) (s : State) (hs : (blockContract intro i hi rw [h₂.2.rd, h₂.2.wr, h₂.2.reg .rdi (by decide), h₁.1, h₁.2.1, h₁.2.2.1, hrd, hwr] exact ⟨⟨s.gpr .rdi, 128⟩, by simp, Offset.contains_base _ (by omega) (by omega)⟩ + have scans₂ : ScanMemory s₂ := by + refine ⟨read₂, ?_, ?_⟩ + · intro i hi + rw [h₂.2.rd, h₂.2.wr, h₂.2.reg .rdi (by decide), h₁.1, h₁.2.1, h₁.2.2.1, hrd, hwr] + exact ⟨⟨s.gpr .rdi, 128⟩, by simp, Offset.contains_base _ (by omega) (by omega)⟩ + · rw [h₂.2.wr, h₂.2.reg .rdx (by decide), h₁.1, h₁.2.2.1, hwr] + exact ⟨⟨s.gpr .rdx, 256⟩, by simp, Offset.contains_base _ (by decide) (by decide)⟩ rw [WP.block_append_iff] - apply WP.mono (rounds_ok d s₂ _ h₂.1 read₂) + apply WP.mono (rounds_ok d s₂ _ h₂.1 scans₂) intro s₃ h₃ have keep₂₃ := h₂.2.trans h₃.2 have ptr₃ : s₃.gpr .rsi = s.gpr .rsi := (keep₂₃.reg .rsi (by decide)).trans (congrFun h₁.1 .rsi) diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Cipher.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Cipher.lean index 6e02b333c..86f7f083c 100644 --- a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Cipher.lean +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Cipher.lean @@ -9,11 +9,11 @@ open VG VG.X86_64 VG.Impl.Rc2.X86_64 theorem foldWords_ok (code : Nat → List Instr) (step : Spec.Rc2.Schedule → Nat → Spec.Rc2.State → Spec.Rc2.State) (is : List Nat) (correct : ∀ i ∈ is, ∀ (s : State) (v : Spec.Rc2.State), Words s v → - (∀ j < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 j) 1) → + (ScanMemory s) → WP isa (.block (code i)) s (fun s' => Words s' (step (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) i v) ∧ Keep roundWrites s s')) (s : State) (v : Spec.Rc2.State) (hv : Words s v) - (readable : ∀ j < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 j) 1) : + (readable : ScanMemory s) : WP isa (.block (is.flatMap code)) s (fun s' => Words s' (is.foldl (fun v i => step (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) i v) v) ∧ Keep roundWrites s s') := by @@ -26,9 +26,7 @@ theorem foldWords_ok (code : Nat → List Instr) apply WP.mono (correct i (by simp) s v hv readable) intro s₁ h₁ have ptr₁ := h₁.2.reg .rdi (by decide) - have read₁ : ∀ j < 128, - InRegions (s₁.rd ++ s₁.wr) (s₁.gpr .rdi + BitVec.ofNat 64 j) 1 := by - rw [h₁.2.rd, h₁.2.wr, ptr₁]; exact readable + have read₁ : ScanMemory s₁ := readable.keep h₁.2 (by decide) (by decide) apply WP.mono (ih (fun j hj => correct j (List.mem_cons_of_mem _ hj)) s₁ _ h₁.1 read₁) intro s₂ h₂ refine ⟨?_, h₁.2.trans h₂.2⟩ @@ -37,19 +35,19 @@ theorem foldWords_ok (code : Nat → List Instr) theorem mixRound_ok (s : State) (v : Spec.Rc2.State) (hv : Words s v) (j : Nat) (hj : j < 16) - (readable : ∀ k < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 k) 1) : + (readable : ScanMemory s) : WP isa (.block ((List.range 4).flatMap (fun i => mix (4 * j + i) i))) s (fun s' => Words s' (Spec.Rc2.mixRound (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) j v) ∧ Keep roundWrites s s') := by apply foldWords_ok (step := fun k i v => Spec.Rc2.mix k (4 * j + i) i v) _ _ _ s v hv readable intro i hi s v hv readable have bound := List.mem_range.mp hi - apply WP.mono (mix_ok s v hv i (4 * j + i) bound (by omega) readable) + apply WP.mono (mix_ok s v hv i (4 * j + i) bound (by omega) readable.bytes) exact fun _ h => ⟨h.1, h.2.round⟩ theorem reverseMixRound_ok (s : State) (v : Spec.Rc2.State) (hv : Words s v) (j : Nat) (hj : j < 16) - (readable : ∀ k < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 k) 1) : + (readable : ScanMemory s) : WP isa (.block ([3, 2, 1, 0].flatMap (fun i => reverseMix (4 * j + i) i))) s (fun s' => Words s' (Spec.Rc2.reverseMixRound (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) j v) ∧ Keep roundWrites s s') := by @@ -58,7 +56,7 @@ theorem reverseMixRound_ok (s : State) (v : Spec.Rc2.State) (hv : Words s v) have bound : i < 4 := by simp only [List.mem_cons, List.not_mem_nil, or_false] at hi omega - apply WP.mono (reverseMix_ok s v hv i (4 * j + i) bound (by omega) readable) + apply WP.mono (reverseMix_ok s v hv i (4 * j + i) bound (by omega) readable.bytes) exact fun _ h => ⟨h.1, h.2.round⟩ def mashRoundSpec (d : Spec.Rc2.Direction) (k : Spec.Rc2.Schedule) @@ -73,7 +71,7 @@ def order (d : Spec.Rc2.Direction) : List Nat := | .decrypt => [3, 2, 1, 0] theorem mashRound_ok (d : Spec.Rc2.Direction) (s : State) (v : Spec.Rc2.State) (hv : Words s v) - (readable : ∀ k < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 k) 1) : + (readable : ScanMemory s) : WP isa (.block ((order d).flatMap (mash d))) s (fun s' => Words s' (mashRoundSpec d (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) v) ∧ Keep roundWrites s s') := by @@ -100,7 +98,7 @@ def roundSpec (d : Spec.Rc2.Direction) (k : Spec.Rc2.Schedule) (j : Nat) theorem round_ok (d : Spec.Rc2.Direction) (s : State) (v : Spec.Rc2.State) (hv : Words s v) (j : Nat) (hj : j < 16) - (readable : ∀ k < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 k) 1) : + (readable : ScanMemory s) : WP isa (.block (round d j)) s (fun s' => Words s' (roundSpec d (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) j v) ∧ Keep roundWrites s s') := by @@ -111,9 +109,7 @@ theorem round_ok (d : Spec.Rc2.Direction) (s : State) (v : Spec.Rc2.State) (hv : by_cases h : j = 4 ∨ j = 10 · rw [ite_eq_left h] have ptr₁ := h₁.2.reg .rdi (by decide) - have read₁ : ∀ k < 128, - InRegions (s₁.rd ++ s₁.wr) (s₁.gpr .rdi + BitVec.ofNat 64 k) 1 := by - rw [h₁.2.rd, h₁.2.wr, ptr₁]; exact readable + have read₁ : ScanMemory s₁ := readable.keep h₁.2 (by decide) (by decide) apply WP.mono (mashRound_ok d s₁ v₁ h₁.1 read₁) intro s₂ h₂ rw [h₁.2.mem, ptr₁] at h₂ @@ -134,7 +130,7 @@ theorem round_ok (d : Spec.Rc2.Direction) (s : State) (v : Spec.Rc2.State) (hv : exact finish s₁ _ h₁ theorem rounds_ok (d : Spec.Rc2.Direction) (s : State) (v : Spec.Rc2.State) (hv : Words s v) - (readable : ∀ k < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 k) 1) : + (readable : ScanMemory s) : WP isa (.block ((List.range 16).flatMap (round d))) s (fun s' => Words s' ((List.range 16).foldl (fun v j => roundSpec d (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) j v) v) ∧ Keep roundWrites s s') := by diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Rounds.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Rounds.lean index 55752db29..6044aa68a 100644 --- a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Rounds.lean +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Rounds.lean @@ -1,3 +1,5 @@ +import VerifiedGarbage.Proof.Rc2.X86_64.Sse2KeyLookup +import VerifiedGarbage.Proof.Rc2.X86_64.ScanMemory import VerifiedGarbage.Impl.Rc2.X86_64.Block import VerifiedGarbage.Proof.Rc2.X86_64.Lookup import VerifiedGarbage.Proof.Rc2.Word @@ -340,8 +342,7 @@ def mashSpec (direction : Spec.Rc2.Direction) (k : Spec.Rc2.Schedule) theorem mash_ok (direction : Spec.Rc2.Direction) (s : State) (v : Spec.Rc2.State) (hv : Words s v) (i : Nat) (hi : i < 4) - (readable : ∀ k < 128, - InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 k) 1) : + (readable : ScanMemory s) : WP isa (.block (mash direction i)) s (fun s' => Words s' (mashSpec direction (Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)) i v) ∧ Keep (wordReg i :: temps) s s') := by @@ -359,10 +360,8 @@ theorem mash_ok (direction : Spec.Rc2.Direction) (s : State) · exact rd_setReg _ _ _ · exact wr_setReg _ _ _ have ptr₁ := keep₁.reg .rdi (by decide) - have read₁ : ∀ k < 128, - InRegions (s₁.rd ++ s₁.wr) (s₁.gpr .rdi + BitVec.ofNat 64 k) 1 := by - rw [keep₁.rd, keep₁.wr, ptr₁]; exact readable - apply WP.mono (keyLookup_ok s₁ read₁) + have read₁ : ScanMemory s₁ := readable.keep keep₁ (by decide) (by decide) + apply WP.mono (Sse2.keyLookup_ok s₁ read₁.vectors read₁.scratch) intro s₂ h₂ let k := Spec.Rc2.scheduleAt s.mem (s.gpr .rdi) let key := k.getD ((v.getD ((i + 3) % 4) 0 &&& 63).toNat) 0 diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/ScanMemory.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/ScanMemory.lean new file mode 100644 index 000000000..9e0d9304f --- /dev/null +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/ScanMemory.lean @@ -0,0 +1,28 @@ +import VerifiedGarbage.Proof.Rc2.X86_64.Lookup + +/-! # Existing contract permissions used by vector schedule scans -/ + +namespace VG.Proof.Rc2.X86_64 + +open VG VG.X86_64 + +structure ScanMemory (s : State) : Prop where + bytes : ∀ i < 128, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 i) 1 + vectors : ∀ i < 8, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 (16 * i)) 16 + scratch : InRegions s.wr (s.gpr .rdx + BitVec.ofNat 64 64) 16 + +instance (s : State) : CoeFun (ScanMemory s) + (fun _ => ∀ i, i < 128 → InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 i) 1) where + coe := fun h => h.bytes + +theorem ScanMemory.keep {s s' : State} {rs : List Reg} (h : ScanMemory s) + (keep : Keep rs s s') (hk : .rdi ∉ rs) (hs : .rdx ∉ rs) : ScanMemory s' := by + constructor + · rw [keep.rd, keep.wr, keep.reg .rdi hk] + exact h.bytes + · rw [keep.rd, keep.wr, keep.reg .rdi hk] + exact h.vectors + · rw [keep.wr, keep.reg .rdx hs] + exact h.scratch + +end VG.Proof.Rc2.X86_64 diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeyLookup.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeyLookup.lean new file mode 100644 index 000000000..b90d7814d --- /dev/null +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeyLookup.lean @@ -0,0 +1,90 @@ +import VerifiedGarbage.Proof.Rc2.X86_64.Sse2KeySteps +import VerifiedGarbage.Proof.Rc2.X86_64.Sse2Finish + +/-! # Verified constant-time SSE2 schedule lookup -/ + +namespace VG.Proof.Rc2.X86_64.Sse2 + +open VG VG.X86_64 VG.Impl.Rc2.X86_64 + +theorem schedule_readWord (m : Mem) (p : Addr) (i : Nat) (hi : i < 64) : + m.readW (p + BitVec.ofNat 64 (2 * i)) 16 = (Spec.Rc2.scheduleAt m p).getD i 0 := by + rw [scheduleAt_getD _ _ _ hi] + apply BitVec.eq_of_getLsbD_eq + intro j hj + simp only [Mem.readW, BitVec.getLsbD_setWidth, BitVec.getLsbD_or, + BitVec.getLsbD_shiftLeft, decide_eq_true hj, Bool.true_and] + rw [getLsbD_read _ _ (by omega)] + by_cases h : j < 8 + · simp only [h, decide_true, Bool.not_true, Bool.false_and, Bool.or_false, + Nat.div_eq_of_lt h, Nat.mod_eq_of_lt h, BitVec.add_zero] + · have hj' : j - 8 < 8 := by omega + simp only [h, decide_false, Bool.not_false] + have hdiv : j / 8 = 1 := by omega + have hmod : j % 8 = j - 8 := by omega + rw [hdiv, hmod] + have hp : p + BitVec.ofNat 64 (2 * i) + BitVec.ofNat 64 1 = + p + BitVec.ofNat 64 (2 * i + 1) := by rw [BitVec.add_assoc, ← BitVec.ofNat_add] + rw [hp] + simp (disch := omega) only [BitVec.getLsbD_of_ge, decide_eq_true, + Bool.true_and, Bool.false_or] + +theorem keyLookup_ok (s : State) + (hread : ∀ i < 8, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 (16 * i)) 16) + (hwrite : InRegions s.wr (s.gpr .rdx + BitVec.ofNat 64 64) 16) : + WP isa (.block Impl.Rc2.X86_64.Sse2.keyLookup) s (fun s' => + s'.gpr .rax = ((Spec.Rc2.scheduleAt s.mem (s.gpr .rdi)).getD + ((s.gpr .rax).setWidth 6).toNat 0).setWidth 64 ∧ + Keep [.rax, .rcx, .r8, .r9, .r10, .r11] s s') := by + have hsread : InRegions (s.rd ++ s.wr) (s.gpr .rdx + BitVec.ofNat 64 64) 16 := by + obtain ⟨r, hr, hc⟩ := hwrite + exact ⟨r, List.mem_append_right _ hr, hc⟩ + rw [Impl.Rc2.X86_64.Sse2.keyLookup, List.append_assoc, WP.block_append_iff] + obtain ⟨s₁, run₁, input₁, zero₁, idx₁, ones₁, eights₁, saved₁, keep₁⟩ := keyStart_ok s .rdx hsread + refine WP.of_runBlock ⟨s₁, run₁, ?_⟩ + rw [WP.block_append_iff, List.range_eq_range'] + let x : Byte := ((s.gpr .rax).setWidth 6).setWidth 8 + let f (i : Nat) := s.mem.readW (s.gpr .rdi + BitVec.ofNat 64 (2 * i)) 16 + have inv₁ : KeyScanInv f x 0 s₁ := + ⟨input₁, zero₁.trans (acc_zero _ _).symm, idx₁, ones₁, eights₁⟩ + have hf₁ : ∀ i < 64, f i = s₁.mem.readW (s₁.gpr .rdi + BitVec.ofNat 64 (2 * i)) 16 := by + rw [keep₁.mem, keep₁.reg .rdi (by decide)] + intro _ _; rfl + have hr₁ : ∀ i < 8, InRegions (s₁.rd ++ s₁.wr) (s₁.gpr .rdi + BitVec.ofNat 64 (16 * i)) 16 := by + rw [keep₁.rd, keep₁.wr, keep₁.reg .rdi (by decide)]; exact hread + apply WP.mono (keySteps_ok 8 0 (by decide) s₁ f x inv₁ hf₁ hr₁) + intro s₂ h₂ + rw [Impl.Rc2.X86_64.Sse2.finish, WP.block_append_iff] + obtain ⟨s₃, run₃, reduced₃, keep₃⟩ := reduceOr_ok s₂ + refine WP.of_runBlock ⟨s₃, run₃, ?_⟩ + have keep₂ : Keep [.rax, .r10] s₁ s₂ := h₂.2.1.weaken (by simp) + have keep₃' : Keep [.rax, .r10] s₂ s₃ := keep₃.keep.weaken (by simp) + have kept : Keep [.rax, .r10] s s₃ := (keep₁.trans keep₂).trans keep₃' + have ptr : s₃.gpr .rdx = s.gpr .rdx := kept.reg .rdx (by decide) + have wr₃ : InRegions s₃.wr (s₃.gpr .rdx + BitVec.ofNat 64 64) 16 := by + rw [kept.wr, ptr]; exact hwrite + have rd₃ : InRegions (s₃.rd ++ s₃.wr) (s₃.gpr .rdx + BitVec.ofNat 64 64) 8 := by + rw [kept.rd, kept.wr, ptr] + obtain ⟨r, hr, hc⟩ := hsread + exact ⟨r, hr, by unfold Region.Contains at hc ⊢; omega⟩ + have saved₃ : s₃.xmm .xmm8 = s₃.mem.readW (s₃.gpr .rdx + BitVec.ofNat 64 64) 128 := by + rw [keep₃.xmm .xmm8 (by decide), h₂.2.2, saved₁, kept.mem, ptr] + obtain ⟨s₄, run₄, out₄, keep₄⟩ := finishTail_ok s₃ .rdx (by decide) rd₃ wr₃ saved₃ + refine WP.of_runBlock ⟨s₄, run₄, ?_⟩ + constructor + · have xb : x.toNat < 64 := by + simp only [x, BitVec.toNat_setWidth] + have h := ((s.gpr .rax).setWidth 6).isLt + simp only [BitVec.toNat_setWidth] at h + omega + have xe : x.toNat = ((s.gpr .rax).setWidth 6).toNat := by + simp only [x, BitVec.toNat_setWidth] + have h := ((s.gpr .rax).setWidth 6).isLt + simp only [BitVec.toNat_setWidth] at h + omega + rw [out₄, reduced₃, h₂.1.acc, reduce_acc, ite_eq_left xb] + dsimp only [f] + rw [schedule_readWord _ _ _ xb, xe] + · exact (kept.trans (keep₄.weaken (by simp))).weaken (by simp) + +end VG.Proof.Rc2.X86_64.Sse2 diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeyStart.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeyStart.lean new file mode 100644 index 000000000..068d9cdff --- /dev/null +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeyStart.lean @@ -0,0 +1,49 @@ +import VerifiedGarbage.Proof.Rc2.X86_64.Sse2Vector +import VerifiedGarbage.Impl.Rc2.X86_64.Sse2KeyLookup + +/-! # Initialization of SSE2 RC2 schedule lookup state -/ + +namespace VG.Proof.Rc2.X86_64.Sse2 + +open VG VG.X86_64 VG.X86_64.RegUpd VG.Impl.Rc2.X86_64 + +theorem keyStart_ok (s : State) (scratch : Reg) + (hread : InRegions (s.rd ++ s.wr) (s.gpr scratch + BitVec.ofNat 64 64) 16) : + ∃ s', runBlock isa (Sse2.start scratch 63) s = some s' ∧ + s'.xmm .xmm0 = broadcast (((s.gpr .rax).setWidth 6).setWidth 8) ∧ + s'.xmm .xmm1 = 0#128 ∧ s'.xmm .xmm2 = Sse2.indices 0 ∧ + s'.xmm .xmm6 = Sse2.ones ∧ s'.xmm .xmm7 = Sse2.eights ∧ + s'.xmm .xmm8 = s.mem.readW (s.gpr scratch + BitVec.ofNat 64 64) 128 ∧ + Keep [.rax, .r10] s s' := by + refine ⟨_, by + simp (config := {decide := true}) only [Sse2.start, Sse2.loadConst, + List.cons_append, List.nil_append, + runBlock_cons, runStep_some, runBlock_nil, exec, execAlu, readSrc, XOp.exec, + State.load128, State.ea, memOp, offset_nat, hread, ite_true, Option.bind_some, + Option.map_some, gpr_setReg, gpr_setXmm, gpr_arithFlags, + xmm_setReg, xmm_setXmm_self, xmm_setXmm_of_ne] + rfl, ?_⟩ + refine ⟨?_, ?_, ?_, ?_, ?_, ?_, ?_⟩ + · simp (config := {decide := true}) only [xmm_setXmm_self, xmm_setXmm_of_ne, xmm_setReg] + rw [show (63#32).signExtend 64 = (63 : BitVec 64) by decide, maskIndex] + apply ext_word + intro i hi + rw [broadcast, word_ofWords _ hi] + simpa using broadcast_word (((s.gpr .rax).setWidth 6).setWidth 8) i hi + · simp (config := {decide := true}) only [xmm_setXmm_self, xmm_setXmm_of_ne, xmm_setReg, + XBinOp.eval, BitVec.xor_self] + · simp (config := {decide := true}) only [xmm_setXmm_self, xmm_setXmm_of_ne, xmm_setReg] + · simp (config := {decide := true}) only [xmm_setXmm_self, xmm_setXmm_of_ne, xmm_setReg] + · simp only [xmm_setXmm_self] + exact movq_const _ + · simp (config := {decide := true}) only [xmm_setXmm_of_ne, xmm_setReg, + xmm_arithFlags, xmm_setXmm_self] + · constructor + · intro r hr + simp only [List.mem_cons, List.not_mem_nil, or_false, not_or] at hr + simp only [gpr_setXmm, gpr_setReg_of_ne _ _ hr.1, gpr_setReg_of_ne _ _ hr.2, gpr_arithFlags] + · simp only [mem_setXmm, mem_setReg, mem_arithFlags] + · simp only [rd_setXmm, rd_setReg, rd_arithFlags] + · simp only [wr_setXmm, wr_setReg, wr_arithFlags] + +end VG.Proof.Rc2.X86_64.Sse2 diff --git a/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeySteps.lean b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeySteps.lean new file mode 100644 index 000000000..52f2b519e --- /dev/null +++ b/lean/VerifiedGarbage/Proof/Rc2/X86_64/Sse2KeySteps.lean @@ -0,0 +1,90 @@ +import VerifiedGarbage.Proof.Rc2.X86_64.Sse2KeyStart + +/-! # Composing eight-candidate schedule scans -/ + +namespace VG.Proof.Rc2.X86_64.Sse2 + +open VG VG.X86_64 VG.X86_64.RegUpd VG.Impl.Rc2.X86_64 + +structure KeyScanInv (f : Nat → BitVec 16) (x : Byte) (n : Nat) (s : State) : Prop where + input : s.xmm .xmm0 = broadcast x + acc : s.xmm .xmm1 = Sse2.acc f x.toNat n + indices : s.xmm .xmm2 = Impl.Rc2.X86_64.Sse2.indices n + ones : s.xmm .xmm6 = Impl.Rc2.X86_64.Sse2.ones + eights : s.xmm .xmm7 = Impl.Rc2.X86_64.Sse2.eights + +theorem keyLoad_ok (s : State) (n : Nat) + (hread : InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 (16 * n)) 16) : + ∃ s', runBlock isa [.movdquLoad .xmm4 (memOp .rdi (16 * n))] s = some s' ∧ + s'.xmm .xmm4 = s.mem.readW (s.gpr .rdi + BitVec.ofNat 64 (16 * n)) 128 ∧ + KeepX [] [.xmm4] s s' := by + refine ⟨_, by + simp only [runBlock_cons, runStep_some, runBlock_nil, exec, State.load128, + State.ea, memOp, offset_nat, hread, ite_true, Option.map_some] + rfl, ?_⟩ + constructor + · exact xmm_setXmm_self _ _ _ + · constructor + · exact ⟨fun _ _ => rfl, rfl, rfl, rfl⟩ + · intro r hr + simp only [List.mem_cons, List.not_mem_nil, or_false] at hr + exact xmm_setXmm_of_ne _ _ hr + +theorem keyStep_ok (s : State) (f : Nat → BitVec 16) (x : Byte) (n : Nat) (hn : n < 8) + (hinv : KeyScanInv f x n s) + (hf : ∀ i < 64, f i = s.mem.readW (s.gpr .rdi + BitVec.ofNat 64 (2 * i)) 16) + (hread : InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 (16 * n)) 16) : + WP isa (.block (Impl.Rc2.X86_64.Sse2.keyStep n)) s (fun s' => + KeyScanInv f x (n + 1) s' ∧ Keep [] s s' ∧ s'.xmm .xmm8 = s.xmm .xmm8) := by + rw [Impl.Rc2.X86_64.Sse2.keyStep, WP.block_append_iff] + obtain ⟨s₁, run₁, val₁, keep₁⟩ := keyLoad_ok s n hread + refine WP.of_runBlock ⟨s₁, run₁, ?_⟩ + obtain ⟨s₂, run₂, val₂, idx₂, keep₂⟩ := select_ok s₁ + refine WP.of_runBlock ⟨s₂, run₂, ?_⟩ + refine ⟨?_, keep₁.keep.trans keep₂.keep, ?_⟩ + · constructor + · rw [keep₂.xmm .xmm0 (by decide), keep₁.xmm .xmm0 (by decide)] + exact hinv.input + · rw [val₂, keep₁.xmm .xmm1 (by decide), keep₁.xmm .xmm0 (by decide), + keep₁.xmm .xmm2 (by decide), keep₁.xmm .xmm6 (by decide), val₁, + hinv.acc, hinv.input, hinv.indices, hinv.ones] + apply acc_step f x n (by omega) + intro j hj + rw [word_readW _ _ hj, hf (8 * n + j) (by omega)] + rw [BitVec.add_assoc, ← BitVec.ofNat_add] + exact congrArg (fun d => s.mem.readW (s.gpr .rdi + BitVec.ofNat 64 d) 16) (by omega) + · rw [idx₂, keep₁.xmm .xmm2 (by decide), keep₁.xmm .xmm7 (by decide), + hinv.indices, hinv.eights] + exact indices_next n + · rw [keep₂.xmm .xmm6 (by decide), keep₁.xmm .xmm6 (by decide)] + exact hinv.ones + · rw [keep₂.xmm .xmm7 (by decide), keep₁.xmm .xmm7 (by decide)] + exact hinv.eights + · rw [keep₂.xmm .xmm8 (by decide), keep₁.xmm .xmm8 (by decide)] + +theorem keySteps_ok (count n : Nat) (hbound : n + count ≤ 8) + (s : State) (f : Nat → BitVec 16) (x : Byte) (hinv : KeyScanInv f x n s) + (hf : ∀ i < 64, f i = s.mem.readW (s.gpr .rdi + BitVec.ofNat 64 (2 * i)) 16) + (hread : ∀ i < 8, InRegions (s.rd ++ s.wr) (s.gpr .rdi + BitVec.ofNat 64 (16 * i)) 16) : + WP isa (.block ((List.range' n count).flatMap Impl.Rc2.X86_64.Sse2.keyStep)) s + (fun s' => KeyScanInv f x (n + count) s' ∧ Keep [] s s' ∧ + s'.xmm .xmm8 = s.xmm .xmm8) := by + induction count generalizing n s with + | zero => + apply WP.block_nil + exact ⟨hinv, ⟨fun _ _ => rfl, rfl, rfl, rfl⟩, rfl⟩ + | succ count ih => + rw [List.range'_succ, List.flatMap_cons, WP.block_append_iff] + apply WP.mono (keyStep_ok s f x n (by omega) hinv hf (hread n (by omega))) + intro s₁ h₁ + have hf₁ : ∀ i < 64, f i = s₁.mem.readW (s₁.gpr .rdi + BitVec.ofNat 64 (2 * i)) 16 := by + rw [h₁.2.1.mem, h₁.2.1.reg .rdi (by simp)]; exact hf + have hr₁ : ∀ i < 8, InRegions (s₁.rd ++ s₁.wr) (s₁.gpr .rdi + BitVec.ofNat 64 (16 * i)) 16 := by + rw [h₁.2.1.rd, h₁.2.1.wr, h₁.2.1.reg .rdi (by simp)]; exact hread + apply WP.mono (ih (n + 1) (by omega) s₁ h₁.1 hf₁ hr₁) + intro s₂ h₂ + refine ⟨?_, h₁.2.1.trans h₂.2.1, h₂.2.2.trans h₁.2.2⟩ + have he : n + 1 + count = n + (count + 1) := by omega + exact he ▸ h₂.1 + +end VG.Proof.Rc2.X86_64.Sse2 diff --git a/src/asm/x86_64/rc2.rs b/src/asm/x86_64/rc2.rs index 33755a4e8..8ea1dfab0 100644 --- a/src/asm/x86_64/rc2.rs +++ b/src/asm/x86_64/rc2.rs @@ -1483,7 +1483,7 @@ pub(crate) unsafe extern "sysv64" fn vg_rc2_expand_key(key: *const u8, key_len: /// /// Contract: `VG.Spec.Rc2.encryptBlockContract`. Constant time: only pointers may affect timing, not the key schedule or data, including the mashing indices. /// -/// Baseline x86-64. Mashing scans all 64 schedule words in a fixed order. +/// Baseline x86-64 SSE2. Mashing scans all 64 schedule words in a fixed order, eight words per vector. /// /// # Safety /// @@ -1873,9344 +1873,445 @@ pub(crate) unsafe extern "sysv64" fn vg_rc2_encrypt_block(schedule: *const [u8; "or r15, rax", "and r15, 65535", "mov rax, r15", + "movdqu xmm8, XMMWORD PTR [rdx+64]", "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r12, rax", - "and r12, 65535", - "mov rax, r12", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r13, rax", - "and r13, 65535", - "mov rax, r13", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r14, rax", - "and r14, 65535", - "mov rax, r14", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov rax, r15", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r12, rax", - "and r12, 65535", - "mov rax, r12", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r13, rax", - "and r13, 65535", - "mov rax, r13", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r14, rax", - "and r14, 65535", - "mov rax, r14", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "add r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "add r12, r8", - "add r12, r10", - "and r12, 65535", - "mov rax, r12", - "shr rax, 15", - "ror r12, 63", - "or r12, rax", - "and r12, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "add r13, r8", - "add r13, r10", - "and r13, 65535", - "mov rax, r13", - "shr rax, 14", - "ror r13, 62", - "or r13, rax", - "and r13, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "add r14, r8", - "add r14, r10", - "and r14, 65535", - "mov rax, r14", - "shr rax, 13", - "ror r14, 61", - "or r14, rax", - "and r14, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "add r15, r8", - "add r15, r10", - "and r15, 65535", - "mov rax, r15", - "shr rax, 11", - "ror r15, 59", - "or r15, rax", - "and r15, 65535", - "mov rax, r12", - "mov rcx, r13", - "ror rcx, 48", - "or rax, rcx", - "mov rcx, r14", - "ror rcx, 32", - "or rax, rcx", - "mov rcx, r15", - "ror rcx, 16", - "or rax, rcx", - "mov QWORD PTR [rsi], rax", - "mov r12, QWORD PTR [rdx]", - "mov r13, QWORD PTR [rdx+8]", - "mov r14, QWORD PTR [rdx+16]", - "mov r15, QWORD PTR [rdx+24]", - "ret", - ) -} - -/// RC2 block decryption (RFC 2268 §4): decrypts `*data` in place under `*schedule`, the 64 little-endian 16-bit words written by `vg_rc2_expand_key`. -/// -/// Contract: `VG.Spec.Rc2.decryptBlockContract`. Constant time: only pointers may affect timing, not the key schedule or data, including the reverse-mashing indices. -/// -/// Baseline x86-64. Reverse mashing scans all 64 schedule words in a fixed order. -/// -/// # Safety -/// -/// * `schedule` must be valid for reads of 128 bytes. -/// * `data` must be valid for reads and writes of 8 bytes. -/// * `scratch` must be valid for reads and writes of 256 bytes. -/// * The contents of `scratch` on return are unspecified. -/// * `data` and `scratch` must not overlap each other or `schedule` (distinct Rust objects never do). -/// * None of `schedule`, `data` and `scratch` may overlap the return address on the stack, or wrap around the end of the address space (no Rust object does). -#[unsafe(naked)] -pub(crate) unsafe extern "sysv64" fn vg_rc2_decrypt_block(schedule: *const [u8; 128], data: *mut [u8; 8], scratch: *mut [u64; 32]) { - core::arch::naked_asm!( - "mov QWORD PTR [rdx], r12", - "mov QWORD PTR [rdx+8], r13", - "mov QWORD PTR [rdx+16], r14", - "mov QWORD PTR [rdx+24], r15", - "mov rax, QWORD PTR [rsi]", - "mov r12, rax", - "and r12, 65535", - "mov r13, rax", - "shr r13, 16", - "and r13, 65535", - "mov r14, rax", - "shr r14, 32", - "and r14, 65535", - "mov r15, rax", - "shr r15, 48", - "and r15, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r14", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "sub r15, rax", - "and r15, 65535", - "mov rax, r13", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "sub r14, rax", - "and r14, 65535", - "mov rax, r12", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "sub r13, rax", - "and r13, 65535", - "mov rax, r15", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "sub r12, rax", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r12, rax", "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", + "mov rax, r12", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r13, rax", "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r14, rax", "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", - "mov r10, r15", - "and r10, r14", - "mov r11, r15", - "xor r11, -1", - "and r11, r13", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", - "xor r11, -1", - "and r11, r12", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "sub r15, r8", - "sub r15, r10", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r15, rax", "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", - "mov r10, r13", - "and r10, r12", - "mov r11, r13", - "xor r11, -1", - "and r11, r15", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "sub r14, r8", - "sub r14, r10", - "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", - "xor r11, -1", - "and r11, r14", - "add r10, r11", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", "mov r10, r15", "and r10, r14", "mov r11, r15", "xor r11, -1", "and r11, r13", "add r10, r11", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", + "movzx r8d, BYTE PTR [rdi+40]", + "movzx r9d, BYTE PTR [rdi+41]", "ror r9, 56", "or r8, r9", - "sub r12, r8", - "sub r12, r10", + "add r12, r8", + "add r12, r10", "and r12, 65535", - "mov rax, r15", - "shr rax, 5", - "ror r15, 53", - "or r15, rax", - "and r15, 65535", - "mov r10, r14", - "and r10, r13", - "mov r11, r14", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", "xor r11, -1", - "and r11, r12", + "and r11, r14", "add r10, r11", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", + "movzx r8d, BYTE PTR [rdi+42]", + "movzx r9d, BYTE PTR [rdi+43]", "ror r9, 56", "or r8, r9", - "sub r15, r8", - "sub r15, r10", - "and r15, 65535", - "mov rax, r14", - "shr rax, 3", - "ror r14, 51", - "or r14, rax", - "and r14, 65535", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", "mov r10, r13", "and r10, r12", "mov r11, r13", @@ -11221,2627 +2322,2806 @@ pub(crate) unsafe extern "sysv64" fn vg_rc2_decrypt_block(schedule: *const [u8; "movzx r9d, BYTE PTR [rdi+45]", "ror r9, 56", "or r8, r9", - "sub r14, r8", - "sub r14, r10", + "add r14, r8", + "add r14, r10", "and r14, 65535", - "mov rax, r13", - "shr rax, 2", - "ror r13, 50", - "or r13, rax", - "and r13, 65535", - "mov r10, r12", - "and r10, r15", - "mov r11, r12", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", "xor r11, -1", - "and r11, r14", + "and r11, r12", "add r10, r11", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", + "movzx r8d, BYTE PTR [rdi+46]", + "movzx r9d, BYTE PTR [rdi+47]", "ror r9, 56", "or r8, r9", - "sub r13, r8", - "sub r13, r10", - "and r13, 65535", - "mov rax, r12", - "shr rax, 1", - "ror r12, 49", - "or r12, rax", - "and r12, 65535", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", "mov r10, r15", "and r10, r14", "mov r11, r15", "xor r11, -1", "and r11, r13", "add r10, r11", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "sub r12, r8", - "sub r12, r10", - "and r12, 65535", - "mov rax, r14", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", "movzx r8d, BYTE PTR [rdi+48]", "movzx r9d, BYTE PTR [rdi+49]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+50]", "movzx r9d, BYTE PTR [rdi+51]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+52]", "movzx r9d, BYTE PTR [rdi+53]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+54]", "movzx r9d, BYTE PTR [rdi+55]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+56]", "movzx r9d, BYTE PTR [rdi+57]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+58]", "movzx r9d, BYTE PTR [rdi+59]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+60]", "movzx r9d, BYTE PTR [rdi+61]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+62]", "movzx r9d, BYTE PTR [rdi+63]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+64]", "movzx r9d, BYTE PTR [rdi+65]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+66]", "movzx r9d, BYTE PTR [rdi+67]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+68]", "movzx r9d, BYTE PTR [rdi+69]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+70]", "movzx r9d, BYTE PTR [rdi+71]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+72]", "movzx r9d, BYTE PTR [rdi+73]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+74]", "movzx r9d, BYTE PTR [rdi+75]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+76]", "movzx r9d, BYTE PTR [rdi+77]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+78]", "movzx r9d, BYTE PTR [rdi+79]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+80]", "movzx r9d, BYTE PTR [rdi+81]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+82]", "movzx r9d, BYTE PTR [rdi+83]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+84]", + "movzx r9d, BYTE PTR [rdi+85]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+86]", + "movzx r9d, BYTE PTR [rdi+87]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "sub r15, rax", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", "and r15, 65535", + "mov rax, r15", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r12, rax", + "and r12, 65535", + "mov rax, r12", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r13, rax", + "and r13, 65535", "mov rax, r13", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r14, rax", + "and r14, 65535", + "mov rax, r14", + "movdqu xmm8, XMMWORD PTR [rdx+64]", "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "add r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+88]", "movzx r9d, BYTE PTR [rdi+89]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", - "sub r14, rax", - "and r14, 65535", + "add r12, r8", + "add r12, r10", + "and r12, 65535", "mov rax, r12", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+90]", + "movzx r9d, BYTE PTR [rdi+91]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+92]", + "movzx r9d, BYTE PTR [rdi+93]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+94]", + "movzx r9d, BYTE PTR [rdi+95]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+96]", + "movzx r9d, BYTE PTR [rdi+97]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+98]", + "movzx r9d, BYTE PTR [rdi+99]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+100]", + "movzx r9d, BYTE PTR [rdi+101]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+102]", + "movzx r9d, BYTE PTR [rdi+103]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+104]", + "movzx r9d, BYTE PTR [rdi+105]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+106]", + "movzx r9d, BYTE PTR [rdi+107]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+108]", + "movzx r9d, BYTE PTR [rdi+109]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+110]", + "movzx r9d, BYTE PTR [rdi+111]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+112]", + "movzx r9d, BYTE PTR [rdi+113]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+114]", + "movzx r9d, BYTE PTR [rdi+115]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+116]", + "movzx r9d, BYTE PTR [rdi+117]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+118]", + "movzx r9d, BYTE PTR [rdi+119]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+120]", + "movzx r9d, BYTE PTR [rdi+121]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+84]", - "movzx r9d, BYTE PTR [rdi+85]", + "add r12, r8", + "add r12, r10", + "and r12, 65535", + "mov rax, r12", + "shr rax, 15", + "ror r12, 63", + "or r12, rax", + "and r12, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+122]", + "movzx r9d, BYTE PTR [rdi+123]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", + "add r13, r8", + "add r13, r10", + "and r13, 65535", + "mov rax, r13", + "shr rax, 14", + "ror r13, 62", + "or r13, rax", + "and r13, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+124]", + "movzx r9d, BYTE PTR [rdi+125]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", + "add r14, r8", + "add r14, r10", + "and r14, 65535", + "mov rax, r14", + "shr rax, 13", + "ror r14, 61", + "or r14, rax", + "and r14, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+126]", + "movzx r9d, BYTE PTR [rdi+127]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", + "add r15, r8", + "add r15, r10", + "and r15, 65535", + "mov rax, r15", + "shr rax, 11", + "ror r15, 59", + "or r15, rax", + "and r15, 65535", + "mov rax, r12", + "mov rcx, r13", + "ror rcx, 48", + "or rax, rcx", + "mov rcx, r14", + "ror rcx, 32", + "or rax, rcx", + "mov rcx, r15", + "ror rcx, 16", + "or rax, rcx", + "mov QWORD PTR [rsi], rax", + "mov r12, QWORD PTR [rdx]", + "mov r13, QWORD PTR [rdx+8]", + "mov r14, QWORD PTR [rdx+16]", + "mov r15, QWORD PTR [rdx+24]", + "ret", + ) +} + +/// RC2 block decryption (RFC 2268 §4): decrypts `*data` in place under `*schedule`, the 64 little-endian 16-bit words written by `vg_rc2_expand_key`. +/// +/// Contract: `VG.Spec.Rc2.decryptBlockContract`. Constant time: only pointers may affect timing, not the key schedule or data, including the reverse-mashing indices. +/// +/// Baseline x86-64 SSE2. Reverse mashing scans all 64 schedule words in a fixed order, eight words per vector. +/// +/// # Safety +/// +/// * `schedule` must be valid for reads of 128 bytes. +/// * `data` must be valid for reads and writes of 8 bytes. +/// * `scratch` must be valid for reads and writes of 256 bytes. +/// * The contents of `scratch` on return are unspecified. +/// * `data` and `scratch` must not overlap each other or `schedule` (distinct Rust objects never do). +/// * None of `schedule`, `data` and `scratch` may overlap the return address on the stack, or wrap around the end of the address space (no Rust object does). +#[unsafe(naked)] +pub(crate) unsafe extern "sysv64" fn vg_rc2_decrypt_block(schedule: *const [u8; 128], data: *mut [u8; 8], scratch: *mut [u64; 32]) { + core::arch::naked_asm!( + "mov QWORD PTR [rdx], r12", + "mov QWORD PTR [rdx+8], r13", + "mov QWORD PTR [rdx+16], r14", + "mov QWORD PTR [rdx+24], r15", + "mov rax, QWORD PTR [rsi]", + "mov r12, rax", + "and r12, 65535", + "mov r13, rax", + "shr r13, 16", + "and r13, 65535", + "mov r14, rax", + "shr r14, 32", + "and r14, 65535", + "mov r15, rax", + "shr r15, 48", + "and r15, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+126]", + "movzx r9d, BYTE PTR [rdi+127]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+124]", + "movzx r9d, BYTE PTR [rdi+125]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+122]", + "movzx r9d, BYTE PTR [rdi+123]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+120]", + "movzx r9d, BYTE PTR [rdi+121]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+118]", + "movzx r9d, BYTE PTR [rdi+119]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+116]", + "movzx r9d, BYTE PTR [rdi+117]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+114]", + "movzx r9d, BYTE PTR [rdi+115]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+112]", + "movzx r9d, BYTE PTR [rdi+113]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+110]", + "movzx r9d, BYTE PTR [rdi+111]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+108]", "movzx r9d, BYTE PTR [rdi+109]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+106]", + "movzx r9d, BYTE PTR [rdi+107]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+104]", + "movzx r9d, BYTE PTR [rdi+105]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+102]", + "movzx r9d, BYTE PTR [rdi+103]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+100]", + "movzx r9d, BYTE PTR [rdi+101]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+98]", + "movzx r9d, BYTE PTR [rdi+99]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+96]", + "movzx r9d, BYTE PTR [rdi+97]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+94]", + "movzx r9d, BYTE PTR [rdi+95]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+92]", + "movzx r9d, BYTE PTR [rdi+93]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+90]", + "movzx r9d, BYTE PTR [rdi+91]", + "ror r9, 56", + "or r8, r9", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+88]", + "movzx r9d, BYTE PTR [rdi+89]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r14", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "sub r15, rax", + "and r15, 65535", + "mov rax, r13", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "sub r14, rax", + "and r14, 65535", + "mov rax, r12", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", "sub r13, rax", "and r13, 65535", "mov rax, r15", - "and rax, 63", - "mov rcx, 0", - "mov r10, rax", - "xor r10, 0", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi]", - "movzx r9d, BYTE PTR [rdi+1]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 1", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+2]", - "movzx r9d, BYTE PTR [rdi+3]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 2", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+4]", - "movzx r9d, BYTE PTR [rdi+5]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 3", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+6]", - "movzx r9d, BYTE PTR [rdi+7]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 4", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+8]", - "movzx r9d, BYTE PTR [rdi+9]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 5", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+10]", - "movzx r9d, BYTE PTR [rdi+11]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 6", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+12]", - "movzx r9d, BYTE PTR [rdi+13]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 7", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+14]", - "movzx r9d, BYTE PTR [rdi+15]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 8", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+16]", - "movzx r9d, BYTE PTR [rdi+17]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 9", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+18]", - "movzx r9d, BYTE PTR [rdi+19]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 10", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+20]", - "movzx r9d, BYTE PTR [rdi+21]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 11", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+22]", - "movzx r9d, BYTE PTR [rdi+23]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 12", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+24]", - "movzx r9d, BYTE PTR [rdi+25]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 13", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+26]", - "movzx r9d, BYTE PTR [rdi+27]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 14", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+28]", - "movzx r9d, BYTE PTR [rdi+29]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 15", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+30]", - "movzx r9d, BYTE PTR [rdi+31]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 16", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+32]", - "movzx r9d, BYTE PTR [rdi+33]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 17", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+34]", - "movzx r9d, BYTE PTR [rdi+35]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 18", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+36]", - "movzx r9d, BYTE PTR [rdi+37]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 19", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+38]", - "movzx r9d, BYTE PTR [rdi+39]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 20", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+40]", - "movzx r9d, BYTE PTR [rdi+41]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 21", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+42]", - "movzx r9d, BYTE PTR [rdi+43]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 22", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+44]", - "movzx r9d, BYTE PTR [rdi+45]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 23", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+46]", - "movzx r9d, BYTE PTR [rdi+47]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 24", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+48]", - "movzx r9d, BYTE PTR [rdi+49]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 25", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+50]", - "movzx r9d, BYTE PTR [rdi+51]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 26", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+52]", - "movzx r9d, BYTE PTR [rdi+53]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 27", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+54]", - "movzx r9d, BYTE PTR [rdi+55]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 28", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+56]", - "movzx r9d, BYTE PTR [rdi+57]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 29", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+58]", - "movzx r9d, BYTE PTR [rdi+59]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 30", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+60]", - "movzx r9d, BYTE PTR [rdi+61]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 31", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+62]", - "movzx r9d, BYTE PTR [rdi+63]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 32", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+64]", - "movzx r9d, BYTE PTR [rdi+65]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 33", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+66]", - "movzx r9d, BYTE PTR [rdi+67]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 34", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+68]", - "movzx r9d, BYTE PTR [rdi+69]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 35", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+70]", - "movzx r9d, BYTE PTR [rdi+71]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 36", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+72]", - "movzx r9d, BYTE PTR [rdi+73]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 37", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+74]", - "movzx r9d, BYTE PTR [rdi+75]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 38", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+76]", - "movzx r9d, BYTE PTR [rdi+77]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 39", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+78]", - "movzx r9d, BYTE PTR [rdi+79]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 40", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+80]", - "movzx r9d, BYTE PTR [rdi+81]", - "ror r9, 56", - "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 41", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+82]", - "movzx r9d, BYTE PTR [rdi+83]", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "sub r12, rax", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+86]", + "movzx r9d, BYTE PTR [rdi+87]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 42", - "sub r10, 1", - "sbb r10, r10", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", "movzx r8d, BYTE PTR [rdi+84]", "movzx r9d, BYTE PTR [rdi+85]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 43", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+86]", - "movzx r9d, BYTE PTR [rdi+87]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+82]", + "movzx r9d, BYTE PTR [rdi+83]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 44", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+88]", - "movzx r9d, BYTE PTR [rdi+89]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+80]", + "movzx r9d, BYTE PTR [rdi+81]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 45", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+90]", - "movzx r9d, BYTE PTR [rdi+91]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+78]", + "movzx r9d, BYTE PTR [rdi+79]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 46", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+92]", - "movzx r9d, BYTE PTR [rdi+93]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+76]", + "movzx r9d, BYTE PTR [rdi+77]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 47", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+94]", - "movzx r9d, BYTE PTR [rdi+95]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+74]", + "movzx r9d, BYTE PTR [rdi+75]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 48", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+96]", - "movzx r9d, BYTE PTR [rdi+97]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+72]", + "movzx r9d, BYTE PTR [rdi+73]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 49", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+98]", - "movzx r9d, BYTE PTR [rdi+99]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+70]", + "movzx r9d, BYTE PTR [rdi+71]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 50", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+100]", - "movzx r9d, BYTE PTR [rdi+101]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+68]", + "movzx r9d, BYTE PTR [rdi+69]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 51", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+102]", - "movzx r9d, BYTE PTR [rdi+103]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+66]", + "movzx r9d, BYTE PTR [rdi+67]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 52", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+104]", - "movzx r9d, BYTE PTR [rdi+105]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+64]", + "movzx r9d, BYTE PTR [rdi+65]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 53", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+106]", - "movzx r9d, BYTE PTR [rdi+107]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+62]", + "movzx r9d, BYTE PTR [rdi+63]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 54", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+108]", - "movzx r9d, BYTE PTR [rdi+109]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+60]", + "movzx r9d, BYTE PTR [rdi+61]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 55", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+110]", - "movzx r9d, BYTE PTR [rdi+111]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+58]", + "movzx r9d, BYTE PTR [rdi+59]", + "ror r9, 56", + "or r8, r9", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+56]", + "movzx r9d, BYTE PTR [rdi+57]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 56", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+112]", - "movzx r9d, BYTE PTR [rdi+113]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+54]", + "movzx r9d, BYTE PTR [rdi+55]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 57", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+114]", - "movzx r9d, BYTE PTR [rdi+115]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+52]", + "movzx r9d, BYTE PTR [rdi+53]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 58", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+116]", - "movzx r9d, BYTE PTR [rdi+117]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+50]", + "movzx r9d, BYTE PTR [rdi+51]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 59", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+118]", - "movzx r9d, BYTE PTR [rdi+119]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+48]", + "movzx r9d, BYTE PTR [rdi+49]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 60", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+120]", - "movzx r9d, BYTE PTR [rdi+121]", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r15", + "shr rax, 5", + "ror r15, 53", + "or r15, rax", + "and r15, 65535", + "mov r10, r14", + "and r10, r13", + "mov r11, r14", + "xor r11, -1", + "and r11, r12", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+46]", + "movzx r9d, BYTE PTR [rdi+47]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 61", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+122]", - "movzx r9d, BYTE PTR [rdi+123]", + "sub r15, r8", + "sub r15, r10", + "and r15, 65535", + "mov rax, r14", + "shr rax, 3", + "ror r14, 51", + "or r14, rax", + "and r14, 65535", + "mov r10, r13", + "and r10, r12", + "mov r11, r13", + "xor r11, -1", + "and r11, r15", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+44]", + "movzx r9d, BYTE PTR [rdi+45]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 62", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+124]", - "movzx r9d, BYTE PTR [rdi+125]", + "sub r14, r8", + "sub r14, r10", + "and r14, 65535", + "mov rax, r13", + "shr rax, 2", + "ror r13, 50", + "or r13, rax", + "and r13, 65535", + "mov r10, r12", + "and r10, r15", + "mov r11, r12", + "xor r11, -1", + "and r11, r14", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+42]", + "movzx r9d, BYTE PTR [rdi+43]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov r10, rax", - "xor r10, 63", - "sub r10, 1", - "sbb r10, r10", - "movzx r8d, BYTE PTR [rdi+126]", - "movzx r9d, BYTE PTR [rdi+127]", + "sub r13, r8", + "sub r13, r10", + "and r13, 65535", + "mov rax, r12", + "shr rax, 1", + "ror r12, 49", + "or r12, rax", + "and r12, 65535", + "mov r10, r15", + "and r10, r14", + "mov r11, r15", + "xor r11, -1", + "and r11, r13", + "add r10, r11", + "movzx r8d, BYTE PTR [rdi+40]", + "movzx r9d, BYTE PTR [rdi+41]", "ror r9, 56", "or r8, r9", - "and r8, r10", - "or rcx, r8", - "mov rax, rcx", + "sub r12, r8", + "sub r12, r10", + "and r12, 65535", + "mov rax, r14", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "sub r15, rax", + "and r15, 65535", + "mov rax, r13", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "sub r14, rax", + "and r14, 65535", + "mov rax, r12", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", + "sub r13, rax", + "and r13, 65535", + "mov rax, r15", + "movdqu xmm8, XMMWORD PTR [rdx+64]", + "and rax, 63", + "movq xmm0, rax", + "punpcklwd xmm0, xmm0", + "pshufd xmm0, xmm0, 0", + "pxor xmm1, xmm1", + "movabs r10, 844433520132096", + "movq xmm2, r10", + "movabs r10, 1970350607106052", + "movq xmm5, r10", + "punpcklqdq xmm2, xmm5", + "movabs r10, 281479271743489", + "movq xmm6, r10", + "movabs r10, 281479271743489", + "movq xmm5, r10", + "punpcklqdq xmm6, xmm5", + "movabs r10, 2251834173947912", + "movq xmm7, r10", + "movabs r10, 2251834173947912", + "movq xmm5, r10", + "punpcklqdq xmm7, xmm5", + "movdqu xmm4, XMMWORD PTR [rdi]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+16]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+32]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+48]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+64]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+80]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+96]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqu xmm4, XMMWORD PTR [rdi+112]", + "movdqa xmm3, xmm0", + "pxor xmm3, xmm2", + "psubw xmm3, xmm6", + "psraw xmm3, 15", + "pand xmm3, xmm4", + "por xmm1, xmm3", + "paddw xmm2, xmm7", + "movdqa xmm3, xmm1", + "psrldq xmm3, 8", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 4", + "por xmm1, xmm3", + "movdqa xmm3, xmm1", + "psrldq xmm3, 2", + "por xmm1, xmm3", + "movdqu XMMWORD PTR [rdx+64], xmm1", + "mov rax, QWORD PTR [rdx+64]", + "and rax, 65535", + "movdqu XMMWORD PTR [rdx+64], xmm8", "sub r12, rax", "and r12, 65535", "mov rax, r15",