enter curve25519_select int64 p int64 q int64 r int64 s int64 b input p input q input r input s input b int64 bminus1 int64 p0 int64 p1 int64 p2 int64 p3 int64 p4 int64 p5 int64 p6 int64 p7 int64 p8 int64 p9 int64 p10 int64 p11 int64 p12 int64 p13 int64 p14 int64 p15 int64 p16 int64 p17 int64 p18 int64 p19 int64 p20 int64 p21 int64 p22 int64 p23 int64 q0 int64 q1 int64 q2 int64 q3 int64 q4 int64 q5 int64 q6 int64 q7 int64 q8 int64 q9 int64 q10 int64 q11 int64 q12 int64 q13 int64 q14 int64 q15 int64 q16 int64 q17 int64 q18 int64 q19 int64 q20 int64 q21 int64 q22 int64 q23 int64 r0 int64 r1 int64 r2 int64 r3 int64 r4 int64 r5 int64 r6 int64 r7 int64 r8 int64 r9 int64 r10 int64 r11 int64 r12 int64 r13 int64 r14 int64 r15 int64 r16 int64 r17 int64 r18 int64 r19 int64 r20 int64 r21 int64 r22 int64 r23 int64 s0 int64 s1 int64 s2 int64 s3 int64 s4 int64 s5 int64 s6 int64 s7 int64 s8 int64 s9 int64 s10 int64 s11 int64 s12 int64 s13 int64 s14 int64 s15 int64 s16 int64 s17 int64 s18 int64 s19 int64 s20 int64 s21 int64 s22 int64 s23 bminus1 = b - 1 r0 = *(uint64 *) (r + 0) s0 = *(uint64 *) (s + 0) s0 ^= r0 q0 = s0 & bminus1 q0 ^= r0 p0 = q0 ^ s0 *(uint64 *) (p + 0) = p0 *(uint64 *) (q + 0) = q0 r1 = *(uint64 *) (r + 8) s1 = *(uint64 *) (s + 8) s1 ^= r1 q1 = s1 & bminus1 q1 ^= r1 p1 = q1 ^ s1 *(uint64 *) (p + 8) = p1 *(uint64 *) (q + 8) = q1 r2 = *(uint64 *) (r + 16) s2 = *(uint64 *) (s + 16) s2 ^= r2 q2 = s2 & bminus1 q2 ^= r2 p2 = q2 ^ s2 *(uint64 *) (p + 16) = p2 *(uint64 *) (q + 16) = q2 r3 = *(uint64 *) (r + 24) s3 = *(uint64 *) (s + 24) s3 ^= r3 q3 = s3 & bminus1 q3 ^= r3 p3 = q3 ^ s3 *(uint64 *) (p + 24) = p3 *(uint64 *) (q + 24) = q3 r4 = *(uint64 *) (r + 32) s4 = *(uint64 *) (s + 32) s4 ^= r4 q4 = s4 & bminus1 q4 ^= r4 p4 = q4 ^ s4 *(uint64 *) (p + 32) = p4 *(uint64 *) (q + 32) = q4 r5 = *(uint64 *) (r + 40) s5 = *(uint64 *) (s + 40) s5 ^= r5 q5 = s5 & bminus1 q5 ^= r5 p5 = q5 ^ s5 *(uint64 *) (p + 40) = p5 *(uint64 *) (q + 40) = q5 r6 = *(uint64 *) (r + 48) s6 = *(uint64 *) (s + 48) s6 ^= r6 q6 = s6 & bminus1 q6 ^= r6 p6 = q6 ^ s6 *(uint64 *) (p + 48) = p6 *(uint64 *) (q + 48) = q6 r7 = *(uint64 *) (r + 56) s7 = *(uint64 *) (s + 56) s7 ^= r7 q7 = s7 & bminus1 q7 ^= r7 p7 = q7 ^ s7 *(uint64 *) (p + 56) = p7 *(uint64 *) (q + 56) = q7 r8 = *(uint64 *) (r + 64) s8 = *(uint64 *) (s + 64) s8 ^= r8 q8 = s8 & bminus1 q8 ^= r8 p8 = q8 ^ s8 *(uint64 *) (p + 64) = p8 *(uint64 *) (q + 64) = q8 r9 = *(uint64 *) (r + 72) s9 = *(uint64 *) (s + 72) s9 ^= r9 q9 = s9 & bminus1 q9 ^= r9 p9 = q9 ^ s9 *(uint64 *) (p + 72) = p9 *(uint64 *) (q + 72) = q9 r10 = *(uint64 *) (r + 80) s10 = *(uint64 *) (s + 80) s10 ^= r10 q10 = s10 & bminus1 q10 ^= r10 p10 = q10 ^ s10 *(uint64 *) (p + 80) = p10 *(uint64 *) (q + 80) = q10 r11 = *(uint64 *) (r + 88) s11 = *(uint64 *) (s + 88) s11 ^= r11 q11 = s11 & bminus1 q11 ^= r11 p11 = q11 ^ s11 *(uint64 *) (p + 88) = p11 *(uint64 *) (q + 88) = q11 r12 = *(uint64 *) (r + 96) s12 = *(uint64 *) (s + 96) s12 ^= r12 q12 = s12 & bminus1 q12 ^= r12 p12 = q12 ^ s12 *(uint64 *) (p + 96) = p12 *(uint64 *) (q + 96) = q12 r13 = *(uint64 *) (r + 104) s13 = *(uint64 *) (s + 104) s13 ^= r13 q13 = s13 & bminus1 q13 ^= r13 p13 = q13 ^ s13 *(uint64 *) (p + 104) = p13 *(uint64 *) (q + 104) = q13 r14 = *(uint64 *) (r + 112) s14 = *(uint64 *) (s + 112) s14 ^= r14 q14 = s14 & bminus1 q14 ^= r14 p14 = q14 ^ s14 *(uint64 *) (p + 112) = p14 *(uint64 *) (q + 112) = q14 r15 = *(uint64 *) (r + 120) s15 = *(uint64 *) (s + 120) s15 ^= r15 q15 = s15 & bminus1 q15 ^= r15 p15 = q15 ^ s15 *(uint64 *) (p + 120) = p15 *(uint64 *) (q + 120) = q15 r16 = *(uint64 *) (r + 128) s16 = *(uint64 *) (s + 128) s16 ^= r16 q16 = s16 & bminus1 q16 ^= r16 p16 = q16 ^ s16 *(uint64 *) (p + 128) = p16 *(uint64 *) (q + 128) = q16 r17 = *(uint64 *) (r + 136) s17 = *(uint64 *) (s + 136) s17 ^= r17 q17 = s17 & bminus1 q17 ^= r17 p17 = q17 ^ s17 *(uint64 *) (p + 136) = p17 *(uint64 *) (q + 136) = q17 r18 = *(uint64 *) (r + 144) s18 = *(uint64 *) (s + 144) s18 ^= r18 q18 = s18 & bminus1 q18 ^= r18 p18 = q18 ^ s18 *(uint64 *) (p + 144) = p18 *(uint64 *) (q + 144) = q18 r19 = *(uint64 *) (r + 152) s19 = *(uint64 *) (s + 152) s19 ^= r19 q19 = s19 & bminus1 q19 ^= r19 p19 = q19 ^ s19 *(uint64 *) (p + 152) = p19 *(uint64 *) (q + 152) = q19 r20 = *(uint64 *) (r + 160) s20 = *(uint64 *) (s + 160) s20 ^= r20 q20 = s20 & bminus1 q20 ^= r20 p20 = q20 ^ s20 *(uint64 *) (p + 160) = p20 *(uint64 *) (q + 160) = q20 r21 = *(uint64 *) (r + 168) s21 = *(uint64 *) (s + 168) s21 ^= r21 q21 = s21 & bminus1 q21 ^= r21 p21 = q21 ^ s21 *(uint64 *) (p + 168) = p21 *(uint64 *) (q + 168) = q21 r22 = *(uint64 *) (r + 176) s22 = *(uint64 *) (s + 176) s22 ^= r22 q22 = s22 & bminus1 q22 ^= r22 p22 = q22 ^ s22 *(uint64 *) (p + 176) = p22 *(uint64 *) (q + 176) = q22 r23 = *(uint64 *) (r + 184) s23 = *(uint64 *) (s + 184) s23 ^= r23 q23 = s23 & bminus1 q23 ^= r23 p23 = q23 ^ s23 *(uint64 *) (p + 184) = p23 *(uint64 *) (q + 184) = q23 leave