// Code generated by command: go run asm.go -out=fp_amd64.s -go111=false. DO NOT EDIT. // +build amd64,!purego #include "textflag.h" // func Fingerprint64(s []byte) uint64 TEXT ·Fingerprint64(SB), NOSPLIT, $0-32 MOVQ s_base+0(FP), CX MOVQ s_len+8(FP), AX CMPQ AX, $0x10 JG check32 CMPQ AX, $0x08 JL check4 MOVQ (CX), DX MOVQ AX, BX SUBQ $0x08, BX ADDQ CX, BX MOVQ (BX), BX MOVQ $0x9ae16a3b2f90404f, BP ADDQ BP, DX SHLQ $0x01, AX ADDQ BP, AX MOVQ BX, BP RORQ $0x25, BP IMULQ AX, BP ADDQ DX, BP RORQ $0x19, DX ADDQ BX, DX IMULQ AX, DX XORQ DX, BP IMULQ AX, BP MOVQ BP, BX SHRQ $0x2f, BX XORQ BP, BX XORQ BX, DX IMULQ AX, DX MOVQ DX, BX SHRQ $0x2f, BX XORQ DX, BX IMULQ AX, BX MOVQ BX, ret+24(FP) RET check4: CMPQ AX, $0x04 JL check0 MOVQ $0x9ae16a3b2f90404f, DX MOVQ AX, BX SHLQ $0x01, BX ADDQ DX, BX MOVL (CX), SI SHLQ $0x03, SI ADDQ AX, SI SUBQ $0x04, AX ADDQ AX, CX MOVL (CX), DI XORQ DI, SI IMULQ BX, SI MOVQ SI, DX SHRQ $0x2f, DX XORQ SI, DX XORQ DX, DI IMULQ BX, DI MOVQ DI, DX SHRQ $0x2f, DX XORQ DI, DX IMULQ BX, DX MOVQ DX, ret+24(FP) RET check0: TESTQ AX, AX JZ empty MOVBQZX (CX), DX MOVQ AX, BX SHRQ $0x01, BX ADDQ CX, BX MOVBQZX (BX), BP MOVQ AX, BX SUBQ $0x01, BX ADDQ CX, BX MOVBQZX (BX), BX SHLQ $0x08, BP ADDQ BP, DX SHLQ $0x02, BX ADDQ BX, AX MOVQ $0xc3a5c85c97cb3127, BX IMULQ BX, AX MOVQ $0x9ae16a3b2f90404f, BX IMULQ BX, DX XORQ DX, AX MOVQ AX, DX SHRQ $0x2f, DX XORQ AX, DX IMULQ BX, DX MOVQ DX, ret+24(FP) RET empty: MOVQ $0x9ae16a3b2f90404f, DX MOVQ DX, ret+24(FP) RET check32: CMPQ AX, $0x20 JG check64 MOVQ AX, DX SHLQ $0x01, DX MOVQ $0x9ae16a3b2f90404f, BX ADDQ BX, DX MOVQ (CX), BP MOVQ $0xb492b66fbe98f273, SI IMULQ SI, BP MOVQ 8(CX), SI MOVQ AX, DI SUBQ $0x10, DI ADDQ CX, DI MOVQ 8(DI), R12 IMULQ DX, R12 MOVQ (DI), DI IMULQ BX, DI MOVQ BP, R13 ADDQ SI, R13 RORQ $0x2b, R13 ADDQ DI, R13 MOVQ R12, DI RORQ $0x1e, DI ADDQ DI, R13 ADDQ R12, BP ADDQ BX, SI RORQ $0x12, SI ADDQ SI, BP XORQ BP, R13 IMULQ DX, R13 MOVQ R13, BX SHRQ $0x2f, BX XORQ R13, BX XORQ BX, BP IMULQ DX, BP MOVQ BP, BX SHRQ $0x2f, BX XORQ BP, BX IMULQ DX, BX MOVQ BX, ret+24(FP) RET check64: CMPQ AX, $0x40 JG long MOVQ AX, DX SHLQ $0x01, DX MOVQ $0x9ae16a3b2f90404f, BX ADDQ BX, DX MOVQ (CX), BP IMULQ BX, BP MOVQ 8(CX), SI MOVQ AX, DI SUBQ $0x10, DI ADDQ CX, DI MOVQ 8(DI), R12 IMULQ DX, R12 MOVQ (DI), DI IMULQ BX, DI MOVQ BP, R13 ADDQ SI, R13 RORQ $0x2b, R13 ADDQ DI, R13 MOVQ R12, DI RORQ $0x1e, DI ADDQ DI, R13 ADDQ BP, R12 ADDQ BX, SI RORQ $0x12, SI ADDQ SI, R12 MOVQ R13, BX XORQ R12, BX IMULQ DX, BX MOVQ BX, SI SHRQ $0x2f, SI XORQ BX, SI XORQ SI, R12 IMULQ DX, R12 MOVQ R12, BX SHRQ $0x2f, BX XORQ R12, BX IMULQ DX, BX MOVQ 16(CX), SI IMULQ DX, SI MOVQ 24(CX), DI MOVQ AX, R12 SUBQ $0x20, R12 ADDQ CX, R12 MOVQ (R12), R14 ADDQ R13, R14 IMULQ DX, R14 MOVQ 8(R12), R12 ADDQ BX, R12 IMULQ DX, R12 MOVQ SI, BX ADDQ DI, BX RORQ $0x2b, BX ADDQ R12, BX MOVQ R14, R12 RORQ $0x1e, R12 ADDQ R12, BX ADDQ R14, SI ADDQ BP, DI RORQ $0x12, DI ADDQ DI, SI XORQ SI, BX IMULQ DX, BX MOVQ BX, BP SHRQ $0x2f, BP XORQ BX, BP XORQ BP, SI IMULQ DX, SI MOVQ SI, BX SHRQ $0x2f, BX XORQ SI, BX IMULQ DX, BX MOVQ BX, ret+24(FP) RET long: XORQ R8, R8 XORQ R9, R9 XORQ R10, R10 XORQ R11, R11 MOVQ $0x01529cba0ca458ff, DX ADDQ (CX), DX MOVQ $0x226bb95b4e64b6d4, BX MOVQ $0x134a747f856d0526, BP MOVQ AX, SI SUBQ $0x01, SI MOVQ $0xffffffffffffffc0, DI ANDQ DI, SI MOVQ AX, DI SUBQ $0x01, DI ANDQ $0x3f, DI SUBQ $0x3f, DI ADDQ SI, DI MOVQ DI, SI ADDQ CX, SI MOVQ AX, DI loop: MOVQ $0xb492b66fbe98f273, R12 ADDQ BX, DX ADDQ R8, DX ADDQ 8(CX), DX RORQ $0x25, DX IMULQ R12, DX ADDQ R9, BX ADDQ 48(CX), BX RORQ $0x2a, BX IMULQ R12, BX XORQ R11, DX ADDQ R8, BX ADDQ 40(CX), BX ADDQ R10, BP RORQ $0x21, BP IMULQ R12, BP IMULQ R12, R9 MOVQ DX, R8 ADDQ R10, R8 ADDQ (CX), R9 ADDQ R9, R8 ADDQ 24(CX), R8 RORQ $0x15, R8 MOVQ R9, R10 ADDQ 8(CX), R9 ADDQ 16(CX), R9 MOVQ R9, R13 RORQ $0x2c, R13 ADDQ R13, R8 ADDQ 24(CX), R9 ADDQ R10, R8 XCHGQ R9, R8 ADDQ BP, R11 MOVQ BX, R10 ADDQ 16(CX), R10 ADDQ 32(CX), R11 ADDQ R11, R10 ADDQ 56(CX), R10 RORQ $0x15, R10 MOVQ R11, R13 ADDQ 40(CX), R11 ADDQ 48(CX), R11 MOVQ R11, R14 RORQ $0x2c, R14 ADDQ R14, R10 ADDQ 56(CX), R11 ADDQ R13, R10 XCHGQ R11, R10 XCHGQ BP, DX ADDQ $0x40, CX SUBQ $0x40, DI CMPQ DI, $0x40 JG loop MOVQ SI, CX MOVQ BP, DI ANDQ $0xff, DI SHLQ $0x01, DI ADDQ R12, DI MOVQ SI, CX SUBQ $0x01, AX ANDQ $0x3f, AX ADDQ AX, R10 ADDQ R10, R8 ADDQ R8, R10 ADDQ BX, DX ADDQ R8, DX ADDQ 8(CX), DX RORQ $0x25, DX IMULQ DI, DX ADDQ R9, BX ADDQ 48(CX), BX RORQ $0x2a, BX IMULQ DI, BX MOVQ $0x00000009, AX IMULQ R11, AX XORQ AX, DX MOVQ $0x00000009, AX IMULQ R8, AX ADDQ AX, BX ADDQ 40(CX), BX ADDQ R10, BP RORQ $0x21, BP IMULQ DI, BP IMULQ DI, R9 MOVQ DX, R8 ADDQ R10, R8 ADDQ (CX), R9 ADDQ R9, R8 ADDQ 24(CX), R8 RORQ $0x15, R8 MOVQ R9, AX ADDQ 8(CX), R9 ADDQ 16(CX), R9 MOVQ R9, SI RORQ $0x2c, SI ADDQ SI, R8 ADDQ 24(CX), R9 ADDQ AX, R8 XCHGQ R9, R8 ADDQ BP, R11 MOVQ BX, R10 ADDQ 16(CX), R10 ADDQ 32(CX), R11 ADDQ R11, R10 ADDQ 56(CX), R10 RORQ $0x15, R10 MOVQ R11, AX ADDQ 40(CX), R11 ADDQ 48(CX), R11 MOVQ R11, SI RORQ $0x2c, SI ADDQ SI, R10 ADDQ 56(CX), R11 ADDQ AX, R10 XCHGQ R11, R10 XCHGQ BP, DX XORQ R10, R8 IMULQ DI, R8 MOVQ R8, AX SHRQ $0x2f, AX XORQ R8, AX XORQ AX, R10 IMULQ DI, R10 MOVQ R10, AX SHRQ $0x2f, AX XORQ R10, AX IMULQ DI, AX ADDQ BP, AX MOVQ BX, CX SHRQ $0x2f, CX XORQ BX, CX MOVQ $0xc3a5c85c97cb3127, BX IMULQ BX, CX ADDQ CX, AX XORQ R11, R9 IMULQ DI, R9 MOVQ R9, CX SHRQ $0x2f, CX XORQ R9, CX XORQ CX, R11 IMULQ DI, R11 MOVQ R11, CX SHRQ $0x2f, CX XORQ R11, CX IMULQ DI, CX ADDQ DX, CX XORQ CX, AX IMULQ DI, AX MOVQ AX, DX SHRQ $0x2f, DX XORQ AX, DX XORQ DX, CX IMULQ DI, CX MOVQ CX, AX SHRQ $0x2f, AX XORQ CX, AX IMULQ DI, AX MOVQ AX, ret+24(FP) RET // func Fingerprint32(s []byte) uint32 TEXT ·Fingerprint32(SB), NOSPLIT, $0-28 MOVQ s_base+0(FP), AX MOVQ s_len+8(FP), CX CMPQ CX, $0x18 JG long CMPQ CX, $0x0c JG hash_13_24 CMPQ CX, $0x04 JG hash_5_12 XORL DX, DX MOVL $0x00000009, BX TESTQ CX, CX JZ done MOVQ CX, BP MOVL $0xcc9e2d51, DI IMULL DI, DX MOVBLSX (AX), SI ADDL SI, DX XORL DX, BX SUBQ $0x01, BP TESTQ BP, BP JZ done IMULL DI, DX MOVBLSX 1(AX), SI ADDL SI, DX XORL DX, BX SUBQ $0x01, BP TESTQ BP, BP JZ done IMULL DI, DX MOVBLSX 2(AX), SI ADDL SI, DX XORL DX, BX SUBQ $0x01, BP TESTQ BP, BP JZ done IMULL DI, DX MOVBLSX 3(AX), SI ADDL SI, DX XORL DX, BX SUBQ $0x01, BP TESTQ BP, BP JZ done done: MOVL CX, BP MOVL $0xcc9e2d51, SI IMULL SI, BP RORL $0x11, BP MOVL $0x1b873593, SI IMULL SI, BP XORL BP, BX RORL $0x13, BX LEAL (BX)(BX*4), BP LEAL 3864292196(BP), BX MOVL $0xcc9e2d51, BP IMULL BP, DX RORL $0x11, DX MOVL $0x1b873593, BP IMULL BP, DX XORL DX, BX RORL $0x13, BX LEAL (BX)(BX*4), DX LEAL 3864292196(DX), BX MOVL BX, DX SHRL $0x10, DX XORL DX, BX MOVL $0x85ebca6b, DX IMULL DX, BX MOVL BX, DX SHRL $0x0d, DX XORL DX, BX MOVL $0xc2b2ae35, DX IMULL DX, BX MOVL BX, DX SHRL $0x10, DX XORL DX, BX MOVL BX, ret+24(FP) RET hash_5_12: MOVL CX, DX MOVL DX, BX SHLL $0x02, BX ADDL DX, BX MOVL $0x00000009, BP MOVL BX, SI ADDL (AX), DX MOVQ CX, DI SUBQ $0x04, DI ADDQ AX, DI ADDL (DI), BX MOVQ CX, DI SHRQ $0x01, DI ANDQ $0x04, DI ADDQ AX, DI ADDL (DI), BP MOVL $0xcc9e2d51, DI IMULL DI, DX RORL $0x11, DX MOVL $0x1b873593, DI IMULL DI, DX XORL DX, SI RORL $0x13, SI LEAL (SI)(SI*4), DX LEAL 3864292196(DX), SI MOVL $0xcc9e2d51, DX IMULL DX, BX RORL $0x11, BX MOVL $0x1b873593, DX IMULL DX, BX XORL BX, SI RORL $0x13, SI LEAL (SI)(SI*4), BX LEAL 3864292196(BX), SI MOVL $0xcc9e2d51, DX IMULL DX, BP RORL $0x11, BP MOVL $0x1b873593, DX IMULL DX, BP XORL BP, SI RORL $0x13, SI LEAL (SI)(SI*4), BP LEAL 3864292196(BP), SI MOVL SI, DX SHRL $0x10, DX XORL DX, SI MOVL $0x85ebca6b, DX IMULL DX, SI MOVL SI, DX SHRL $0x0d, DX XORL DX, SI MOVL $0xc2b2ae35, DX IMULL DX, SI MOVL SI, DX SHRL $0x10, DX XORL DX, SI MOVL SI, ret+24(FP) RET hash_13_24: MOVQ CX, DX SHRQ $0x01, DX ADDQ AX, DX MOVL -4(DX), BX MOVL 4(AX), BP MOVQ CX, SI ADDQ AX, SI MOVL -8(SI), DI MOVL (DX), DX MOVL (AX), R8 MOVL -4(SI), SI MOVL $0xcc9e2d51, R9 IMULL DX, R9 ADDL CX, R9 RORL $0x0c, BX ADDL SI, BX MOVL DI, R10 MOVL $0xcc9e2d51, R11 IMULL R11, R10 RORL $0x11, R10 MOVL $0x1b873593, R11 IMULL R11, R10 XORL R10, R9 RORL $0x13, R9 LEAL (R9)(R9*4), R10 LEAL 3864292196(R10), R9 ADDL BX, R9 RORL $0x03, BX ADDL DI, BX MOVL $0xcc9e2d51, DI IMULL DI, R8 RORL $0x11, R8 MOVL $0x1b873593, DI IMULL DI, R8 XORL R8, R9 RORL $0x13, R9 LEAL (R9)(R9*4), R8 LEAL 3864292196(R8), R9 ADDL BX, R9 ADDL SI, BX RORL $0x0c, BX ADDL DX, BX MOVL $0xcc9e2d51, DX IMULL DX, BP RORL $0x11, BP MOVL $0x1b873593, DX IMULL DX, BP XORL BP, R9 RORL $0x13, R9 LEAL (R9)(R9*4), BP LEAL 3864292196(BP), R9 ADDL BX, R9 MOVL R9, DX SHRL $0x10, DX XORL DX, R9 MOVL $0x85ebca6b, DX IMULL DX, R9 MOVL R9, DX SHRL $0x0d, DX XORL DX, R9 MOVL $0xc2b2ae35, DX IMULL DX, R9 MOVL R9, DX SHRL $0x10, DX XORL DX, R9 MOVL R9, ret+24(FP) RET long: MOVL CX, DX MOVL $0xcc9e2d51, BX IMULL DX, BX MOVL BX, BP MOVQ CX, SI ADDQ AX, SI MOVL $0xcc9e2d51, DI MOVL $0x1b873593, R8 MOVL -4(SI), R9 IMULL DI, R9 RORL $0x11, R9 IMULL R8, R9 XORL R9, DX RORL $0x13, DX MOVL DX, R9 SHLL $0x02, R9 ADDL R9, DX ADDL $0xe6546b64, DX MOVL -8(SI), R9 IMULL DI, R9 RORL $0x11, R9 IMULL R8, R9 XORL R9, BX RORL $0x13, BX MOVL BX, R9 SHLL $0x02, R9 ADDL R9, BX ADDL $0xe6546b64, BX MOVL -16(SI), R9 IMULL DI, R9 RORL $0x11, R9 IMULL R8, R9 XORL R9, DX RORL $0x13, DX MOVL DX, R9 SHLL $0x02, R9 ADDL R9, DX ADDL $0xe6546b64, DX MOVL -12(SI), R9 IMULL DI, R9 RORL $0x11, R9 IMULL R8, R9 XORL R9, BX RORL $0x13, BX MOVL BX, R9 SHLL $0x02, R9 ADDL R9, BX ADDL $0xe6546b64, BX PREFETCHT0 (AX) MOVL -20(SI), SI IMULL DI, SI RORL $0x11, SI IMULL R8, SI ADDL SI, BP RORL $0x13, BP ADDL $0x71, BP loop80: CMPQ CX, $0x64 JL loop20 PREFETCHT0 20(AX) MOVL (AX), SI ADDL SI, DX MOVL 4(AX), DI ADDL DI, BX MOVL 8(AX), R8 ADDL R8, BP MOVL 12(AX), R9 MOVL R9, R11 MOVL $0xcc9e2d51, R10 IMULL R10, R11 RORL $0x11, R11 MOVL $0x1b873593, R10 IMULL R10, R11 XORL R11, DX RORL $0x13, DX LEAL (DX)(DX*4), R11 LEAL 3864292196(R11), DX MOVL 16(AX), R10 ADDL R10, DX MOVL R8, R11 MOVL $0xcc9e2d51, R8 IMULL R8, R11 RORL $0x11, R11 MOVL $0x1b873593, R8 IMULL R8, R11 XORL R11, BX RORL $0x13, BX LEAL (BX)(BX*4), R11 LEAL 3864292196(R11), BX ADDL SI, BX MOVL $0xcc9e2d51, SI IMULL SI, R10 MOVL R10, R11 ADDL DI, R11 MOVL $0xcc9e2d51, SI IMULL SI, R11 RORL $0x11, R11 MOVL $0x1b873593, SI IMULL SI, R11 XORL R11, BP RORL $0x13, BP LEAL (BP)(BP*4), R11 LEAL 3864292196(R11), BP ADDL R9, BP ADDL BX, BP ADDL BP, BX PREFETCHT0 40(AX) MOVL 20(AX), SI ADDL SI, DX MOVL 24(AX), DI ADDL DI, BX MOVL 28(AX), R8 ADDL R8, BP MOVL 32(AX), R9 MOVL R9, R11 MOVL $0xcc9e2d51, R10 IMULL R10, R11 RORL $0x11, R11 MOVL $0x1b873593, R10 IMULL R10, R11 XORL R11, DX RORL $0x13, DX LEAL (DX)(DX*4), R11 LEAL 3864292196(R11), DX MOVL 36(AX), R10 ADDL R10, DX MOVL R8, R11 MOVL $0xcc9e2d51, R8 IMULL R8, R11 RORL $0x11, R11 MOVL $0x1b873593, R8 IMULL R8, R11 XORL R11, BX RORL $0x13, BX LEAL (BX)(BX*4), R11 LEAL 3864292196(R11), BX ADDL SI, BX MOVL $0xcc9e2d51, SI IMULL SI, R10 MOVL R10, R11 ADDL DI, R11 MOVL $0xcc9e2d51, SI IMULL SI, R11 RORL $0x11, R11 MOVL $0x1b873593, SI IMULL SI, R11 XORL R11, BP RORL $0x13, BP LEAL (BP)(BP*4), R11 LEAL 3864292196(R11), BP ADDL R9, BP ADDL BX, BP ADDL BP, BX PREFETCHT0 60(AX) MOVL 40(AX), SI ADDL SI, DX MOVL 44(AX), DI ADDL DI, BX MOVL 48(AX), R8 ADDL R8, BP MOVL 52(AX), R9 MOVL R9, R11 MOVL $0xcc9e2d51, R10 IMULL R10, R11 RORL $0x11, R11 MOVL $0x1b873593, R10 IMULL R10, R11 XORL R11, DX RORL $0x13, DX LEAL (DX)(DX*4), R11 LEAL 3864292196(R11), DX MOVL 56(AX), R10 ADDL R10, DX MOVL R8, R11 MOVL $0xcc9e2d51, R8 IMULL R8, R11 RORL $0x11, R11 MOVL $0x1b873593, R8 IMULL R8, R11 XORL R11, BX RORL $0x13, BX LEAL (BX)(BX*4), R11 LEAL 3864292196(R11), BX ADDL SI, BX MOVL $0xcc9e2d51, SI IMULL SI, R10 MOVL R10, R11 ADDL DI, R11 MOVL $0xcc9e2d51, SI IMULL SI, R11 RORL $0x11, R11 MOVL $0x1b873593, SI IMULL SI, R11 XORL R11, BP RORL $0x13, BP LEAL (BP)(BP*4), R11 LEAL 3864292196(R11), BP ADDL R9, BP ADDL BX, BP ADDL BP, BX PREFETCHT0 80(AX) MOVL 60(AX), SI ADDL SI, DX MOVL 64(AX), DI ADDL DI, BX MOVL 68(AX), R8 ADDL R8, BP MOVL 72(AX), R9 MOVL R9, R11 MOVL $0xcc9e2d51, R10 IMULL R10, R11 RORL $0x11, R11 MOVL $0x1b873593, R10 IMULL R10, R11 XORL R11, DX RORL $0x13, DX LEAL (DX)(DX*4), R11 LEAL 3864292196(R11), DX MOVL 76(AX), R10 ADDL R10, DX MOVL R8, R11 MOVL $0xcc9e2d51, R8 IMULL R8, R11 RORL $0x11, R11 MOVL $0x1b873593, R8 IMULL R8, R11 XORL R11, BX RORL $0x13, BX LEAL (BX)(BX*4), R11 LEAL 3864292196(R11), BX ADDL SI, BX MOVL $0xcc9e2d51, SI IMULL SI, R10 MOVL R10, R11 ADDL DI, R11 MOVL $0xcc9e2d51, SI IMULL SI, R11 RORL $0x11, R11 MOVL $0x1b873593, SI IMULL SI, R11 XORL R11, BP RORL $0x13, BP LEAL (BP)(BP*4), R11 LEAL 3864292196(R11), BP ADDL R9, BP ADDL BX, BP ADDL BP, BX ADDQ $0x50, AX SUBQ $0x50, CX JMP loop80 loop20: CMPQ CX, $0x14 JLE after MOVL (AX), SI ADDL SI, DX MOVL 4(AX), DI ADDL DI, BX MOVL 8(AX), R8 ADDL R8, BP MOVL 12(AX), R9 MOVL R9, R11 MOVL $0xcc9e2d51, R10 IMULL R10, R11 RORL $0x11, R11 MOVL $0x1b873593, R10 IMULL R10, R11 XORL R11, DX RORL $0x13, DX LEAL (DX)(DX*4), R11 LEAL 3864292196(R11), DX MOVL 16(AX), R10 ADDL R10, DX MOVL R8, R11 MOVL $0xcc9e2d51, R8 IMULL R8, R11 RORL $0x11, R11 MOVL $0x1b873593, R8 IMULL R8, R11 XORL R11, BX RORL $0x13, BX LEAL (BX)(BX*4), R11 LEAL 3864292196(R11), BX ADDL SI, BX MOVL $0xcc9e2d51, SI IMULL SI, R10 MOVL R10, R11 ADDL DI, R11 MOVL $0xcc9e2d51, SI IMULL SI, R11 RORL $0x11, R11 MOVL $0x1b873593, SI IMULL SI, R11 XORL R11, BP RORL $0x13, BP LEAL (BP)(BP*4), R11 LEAL 3864292196(R11), BP ADDL R9, BP ADDL BX, BP ADDL BP, BX ADDQ $0x14, AX SUBQ $0x14, CX JMP loop20 after: MOVL $0xcc9e2d51, AX RORL $0x0b, BX IMULL AX, BX RORL $0x11, BX IMULL AX, BX RORL $0x0b, BP IMULL AX, BP RORL $0x11, BP IMULL AX, BP ADDL BX, DX RORL $0x13, DX MOVL DX, CX SHLL $0x02, CX ADDL CX, DX ADDL $0xe6546b64, DX RORL $0x11, DX IMULL AX, DX ADDL BP, DX RORL $0x13, DX MOVL DX, CX SHLL $0x02, CX ADDL CX, DX ADDL $0xe6546b64, DX RORL $0x11, DX IMULL AX, DX MOVL DX, ret+24(FP) RET