5420 lines
		
	
	
		
			80 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			5420 lines
		
	
	
		
			80 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| // 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
 |