// Code generated by gen_keccakf_bmi2.go. DO NOT EDIT. //go:build amd64 && !purego #include "textflag.h" // func keccakF1600BMI2(a *[200]byte) TEXT ·keccakF1600BMI2(SB), NOSPLIT, $200-8 MOVQ a+0(FP), DI // Round 0 MOVQ $0x0000000000000001, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 1 MOVQ $0x0000000000008082, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 2 MOVQ $0x800000000000808a, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 3 MOVQ $0x8000000080008000, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 4 MOVQ $0x000000000000808b, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 5 MOVQ $0x0000000080000001, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 6 MOVQ $0x8000000080008081, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 7 MOVQ $0x8000000000008009, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 8 MOVQ $0x000000000000008a, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 9 MOVQ $0x0000000000000088, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 10 MOVQ $0x0000000080008009, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 11 MOVQ $0x000000008000000a, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 12 MOVQ $0x000000008000808b, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 13 MOVQ $0x800000000000008b, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 14 MOVQ $0x8000000000008089, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 15 MOVQ $0x8000000000008003, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 16 MOVQ $0x8000000000008002, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 17 MOVQ $0x8000000000000080, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 18 MOVQ $0x000000000000800a, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 19 MOVQ $0x800000008000000a, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 20 MOVQ $0x8000000080008081, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 21 MOVQ $0x8000000000008080, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) // Round 22 MOVQ $0x0000000080000001, R13 MOVQ 0(DI), AX XORQ 40(DI), AX XORQ 80(DI), AX XORQ 120(DI), AX XORQ 160(DI), AX MOVQ 8(DI), BX XORQ 48(DI), BX XORQ 88(DI), BX XORQ 128(DI), BX XORQ 168(DI), BX MOVQ 16(DI), CX XORQ 56(DI), CX XORQ 96(DI), CX XORQ 136(DI), CX XORQ 176(DI), CX MOVQ 24(DI), DX XORQ 64(DI), DX XORQ 104(DI), DX XORQ 144(DI), DX XORQ 184(DI), DX MOVQ 32(DI), SI XORQ 72(DI), SI XORQ 112(DI), SI XORQ 152(DI), SI XORQ 192(DI), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(DI), R8 XORQ R14, R8 MOVQ 48(DI), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(DI), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(DI), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(DI), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(SP) MOVQ 24(DI), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(DI), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(DI), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(DI), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(DI), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(SP) MOVQ 8(DI), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(DI), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(DI), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(DI), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(DI), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(SP) MOVQ 32(DI), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(DI), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(DI), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(DI), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(DI), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(SP) MOVQ 16(DI), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(DI), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(DI), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(DI), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(DI), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(SP) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(SP) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(SP) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(SP) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(SP) // Round 23 MOVQ $0x8000000080008008, R13 MOVQ 0(SP), AX XORQ 40(SP), AX XORQ 80(SP), AX XORQ 120(SP), AX XORQ 160(SP), AX MOVQ 8(SP), BX XORQ 48(SP), BX XORQ 88(SP), BX XORQ 128(SP), BX XORQ 168(SP), BX MOVQ 16(SP), CX XORQ 56(SP), CX XORQ 96(SP), CX XORQ 136(SP), CX XORQ 176(SP), CX MOVQ 24(SP), DX XORQ 64(SP), DX XORQ 104(SP), DX XORQ 144(SP), DX XORQ 184(SP), DX MOVQ 32(SP), SI XORQ 72(SP), SI XORQ 112(SP), SI XORQ 152(SP), SI XORQ 192(SP), SI RORXQ $63, BX, R14 XORQ SI, R14 RORXQ $63, CX, R15 XORQ AX, R15 RORXQ $63, DX, BP XORQ BX, BP RORXQ $63, SI, R8 XORQ CX, R8 RORXQ $63, AX, R9 XORQ DX, R9 MOVQ R8, SI MOVQ R9, DX MOVQ 0(SP), R8 XORQ R14, R8 MOVQ 48(SP), R9 XORQ R15, R9 RORXQ $20, R9, R9 MOVQ 96(SP), R10 XORQ BP, R10 RORXQ $21, R10, R10 MOVQ 144(SP), R11 XORQ SI, R11 RORXQ $43, R11, R11 MOVQ 192(SP), R12 XORQ DX, R12 RORXQ $50, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX XORQ R13, AX MOVQ AX, 0(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 8(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 16(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 24(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 32(DI) MOVQ 24(SP), R8 XORQ SI, R8 RORXQ $36, R8, R8 MOVQ 72(SP), R9 XORQ DX, R9 RORXQ $44, R9, R9 MOVQ 80(SP), R10 XORQ R14, R10 RORXQ $61, R10, R10 MOVQ 128(SP), R11 XORQ R15, R11 RORXQ $19, R11, R11 MOVQ 176(SP), R12 XORQ BP, R12 RORXQ $3, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 40(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 48(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 56(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 64(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 72(DI) MOVQ 8(SP), R8 XORQ R15, R8 RORXQ $63, R8, R8 MOVQ 56(SP), R9 XORQ BP, R9 RORXQ $58, R9, R9 MOVQ 104(SP), R10 XORQ SI, R10 RORXQ $39, R10, R10 MOVQ 152(SP), R11 XORQ DX, R11 RORXQ $56, R11, R11 MOVQ 160(SP), R12 XORQ R14, R12 RORXQ $46, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 80(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 88(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 96(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 104(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 112(DI) MOVQ 32(SP), R8 XORQ DX, R8 RORXQ $37, R8, R8 MOVQ 40(SP), R9 XORQ R14, R9 RORXQ $28, R9, R9 MOVQ 88(SP), R10 XORQ R15, R10 RORXQ $54, R10, R10 MOVQ 136(SP), R11 XORQ BP, R11 RORXQ $49, R11, R11 MOVQ 184(SP), R12 XORQ SI, R12 RORXQ $8, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 120(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 128(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 136(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 144(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 152(DI) MOVQ 16(SP), R8 XORQ BP, R8 RORXQ $2, R8, R8 MOVQ 64(SP), R9 XORQ SI, R9 RORXQ $9, R9, R9 MOVQ 112(SP), R10 XORQ DX, R10 RORXQ $25, R10, R10 MOVQ 120(SP), R11 XORQ R14, R11 RORXQ $23, R11, R11 MOVQ 168(SP), R12 XORQ R15, R12 RORXQ $62, R12, R12 ANDNQ R10, R9, AX XORQ R8, AX MOVQ AX, 160(DI) ANDNQ R11, R10, AX XORQ R9, AX MOVQ AX, 168(DI) ANDNQ R12, R11, AX XORQ R10, AX MOVQ AX, 176(DI) ANDNQ R8, R12, AX XORQ R11, AX MOVQ AX, 184(DI) ANDNQ R9, R8, AX XORQ R12, AX MOVQ AX, 192(DI) RET