go-ethereum/crypto/keccak/keccakf_amd64_bmi2.s

4570 lines
76 KiB
ArmAsm

// Code generated by gen_keccakf_bmi2.go. DO NOT EDIT.
//go:build !purego && amd64
#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