| // Code generated by command: go run keccakf_amd64_asm.go -out ../keccakf_amd64.s -pkg sha3. DO NOT EDIT. |
| |
| //go:build amd64 && !purego && gc |
| |
| // func keccakF1600(a *[25]uint64) |
| TEXT ·keccakF1600(SB), $200-8 |
| MOVQ a+0(FP), DI |
| |
| // Convert the user state into an internal state |
| NOTQ 8(DI) |
| NOTQ 16(DI) |
| NOTQ 64(DI) |
| NOTQ 96(DI) |
| NOTQ 136(DI) |
| NOTQ 160(DI) |
| |
| // Execute the KeccakF permutation |
| MOVQ (DI), SI |
| MOVQ 8(DI), BP |
| MOVQ 32(DI), R15 |
| XORQ 40(DI), SI |
| XORQ 48(DI), BP |
| XORQ 72(DI), R15 |
| XORQ 80(DI), SI |
| XORQ 88(DI), BP |
| XORQ 112(DI), R15 |
| XORQ 120(DI), SI |
| XORQ 128(DI), BP |
| XORQ 152(DI), R15 |
| XORQ 160(DI), SI |
| XORQ 168(DI), BP |
| MOVQ 176(DI), DX |
| MOVQ 184(DI), R8 |
| XORQ 192(DI), R15 |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x0000000000000001, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x0000000000008082, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x800000000000808a, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000080008000, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x000000000000808b, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x0000000080000001, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000080008081, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000000008009, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x000000000000008a, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x0000000000000088, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x0000000080008009, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x000000008000000a, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x000000008000808b, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x800000000000008b, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000000008089, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000000008003, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000000008002, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000000000080, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x000000000000800a, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x800000008000000a, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000080008081, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000000008080, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(DI), R12 |
| XORQ 56(DI), DX |
| XORQ R15, BX |
| XORQ 96(DI), R12 |
| XORQ 136(DI), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(DI), R13 |
| XORQ 64(DI), R8 |
| XORQ SI, CX |
| XORQ 104(DI), R13 |
| XORQ 144(DI), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (DI), R10 |
| MOVQ 48(DI), R11 |
| XORQ R13, R9 |
| MOVQ 96(DI), R12 |
| MOVQ 144(DI), R13 |
| MOVQ 192(DI), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x0000000080000001, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (SP) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(SP) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(SP) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(SP) |
| MOVQ R12, 8(SP) |
| MOVQ R12, BP |
| |
| // Result g |
| MOVQ 72(DI), R11 |
| XORQ R9, R11 |
| MOVQ 80(DI), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(DI), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(DI), R13 |
| MOVQ 176(DI), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(SP) |
| XORQ AX, SI |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(SP) |
| XORQ AX, BP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(SP) |
| NOTQ R14 |
| XORQ R10, R15 |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(SP) |
| |
| // Result k |
| MOVQ 8(DI), R10 |
| MOVQ 56(DI), R11 |
| MOVQ 104(DI), R12 |
| MOVQ 152(DI), R13 |
| MOVQ 160(DI), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(SP) |
| XORQ AX, SI |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(SP) |
| XORQ AX, BP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(SP) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(SP) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(SP) |
| XORQ R10, R15 |
| |
| // Result m |
| MOVQ 40(DI), R11 |
| XORQ BX, R11 |
| MOVQ 88(DI), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(DI), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(DI), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(DI), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(SP) |
| XORQ AX, SI |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(SP) |
| XORQ AX, BP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(SP) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(SP) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(SP) |
| XORQ R11, R15 |
| |
| // Result s |
| MOVQ 16(DI), R10 |
| MOVQ 64(DI), R11 |
| MOVQ 112(DI), R12 |
| XORQ DX, R10 |
| MOVQ 120(DI), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(DI), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(SP) |
| ROLQ $0x27, R12 |
| XORQ R9, R15 |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(SP) |
| XORQ BX, SI |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(SP) |
| XORQ CX, BP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(SP) |
| MOVQ R8, 184(SP) |
| |
| // Prepare round |
| MOVQ BP, BX |
| ROLQ $0x01, BX |
| MOVQ 16(SP), R12 |
| XORQ 56(SP), DX |
| XORQ R15, BX |
| XORQ 96(SP), R12 |
| XORQ 136(SP), DX |
| XORQ DX, R12 |
| MOVQ R12, CX |
| ROLQ $0x01, CX |
| MOVQ 24(SP), R13 |
| XORQ 64(SP), R8 |
| XORQ SI, CX |
| XORQ 104(SP), R13 |
| XORQ 144(SP), R8 |
| XORQ R8, R13 |
| MOVQ R13, DX |
| ROLQ $0x01, DX |
| MOVQ R15, R8 |
| XORQ BP, DX |
| ROLQ $0x01, R8 |
| MOVQ SI, R9 |
| XORQ R12, R8 |
| ROLQ $0x01, R9 |
| |
| // Result b |
| MOVQ (SP), R10 |
| MOVQ 48(SP), R11 |
| XORQ R13, R9 |
| MOVQ 96(SP), R12 |
| MOVQ 144(SP), R13 |
| MOVQ 192(SP), R14 |
| XORQ CX, R11 |
| ROLQ $0x2c, R11 |
| XORQ DX, R12 |
| XORQ BX, R10 |
| ROLQ $0x2b, R12 |
| MOVQ R11, SI |
| MOVQ $0x8000000080008008, AX |
| ORQ R12, SI |
| XORQ R10, AX |
| XORQ AX, SI |
| MOVQ SI, (DI) |
| XORQ R9, R14 |
| ROLQ $0x0e, R14 |
| MOVQ R10, R15 |
| ANDQ R11, R15 |
| XORQ R14, R15 |
| MOVQ R15, 32(DI) |
| XORQ R8, R13 |
| ROLQ $0x15, R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 16(DI) |
| NOTQ R12 |
| ORQ R10, R14 |
| ORQ R13, R12 |
| XORQ R13, R14 |
| XORQ R11, R12 |
| MOVQ R14, 24(DI) |
| MOVQ R12, 8(DI) |
| NOP |
| |
| // Result g |
| MOVQ 72(SP), R11 |
| XORQ R9, R11 |
| MOVQ 80(SP), R12 |
| ROLQ $0x14, R11 |
| XORQ BX, R12 |
| ROLQ $0x03, R12 |
| MOVQ 24(SP), R10 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ R8, R10 |
| MOVQ 128(SP), R13 |
| MOVQ 176(SP), R14 |
| ROLQ $0x1c, R10 |
| XORQ R10, AX |
| MOVQ AX, 40(DI) |
| NOP |
| XORQ CX, R13 |
| ROLQ $0x2d, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 48(DI) |
| NOP |
| XORQ DX, R14 |
| ROLQ $0x3d, R14 |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 64(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 72(DI) |
| NOTQ R14 |
| NOP |
| ORQ R14, R13 |
| XORQ R12, R13 |
| MOVQ R13, 56(DI) |
| |
| // Result k |
| MOVQ 8(SP), R10 |
| MOVQ 56(SP), R11 |
| MOVQ 104(SP), R12 |
| MOVQ 152(SP), R13 |
| MOVQ 160(SP), R14 |
| XORQ DX, R11 |
| ROLQ $0x06, R11 |
| XORQ R8, R12 |
| ROLQ $0x19, R12 |
| MOVQ R11, AX |
| ORQ R12, AX |
| XORQ CX, R10 |
| ROLQ $0x01, R10 |
| XORQ R10, AX |
| MOVQ AX, 80(DI) |
| NOP |
| XORQ R9, R13 |
| ROLQ $0x08, R13 |
| MOVQ R12, AX |
| ANDQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 88(DI) |
| NOP |
| XORQ BX, R14 |
| ROLQ $0x12, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ANDQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 96(DI) |
| MOVQ R14, AX |
| ORQ R10, AX |
| XORQ R13, AX |
| MOVQ AX, 104(DI) |
| ANDQ R11, R10 |
| XORQ R14, R10 |
| MOVQ R10, 112(DI) |
| NOP |
| |
| // Result m |
| MOVQ 40(SP), R11 |
| XORQ BX, R11 |
| MOVQ 88(SP), R12 |
| ROLQ $0x24, R11 |
| XORQ CX, R12 |
| MOVQ 32(SP), R10 |
| ROLQ $0x0a, R12 |
| MOVQ R11, AX |
| MOVQ 136(SP), R13 |
| ANDQ R12, AX |
| XORQ R9, R10 |
| MOVQ 184(SP), R14 |
| ROLQ $0x1b, R10 |
| XORQ R10, AX |
| MOVQ AX, 120(DI) |
| NOP |
| XORQ DX, R13 |
| ROLQ $0x0f, R13 |
| MOVQ R12, AX |
| ORQ R13, AX |
| XORQ R11, AX |
| MOVQ AX, 128(DI) |
| NOP |
| XORQ R8, R14 |
| ROLQ $0x38, R14 |
| NOTQ R13 |
| MOVQ R13, AX |
| ORQ R14, AX |
| XORQ R12, AX |
| MOVQ AX, 136(DI) |
| ORQ R10, R11 |
| XORQ R14, R11 |
| MOVQ R11, 152(DI) |
| ANDQ R10, R14 |
| XORQ R13, R14 |
| MOVQ R14, 144(DI) |
| NOP |
| |
| // Result s |
| MOVQ 16(SP), R10 |
| MOVQ 64(SP), R11 |
| MOVQ 112(SP), R12 |
| XORQ DX, R10 |
| MOVQ 120(SP), R13 |
| ROLQ $0x3e, R10 |
| XORQ R8, R11 |
| MOVQ 168(SP), R14 |
| ROLQ $0x37, R11 |
| XORQ R9, R12 |
| MOVQ R10, R9 |
| XORQ CX, R14 |
| ROLQ $0x02, R14 |
| ANDQ R11, R9 |
| XORQ R14, R9 |
| MOVQ R9, 192(DI) |
| ROLQ $0x27, R12 |
| NOP |
| NOTQ R11 |
| XORQ BX, R13 |
| MOVQ R11, BX |
| ANDQ R12, BX |
| XORQ R10, BX |
| MOVQ BX, 160(DI) |
| NOP |
| ROLQ $0x29, R13 |
| MOVQ R12, CX |
| ORQ R13, CX |
| XORQ R11, CX |
| MOVQ CX, 168(DI) |
| NOP |
| MOVQ R13, DX |
| MOVQ R14, R8 |
| ANDQ R14, DX |
| ORQ R10, R8 |
| XORQ R12, DX |
| XORQ R13, R8 |
| MOVQ DX, 176(DI) |
| MOVQ R8, 184(DI) |
| |
| // Revert the internal state to the user state |
| NOTQ 8(DI) |
| NOTQ 16(DI) |
| NOTQ 64(DI) |
| NOTQ 96(DI) |
| NOTQ 136(DI) |
| NOTQ 160(DI) |
| RET |