// Code generated by command: go run sha512block_amd64_asm.go -out ../sha512block_amd64.s. DO NOT EDIT. //go:build !purego #include "textflag.h" // func blockAMD64(dig *Digest, p []byte) TEXT ·blockAMD64(SB), $648-32 MOVQ p_base+8(FP), SI MOVQ p_len+16(FP), DX SHRQ $0x07, DX SHLQ $0x07, DX LEAQ (SI)(DX*1), DI MOVQ DI, 640(SP) CMPQ SI, DI JEQ end MOVQ dig+0(FP), BP MOVQ (BP), R8 MOVQ 8(BP), R9 MOVQ 16(BP), R10 MOVQ 24(BP), R11 MOVQ 32(BP), R12 MOVQ 40(BP), R13 MOVQ 48(BP), R14 MOVQ 56(BP), R15 loop: MOVQ SP, BP MOVQ (SI), AX BSWAPQ AX MOVQ AX, (BP) MOVQ $0x428a2f98d728ae22, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 8(SI), AX BSWAPQ AX MOVQ AX, 8(BP) MOVQ $0x7137449123ef65cd, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 16(SI), AX BSWAPQ AX MOVQ AX, 16(BP) MOVQ $0xb5c0fbcfec4d3b2f, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 24(SI), AX BSWAPQ AX MOVQ AX, 24(BP) MOVQ $0xe9b5dba58189dbbc, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 32(SI), AX BSWAPQ AX MOVQ AX, 32(BP) MOVQ $0x3956c25bf348b538, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 40(SI), AX BSWAPQ AX MOVQ AX, 40(BP) MOVQ $0x59f111f1b605d019, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 48(SI), AX BSWAPQ AX MOVQ AX, 48(BP) MOVQ $0x923f82a4af194f9b, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 56(SI), AX BSWAPQ AX MOVQ AX, 56(BP) MOVQ $0xab1c5ed5da6d8118, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 64(SI), AX BSWAPQ AX MOVQ AX, 64(BP) MOVQ $0xd807aa98a3030242, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 72(SI), AX BSWAPQ AX MOVQ AX, 72(BP) MOVQ $0x12835b0145706fbe, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 80(SI), AX BSWAPQ AX MOVQ AX, 80(BP) MOVQ $0x243185be4ee4b28c, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 88(SI), AX BSWAPQ AX MOVQ AX, 88(BP) MOVQ $0x550c7dc3d5ffb4e2, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 96(SI), AX BSWAPQ AX MOVQ AX, 96(BP) MOVQ $0x72be5d74f27b896f, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 104(SI), AX BSWAPQ AX MOVQ AX, 104(BP) MOVQ $0x80deb1fe3b1696b1, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 112(SI), AX BSWAPQ AX MOVQ AX, 112(BP) MOVQ $0x9bdc06a725c71235, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 120(SI), AX BSWAPQ AX MOVQ AX, 120(BP) MOVQ $0xc19bf174cf692694, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 112(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 8(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 72(BP), AX XORQ CX, BX XORQ DX, BX ADDQ (BP), BX ADDQ BX, AX MOVQ AX, 128(BP) MOVQ $0xe49b69c19ef14ad2, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 120(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 16(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 80(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 8(BP), BX ADDQ BX, AX MOVQ AX, 136(BP) MOVQ $0xefbe4786384f25e3, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 128(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 24(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 88(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 16(BP), BX ADDQ BX, AX MOVQ AX, 144(BP) MOVQ $0x0fc19dc68b8cd5b5, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 136(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 32(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 96(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 24(BP), BX ADDQ BX, AX MOVQ AX, 152(BP) MOVQ $0x240ca1cc77ac9c65, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 144(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 40(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 104(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 32(BP), BX ADDQ BX, AX MOVQ AX, 160(BP) MOVQ $0x2de92c6f592b0275, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 152(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 48(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 112(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 40(BP), BX ADDQ BX, AX MOVQ AX, 168(BP) MOVQ $0x4a7484aa6ea6e483, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 160(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 56(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 120(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 48(BP), BX ADDQ BX, AX MOVQ AX, 176(BP) MOVQ $0x5cb0a9dcbd41fbd4, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 168(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 64(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 128(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 56(BP), BX ADDQ BX, AX MOVQ AX, 184(BP) MOVQ $0x76f988da831153b5, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 176(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 72(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 136(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 64(BP), BX ADDQ BX, AX MOVQ AX, 192(BP) MOVQ $0x983e5152ee66dfab, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 184(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 80(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 144(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 72(BP), BX ADDQ BX, AX MOVQ AX, 200(BP) MOVQ $0xa831c66d2db43210, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 192(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 88(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 152(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 80(BP), BX ADDQ BX, AX MOVQ AX, 208(BP) MOVQ $0xb00327c898fb213f, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 200(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 96(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 160(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 88(BP), BX ADDQ BX, AX MOVQ AX, 216(BP) MOVQ $0xbf597fc7beef0ee4, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 208(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 104(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 168(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 96(BP), BX ADDQ BX, AX MOVQ AX, 224(BP) MOVQ $0xc6e00bf33da88fc2, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 216(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 112(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 176(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 104(BP), BX ADDQ BX, AX MOVQ AX, 232(BP) MOVQ $0xd5a79147930aa725, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 224(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 120(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 184(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 112(BP), BX ADDQ BX, AX MOVQ AX, 240(BP) MOVQ $0x06ca6351e003826f, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 232(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 128(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 192(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 120(BP), BX ADDQ BX, AX MOVQ AX, 248(BP) MOVQ $0x142929670a0e6e70, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 240(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 136(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 200(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 128(BP), BX ADDQ BX, AX MOVQ AX, 256(BP) MOVQ $0x27b70a8546d22ffc, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 248(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 144(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 208(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 136(BP), BX ADDQ BX, AX MOVQ AX, 264(BP) MOVQ $0x2e1b21385c26c926, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 256(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 152(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 216(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 144(BP), BX ADDQ BX, AX MOVQ AX, 272(BP) MOVQ $0x4d2c6dfc5ac42aed, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 264(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 160(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 224(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 152(BP), BX ADDQ BX, AX MOVQ AX, 280(BP) MOVQ $0x53380d139d95b3df, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 272(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 168(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 232(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 160(BP), BX ADDQ BX, AX MOVQ AX, 288(BP) MOVQ $0x650a73548baf63de, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 280(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 176(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 240(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 168(BP), BX ADDQ BX, AX MOVQ AX, 296(BP) MOVQ $0x766a0abb3c77b2a8, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 288(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 184(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 248(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 176(BP), BX ADDQ BX, AX MOVQ AX, 304(BP) MOVQ $0x81c2c92e47edaee6, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 296(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 192(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 256(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 184(BP), BX ADDQ BX, AX MOVQ AX, 312(BP) MOVQ $0x92722c851482353b, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 304(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 200(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 264(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 192(BP), BX ADDQ BX, AX MOVQ AX, 320(BP) MOVQ $0xa2bfe8a14cf10364, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 312(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 208(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 272(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 200(BP), BX ADDQ BX, AX MOVQ AX, 328(BP) MOVQ $0xa81a664bbc423001, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 320(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 216(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 280(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 208(BP), BX ADDQ BX, AX MOVQ AX, 336(BP) MOVQ $0xc24b8b70d0f89791, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 328(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 224(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 288(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 216(BP), BX ADDQ BX, AX MOVQ AX, 344(BP) MOVQ $0xc76c51a30654be30, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 336(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 232(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 296(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 224(BP), BX ADDQ BX, AX MOVQ AX, 352(BP) MOVQ $0xd192e819d6ef5218, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 344(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 240(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 304(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 232(BP), BX ADDQ BX, AX MOVQ AX, 360(BP) MOVQ $0xd69906245565a910, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 352(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 248(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 312(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 240(BP), BX ADDQ BX, AX MOVQ AX, 368(BP) MOVQ $0xf40e35855771202a, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 360(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 256(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 320(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 248(BP), BX ADDQ BX, AX MOVQ AX, 376(BP) MOVQ $0x106aa07032bbd1b8, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 368(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 264(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 328(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 256(BP), BX ADDQ BX, AX MOVQ AX, 384(BP) MOVQ $0x19a4c116b8d2d0c8, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 376(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 272(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 336(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 264(BP), BX ADDQ BX, AX MOVQ AX, 392(BP) MOVQ $0x1e376c085141ab53, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 384(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 280(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 344(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 272(BP), BX ADDQ BX, AX MOVQ AX, 400(BP) MOVQ $0x2748774cdf8eeb99, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 392(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 288(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 352(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 280(BP), BX ADDQ BX, AX MOVQ AX, 408(BP) MOVQ $0x34b0bcb5e19b48a8, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 400(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 296(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 360(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 288(BP), BX ADDQ BX, AX MOVQ AX, 416(BP) MOVQ $0x391c0cb3c5c95a63, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 408(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 304(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 368(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 296(BP), BX ADDQ BX, AX MOVQ AX, 424(BP) MOVQ $0x4ed8aa4ae3418acb, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 416(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 312(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 376(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 304(BP), BX ADDQ BX, AX MOVQ AX, 432(BP) MOVQ $0x5b9cca4f7763e373, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 424(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 320(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 384(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 312(BP), BX ADDQ BX, AX MOVQ AX, 440(BP) MOVQ $0x682e6ff3d6b2b8a3, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 432(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 328(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 392(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 320(BP), BX ADDQ BX, AX MOVQ AX, 448(BP) MOVQ $0x748f82ee5defb2fc, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 440(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 336(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 400(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 328(BP), BX ADDQ BX, AX MOVQ AX, 456(BP) MOVQ $0x78a5636f43172f60, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 448(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 344(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 408(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 336(BP), BX ADDQ BX, AX MOVQ AX, 464(BP) MOVQ $0x84c87814a1f0ab72, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 456(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 352(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 416(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 344(BP), BX ADDQ BX, AX MOVQ AX, 472(BP) MOVQ $0x8cc702081a6439ec, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 464(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 360(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 424(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 352(BP), BX ADDQ BX, AX MOVQ AX, 480(BP) MOVQ $0x90befffa23631e28, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 472(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 368(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 432(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 360(BP), BX ADDQ BX, AX MOVQ AX, 488(BP) MOVQ $0xa4506cebde82bde9, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 480(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 376(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 440(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 368(BP), BX ADDQ BX, AX MOVQ AX, 496(BP) MOVQ $0xbef9a3f7b2c67915, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 488(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 384(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 448(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 376(BP), BX ADDQ BX, AX MOVQ AX, 504(BP) MOVQ $0xc67178f2e372532b, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 496(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 392(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 456(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 384(BP), BX ADDQ BX, AX MOVQ AX, 512(BP) MOVQ $0xca273eceea26619c, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 504(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 400(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 464(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 392(BP), BX ADDQ BX, AX MOVQ AX, 520(BP) MOVQ $0xd186b8c721c0c207, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 512(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 408(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 472(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 400(BP), BX ADDQ BX, AX MOVQ AX, 528(BP) MOVQ $0xeada7dd6cde0eb1e, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 520(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 416(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 480(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 408(BP), BX ADDQ BX, AX MOVQ AX, 536(BP) MOVQ $0xf57d4f7fee6ed178, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 528(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 424(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 488(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 416(BP), BX ADDQ BX, AX MOVQ AX, 544(BP) MOVQ $0x06f067aa72176fba, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 536(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 432(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 496(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 424(BP), BX ADDQ BX, AX MOVQ AX, 552(BP) MOVQ $0x0a637dc5a2c898a6, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 544(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 440(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 504(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 432(BP), BX ADDQ BX, AX MOVQ AX, 560(BP) MOVQ $0x113f9804bef90dae, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 552(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 448(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 512(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 440(BP), BX ADDQ BX, AX MOVQ AX, 568(BP) MOVQ $0x1b710b35131c471b, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ 560(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 456(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 520(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 448(BP), BX ADDQ BX, AX MOVQ AX, 576(BP) MOVQ $0x28db77f523047d84, DX ADDQ AX, R15 MOVQ R12, AX ADDQ DX, R15 MOVQ R12, CX RORQ $0x0e, AX MOVQ R12, DX RORQ $0x12, CX XORQ CX, AX MOVQ R12, CX RORQ $0x29, DX ANDQ R13, CX XORQ AX, DX MOVQ R12, AX NOTQ AX ADDQ DX, R15 ANDQ R14, AX XORQ CX, AX ADDQ R15, AX MOVQ R8, DI MOVQ R10, BX RORQ $0x1c, DI MOVQ R8, DX ANDQ R9, BX RORQ $0x22, DX MOVQ R8, CX ANDQ R10, CX XORQ DX, DI XORQ CX, BX MOVQ R8, DX MOVQ R9, CX RORQ $0x27, DX ANDQ R8, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R15 ADDQ AX, R11 ADDQ AX, R15 MOVQ 568(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 464(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 528(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 456(BP), BX ADDQ BX, AX MOVQ AX, 584(BP) MOVQ $0x32caab7b40c72493, DX ADDQ AX, R14 MOVQ R11, AX ADDQ DX, R14 MOVQ R11, CX RORQ $0x0e, AX MOVQ R11, DX RORQ $0x12, CX XORQ CX, AX MOVQ R11, CX RORQ $0x29, DX ANDQ R12, CX XORQ AX, DX MOVQ R11, AX NOTQ AX ADDQ DX, R14 ANDQ R13, AX XORQ CX, AX ADDQ R14, AX MOVQ R15, DI MOVQ R9, BX RORQ $0x1c, DI MOVQ R15, DX ANDQ R8, BX RORQ $0x22, DX MOVQ R15, CX ANDQ R9, CX XORQ DX, DI XORQ CX, BX MOVQ R15, DX MOVQ R8, CX RORQ $0x27, DX ANDQ R15, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R14 ADDQ AX, R10 ADDQ AX, R14 MOVQ 576(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 472(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 536(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 464(BP), BX ADDQ BX, AX MOVQ AX, 592(BP) MOVQ $0x3c9ebe0a15c9bebc, DX ADDQ AX, R13 MOVQ R10, AX ADDQ DX, R13 MOVQ R10, CX RORQ $0x0e, AX MOVQ R10, DX RORQ $0x12, CX XORQ CX, AX MOVQ R10, CX RORQ $0x29, DX ANDQ R11, CX XORQ AX, DX MOVQ R10, AX NOTQ AX ADDQ DX, R13 ANDQ R12, AX XORQ CX, AX ADDQ R13, AX MOVQ R14, DI MOVQ R8, BX RORQ $0x1c, DI MOVQ R14, DX ANDQ R15, BX RORQ $0x22, DX MOVQ R14, CX ANDQ R8, CX XORQ DX, DI XORQ CX, BX MOVQ R14, DX MOVQ R15, CX RORQ $0x27, DX ANDQ R14, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R13 ADDQ AX, R9 ADDQ AX, R13 MOVQ 584(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 480(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 544(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 472(BP), BX ADDQ BX, AX MOVQ AX, 600(BP) MOVQ $0x431d67c49c100d4c, DX ADDQ AX, R12 MOVQ R9, AX ADDQ DX, R12 MOVQ R9, CX RORQ $0x0e, AX MOVQ R9, DX RORQ $0x12, CX XORQ CX, AX MOVQ R9, CX RORQ $0x29, DX ANDQ R10, CX XORQ AX, DX MOVQ R9, AX NOTQ AX ADDQ DX, R12 ANDQ R11, AX XORQ CX, AX ADDQ R12, AX MOVQ R13, DI MOVQ R15, BX RORQ $0x1c, DI MOVQ R13, DX ANDQ R14, BX RORQ $0x22, DX MOVQ R13, CX ANDQ R15, CX XORQ DX, DI XORQ CX, BX MOVQ R13, DX MOVQ R14, CX RORQ $0x27, DX ANDQ R13, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R12 ADDQ AX, R8 ADDQ AX, R12 MOVQ 592(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 488(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 552(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 480(BP), BX ADDQ BX, AX MOVQ AX, 608(BP) MOVQ $0x4cc5d4becb3e42b6, DX ADDQ AX, R11 MOVQ R8, AX ADDQ DX, R11 MOVQ R8, CX RORQ $0x0e, AX MOVQ R8, DX RORQ $0x12, CX XORQ CX, AX MOVQ R8, CX RORQ $0x29, DX ANDQ R9, CX XORQ AX, DX MOVQ R8, AX NOTQ AX ADDQ DX, R11 ANDQ R10, AX XORQ CX, AX ADDQ R11, AX MOVQ R12, DI MOVQ R14, BX RORQ $0x1c, DI MOVQ R12, DX ANDQ R13, BX RORQ $0x22, DX MOVQ R12, CX ANDQ R14, CX XORQ DX, DI XORQ CX, BX MOVQ R12, DX MOVQ R13, CX RORQ $0x27, DX ANDQ R12, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R11 ADDQ AX, R15 ADDQ AX, R11 MOVQ 600(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 496(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 560(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 488(BP), BX ADDQ BX, AX MOVQ AX, 616(BP) MOVQ $0x597f299cfc657e2a, DX ADDQ AX, R10 MOVQ R15, AX ADDQ DX, R10 MOVQ R15, CX RORQ $0x0e, AX MOVQ R15, DX RORQ $0x12, CX XORQ CX, AX MOVQ R15, CX RORQ $0x29, DX ANDQ R8, CX XORQ AX, DX MOVQ R15, AX NOTQ AX ADDQ DX, R10 ANDQ R9, AX XORQ CX, AX ADDQ R10, AX MOVQ R11, DI MOVQ R13, BX RORQ $0x1c, DI MOVQ R11, DX ANDQ R12, BX RORQ $0x22, DX MOVQ R11, CX ANDQ R13, CX XORQ DX, DI XORQ CX, BX MOVQ R11, DX MOVQ R12, CX RORQ $0x27, DX ANDQ R11, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R10 ADDQ AX, R14 ADDQ AX, R10 MOVQ 608(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 504(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 568(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 496(BP), BX ADDQ BX, AX MOVQ AX, 624(BP) MOVQ $0x5fcb6fab3ad6faec, DX ADDQ AX, R9 MOVQ R14, AX ADDQ DX, R9 MOVQ R14, CX RORQ $0x0e, AX MOVQ R14, DX RORQ $0x12, CX XORQ CX, AX MOVQ R14, CX RORQ $0x29, DX ANDQ R15, CX XORQ AX, DX MOVQ R14, AX NOTQ AX ADDQ DX, R9 ANDQ R8, AX XORQ CX, AX ADDQ R9, AX MOVQ R10, DI MOVQ R12, BX RORQ $0x1c, DI MOVQ R10, DX ANDQ R11, BX RORQ $0x22, DX MOVQ R10, CX ANDQ R12, CX XORQ DX, DI XORQ CX, BX MOVQ R10, DX MOVQ R11, CX RORQ $0x27, DX ANDQ R10, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R9 ADDQ AX, R13 ADDQ AX, R9 MOVQ 616(BP), AX MOVQ AX, CX RORQ $0x13, AX MOVQ CX, DX RORQ $0x3d, CX SHRQ $0x06, DX MOVQ 512(BP), BX XORQ CX, AX MOVQ BX, CX XORQ DX, AX RORQ $0x01, BX MOVQ CX, DX SHRQ $0x07, DX RORQ $0x08, CX ADDQ 576(BP), AX XORQ CX, BX XORQ DX, BX ADDQ 504(BP), BX ADDQ BX, AX MOVQ AX, 632(BP) MOVQ $0x6c44198c4a475817, DX ADDQ AX, R8 MOVQ R13, AX ADDQ DX, R8 MOVQ R13, CX RORQ $0x0e, AX MOVQ R13, DX RORQ $0x12, CX XORQ CX, AX MOVQ R13, CX RORQ $0x29, DX ANDQ R14, CX XORQ AX, DX MOVQ R13, AX NOTQ AX ADDQ DX, R8 ANDQ R15, AX XORQ CX, AX ADDQ R8, AX MOVQ R9, DI MOVQ R11, BX RORQ $0x1c, DI MOVQ R9, DX ANDQ R10, BX RORQ $0x22, DX MOVQ R9, CX ANDQ R11, CX XORQ DX, DI XORQ CX, BX MOVQ R9, DX MOVQ R10, CX RORQ $0x27, DX ANDQ R9, CX XORQ CX, BX XORQ DX, DI ADDQ DI, BX MOVQ BX, R8 ADDQ AX, R12 ADDQ AX, R8 MOVQ dig+0(FP), BP ADDQ (BP), R8 MOVQ R8, (BP) ADDQ 8(BP), R9 MOVQ R9, 8(BP) ADDQ 16(BP), R10 MOVQ R10, 16(BP) ADDQ 24(BP), R11 MOVQ R11, 24(BP) ADDQ 32(BP), R12 MOVQ R12, 32(BP) ADDQ 40(BP), R13 MOVQ R13, 40(BP) ADDQ 48(BP), R14 MOVQ R14, 48(BP) ADDQ 56(BP), R15 MOVQ R15, 56(BP) ADDQ $0x80, SI CMPQ SI, 640(SP) JB loop end: RET DATA PSHUFFLE_BYTE_FLIP_MASK<>+0(SB)/8, $0x0001020304050607 DATA PSHUFFLE_BYTE_FLIP_MASK<>+8(SB)/8, $0x08090a0b0c0d0e0f DATA PSHUFFLE_BYTE_FLIP_MASK<>+16(SB)/8, $0x1011121314151617 DATA PSHUFFLE_BYTE_FLIP_MASK<>+24(SB)/8, $0x18191a1b1c1d1e1f GLOBL PSHUFFLE_BYTE_FLIP_MASK<>(SB), RODATA|NOPTR, $32 // func blockAVX2(dig *Digest, p []byte) // Requires: AVX, AVX2, BMI2 TEXT ·blockAVX2(SB), NOSPLIT, $56-32 MOVQ dig+0(FP), SI MOVQ p_base+8(FP), DI MOVQ p_len+16(FP), DX SHRQ $0x07, DX SHLQ $0x07, DX JZ done_hash ADDQ DI, DX MOVQ DX, 48(SP) MOVQ (SI), AX MOVQ 8(SI), BX MOVQ 16(SI), CX MOVQ 24(SI), R8 MOVQ 32(SI), DX MOVQ 40(SI), R9 MOVQ 48(SI), R10 MOVQ 56(SI), R11 VMOVDQU PSHUFFLE_BYTE_FLIP_MASK<>+0(SB), Y9 loop0: MOVQ $·_K+0(SB), BP VMOVDQU (DI), Y4 VPSHUFB Y9, Y4, Y4 VMOVDQU 32(DI), Y5 VPSHUFB Y9, Y5, Y5 VMOVDQU 64(DI), Y6 VPSHUFB Y9, Y6, Y6 VMOVDQU 96(DI), Y7 VPSHUFB Y9, Y7, Y7 MOVQ DI, 40(SP) MOVQ $0x00000004, 32(SP) loop1: VPADDQ (BP), Y4, Y0 VMOVDQU Y0, (SP) VPERM2F128 $0x03, Y6, Y7, Y0 VPALIGNR $0x08, Y6, Y0, Y0 VPADDQ Y4, Y0, Y0 VPERM2F128 $0x03, Y4, Y5, Y1 VPALIGNR $0x08, Y4, Y1, Y1 VPSRLQ $0x01, Y1, Y2 VPSLLQ $0x3f, Y1, Y3 VPOR Y2, Y3, Y3 VPSRLQ $0x07, Y1, Y8 MOVQ AX, DI RORXQ $0x29, DX, R13 RORXQ $0x12, DX, R14 ADDQ (SP), R11 ORQ CX, DI MOVQ R9, R15 RORXQ $0x22, AX, R12 XORQ R14, R13 XORQ R10, R15 RORXQ $0x0e, DX, R14 ANDQ DX, R15 XORQ R14, R13 RORXQ $0x27, AX, R14 ADDQ R11, R8 ANDQ BX, DI XORQ R12, R14 RORXQ $0x1c, AX, R12 XORQ R10, R15 XORQ R12, R14 MOVQ AX, R12 ANDQ CX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R11 ADDQ R15, R8 ADDQ R15, R11 ADDQ DI, R11 VPSRLQ $0x08, Y1, Y2 VPSLLQ $0x38, Y1, Y1 VPOR Y2, Y1, Y1 VPXOR Y8, Y3, Y3 VPXOR Y1, Y3, Y1 VPADDQ Y1, Y0, Y0 VPERM2F128 $0x00, Y0, Y0, Y4 VPAND MASK_YMM_LO<>+0(SB), Y0, Y0 VPERM2F128 $0x11, Y7, Y7, Y2 VPSRLQ $0x06, Y2, Y8 MOVQ R11, DI RORXQ $0x29, R8, R13 RORXQ $0x12, R8, R14 ADDQ 8(SP), R10 ORQ BX, DI MOVQ DX, R15 RORXQ $0x22, R11, R12 XORQ R14, R13 XORQ R9, R15 RORXQ $0x0e, R8, R14 XORQ R14, R13 RORXQ $0x27, R11, R14 ANDQ R8, R15 ADDQ R10, CX ANDQ AX, DI XORQ R12, R14 RORXQ $0x1c, R11, R12 XORQ R9, R15 XORQ R12, R14 MOVQ R11, R12 ANDQ BX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R10 ADDQ R15, CX ADDQ R15, R10 ADDQ DI, R10 VPSRLQ $0x13, Y2, Y3 VPSLLQ $0x2d, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y2, Y3 VPSLLQ $0x03, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y4, Y4 VPSRLQ $0x06, Y4, Y8 MOVQ R10, DI RORXQ $0x29, CX, R13 ADDQ 16(SP), R9 RORXQ $0x12, CX, R14 ORQ AX, DI MOVQ R8, R15 XORQ DX, R15 RORXQ $0x22, R10, R12 XORQ R14, R13 ANDQ CX, R15 RORXQ $0x0e, CX, R14 ADDQ R9, BX ANDQ R11, DI XORQ R14, R13 RORXQ $0x27, R10, R14 XORQ DX, R15 XORQ R12, R14 RORXQ $0x1c, R10, R12 XORQ R12, R14 MOVQ R10, R12 ANDQ AX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R9 ADDQ R15, BX ADDQ R15, R9 ADDQ DI, R9 VPSRLQ $0x13, Y4, Y3 VPSLLQ $0x2d, Y4, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y4, Y3 VPSLLQ $0x03, Y4, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y0, Y2 VPBLENDD $0xf0, Y2, Y4, Y4 MOVQ R9, DI RORXQ $0x29, BX, R13 RORXQ $0x12, BX, R14 ADDQ 24(SP), DX ORQ R11, DI MOVQ CX, R15 RORXQ $0x22, R9, R12 XORQ R14, R13 XORQ R8, R15 RORXQ $0x0e, BX, R14 ANDQ BX, R15 ADDQ DX, AX ANDQ R10, DI XORQ R14, R13 XORQ R8, R15 RORXQ $0x27, R9, R14 ADDQ R13, R15 XORQ R12, R14 ADDQ R15, AX RORXQ $0x1c, R9, R12 XORQ R12, R14 MOVQ R9, R12 ANDQ R11, R12 ORQ R12, DI ADDQ R14, DX ADDQ R15, DX ADDQ DI, DX VPADDQ 32(BP), Y5, Y0 VMOVDQU Y0, (SP) VPERM2F128 $0x03, Y7, Y4, Y0 VPALIGNR $0x08, Y7, Y0, Y0 VPADDQ Y5, Y0, Y0 VPERM2F128 $0x03, Y5, Y6, Y1 VPALIGNR $0x08, Y5, Y1, Y1 VPSRLQ $0x01, Y1, Y2 VPSLLQ $0x3f, Y1, Y3 VPOR Y2, Y3, Y3 VPSRLQ $0x07, Y1, Y8 MOVQ DX, DI RORXQ $0x29, AX, R13 RORXQ $0x12, AX, R14 ADDQ (SP), R8 ORQ R10, DI MOVQ BX, R15 RORXQ $0x22, DX, R12 XORQ R14, R13 XORQ CX, R15 RORXQ $0x0e, AX, R14 ANDQ AX, R15 XORQ R14, R13 RORXQ $0x27, DX, R14 ADDQ R8, R11 ANDQ R9, DI XORQ R12, R14 RORXQ $0x1c, DX, R12 XORQ CX, R15 XORQ R12, R14 MOVQ DX, R12 ANDQ R10, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R8 ADDQ R15, R11 ADDQ R15, R8 ADDQ DI, R8 VPSRLQ $0x08, Y1, Y2 VPSLLQ $0x38, Y1, Y1 VPOR Y2, Y1, Y1 VPXOR Y8, Y3, Y3 VPXOR Y1, Y3, Y1 VPADDQ Y1, Y0, Y0 VPERM2F128 $0x00, Y0, Y0, Y5 VPAND MASK_YMM_LO<>+0(SB), Y0, Y0 VPERM2F128 $0x11, Y4, Y4, Y2 VPSRLQ $0x06, Y2, Y8 MOVQ R8, DI RORXQ $0x29, R11, R13 RORXQ $0x12, R11, R14 ADDQ 8(SP), CX ORQ R9, DI MOVQ AX, R15 RORXQ $0x22, R8, R12 XORQ R14, R13 XORQ BX, R15 RORXQ $0x0e, R11, R14 XORQ R14, R13 RORXQ $0x27, R8, R14 ANDQ R11, R15 ADDQ CX, R10 ANDQ DX, DI XORQ R12, R14 RORXQ $0x1c, R8, R12 XORQ BX, R15 XORQ R12, R14 MOVQ R8, R12 ANDQ R9, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, CX ADDQ R15, R10 ADDQ R15, CX ADDQ DI, CX VPSRLQ $0x13, Y2, Y3 VPSLLQ $0x2d, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y2, Y3 VPSLLQ $0x03, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y5, Y5 VPSRLQ $0x06, Y5, Y8 MOVQ CX, DI RORXQ $0x29, R10, R13 ADDQ 16(SP), BX RORXQ $0x12, R10, R14 ORQ DX, DI MOVQ R11, R15 XORQ AX, R15 RORXQ $0x22, CX, R12 XORQ R14, R13 ANDQ R10, R15 RORXQ $0x0e, R10, R14 ADDQ BX, R9 ANDQ R8, DI XORQ R14, R13 RORXQ $0x27, CX, R14 XORQ AX, R15 XORQ R12, R14 RORXQ $0x1c, CX, R12 XORQ R12, R14 MOVQ CX, R12 ANDQ DX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, BX ADDQ R15, R9 ADDQ R15, BX ADDQ DI, BX VPSRLQ $0x13, Y5, Y3 VPSLLQ $0x2d, Y5, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y5, Y3 VPSLLQ $0x03, Y5, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y0, Y2 VPBLENDD $0xf0, Y2, Y5, Y5 MOVQ BX, DI RORXQ $0x29, R9, R13 RORXQ $0x12, R9, R14 ADDQ 24(SP), AX ORQ R8, DI MOVQ R10, R15 RORXQ $0x22, BX, R12 XORQ R14, R13 XORQ R11, R15 RORXQ $0x0e, R9, R14 ANDQ R9, R15 ADDQ AX, DX ANDQ CX, DI XORQ R14, R13 XORQ R11, R15 RORXQ $0x27, BX, R14 ADDQ R13, R15 XORQ R12, R14 ADDQ R15, DX RORXQ $0x1c, BX, R12 XORQ R12, R14 MOVQ BX, R12 ANDQ R8, R12 ORQ R12, DI ADDQ R14, AX ADDQ R15, AX ADDQ DI, AX VPADDQ 64(BP), Y6, Y0 VMOVDQU Y0, (SP) VPERM2F128 $0x03, Y4, Y5, Y0 VPALIGNR $0x08, Y4, Y0, Y0 VPADDQ Y6, Y0, Y0 VPERM2F128 $0x03, Y6, Y7, Y1 VPALIGNR $0x08, Y6, Y1, Y1 VPSRLQ $0x01, Y1, Y2 VPSLLQ $0x3f, Y1, Y3 VPOR Y2, Y3, Y3 VPSRLQ $0x07, Y1, Y8 MOVQ AX, DI RORXQ $0x29, DX, R13 RORXQ $0x12, DX, R14 ADDQ (SP), R11 ORQ CX, DI MOVQ R9, R15 RORXQ $0x22, AX, R12 XORQ R14, R13 XORQ R10, R15 RORXQ $0x0e, DX, R14 ANDQ DX, R15 XORQ R14, R13 RORXQ $0x27, AX, R14 ADDQ R11, R8 ANDQ BX, DI XORQ R12, R14 RORXQ $0x1c, AX, R12 XORQ R10, R15 XORQ R12, R14 MOVQ AX, R12 ANDQ CX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R11 ADDQ R15, R8 ADDQ R15, R11 ADDQ DI, R11 VPSRLQ $0x08, Y1, Y2 VPSLLQ $0x38, Y1, Y1 VPOR Y2, Y1, Y1 VPXOR Y8, Y3, Y3 VPXOR Y1, Y3, Y1 VPADDQ Y1, Y0, Y0 VPERM2F128 $0x00, Y0, Y0, Y6 VPAND MASK_YMM_LO<>+0(SB), Y0, Y0 VPERM2F128 $0x11, Y5, Y5, Y2 VPSRLQ $0x06, Y2, Y8 MOVQ R11, DI RORXQ $0x29, R8, R13 RORXQ $0x12, R8, R14 ADDQ 8(SP), R10 ORQ BX, DI MOVQ DX, R15 RORXQ $0x22, R11, R12 XORQ R14, R13 XORQ R9, R15 RORXQ $0x0e, R8, R14 XORQ R14, R13 RORXQ $0x27, R11, R14 ANDQ R8, R15 ADDQ R10, CX ANDQ AX, DI XORQ R12, R14 RORXQ $0x1c, R11, R12 XORQ R9, R15 XORQ R12, R14 MOVQ R11, R12 ANDQ BX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R10 ADDQ R15, CX ADDQ R15, R10 ADDQ DI, R10 VPSRLQ $0x13, Y2, Y3 VPSLLQ $0x2d, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y2, Y3 VPSLLQ $0x03, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y6, Y6 VPSRLQ $0x06, Y6, Y8 MOVQ R10, DI RORXQ $0x29, CX, R13 ADDQ 16(SP), R9 RORXQ $0x12, CX, R14 ORQ AX, DI MOVQ R8, R15 XORQ DX, R15 RORXQ $0x22, R10, R12 XORQ R14, R13 ANDQ CX, R15 RORXQ $0x0e, CX, R14 ADDQ R9, BX ANDQ R11, DI XORQ R14, R13 RORXQ $0x27, R10, R14 XORQ DX, R15 XORQ R12, R14 RORXQ $0x1c, R10, R12 XORQ R12, R14 MOVQ R10, R12 ANDQ AX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R9 ADDQ R15, BX ADDQ R15, R9 ADDQ DI, R9 VPSRLQ $0x13, Y6, Y3 VPSLLQ $0x2d, Y6, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y6, Y3 VPSLLQ $0x03, Y6, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y0, Y2 VPBLENDD $0xf0, Y2, Y6, Y6 MOVQ R9, DI RORXQ $0x29, BX, R13 RORXQ $0x12, BX, R14 ADDQ 24(SP), DX ORQ R11, DI MOVQ CX, R15 RORXQ $0x22, R9, R12 XORQ R14, R13 XORQ R8, R15 RORXQ $0x0e, BX, R14 ANDQ BX, R15 ADDQ DX, AX ANDQ R10, DI XORQ R14, R13 XORQ R8, R15 RORXQ $0x27, R9, R14 ADDQ R13, R15 XORQ R12, R14 ADDQ R15, AX RORXQ $0x1c, R9, R12 XORQ R12, R14 MOVQ R9, R12 ANDQ R11, R12 ORQ R12, DI ADDQ R14, DX ADDQ R15, DX ADDQ DI, DX VPADDQ 96(BP), Y7, Y0 VMOVDQU Y0, (SP) ADDQ $0x80, BP VPERM2F128 $0x03, Y5, Y6, Y0 VPALIGNR $0x08, Y5, Y0, Y0 VPADDQ Y7, Y0, Y0 VPERM2F128 $0x03, Y7, Y4, Y1 VPALIGNR $0x08, Y7, Y1, Y1 VPSRLQ $0x01, Y1, Y2 VPSLLQ $0x3f, Y1, Y3 VPOR Y2, Y3, Y3 VPSRLQ $0x07, Y1, Y8 MOVQ DX, DI RORXQ $0x29, AX, R13 RORXQ $0x12, AX, R14 ADDQ (SP), R8 ORQ R10, DI MOVQ BX, R15 RORXQ $0x22, DX, R12 XORQ R14, R13 XORQ CX, R15 RORXQ $0x0e, AX, R14 ANDQ AX, R15 XORQ R14, R13 RORXQ $0x27, DX, R14 ADDQ R8, R11 ANDQ R9, DI XORQ R12, R14 RORXQ $0x1c, DX, R12 XORQ CX, R15 XORQ R12, R14 MOVQ DX, R12 ANDQ R10, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, R8 ADDQ R15, R11 ADDQ R15, R8 ADDQ DI, R8 VPSRLQ $0x08, Y1, Y2 VPSLLQ $0x38, Y1, Y1 VPOR Y2, Y1, Y1 VPXOR Y8, Y3, Y3 VPXOR Y1, Y3, Y1 VPADDQ Y1, Y0, Y0 VPERM2F128 $0x00, Y0, Y0, Y7 VPAND MASK_YMM_LO<>+0(SB), Y0, Y0 VPERM2F128 $0x11, Y6, Y6, Y2 VPSRLQ $0x06, Y2, Y8 MOVQ R8, DI RORXQ $0x29, R11, R13 RORXQ $0x12, R11, R14 ADDQ 8(SP), CX ORQ R9, DI MOVQ AX, R15 RORXQ $0x22, R8, R12 XORQ R14, R13 XORQ BX, R15 RORXQ $0x0e, R11, R14 XORQ R14, R13 RORXQ $0x27, R8, R14 ANDQ R11, R15 ADDQ CX, R10 ANDQ DX, DI XORQ R12, R14 RORXQ $0x1c, R8, R12 XORQ BX, R15 XORQ R12, R14 MOVQ R8, R12 ANDQ R9, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, CX ADDQ R15, R10 ADDQ R15, CX ADDQ DI, CX VPSRLQ $0x13, Y2, Y3 VPSLLQ $0x2d, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y2, Y3 VPSLLQ $0x03, Y2, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y7, Y7 VPSRLQ $0x06, Y7, Y8 MOVQ CX, DI RORXQ $0x29, R10, R13 ADDQ 16(SP), BX RORXQ $0x12, R10, R14 ORQ DX, DI MOVQ R11, R15 XORQ AX, R15 RORXQ $0x22, CX, R12 XORQ R14, R13 ANDQ R10, R15 RORXQ $0x0e, R10, R14 ADDQ BX, R9 ANDQ R8, DI XORQ R14, R13 RORXQ $0x27, CX, R14 XORQ AX, R15 XORQ R12, R14 RORXQ $0x1c, CX, R12 XORQ R12, R14 MOVQ CX, R12 ANDQ DX, R12 ADDQ R13, R15 ORQ R12, DI ADDQ R14, BX ADDQ R15, R9 ADDQ R15, BX ADDQ DI, BX VPSRLQ $0x13, Y7, Y3 VPSLLQ $0x2d, Y7, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPSRLQ $0x3d, Y7, Y3 VPSLLQ $0x03, Y7, Y1 VPOR Y1, Y3, Y3 VPXOR Y3, Y8, Y8 VPADDQ Y8, Y0, Y2 VPBLENDD $0xf0, Y2, Y7, Y7 MOVQ BX, DI RORXQ $0x29, R9, R13 RORXQ $0x12, R9, R14 ADDQ 24(SP), AX ORQ R8, DI MOVQ R10, R15 RORXQ $0x22, BX, R12 XORQ R14, R13 XORQ R11, R15 RORXQ $0x0e, R9, R14 ANDQ R9, R15 ADDQ AX, DX ANDQ CX, DI XORQ R14, R13 XORQ R11, R15 RORXQ $0x27, BX, R14 ADDQ R13, R15 XORQ R12, R14 ADDQ R15, DX RORXQ $0x1c, BX, R12 XORQ R12, R14 MOVQ BX, R12 ANDQ R8, R12 ORQ R12, DI ADDQ R14, AX ADDQ R15, AX ADDQ DI, AX SUBQ $0x01, 32(SP) JNE loop1 MOVQ $0x00000002, 32(SP) loop2: VPADDQ (BP), Y4, Y0 VMOVDQU Y0, (SP) MOVQ R9, R15 RORXQ $0x29, DX, R13 RORXQ $0x12, DX, R14 XORQ R10, R15 XORQ R14, R13 RORXQ $0x0e, DX, R14 ANDQ DX, R15 XORQ R14, R13 RORXQ $0x22, AX, R12 XORQ R10, R15 RORXQ $0x27, AX, R14 MOVQ AX, DI XORQ R12, R14 RORXQ $0x1c, AX, R12 ADDQ (SP), R11 ORQ CX, DI XORQ R12, R14 MOVQ AX, R12 ANDQ BX, DI ANDQ CX, R12 ADDQ R13, R15 ADDQ R11, R8 ORQ R12, DI ADDQ R14, R11 ADDQ R15, R8 ADDQ R15, R11 MOVQ DX, R15 RORXQ $0x29, R8, R13 RORXQ $0x12, R8, R14 XORQ R9, R15 XORQ R14, R13 RORXQ $0x0e, R8, R14 ANDQ R8, R15 ADDQ DI, R11 XORQ R14, R13 RORXQ $0x22, R11, R12 XORQ R9, R15 RORXQ $0x27, R11, R14 MOVQ R11, DI XORQ R12, R14 RORXQ $0x1c, R11, R12 ADDQ 8(SP), R10 ORQ BX, DI XORQ R12, R14 MOVQ R11, R12 ANDQ AX, DI ANDQ BX, R12 ADDQ R13, R15 ADDQ R10, CX ORQ R12, DI ADDQ R14, R10 ADDQ R15, CX ADDQ R15, R10 MOVQ R8, R15 RORXQ $0x29, CX, R13 RORXQ $0x12, CX, R14 XORQ DX, R15 XORQ R14, R13 RORXQ $0x0e, CX, R14 ANDQ CX, R15 ADDQ DI, R10 XORQ R14, R13 RORXQ $0x22, R10, R12 XORQ DX, R15 RORXQ $0x27, R10, R14 MOVQ R10, DI XORQ R12, R14 RORXQ $0x1c, R10, R12 ADDQ 16(SP), R9 ORQ AX, DI XORQ R12, R14 MOVQ R10, R12 ANDQ R11, DI ANDQ AX, R12 ADDQ R13, R15 ADDQ R9, BX ORQ R12, DI ADDQ R14, R9 ADDQ R15, BX ADDQ R15, R9 MOVQ CX, R15 RORXQ $0x29, BX, R13 RORXQ $0x12, BX, R14 XORQ R8, R15 XORQ R14, R13 RORXQ $0x0e, BX, R14 ANDQ BX, R15 ADDQ DI, R9 XORQ R14, R13 RORXQ $0x22, R9, R12 XORQ R8, R15 RORXQ $0x27, R9, R14 MOVQ R9, DI XORQ R12, R14 RORXQ $0x1c, R9, R12 ADDQ 24(SP), DX ORQ R11, DI XORQ R12, R14 MOVQ R9, R12 ANDQ R10, DI ANDQ R11, R12 ADDQ R13, R15 ADDQ DX, AX ORQ R12, DI ADDQ R14, DX ADDQ R15, AX ADDQ R15, DX ADDQ DI, DX VPADDQ 32(BP), Y5, Y0 VMOVDQU Y0, (SP) ADDQ $0x40, BP MOVQ BX, R15 RORXQ $0x29, AX, R13 RORXQ $0x12, AX, R14 XORQ CX, R15 XORQ R14, R13 RORXQ $0x0e, AX, R14 ANDQ AX, R15 XORQ R14, R13 RORXQ $0x22, DX, R12 XORQ CX, R15 RORXQ $0x27, DX, R14 MOVQ DX, DI XORQ R12, R14 RORXQ $0x1c, DX, R12 ADDQ (SP), R8 ORQ R10, DI XORQ R12, R14 MOVQ DX, R12 ANDQ R9, DI ANDQ R10, R12 ADDQ R13, R15 ADDQ R8, R11 ORQ R12, DI ADDQ R14, R8 ADDQ R15, R11 ADDQ R15, R8 MOVQ AX, R15 RORXQ $0x29, R11, R13 RORXQ $0x12, R11, R14 XORQ BX, R15 XORQ R14, R13 RORXQ $0x0e, R11, R14 ANDQ R11, R15 ADDQ DI, R8 XORQ R14, R13 RORXQ $0x22, R8, R12 XORQ BX, R15 RORXQ $0x27, R8, R14 MOVQ R8, DI XORQ R12, R14 RORXQ $0x1c, R8, R12 ADDQ 8(SP), CX ORQ R9, DI XORQ R12, R14 MOVQ R8, R12 ANDQ DX, DI ANDQ R9, R12 ADDQ R13, R15 ADDQ CX, R10 ORQ R12, DI ADDQ R14, CX ADDQ R15, R10 ADDQ R15, CX MOVQ R11, R15 RORXQ $0x29, R10, R13 RORXQ $0x12, R10, R14 XORQ AX, R15 XORQ R14, R13 RORXQ $0x0e, R10, R14 ANDQ R10, R15 ADDQ DI, CX XORQ R14, R13 RORXQ $0x22, CX, R12 XORQ AX, R15 RORXQ $0x27, CX, R14 MOVQ CX, DI XORQ R12, R14 RORXQ $0x1c, CX, R12 ADDQ 16(SP), BX ORQ DX, DI XORQ R12, R14 MOVQ CX, R12 ANDQ R8, DI ANDQ DX, R12 ADDQ R13, R15 ADDQ BX, R9 ORQ R12, DI ADDQ R14, BX ADDQ R15, R9 ADDQ R15, BX MOVQ R10, R15 RORXQ $0x29, R9, R13 RORXQ $0x12, R9, R14 XORQ R11, R15 XORQ R14, R13 RORXQ $0x0e, R9, R14 ANDQ R9, R15 ADDQ DI, BX XORQ R14, R13 RORXQ $0x22, BX, R12 XORQ R11, R15 RORXQ $0x27, BX, R14 MOVQ BX, DI XORQ R12, R14 RORXQ $0x1c, BX, R12 ADDQ 24(SP), AX ORQ R8, DI XORQ R12, R14 MOVQ BX, R12 ANDQ CX, DI ANDQ R8, R12 ADDQ R13, R15 ADDQ AX, DX ORQ R12, DI ADDQ R14, AX ADDQ R15, DX ADDQ R15, AX ADDQ DI, AX VMOVDQU Y6, Y4 VMOVDQU Y7, Y5 SUBQ $0x01, 32(SP) JNE loop2 ADDQ (SI), AX MOVQ AX, (SI) ADDQ 8(SI), BX MOVQ BX, 8(SI) ADDQ 16(SI), CX MOVQ CX, 16(SI) ADDQ 24(SI), R8 MOVQ R8, 24(SI) ADDQ 32(SI), DX MOVQ DX, 32(SI) ADDQ 40(SI), R9 MOVQ R9, 40(SI) ADDQ 48(SI), R10 MOVQ R10, 48(SI) ADDQ 56(SI), R11 MOVQ R11, 56(SI) MOVQ 40(SP), DI ADDQ $0x80, DI CMPQ DI, 48(SP) JNE loop0 done_hash: VZEROUPPER RET DATA MASK_YMM_LO<>+0(SB)/8, $0x0000000000000000 DATA MASK_YMM_LO<>+8(SB)/8, $0x0000000000000000 DATA MASK_YMM_LO<>+16(SB)/8, $0xffffffffffffffff DATA MASK_YMM_LO<>+24(SB)/8, $0xffffffffffffffff GLOBL MASK_YMM_LO<>(SB), RODATA|NOPTR, $32