From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.12429.1597332305655658258 for ; Thu, 13 Aug 2020 08:25:06 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=I0h0S9D+; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: jiewen.yao@intel.com) IronPort-SDR: QN93jJnPjkry5t1d2vVOemgl695LCLd6EDOmM786cJk94aMy8ZxzPe55O5cb2VtU7cua12XuPd SO6YTsPe1+vQ== X-IronPort-AV: E=McAfee;i="6000,8403,9712"; a="154203843" X-IronPort-AV: E=Sophos;i="5.76,308,1592895600"; d="scan'208";a="154203843" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Aug 2020 08:25:03 -0700 IronPort-SDR: /cvyuzUIKk36AA42qFsz+7xOmz+qtYfWvsjXy4FyNZyfq3fw8CLyO703RE0P4VD+SghgTXXRsx Jp30xWrzYlLA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,308,1592895600"; d="scan'208";a="495891079" Received: from unknown (HELO fmsmsx606.amr.corp.intel.com) ([10.18.84.216]) by fmsmga005.fm.intel.com with ESMTP; 13 Aug 2020 08:25:02 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Aug 2020 08:25:01 -0700 Received: from fmsmsx151.amr.corp.intel.com (10.18.125.4) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 13 Aug 2020 08:25:01 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by FMSMSX151.amr.corp.intel.com (10.18.125.4) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 13 Aug 2020 08:25:00 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 13 Aug 2020 08:25:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k7KI0KMdiDvaQHT9uLIxLV2S9H9jwVc/1sdbgyU9yPf4dAGAW6j5yt7B67dNlY3E7x2eDT5D8WXoKtr4c/90UEjE0FfxzQX6IR7qnxKMYf8EUdbzFu0xuDrQEIiW/0qfIbVG78nA1bLr/imrR3wHb6O/oh888AMY77vo3qFX55+W63aM1iLezGlUybYGQh+gHiFCffRz6sD+h6BdYWLaND/dVX+yR9mZ4GS+MgVMry/ScRXirhHJm7hERlldMPdUhFeYGQSD8MVd9AlJmCMqpxvUBJzZFS6SfJMj2IlNrQfCQodkJaRM2CulcHIDetlQAuyP6xr3kosuZ+e0dgDgsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QIVp5YNnWc6i90XpOMiNiB+gzP0ybz4F8lsss/xoz5g=; b=fGsGXuPdMBSP9I1XtFRG66TzK6/YBlmSwN9SmXFDGllSbBp44G82Yu2NeGmf9N0+YYdvs/rXH204P6kAk2OocwvzKwcEmxWo+S+Wf8AVq0IdnZnf/QUlK78plZuZMfKp/2kVs1354uMI24tFiwmVraVI5eVpMQR7Ye1MCk0+24xMNTEJIzPIkwB+9Opi7fetPy5QADld+2wr72sqYyD32ECJS3apZ77uZVn1NvfWnwN14c4tf+SToYvdrJwCvCAKiyuxETSGckdCVxtsIRdxuIMlOBrcWY4GlEaB+O3NfolJUIDzlGp7sUHCeQI/CVaQBix5MiRL7B8Ao4HuM/lIwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QIVp5YNnWc6i90XpOMiNiB+gzP0ybz4F8lsss/xoz5g=; b=I0h0S9D+S/hc/os2OyeREjwS73uX/EfNZkIC1B+yEmc5V1rgj5cG6BzFNJULqUncMrMI35eTFoIYd6hX0lh+OJEHjmAkrJUfk2lvNt7h9L70sq6uuzFBiQClW6p9LXI8ROaZFZa9ovl48hGMqtDpWEkJXpPO2hgI0dRp425I4ls= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR1101MB2325.namprd11.prod.outlook.com (2603:10b6:903:bf::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.16; Thu, 13 Aug 2020 15:24:49 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812%6]) with mapi id 15.20.3283.018; Thu, 13 Aug 2020 15:24:49 +0000 From: "Yao, Jiewen" To: "Zurcher, Christopher J" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Lu, XiaoyuX" , "Kinney, Michael D" , Ard Biesheuvel Subject: Re: [PATCH v2 2/2] CryptoPkg/OpensslLib: Commit the auto-generated assembly files for X64 Thread-Topic: [PATCH v2 2/2] CryptoPkg/OpensslLib: Commit the auto-generated assembly files for X64 Thread-Index: AQHWafWnyrAjF94a+EmZ0ecg5Fjnhak2NptA Date: Thu, 13 Aug 2020 15:24:49 +0000 Message-ID: References: <20200804002429.3897-1-christopher.j.zurcher@intel.com> <20200804002429.3897-3-christopher.j.zurcher@intel.com> In-Reply-To: <20200804002429.3897-3-christopher.j.zurcher@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTgwNDFmOTQtZjUyOS00MTg5LTg3NTctNDk0NWYyNzEwNzdjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiTDNcLzdYdW1cL29jSzFjN3RHdUZ3amo1bWF6NWlYOHBzUWRQZ0pDSEp6M0VWSDhnZXBYcnlcL0pPS2UweWJZUVZmayJ9 x-ctpclassification: CTP_NT dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.198] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9b9fc71c-ebda-404c-a65d-08d83f9d04d7 x-ms-traffictypediagnostic: CY4PR1101MB2325: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zYbyGZeFxZXHKLhtti6eG50SzWSc6Affhr0Rxexxm3d+XObdO0jTb+eLaza2zO/NYTjSAO7jfcNyJkJUgxM7WYnjWhIyWHOXL62jrRCNNWP/a6462+4AJyKa7mThpcxjg1gsW8NEEzIgqnS49hrE0b1etO2TshaNL6LjYskAIjNP6Hs+DXJQwD93xKGdIZJsK7opUigh0fDPh3rs1ATWd//or1kzT+GHyGYoaaHiXd3u7r8yBSDU3v81XtqshKdQRTEwZHHtueZ9RLqJxO2HgofZJgMm51iOJlvgI1tU73zISGINeElMz9c5QmIuXf/t0pDqiWfF7stuHzljtkEzmMJFqNg4rkGA0n/4PzxKCiYXn4m4X//xr8jcDHuyWz7PeiicMnZL7BuD+RbHpF48bzIcDbUUazlvktZutxsADWYtgyYE0CTZvP+bQrhzCEG5 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1288.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(136003)(376002)(346002)(39860400002)(396003)(366004)(55016002)(316002)(33656002)(52536014)(2906002)(478600001)(66946007)(71200400001)(7696005)(966005)(76116006)(9686003)(54906003)(110136005)(8676002)(6506007)(53546011)(30864003)(8936002)(86362001)(186003)(66476007)(5660300002)(26005)(83380400001)(4326008)(66556008)(64756008)(66446008)(559001)(579004)(569008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: DB/87R9cjb3tzcqXN46pGYMgc/nJt0koLtUsZES/yiixA/9wUpVHnVbKDSQmFcw0gV2u/KKVQ+xc8m3eKHaZfOYpxExnMr0lzpaLJMwHNH21Rq/RtWd6rM6nFFSOcmKAIjobKasW3l/ffvFyzNcc8PJs6o7CEyEyG2XpBPfFevUGuRNFuH7Ly0Z0QVoTdqj9BVDGOHQw4aJ/gR4U0qHzn2lu3IfCXulh05JMnvBbuGcdCxS3fTq0aVGp5uE/7SBEKXUQBBccQjaXqx7kDiUgQuiXCJNlrLINe4pgohgLo1nlflwmvdS9Cd2l6wmN2tYS6ZBRR5WURqCllyn4Si7sDMQwjTDVhENb41OxE+EiMTIn78KymVYraqSuuDmJZR2Yetu7cxWr/CH2aTqZEOv47uduE2cUSmtNkhYvquNQXpl6oFXm5gE6ooBR4E7hfjv/0OUk/mMVbfzydsAMP+DSXIkg5Au45STiNDYBAOP5xr0sJTiZtNtVq1Nbq7meY2b+YQMT481JFKTsHJqPOgUPS3J1SqmR0/EdHhGp6vXRJ3Aj2XadJYbeKsrAUoIg8O+u0ePxoopEkpaQ/9l+u/rqteyctEBTyTLb48mtHpLxUHS5N+9d5ifrTabFwJLQZmDc/rUEvQJTmDL4pNmQdjpixA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1288.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b9fc71c-ebda-404c-a65d-08d83f9d04d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2020 15:24:49.0804 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: eZEYfUYc+b+c1BmHrLpxqfb8AxUjWg1JIScxwBQIfJATUEcxauVEQ5K1GnWJ0CzrNje9qIi7GC+5X38u76BSPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2325 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable + Mike Kinney I am not sure if it is a right way to check in auto-generated file. That means, whenever we upgrade the openssl, we need manually generate them= again. Any step by step, or readme to tell us how to do that? Mike, would you please double confirm what is the right way for auto-genera= ted file in EDKII? > -----Original Message----- > From: Zurcher, Christopher J > Sent: Tuesday, August 4, 2020 8:24 AM > To: devel@edk2.groups.io > Cc: Yao, Jiewen ; Wang, Jian J ; > Lu, XiaoyuX ; Ard Biesheuvel > Subject: [PATCH v2 2/2] CryptoPkg/OpensslLib: Commit the auto-generated > assembly files for X64 >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2507 >=20 > Adding the auto-generated assembly files for the X64 architecture. >=20 > Cc: Jiewen Yao > Cc: Jian J Wang > Cc: Xiaoyu Lu > Cc: Ard Biesheuvel > Signed-off-by: Christopher J Zurcher > --- > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm | = 732 > +++ > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm | > 1916 ++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm | > 78 + > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm | 5= 103 > ++++++++++++++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm | 1= 173 > +++++ > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm | > 1569 ++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm | 3= 137 > ++++++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm | 2= 884 > +++++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm | > 3461 +++++++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm | 3= 313 > +++++++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm | 1= 938 > ++++++++ > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm | = 491 ++ > 12 files changed, 25795 insertions(+) >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb- > x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb- > x86_64.nasm > new file mode 100644 > index 0000000000..1a3ed1dd35 > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm > @@ -0,0 +1,732 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/aes/asm/aesni-mb-x86_64.pl >=20 > +; >=20 > +; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > + >=20 > +global aesni_multi_cbc_encrypt >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_multi_cbc_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_multi_cbc_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[64+rsp],xmm10 >=20 > + movaps XMMWORD[80+rsp],xmm11 >=20 > + movaps XMMWORD[96+rsp],xmm12 >=20 > + movaps XMMWORD[(-104)+rax],xmm13 >=20 > + movaps XMMWORD[(-88)+rax],xmm14 >=20 > + movaps XMMWORD[(-72)+rax],xmm15 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + sub rsp,48 >=20 > + and rsp,-64 >=20 > + mov QWORD[16+rsp],rax >=20 > + >=20 > + >=20 > +$L$enc4x_body: >=20 > + movdqu xmm12,XMMWORD[rsi] >=20 > + lea rsi,[120+rsi] >=20 > + lea rdi,[80+rdi] >=20 > + >=20 > +$L$enc4x_loop_grande: >=20 > + mov DWORD[24+rsp],edx >=20 > + xor edx,edx >=20 > + mov ecx,DWORD[((-64))+rdi] >=20 > + mov r8,QWORD[((-80))+rdi] >=20 > + cmp ecx,edx >=20 > + mov r12,QWORD[((-72))+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm2,XMMWORD[((-56))+rdi] >=20 > + mov DWORD[32+rsp],ecx >=20 > + cmovle r8,rsp >=20 > + mov ecx,DWORD[((-24))+rdi] >=20 > + mov r9,QWORD[((-40))+rdi] >=20 > + cmp ecx,edx >=20 > + mov r13,QWORD[((-32))+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm3,XMMWORD[((-16))+rdi] >=20 > + mov DWORD[36+rsp],ecx >=20 > + cmovle r9,rsp >=20 > + mov ecx,DWORD[16+rdi] >=20 > + mov r10,QWORD[rdi] >=20 > + cmp ecx,edx >=20 > + mov r14,QWORD[8+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm4,XMMWORD[24+rdi] >=20 > + mov DWORD[40+rsp],ecx >=20 > + cmovle r10,rsp >=20 > + mov ecx,DWORD[56+rdi] >=20 > + mov r11,QWORD[40+rdi] >=20 > + cmp ecx,edx >=20 > + mov r15,QWORD[48+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm5,XMMWORD[64+rdi] >=20 > + mov DWORD[44+rsp],ecx >=20 > + cmovle r11,rsp >=20 > + test edx,edx >=20 > + jz NEAR $L$enc4x_done >=20 > + >=20 > + movups xmm1,XMMWORD[((16-120))+rsi] >=20 > + pxor xmm2,xmm12 >=20 > + movups xmm0,XMMWORD[((32-120))+rsi] >=20 > + pxor xmm3,xmm12 >=20 > + mov eax,DWORD[((240-120))+rsi] >=20 > + pxor xmm4,xmm12 >=20 > + movdqu xmm6,XMMWORD[r8] >=20 > + pxor xmm5,xmm12 >=20 > + movdqu xmm7,XMMWORD[r9] >=20 > + pxor xmm2,xmm6 >=20 > + movdqu xmm8,XMMWORD[r10] >=20 > + pxor xmm3,xmm7 >=20 > + movdqu xmm9,XMMWORD[r11] >=20 > + pxor xmm4,xmm8 >=20 > + pxor xmm5,xmm9 >=20 > + movdqa xmm10,XMMWORD[32+rsp] >=20 > + xor rbx,rbx >=20 > + jmp NEAR $L$oop_enc4x >=20 > + >=20 > +ALIGN 32 >=20 > +$L$oop_enc4x: >=20 > + add rbx,16 >=20 > + lea rbp,[16+rsp] >=20 > + mov ecx,1 >=20 > + sub rbp,rbx >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > + prefetcht0 [31+rbx*1+r8] >=20 > + prefetcht0 [31+rbx*1+r9] >=20 > +DB 102,15,56,220,217 >=20 > + prefetcht0 [31+rbx*1+r10] >=20 > + prefetcht0 [31+rbx*1+r10] >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[((48-120))+rsi] >=20 > + cmp ecx,DWORD[32+rsp] >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > + cmovge r8,rbp >=20 > + cmovg r12,rbp >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((-56))+rsi] >=20 > + cmp ecx,DWORD[36+rsp] >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > + cmovge r9,rbp >=20 > + cmovg r13,rbp >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[((-40))+rsi] >=20 > + cmp ecx,DWORD[40+rsp] >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > + cmovge r10,rbp >=20 > + cmovg r14,rbp >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((-24))+rsi] >=20 > + cmp ecx,DWORD[44+rsp] >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > + cmovge r11,rbp >=20 > + cmovg r15,rbp >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[((-8))+rsi] >=20 > + movdqa xmm11,xmm10 >=20 > +DB 102,15,56,220,208 >=20 > + prefetcht0 [15+rbx*1+r12] >=20 > + prefetcht0 [15+rbx*1+r13] >=20 > +DB 102,15,56,220,216 >=20 > + prefetcht0 [15+rbx*1+r14] >=20 > + prefetcht0 [15+rbx*1+r15] >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((128-120))+rsi] >=20 > + pxor xmm12,xmm12 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > + pcmpgtd xmm11,xmm12 >=20 > + movdqu xmm12,XMMWORD[((-120))+rsi] >=20 > +DB 102,15,56,220,217 >=20 > + paddd xmm10,xmm11 >=20 > + movdqa XMMWORD[32+rsp],xmm10 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[((144-120))+rsi] >=20 > + >=20 > + cmp eax,11 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((160-120))+rsi] >=20 > + >=20 > + jb NEAR $L$enc4x_tail >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[((176-120))+rsi] >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((192-120))+rsi] >=20 > + >=20 > + je NEAR $L$enc4x_tail >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[((208-120))+rsi] >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((224-120))+rsi] >=20 > + jmp NEAR $L$enc4x_tail >=20 > + >=20 > +ALIGN 32 >=20 > +$L$enc4x_tail: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movdqu xmm6,XMMWORD[rbx*1+r8] >=20 > + movdqu xmm1,XMMWORD[((16-120))+rsi] >=20 > + >=20 > +DB 102,15,56,221,208 >=20 > + movdqu xmm7,XMMWORD[rbx*1+r9] >=20 > + pxor xmm6,xmm12 >=20 > +DB 102,15,56,221,216 >=20 > + movdqu xmm8,XMMWORD[rbx*1+r10] >=20 > + pxor xmm7,xmm12 >=20 > +DB 102,15,56,221,224 >=20 > + movdqu xmm9,XMMWORD[rbx*1+r11] >=20 > + pxor xmm8,xmm12 >=20 > +DB 102,15,56,221,232 >=20 > + movdqu xmm0,XMMWORD[((32-120))+rsi] >=20 > + pxor xmm9,xmm12 >=20 > + >=20 > + movups XMMWORD[(-16)+rbx*1+r12],xmm2 >=20 > + pxor xmm2,xmm6 >=20 > + movups XMMWORD[(-16)+rbx*1+r13],xmm3 >=20 > + pxor xmm3,xmm7 >=20 > + movups XMMWORD[(-16)+rbx*1+r14],xmm4 >=20 > + pxor xmm4,xmm8 >=20 > + movups XMMWORD[(-16)+rbx*1+r15],xmm5 >=20 > + pxor xmm5,xmm9 >=20 > + >=20 > + dec edx >=20 > + jnz NEAR $L$oop_enc4x >=20 > + >=20 > + mov rax,QWORD[16+rsp] >=20 > + >=20 > + mov edx,DWORD[24+rsp] >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + lea rdi,[160+rdi] >=20 > + dec edx >=20 > + jnz NEAR $L$enc4x_loop_grande >=20 > + >=20 > +$L$enc4x_done: >=20 > + movaps xmm6,XMMWORD[((-216))+rax] >=20 > + movaps xmm7,XMMWORD[((-200))+rax] >=20 > + movaps xmm8,XMMWORD[((-184))+rax] >=20 > + movaps xmm9,XMMWORD[((-168))+rax] >=20 > + movaps xmm10,XMMWORD[((-152))+rax] >=20 > + movaps xmm11,XMMWORD[((-136))+rax] >=20 > + movaps xmm12,XMMWORD[((-120))+rax] >=20 > + >=20 > + >=20 > + >=20 > + mov r15,QWORD[((-48))+rax] >=20 > + >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$enc4x_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_multi_cbc_encrypt: >=20 > + >=20 > +global aesni_multi_cbc_decrypt >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_multi_cbc_decrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_multi_cbc_decrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[64+rsp],xmm10 >=20 > + movaps XMMWORD[80+rsp],xmm11 >=20 > + movaps XMMWORD[96+rsp],xmm12 >=20 > + movaps XMMWORD[(-104)+rax],xmm13 >=20 > + movaps XMMWORD[(-88)+rax],xmm14 >=20 > + movaps XMMWORD[(-72)+rax],xmm15 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + sub rsp,48 >=20 > + and rsp,-64 >=20 > + mov QWORD[16+rsp],rax >=20 > + >=20 > + >=20 > +$L$dec4x_body: >=20 > + movdqu xmm12,XMMWORD[rsi] >=20 > + lea rsi,[120+rsi] >=20 > + lea rdi,[80+rdi] >=20 > + >=20 > +$L$dec4x_loop_grande: >=20 > + mov DWORD[24+rsp],edx >=20 > + xor edx,edx >=20 > + mov ecx,DWORD[((-64))+rdi] >=20 > + mov r8,QWORD[((-80))+rdi] >=20 > + cmp ecx,edx >=20 > + mov r12,QWORD[((-72))+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm6,XMMWORD[((-56))+rdi] >=20 > + mov DWORD[32+rsp],ecx >=20 > + cmovle r8,rsp >=20 > + mov ecx,DWORD[((-24))+rdi] >=20 > + mov r9,QWORD[((-40))+rdi] >=20 > + cmp ecx,edx >=20 > + mov r13,QWORD[((-32))+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm7,XMMWORD[((-16))+rdi] >=20 > + mov DWORD[36+rsp],ecx >=20 > + cmovle r9,rsp >=20 > + mov ecx,DWORD[16+rdi] >=20 > + mov r10,QWORD[rdi] >=20 > + cmp ecx,edx >=20 > + mov r14,QWORD[8+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm8,XMMWORD[24+rdi] >=20 > + mov DWORD[40+rsp],ecx >=20 > + cmovle r10,rsp >=20 > + mov ecx,DWORD[56+rdi] >=20 > + mov r11,QWORD[40+rdi] >=20 > + cmp ecx,edx >=20 > + mov r15,QWORD[48+rdi] >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + movdqu xmm9,XMMWORD[64+rdi] >=20 > + mov DWORD[44+rsp],ecx >=20 > + cmovle r11,rsp >=20 > + test edx,edx >=20 > + jz NEAR $L$dec4x_done >=20 > + >=20 > + movups xmm1,XMMWORD[((16-120))+rsi] >=20 > + movups xmm0,XMMWORD[((32-120))+rsi] >=20 > + mov eax,DWORD[((240-120))+rsi] >=20 > + movdqu xmm2,XMMWORD[r8] >=20 > + movdqu xmm3,XMMWORD[r9] >=20 > + pxor xmm2,xmm12 >=20 > + movdqu xmm4,XMMWORD[r10] >=20 > + pxor xmm3,xmm12 >=20 > + movdqu xmm5,XMMWORD[r11] >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm5,xmm12 >=20 > + movdqa xmm10,XMMWORD[32+rsp] >=20 > + xor rbx,rbx >=20 > + jmp NEAR $L$oop_dec4x >=20 > + >=20 > +ALIGN 32 >=20 > +$L$oop_dec4x: >=20 > + add rbx,16 >=20 > + lea rbp,[16+rsp] >=20 > + mov ecx,1 >=20 > + sub rbp,rbx >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > + prefetcht0 [31+rbx*1+r8] >=20 > + prefetcht0 [31+rbx*1+r9] >=20 > +DB 102,15,56,222,217 >=20 > + prefetcht0 [31+rbx*1+r10] >=20 > + prefetcht0 [31+rbx*1+r11] >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[((48-120))+rsi] >=20 > + cmp ecx,DWORD[32+rsp] >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > + cmovge r8,rbp >=20 > + cmovg r12,rbp >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((-56))+rsi] >=20 > + cmp ecx,DWORD[36+rsp] >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > + cmovge r9,rbp >=20 > + cmovg r13,rbp >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[((-40))+rsi] >=20 > + cmp ecx,DWORD[40+rsp] >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > + cmovge r10,rbp >=20 > + cmovg r14,rbp >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((-24))+rsi] >=20 > + cmp ecx,DWORD[44+rsp] >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > + cmovge r11,rbp >=20 > + cmovg r15,rbp >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[((-8))+rsi] >=20 > + movdqa xmm11,xmm10 >=20 > +DB 102,15,56,222,208 >=20 > + prefetcht0 [15+rbx*1+r12] >=20 > + prefetcht0 [15+rbx*1+r13] >=20 > +DB 102,15,56,222,216 >=20 > + prefetcht0 [15+rbx*1+r14] >=20 > + prefetcht0 [15+rbx*1+r15] >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((128-120))+rsi] >=20 > + pxor xmm12,xmm12 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > + pcmpgtd xmm11,xmm12 >=20 > + movdqu xmm12,XMMWORD[((-120))+rsi] >=20 > +DB 102,15,56,222,217 >=20 > + paddd xmm10,xmm11 >=20 > + movdqa XMMWORD[32+rsp],xmm10 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[((144-120))+rsi] >=20 > + >=20 > + cmp eax,11 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((160-120))+rsi] >=20 > + >=20 > + jb NEAR $L$dec4x_tail >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[((176-120))+rsi] >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((192-120))+rsi] >=20 > + >=20 > + je NEAR $L$dec4x_tail >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[((208-120))+rsi] >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((224-120))+rsi] >=20 > + jmp NEAR $L$dec4x_tail >=20 > + >=20 > +ALIGN 32 >=20 > +$L$dec4x_tail: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > + pxor xmm6,xmm0 >=20 > + pxor xmm7,xmm0 >=20 > +DB 102,15,56,222,233 >=20 > + movdqu xmm1,XMMWORD[((16-120))+rsi] >=20 > + pxor xmm8,xmm0 >=20 > + pxor xmm9,xmm0 >=20 > + movdqu xmm0,XMMWORD[((32-120))+rsi] >=20 > + >=20 > +DB 102,15,56,223,214 >=20 > +DB 102,15,56,223,223 >=20 > + movdqu xmm6,XMMWORD[((-16))+rbx*1+r8] >=20 > + movdqu xmm7,XMMWORD[((-16))+rbx*1+r9] >=20 > +DB 102,65,15,56,223,224 >=20 > +DB 102,65,15,56,223,233 >=20 > + movdqu xmm8,XMMWORD[((-16))+rbx*1+r10] >=20 > + movdqu xmm9,XMMWORD[((-16))+rbx*1+r11] >=20 > + >=20 > + movups XMMWORD[(-16)+rbx*1+r12],xmm2 >=20 > + movdqu xmm2,XMMWORD[rbx*1+r8] >=20 > + movups XMMWORD[(-16)+rbx*1+r13],xmm3 >=20 > + movdqu xmm3,XMMWORD[rbx*1+r9] >=20 > + pxor xmm2,xmm12 >=20 > + movups XMMWORD[(-16)+rbx*1+r14],xmm4 >=20 > + movdqu xmm4,XMMWORD[rbx*1+r10] >=20 > + pxor xmm3,xmm12 >=20 > + movups XMMWORD[(-16)+rbx*1+r15],xmm5 >=20 > + movdqu xmm5,XMMWORD[rbx*1+r11] >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm5,xmm12 >=20 > + >=20 > + dec edx >=20 > + jnz NEAR $L$oop_dec4x >=20 > + >=20 > + mov rax,QWORD[16+rsp] >=20 > + >=20 > + mov edx,DWORD[24+rsp] >=20 > + >=20 > + lea rdi,[160+rdi] >=20 > + dec edx >=20 > + jnz NEAR $L$dec4x_loop_grande >=20 > + >=20 > +$L$dec4x_done: >=20 > + movaps xmm6,XMMWORD[((-216))+rax] >=20 > + movaps xmm7,XMMWORD[((-200))+rax] >=20 > + movaps xmm8,XMMWORD[((-184))+rax] >=20 > + movaps xmm9,XMMWORD[((-168))+rax] >=20 > + movaps xmm10,XMMWORD[((-152))+rax] >=20 > + movaps xmm11,XMMWORD[((-136))+rax] >=20 > + movaps xmm12,XMMWORD[((-120))+rax] >=20 > + >=20 > + >=20 > + >=20 > + mov r15,QWORD[((-48))+rax] >=20 > + >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$dec4x_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_multi_cbc_decrypt: >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[16+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + mov r15,QWORD[((-48))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + mov QWORD[240+r8],r15 >=20 > + >=20 > + lea rsi,[((-56-160))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_aesni_multi_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_multi_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_aesni_multi_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_begin_aesni_multi_cbc_decrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_multi_cbc_decrypt wrt ..imagebase >=20 > + DD $L$SEH_info_aesni_multi_cbc_decrypt wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_aesni_multi_cbc_encrypt: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$enc4x_body wrt ..imagebase,$L$enc4x_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_aesni_multi_cbc_decrypt: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$dec4x_body wrt ..imagebase,$L$dec4x_epilogue > wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1- > x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1- > x86_64.nasm > new file mode 100644 > index 0000000000..f4fd9ca50d > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm > @@ -0,0 +1,1916 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/aes/asm/aesni-sha1-x86_64.pl >=20 > +; >=20 > +; Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > + >=20 > +global aesni_cbc_sha1_enc >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_cbc_sha1_enc: >=20 > + >=20 > + >=20 > + mov r10d,DWORD[((OPENSSL_ia32cap_P+0))] >=20 > + mov r11,QWORD[((OPENSSL_ia32cap_P+4))] >=20 > + bt r11,61 >=20 > + jc NEAR aesni_cbc_sha1_enc_shaext >=20 > + jmp NEAR aesni_cbc_sha1_enc_ssse3 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_cbc_sha1_enc_ssse3: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_cbc_sha1_enc_ssse3: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + mov r10,QWORD[56+rsp] >=20 > + >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + lea rsp,[((-264))+rsp] >=20 > + >=20 > + >=20 > + >=20 > + movaps XMMWORD[(96+0)+rsp],xmm6 >=20 > + movaps XMMWORD[(96+16)+rsp],xmm7 >=20 > + movaps XMMWORD[(96+32)+rsp],xmm8 >=20 > + movaps XMMWORD[(96+48)+rsp],xmm9 >=20 > + movaps XMMWORD[(96+64)+rsp],xmm10 >=20 > + movaps XMMWORD[(96+80)+rsp],xmm11 >=20 > + movaps XMMWORD[(96+96)+rsp],xmm12 >=20 > + movaps XMMWORD[(96+112)+rsp],xmm13 >=20 > + movaps XMMWORD[(96+128)+rsp],xmm14 >=20 > + movaps XMMWORD[(96+144)+rsp],xmm15 >=20 > +$L$prologue_ssse3: >=20 > + mov r12,rdi >=20 > + mov r13,rsi >=20 > + mov r14,rdx >=20 > + lea r15,[112+rcx] >=20 > + movdqu xmm2,XMMWORD[r8] >=20 > + mov QWORD[88+rsp],r8 >=20 > + shl r14,6 >=20 > + sub r13,r12 >=20 > + mov r8d,DWORD[((240-112))+r15] >=20 > + add r14,r10 >=20 > + >=20 > + lea r11,[K_XX_XX] >=20 > + mov eax,DWORD[r9] >=20 > + mov ebx,DWORD[4+r9] >=20 > + mov ecx,DWORD[8+r9] >=20 > + mov edx,DWORD[12+r9] >=20 > + mov esi,ebx >=20 > + mov ebp,DWORD[16+r9] >=20 > + mov edi,ecx >=20 > + xor edi,edx >=20 > + and esi,edi >=20 > + >=20 > + movdqa xmm3,XMMWORD[64+r11] >=20 > + movdqa xmm13,XMMWORD[r11] >=20 > + movdqu xmm4,XMMWORD[r10] >=20 > + movdqu xmm5,XMMWORD[16+r10] >=20 > + movdqu xmm6,XMMWORD[32+r10] >=20 > + movdqu xmm7,XMMWORD[48+r10] >=20 > +DB 102,15,56,0,227 >=20 > +DB 102,15,56,0,235 >=20 > +DB 102,15,56,0,243 >=20 > + add r10,64 >=20 > + paddd xmm4,xmm13 >=20 > +DB 102,15,56,0,251 >=20 > + paddd xmm5,xmm13 >=20 > + paddd xmm6,xmm13 >=20 > + movdqa XMMWORD[rsp],xmm4 >=20 > + psubd xmm4,xmm13 >=20 > + movdqa XMMWORD[16+rsp],xmm5 >=20 > + psubd xmm5,xmm13 >=20 > + movdqa XMMWORD[32+rsp],xmm6 >=20 > + psubd xmm6,xmm13 >=20 > + movups xmm15,XMMWORD[((-112))+r15] >=20 > + movups xmm0,XMMWORD[((16-112))+r15] >=20 > + jmp NEAR $L$oop_ssse3 >=20 > +ALIGN 32 >=20 > +$L$oop_ssse3: >=20 > + ror ebx,2 >=20 > + movups xmm14,XMMWORD[r12] >=20 > + xorps xmm14,xmm15 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + pshufd xmm8,xmm4,238 >=20 > + xor esi,edx >=20 > + movdqa xmm12,xmm7 >=20 > + paddd xmm13,xmm7 >=20 > + mov edi,eax >=20 > + add ebp,DWORD[rsp] >=20 > + punpcklqdq xmm8,xmm5 >=20 > + xor ebx,ecx >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + psrldq xmm12,4 >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + pxor xmm8,xmm4 >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + pxor xmm12,xmm6 >=20 > + xor edi,ecx >=20 > + mov esi,ebp >=20 > + add edx,DWORD[4+rsp] >=20 > + pxor xmm8,xmm12 >=20 > + xor eax,ebx >=20 > + rol ebp,5 >=20 > + movdqa XMMWORD[48+rsp],xmm13 >=20 > + add edx,edi >=20 > + movups xmm0,XMMWORD[((-64))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + and esi,eax >=20 > + movdqa xmm3,xmm8 >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + ror ebp,7 >=20 > + movdqa xmm12,xmm8 >=20 > + xor esi,ebx >=20 > + pslldq xmm3,12 >=20 > + paddd xmm8,xmm8 >=20 > + mov edi,edx >=20 > + add ecx,DWORD[8+rsp] >=20 > + psrld xmm12,31 >=20 > + xor ebp,eax >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movdqa xmm13,xmm3 >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + psrld xmm3,30 >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + por xmm8,xmm12 >=20 > + xor edi,eax >=20 > + mov esi,ecx >=20 > + add ebx,DWORD[12+rsp] >=20 > + movups xmm1,XMMWORD[((-48))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + pslld xmm13,2 >=20 > + pxor xmm8,xmm3 >=20 > + xor edx,ebp >=20 > + movdqa xmm3,XMMWORD[r11] >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + and esi,edx >=20 > + pxor xmm8,xmm13 >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + ror ecx,7 >=20 > + pshufd xmm9,xmm5,238 >=20 > + xor esi,ebp >=20 > + movdqa xmm13,xmm8 >=20 > + paddd xmm3,xmm8 >=20 > + mov edi,ebx >=20 > + add eax,DWORD[16+rsp] >=20 > + punpcklqdq xmm9,xmm6 >=20 > + xor ecx,edx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + psrldq xmm13,4 >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + pxor xmm9,xmm5 >=20 > + add eax,ebx >=20 > + ror ebx,7 >=20 > + movups xmm0,XMMWORD[((-32))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + pxor xmm13,xmm7 >=20 > + xor edi,edx >=20 > + mov esi,eax >=20 > + add ebp,DWORD[20+rsp] >=20 > + pxor xmm9,xmm13 >=20 > + xor ebx,ecx >=20 > + rol eax,5 >=20 > + movdqa XMMWORD[rsp],xmm3 >=20 > + add ebp,edi >=20 > + and esi,ebx >=20 > + movdqa xmm12,xmm9 >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + movdqa xmm13,xmm9 >=20 > + xor esi,ecx >=20 > + pslldq xmm12,12 >=20 > + paddd xmm9,xmm9 >=20 > + mov edi,ebp >=20 > + add edx,DWORD[24+rsp] >=20 > + psrld xmm13,31 >=20 > + xor eax,ebx >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + movups xmm1,XMMWORD[((-16))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + movdqa xmm3,xmm12 >=20 > + and edi,eax >=20 > + xor eax,ebx >=20 > + psrld xmm12,30 >=20 > + add edx,ebp >=20 > + ror ebp,7 >=20 > + por xmm9,xmm13 >=20 > + xor edi,ebx >=20 > + mov esi,edx >=20 > + add ecx,DWORD[28+rsp] >=20 > + pslld xmm3,2 >=20 > + pxor xmm9,xmm12 >=20 > + xor ebp,eax >=20 > + movdqa xmm12,XMMWORD[16+r11] >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + and esi,ebp >=20 > + pxor xmm9,xmm3 >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + pshufd xmm10,xmm6,238 >=20 > + xor esi,eax >=20 > + movdqa xmm3,xmm9 >=20 > + paddd xmm12,xmm9 >=20 > + mov edi,ecx >=20 > + add ebx,DWORD[32+rsp] >=20 > + movups xmm0,XMMWORD[r15] >=20 > +DB 102,15,56,220,209 >=20 > + punpcklqdq xmm10,xmm7 >=20 > + xor edx,ebp >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + psrldq xmm3,4 >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + pxor xmm10,xmm6 >=20 > + add ebx,ecx >=20 > + ror ecx,7 >=20 > + pxor xmm3,xmm8 >=20 > + xor edi,ebp >=20 > + mov esi,ebx >=20 > + add eax,DWORD[36+rsp] >=20 > + pxor xmm10,xmm3 >=20 > + xor ecx,edx >=20 > + rol ebx,5 >=20 > + movdqa XMMWORD[16+rsp],xmm12 >=20 > + add eax,edi >=20 > + and esi,ecx >=20 > + movdqa xmm13,xmm10 >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + ror ebx,7 >=20 > + movups xmm1,XMMWORD[16+r15] >=20 > +DB 102,15,56,220,208 >=20 > + movdqa xmm3,xmm10 >=20 > + xor esi,edx >=20 > + pslldq xmm13,12 >=20 > + paddd xmm10,xmm10 >=20 > + mov edi,eax >=20 > + add ebp,DWORD[40+rsp] >=20 > + psrld xmm3,31 >=20 > + xor ebx,ecx >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + movdqa xmm12,xmm13 >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + psrld xmm13,30 >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + por xmm10,xmm3 >=20 > + xor edi,ecx >=20 > + mov esi,ebp >=20 > + add edx,DWORD[44+rsp] >=20 > + pslld xmm12,2 >=20 > + pxor xmm10,xmm13 >=20 > + xor eax,ebx >=20 > + movdqa xmm13,XMMWORD[16+r11] >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + movups xmm0,XMMWORD[32+r15] >=20 > +DB 102,15,56,220,209 >=20 > + and esi,eax >=20 > + pxor xmm10,xmm12 >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + ror ebp,7 >=20 > + pshufd xmm11,xmm7,238 >=20 > + xor esi,ebx >=20 > + movdqa xmm12,xmm10 >=20 > + paddd xmm13,xmm10 >=20 > + mov edi,edx >=20 > + add ecx,DWORD[48+rsp] >=20 > + punpcklqdq xmm11,xmm8 >=20 > + xor ebp,eax >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + psrldq xmm12,4 >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + pxor xmm11,xmm7 >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + pxor xmm12,xmm9 >=20 > + xor edi,eax >=20 > + mov esi,ecx >=20 > + add ebx,DWORD[52+rsp] >=20 > + movups xmm1,XMMWORD[48+r15] >=20 > +DB 102,15,56,220,208 >=20 > + pxor xmm11,xmm12 >=20 > + xor edx,ebp >=20 > + rol ecx,5 >=20 > + movdqa XMMWORD[32+rsp],xmm13 >=20 > + add ebx,edi >=20 > + and esi,edx >=20 > + movdqa xmm3,xmm11 >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + ror ecx,7 >=20 > + movdqa xmm12,xmm11 >=20 > + xor esi,ebp >=20 > + pslldq xmm3,12 >=20 > + paddd xmm11,xmm11 >=20 > + mov edi,ebx >=20 > + add eax,DWORD[56+rsp] >=20 > + psrld xmm12,31 >=20 > + xor ecx,edx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + movdqa xmm13,xmm3 >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + psrld xmm3,30 >=20 > + add eax,ebx >=20 > + ror ebx,7 >=20 > + cmp r8d,11 >=20 > + jb NEAR $L$aesenclast1 >=20 > + movups xmm0,XMMWORD[64+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+r15] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast1 >=20 > + movups xmm0,XMMWORD[96+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+r15] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast1: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+r15] >=20 > + por xmm11,xmm12 >=20 > + xor edi,edx >=20 > + mov esi,eax >=20 > + add ebp,DWORD[60+rsp] >=20 > + pslld xmm13,2 >=20 > + pxor xmm11,xmm3 >=20 > + xor ebx,ecx >=20 > + movdqa xmm3,XMMWORD[16+r11] >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + and esi,ebx >=20 > + pxor xmm11,xmm13 >=20 > + pshufd xmm13,xmm10,238 >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + pxor xmm4,xmm8 >=20 > + xor esi,ecx >=20 > + mov edi,ebp >=20 > + add edx,DWORD[rsp] >=20 > + punpcklqdq xmm13,xmm11 >=20 > + xor eax,ebx >=20 > + rol ebp,5 >=20 > + pxor xmm4,xmm5 >=20 > + add edx,esi >=20 > + movups xmm14,XMMWORD[16+r12] >=20 > + xorps xmm14,xmm15 >=20 > + movups XMMWORD[r13*1+r12],xmm2 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + and edi,eax >=20 > + movdqa xmm12,xmm3 >=20 > + xor eax,ebx >=20 > + paddd xmm3,xmm11 >=20 > + add edx,ebp >=20 > + pxor xmm4,xmm13 >=20 > + ror ebp,7 >=20 > + xor edi,ebx >=20 > + mov esi,edx >=20 > + add ecx,DWORD[4+rsp] >=20 > + movdqa xmm13,xmm4 >=20 > + xor ebp,eax >=20 > + rol edx,5 >=20 > + movdqa XMMWORD[48+rsp],xmm3 >=20 > + add ecx,edi >=20 > + and esi,ebp >=20 > + xor ebp,eax >=20 > + pslld xmm4,2 >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + psrld xmm13,30 >=20 > + xor esi,eax >=20 > + mov edi,ecx >=20 > + add ebx,DWORD[8+rsp] >=20 > + movups xmm0,XMMWORD[((-64))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + por xmm4,xmm13 >=20 > + xor edx,ebp >=20 > + rol ecx,5 >=20 > + pshufd xmm3,xmm11,238 >=20 > + add ebx,esi >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + add eax,DWORD[12+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + pxor xmm5,xmm9 >=20 > + add ebp,DWORD[16+rsp] >=20 > + movups xmm1,XMMWORD[((-48))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor esi,ecx >=20 > + punpcklqdq xmm3,xmm4 >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + pxor xmm5,xmm6 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + movdqa xmm13,xmm12 >=20 > + ror ebx,7 >=20 > + paddd xmm12,xmm4 >=20 > + add ebp,eax >=20 > + pxor xmm5,xmm3 >=20 > + add edx,DWORD[20+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + movdqa xmm3,xmm5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + movdqa XMMWORD[rsp],xmm12 >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[24+rsp] >=20 > + pslld xmm5,2 >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > + psrld xmm3,30 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movups xmm0,XMMWORD[((-32))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + por xmm5,xmm3 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[28+rsp] >=20 > + pshufd xmm12,xmm4,238 >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + pxor xmm6,xmm10 >=20 > + add eax,DWORD[32+rsp] >=20 > + xor esi,edx >=20 > + punpcklqdq xmm12,xmm5 >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + pxor xmm6,xmm7 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + movdqa xmm3,XMMWORD[32+r11] >=20 > + ror ecx,7 >=20 > + paddd xmm13,xmm5 >=20 > + add eax,ebx >=20 > + pxor xmm6,xmm12 >=20 > + add ebp,DWORD[36+rsp] >=20 > + movups xmm1,XMMWORD[((-16))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + movdqa xmm12,xmm6 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + movdqa XMMWORD[16+rsp],xmm13 >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[40+rsp] >=20 > + pslld xmm6,2 >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > + psrld xmm12,30 >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + por xmm6,xmm12 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[44+rsp] >=20 > + pshufd xmm13,xmm5,238 >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + movups xmm0,XMMWORD[r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + pxor xmm7,xmm11 >=20 > + add ebx,DWORD[48+rsp] >=20 > + xor esi,ebp >=20 > + punpcklqdq xmm13,xmm6 >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + pxor xmm7,xmm8 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + movdqa xmm12,xmm3 >=20 > + ror edx,7 >=20 > + paddd xmm3,xmm6 >=20 > + add ebx,ecx >=20 > + pxor xmm7,xmm13 >=20 > + add eax,DWORD[52+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + movdqa xmm13,xmm7 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + movdqa XMMWORD[32+rsp],xmm3 >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[56+rsp] >=20 > + movups xmm1,XMMWORD[16+r15] >=20 > +DB 102,15,56,220,208 >=20 > + pslld xmm7,2 >=20 > + xor esi,ecx >=20 > + mov edi,eax >=20 > + psrld xmm13,30 >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + ror ebx,7 >=20 > + por xmm7,xmm13 >=20 > + add ebp,eax >=20 > + add edx,DWORD[60+rsp] >=20 > + pshufd xmm3,xmm6,238 >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + pxor xmm8,xmm4 >=20 > + add ecx,DWORD[rsp] >=20 > + xor esi,eax >=20 > + punpcklqdq xmm3,xmm7 >=20 > + mov edi,edx >=20 > + rol edx,5 >=20 > + pxor xmm8,xmm9 >=20 > + add ecx,esi >=20 > + movups xmm0,XMMWORD[32+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor edi,eax >=20 > + movdqa xmm13,xmm12 >=20 > + ror ebp,7 >=20 > + paddd xmm12,xmm7 >=20 > + add ecx,edx >=20 > + pxor xmm8,xmm3 >=20 > + add ebx,DWORD[4+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + movdqa xmm3,xmm8 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + movdqa XMMWORD[48+rsp],xmm12 >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[8+rsp] >=20 > + pslld xmm8,2 >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + psrld xmm3,30 >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + ror ecx,7 >=20 > + por xmm8,xmm3 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[12+rsp] >=20 > + movups xmm1,XMMWORD[48+r15] >=20 > +DB 102,15,56,220,208 >=20 > + pshufd xmm12,xmm7,238 >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + pxor xmm9,xmm5 >=20 > + add edx,DWORD[16+rsp] >=20 > + xor esi,ebx >=20 > + punpcklqdq xmm12,xmm8 >=20 > + mov edi,ebp >=20 > + rol ebp,5 >=20 > + pxor xmm9,xmm10 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + movdqa xmm3,xmm13 >=20 > + ror eax,7 >=20 > + paddd xmm13,xmm8 >=20 > + add edx,ebp >=20 > + pxor xmm9,xmm12 >=20 > + add ecx,DWORD[20+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + movdqa xmm12,xmm9 >=20 > + add ecx,edi >=20 > + cmp r8d,11 >=20 > + jb NEAR $L$aesenclast2 >=20 > + movups xmm0,XMMWORD[64+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+r15] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast2 >=20 > + movups xmm0,XMMWORD[96+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+r15] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast2: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+r15] >=20 > + xor esi,eax >=20 > + movdqa XMMWORD[rsp],xmm13 >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[24+rsp] >=20 > + pslld xmm9,2 >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + psrld xmm12,30 >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + por xmm9,xmm12 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[28+rsp] >=20 > + pshufd xmm13,xmm8,238 >=20 > + ror ecx,7 >=20 > + mov esi,ebx >=20 > + xor edi,edx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,ecx >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + pxor xmm10,xmm6 >=20 > + add ebp,DWORD[32+rsp] >=20 > + movups xmm14,XMMWORD[32+r12] >=20 > + xorps xmm14,xmm15 >=20 > + movups XMMWORD[16+r12*1+r13],xmm2 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + and esi,ecx >=20 > + xor ecx,edx >=20 > + ror ebx,7 >=20 > + punpcklqdq xmm13,xmm9 >=20 > + mov edi,eax >=20 > + xor esi,ecx >=20 > + pxor xmm10,xmm11 >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + movdqa xmm12,xmm3 >=20 > + xor edi,ebx >=20 > + paddd xmm3,xmm9 >=20 > + xor ebx,ecx >=20 > + pxor xmm10,xmm13 >=20 > + add ebp,eax >=20 > + add edx,DWORD[36+rsp] >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + ror eax,7 >=20 > + movdqa xmm13,xmm10 >=20 > + mov esi,ebp >=20 > + xor edi,ebx >=20 > + movdqa XMMWORD[16+rsp],xmm3 >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + movups xmm0,XMMWORD[((-64))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor esi,eax >=20 > + pslld xmm10,2 >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + psrld xmm13,30 >=20 > + add ecx,DWORD[40+rsp] >=20 > + and esi,eax >=20 > + xor eax,ebx >=20 > + por xmm10,xmm13 >=20 > + ror ebp,7 >=20 > + mov edi,edx >=20 > + xor esi,eax >=20 > + rol edx,5 >=20 > + pshufd xmm3,xmm9,238 >=20 > + add ecx,esi >=20 > + xor edi,ebp >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + add ebx,DWORD[44+rsp] >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + ror edx,7 >=20 > + movups xmm1,XMMWORD[((-48))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + mov esi,ecx >=20 > + xor edi,ebp >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,edx >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + pxor xmm11,xmm7 >=20 > + add eax,DWORD[48+rsp] >=20 > + and esi,edx >=20 > + xor edx,ebp >=20 > + ror ecx,7 >=20 > + punpcklqdq xmm3,xmm10 >=20 > + mov edi,ebx >=20 > + xor esi,edx >=20 > + pxor xmm11,xmm4 >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + movdqa xmm13,XMMWORD[48+r11] >=20 > + xor edi,ecx >=20 > + paddd xmm12,xmm10 >=20 > + xor ecx,edx >=20 > + pxor xmm11,xmm3 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[52+rsp] >=20 > + movups xmm0,XMMWORD[((-32))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + ror ebx,7 >=20 > + movdqa xmm3,xmm11 >=20 > + mov esi,eax >=20 > + xor edi,ecx >=20 > + movdqa XMMWORD[32+rsp],xmm12 >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ebx >=20 > + pslld xmm11,2 >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + psrld xmm3,30 >=20 > + add edx,DWORD[56+rsp] >=20 > + and esi,ebx >=20 > + xor ebx,ecx >=20 > + por xmm11,xmm3 >=20 > + ror eax,7 >=20 > + mov edi,ebp >=20 > + xor esi,ebx >=20 > + rol ebp,5 >=20 > + pshufd xmm12,xmm10,238 >=20 > + add edx,esi >=20 > + movups xmm1,XMMWORD[((-16))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor edi,eax >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + add ecx,DWORD[60+rsp] >=20 > + and edi,eax >=20 > + xor eax,ebx >=20 > + ror ebp,7 >=20 > + mov esi,edx >=20 > + xor edi,eax >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,ebp >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + pxor xmm4,xmm8 >=20 > + add ebx,DWORD[rsp] >=20 > + and esi,ebp >=20 > + xor ebp,eax >=20 > + ror edx,7 >=20 > + movups xmm0,XMMWORD[r15] >=20 > +DB 102,15,56,220,209 >=20 > + punpcklqdq xmm12,xmm11 >=20 > + mov edi,ecx >=20 > + xor esi,ebp >=20 > + pxor xmm4,xmm5 >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + movdqa xmm3,xmm13 >=20 > + xor edi,edx >=20 > + paddd xmm13,xmm11 >=20 > + xor edx,ebp >=20 > + pxor xmm4,xmm12 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[4+rsp] >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + ror ecx,7 >=20 > + movdqa xmm12,xmm4 >=20 > + mov esi,ebx >=20 > + xor edi,edx >=20 > + movdqa XMMWORD[48+rsp],xmm13 >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,ecx >=20 > + pslld xmm4,2 >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + psrld xmm12,30 >=20 > + add ebp,DWORD[8+rsp] >=20 > + movups xmm1,XMMWORD[16+r15] >=20 > +DB 102,15,56,220,208 >=20 > + and esi,ecx >=20 > + xor ecx,edx >=20 > + por xmm4,xmm12 >=20 > + ror ebx,7 >=20 > + mov edi,eax >=20 > + xor esi,ecx >=20 > + rol eax,5 >=20 > + pshufd xmm13,xmm11,238 >=20 > + add ebp,esi >=20 > + xor edi,ebx >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + add edx,DWORD[12+rsp] >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + ror eax,7 >=20 > + mov esi,ebp >=20 > + xor edi,ebx >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + movups xmm0,XMMWORD[32+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor esi,eax >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + pxor xmm5,xmm9 >=20 > + add ecx,DWORD[16+rsp] >=20 > + and esi,eax >=20 > + xor eax,ebx >=20 > + ror ebp,7 >=20 > + punpcklqdq xmm13,xmm4 >=20 > + mov edi,edx >=20 > + xor esi,eax >=20 > + pxor xmm5,xmm6 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movdqa xmm12,xmm3 >=20 > + xor edi,ebp >=20 > + paddd xmm3,xmm4 >=20 > + xor ebp,eax >=20 > + pxor xmm5,xmm13 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[20+rsp] >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + ror edx,7 >=20 > + movups xmm1,XMMWORD[48+r15] >=20 > +DB 102,15,56,220,208 >=20 > + movdqa xmm13,xmm5 >=20 > + mov esi,ecx >=20 > + xor edi,ebp >=20 > + movdqa XMMWORD[rsp],xmm3 >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,edx >=20 > + pslld xmm5,2 >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + psrld xmm13,30 >=20 > + add eax,DWORD[24+rsp] >=20 > + and esi,edx >=20 > + xor edx,ebp >=20 > + por xmm5,xmm13 >=20 > + ror ecx,7 >=20 > + mov edi,ebx >=20 > + xor esi,edx >=20 > + rol ebx,5 >=20 > + pshufd xmm3,xmm4,238 >=20 > + add eax,esi >=20 > + xor edi,ecx >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + add ebp,DWORD[28+rsp] >=20 > + cmp r8d,11 >=20 > + jb NEAR $L$aesenclast3 >=20 > + movups xmm0,XMMWORD[64+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+r15] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast3 >=20 > + movups xmm0,XMMWORD[96+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+r15] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast3: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+r15] >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + ror ebx,7 >=20 > + mov esi,eax >=20 > + xor edi,ecx >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ebx >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + pxor xmm6,xmm10 >=20 > + add edx,DWORD[32+rsp] >=20 > + and esi,ebx >=20 > + xor ebx,ecx >=20 > + ror eax,7 >=20 > + punpcklqdq xmm3,xmm5 >=20 > + mov edi,ebp >=20 > + xor esi,ebx >=20 > + pxor xmm6,xmm7 >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + movups xmm14,XMMWORD[48+r12] >=20 > + xorps xmm14,xmm15 >=20 > + movups XMMWORD[32+r12*1+r13],xmm2 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + movdqa xmm13,xmm12 >=20 > + xor edi,eax >=20 > + paddd xmm12,xmm5 >=20 > + xor eax,ebx >=20 > + pxor xmm6,xmm3 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[36+rsp] >=20 > + and edi,eax >=20 > + xor eax,ebx >=20 > + ror ebp,7 >=20 > + movdqa xmm3,xmm6 >=20 > + mov esi,edx >=20 > + xor edi,eax >=20 > + movdqa XMMWORD[16+rsp],xmm12 >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,ebp >=20 > + pslld xmm6,2 >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + psrld xmm3,30 >=20 > + add ebx,DWORD[40+rsp] >=20 > + and esi,ebp >=20 > + xor ebp,eax >=20 > + por xmm6,xmm3 >=20 > + ror edx,7 >=20 > + movups xmm0,XMMWORD[((-64))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + mov edi,ecx >=20 > + xor esi,ebp >=20 > + rol ecx,5 >=20 > + pshufd xmm12,xmm5,238 >=20 > + add ebx,esi >=20 > + xor edi,edx >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + add eax,DWORD[44+rsp] >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + ror ecx,7 >=20 > + mov esi,ebx >=20 > + xor edi,edx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + add eax,ebx >=20 > + pxor xmm7,xmm11 >=20 > + add ebp,DWORD[48+rsp] >=20 > + movups xmm1,XMMWORD[((-48))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor esi,ecx >=20 > + punpcklqdq xmm12,xmm6 >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + pxor xmm7,xmm8 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + movdqa xmm3,xmm13 >=20 > + ror ebx,7 >=20 > + paddd xmm13,xmm6 >=20 > + add ebp,eax >=20 > + pxor xmm7,xmm12 >=20 > + add edx,DWORD[52+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + movdqa xmm12,xmm7 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + movdqa XMMWORD[32+rsp],xmm13 >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[56+rsp] >=20 > + pslld xmm7,2 >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > + psrld xmm12,30 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movups xmm0,XMMWORD[((-32))+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + por xmm7,xmm12 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[60+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[rsp] >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + paddd xmm3,xmm7 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + movdqa XMMWORD[48+rsp],xmm3 >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[4+rsp] >=20 > + movups xmm1,XMMWORD[((-16))+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[8+rsp] >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[12+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + movups xmm0,XMMWORD[r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + cmp r10,r14 >=20 > + je NEAR $L$done_ssse3 >=20 > + movdqa xmm3,XMMWORD[64+r11] >=20 > + movdqa xmm13,XMMWORD[r11] >=20 > + movdqu xmm4,XMMWORD[r10] >=20 > + movdqu xmm5,XMMWORD[16+r10] >=20 > + movdqu xmm6,XMMWORD[32+r10] >=20 > + movdqu xmm7,XMMWORD[48+r10] >=20 > +DB 102,15,56,0,227 >=20 > + add r10,64 >=20 > + add ebx,DWORD[16+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > +DB 102,15,56,0,235 >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + paddd xmm4,xmm13 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[20+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + movdqa XMMWORD[rsp],xmm4 >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + ror ecx,7 >=20 > + psubd xmm4,xmm13 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[24+rsp] >=20 > + movups xmm1,XMMWORD[16+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor esi,ecx >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[28+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[32+rsp] >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > +DB 102,15,56,0,243 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movups xmm0,XMMWORD[32+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + paddd xmm5,xmm13 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[36+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + movdqa XMMWORD[16+rsp],xmm5 >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + psubd xmm5,xmm13 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[40+rsp] >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[44+rsp] >=20 > + movups xmm1,XMMWORD[48+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[48+rsp] >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > +DB 102,15,56,0,251 >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + paddd xmm6,xmm13 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[52+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + movdqa XMMWORD[32+rsp],xmm6 >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + cmp r8d,11 >=20 > + jb NEAR $L$aesenclast4 >=20 > + movups xmm0,XMMWORD[64+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+r15] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast4 >=20 > + movups xmm0,XMMWORD[96+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+r15] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast4: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+r15] >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + psubd xmm6,xmm13 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[56+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[60+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + movups XMMWORD[48+r12*1+r13],xmm2 >=20 > + lea r12,[64+r12] >=20 > + >=20 > + add eax,DWORD[r9] >=20 > + add esi,DWORD[4+r9] >=20 > + add ecx,DWORD[8+r9] >=20 > + add edx,DWORD[12+r9] >=20 > + mov DWORD[r9],eax >=20 > + add ebp,DWORD[16+r9] >=20 > + mov DWORD[4+r9],esi >=20 > + mov ebx,esi >=20 > + mov DWORD[8+r9],ecx >=20 > + mov edi,ecx >=20 > + mov DWORD[12+r9],edx >=20 > + xor edi,edx >=20 > + mov DWORD[16+r9],ebp >=20 > + and esi,edi >=20 > + jmp NEAR $L$oop_ssse3 >=20 > + >=20 > +$L$done_ssse3: >=20 > + add ebx,DWORD[16+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[20+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[24+rsp] >=20 > + movups xmm1,XMMWORD[16+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor esi,ecx >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[28+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[32+rsp] >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movups xmm0,XMMWORD[32+r15] >=20 > +DB 102,15,56,220,209 >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[36+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[40+rsp] >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[44+rsp] >=20 > + movups xmm1,XMMWORD[48+r15] >=20 > +DB 102,15,56,220,208 >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[48+rsp] >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[52+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + cmp r8d,11 >=20 > + jb NEAR $L$aesenclast5 >=20 > + movups xmm0,XMMWORD[64+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+r15] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast5 >=20 > + movups xmm0,XMMWORD[96+r15] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+r15] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast5: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+r15] >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[56+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[60+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + movups XMMWORD[48+r12*1+r13],xmm2 >=20 > + mov r8,QWORD[88+rsp] >=20 > + >=20 > + add eax,DWORD[r9] >=20 > + add esi,DWORD[4+r9] >=20 > + add ecx,DWORD[8+r9] >=20 > + mov DWORD[r9],eax >=20 > + add edx,DWORD[12+r9] >=20 > + mov DWORD[4+r9],esi >=20 > + add ebp,DWORD[16+r9] >=20 > + mov DWORD[8+r9],ecx >=20 > + mov DWORD[12+r9],edx >=20 > + mov DWORD[16+r9],ebp >=20 > + movups XMMWORD[r8],xmm2 >=20 > + movaps xmm6,XMMWORD[((96+0))+rsp] >=20 > + movaps xmm7,XMMWORD[((96+16))+rsp] >=20 > + movaps xmm8,XMMWORD[((96+32))+rsp] >=20 > + movaps xmm9,XMMWORD[((96+48))+rsp] >=20 > + movaps xmm10,XMMWORD[((96+64))+rsp] >=20 > + movaps xmm11,XMMWORD[((96+80))+rsp] >=20 > + movaps xmm12,XMMWORD[((96+96))+rsp] >=20 > + movaps xmm13,XMMWORD[((96+112))+rsp] >=20 > + movaps xmm14,XMMWORD[((96+128))+rsp] >=20 > + movaps xmm15,XMMWORD[((96+144))+rsp] >=20 > + lea rsi,[264+rsp] >=20 > + >=20 > + mov r15,QWORD[rsi] >=20 > + >=20 > + mov r14,QWORD[8+rsi] >=20 > + >=20 > + mov r13,QWORD[16+rsi] >=20 > + >=20 > + mov r12,QWORD[24+rsi] >=20 > + >=20 > + mov rbp,QWORD[32+rsi] >=20 > + >=20 > + mov rbx,QWORD[40+rsi] >=20 > + >=20 > + lea rsp,[48+rsi] >=20 > + >=20 > +$L$epilogue_ssse3: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_cbc_sha1_enc_ssse3: >=20 > +ALIGN 64 >=20 > +K_XX_XX: >=20 > + DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 >=20 > + DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 >=20 > + DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc >=20 > + DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > +DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 >=20 > + >=20 > +DB 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115 >=20 > +DB 116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52 >=20 > +DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 >=20 > +DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 >=20 > +DB 114,103,62,0 >=20 > +ALIGN 64 >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_cbc_sha1_enc_shaext: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_cbc_sha1_enc_shaext: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + mov r10,QWORD[56+rsp] >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[(-8-160)+rax],xmm6 >=20 > + movaps XMMWORD[(-8-144)+rax],xmm7 >=20 > + movaps XMMWORD[(-8-128)+rax],xmm8 >=20 > + movaps XMMWORD[(-8-112)+rax],xmm9 >=20 > + movaps XMMWORD[(-8-96)+rax],xmm10 >=20 > + movaps XMMWORD[(-8-80)+rax],xmm11 >=20 > + movaps XMMWORD[(-8-64)+rax],xmm12 >=20 > + movaps XMMWORD[(-8-48)+rax],xmm13 >=20 > + movaps XMMWORD[(-8-32)+rax],xmm14 >=20 > + movaps XMMWORD[(-8-16)+rax],xmm15 >=20 > +$L$prologue_shaext: >=20 > + movdqu xmm8,XMMWORD[r9] >=20 > + movd xmm9,DWORD[16+r9] >=20 > + movdqa xmm7,XMMWORD[((K_XX_XX+80))] >=20 > + >=20 > + mov r11d,DWORD[240+rcx] >=20 > + sub rsi,rdi >=20 > + movups xmm15,XMMWORD[rcx] >=20 > + movups xmm2,XMMWORD[r8] >=20 > + movups xmm0,XMMWORD[16+rcx] >=20 > + lea rcx,[112+rcx] >=20 > + >=20 > + pshufd xmm8,xmm8,27 >=20 > + pshufd xmm9,xmm9,27 >=20 > + jmp NEAR $L$oop_shaext >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_shaext: >=20 > + movups xmm14,XMMWORD[rdi] >=20 > + xorps xmm14,xmm15 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + movdqu xmm3,XMMWORD[r10] >=20 > + movdqa xmm12,xmm9 >=20 > +DB 102,15,56,0,223 >=20 > + movdqu xmm4,XMMWORD[16+r10] >=20 > + movdqa xmm11,xmm8 >=20 > + movups xmm0,XMMWORD[((-64))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,0,231 >=20 > + >=20 > + paddd xmm9,xmm3 >=20 > + movdqu xmm5,XMMWORD[32+r10] >=20 > + lea r10,[64+r10] >=20 > + pxor xmm3,xmm12 >=20 > + movups xmm1,XMMWORD[((-48))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + pxor xmm3,xmm12 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 102,15,56,0,239 >=20 > +DB 69,15,58,204,193,0 >=20 > +DB 68,15,56,200,212 >=20 > + movups xmm0,XMMWORD[((-32))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > +DB 15,56,201,220 >=20 > + movdqu xmm6,XMMWORD[((-16))+r10] >=20 > + movdqa xmm9,xmm8 >=20 > +DB 102,15,56,0,247 >=20 > + movups xmm1,XMMWORD[((-16))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 69,15,58,204,194,0 >=20 > +DB 68,15,56,200,205 >=20 > + pxor xmm3,xmm5 >=20 > +DB 15,56,201,229 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,0 >=20 > +DB 68,15,56,200,214 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,222 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,0 >=20 > +DB 68,15,56,200,203 >=20 > + movups xmm1,XMMWORD[48+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,227 >=20 > + pxor xmm5,xmm3 >=20 > +DB 15,56,201,243 >=20 > + cmp r11d,11 >=20 > + jb NEAR $L$aesenclast6 >=20 > + movups xmm0,XMMWORD[64+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast6 >=20 > + movups xmm0,XMMWORD[96+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast6: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+rcx] >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,0 >=20 > +DB 68,15,56,200,212 >=20 > + movups xmm14,XMMWORD[16+rdi] >=20 > + xorps xmm14,xmm15 >=20 > + movups XMMWORD[rdi*1+rsi],xmm2 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,236 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,220 >=20 > + movups xmm0,XMMWORD[((-64))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,1 >=20 > +DB 68,15,56,200,205 >=20 > + movups xmm1,XMMWORD[((-48))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,245 >=20 > + pxor xmm3,xmm5 >=20 > +DB 15,56,201,229 >=20 > + movups xmm0,XMMWORD[((-32))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,1 >=20 > +DB 68,15,56,200,214 >=20 > + movups xmm1,XMMWORD[((-16))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,222 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,1 >=20 > +DB 68,15,56,200,203 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,227 >=20 > + pxor xmm5,xmm3 >=20 > +DB 15,56,201,243 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,1 >=20 > +DB 68,15,56,200,212 >=20 > + movups xmm1,XMMWORD[48+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,236 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,220 >=20 > + cmp r11d,11 >=20 > + jb NEAR $L$aesenclast7 >=20 > + movups xmm0,XMMWORD[64+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast7 >=20 > + movups xmm0,XMMWORD[96+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast7: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+rcx] >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,1 >=20 > +DB 68,15,56,200,205 >=20 > + movups xmm14,XMMWORD[32+rdi] >=20 > + xorps xmm14,xmm15 >=20 > + movups XMMWORD[16+rdi*1+rsi],xmm2 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,245 >=20 > + pxor xmm3,xmm5 >=20 > +DB 15,56,201,229 >=20 > + movups xmm0,XMMWORD[((-64))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,2 >=20 > +DB 68,15,56,200,214 >=20 > + movups xmm1,XMMWORD[((-48))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,222 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + movups xmm0,XMMWORD[((-32))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,2 >=20 > +DB 68,15,56,200,203 >=20 > + movups xmm1,XMMWORD[((-16))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,227 >=20 > + pxor xmm5,xmm3 >=20 > +DB 15,56,201,243 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,2 >=20 > +DB 68,15,56,200,212 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,236 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,220 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,2 >=20 > +DB 68,15,56,200,205 >=20 > + movups xmm1,XMMWORD[48+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,245 >=20 > + pxor xmm3,xmm5 >=20 > +DB 15,56,201,229 >=20 > + cmp r11d,11 >=20 > + jb NEAR $L$aesenclast8 >=20 > + movups xmm0,XMMWORD[64+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast8 >=20 > + movups xmm0,XMMWORD[96+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast8: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+rcx] >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,2 >=20 > +DB 68,15,56,200,214 >=20 > + movups xmm14,XMMWORD[48+rdi] >=20 > + xorps xmm14,xmm15 >=20 > + movups XMMWORD[32+rdi*1+rsi],xmm2 >=20 > + xorps xmm2,xmm14 >=20 > + movups xmm1,XMMWORD[((-80))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,222 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + movups xmm0,XMMWORD[((-64))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,3 >=20 > +DB 68,15,56,200,203 >=20 > + movups xmm1,XMMWORD[((-48))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +DB 15,56,202,227 >=20 > + pxor xmm5,xmm3 >=20 > +DB 15,56,201,243 >=20 > + movups xmm0,XMMWORD[((-32))+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,3 >=20 > +DB 68,15,56,200,212 >=20 > +DB 15,56,202,236 >=20 > + pxor xmm6,xmm4 >=20 > + movups xmm1,XMMWORD[((-16))+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,3 >=20 > +DB 68,15,56,200,205 >=20 > +DB 15,56,202,245 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movdqa xmm5,xmm12 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 69,15,58,204,193,3 >=20 > +DB 68,15,56,200,214 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 69,15,58,204,194,3 >=20 > +DB 68,15,56,200,205 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[48+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + cmp r11d,11 >=20 > + jb NEAR $L$aesenclast9 >=20 > + movups xmm0,XMMWORD[64+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[80+rcx] >=20 > +DB 102,15,56,220,208 >=20 > + je NEAR $L$aesenclast9 >=20 > + movups xmm0,XMMWORD[96+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[112+rcx] >=20 > +DB 102,15,56,220,208 >=20 > +$L$aesenclast9: >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[((16-112))+rcx] >=20 > + dec rdx >=20 > + >=20 > + paddd xmm8,xmm11 >=20 > + movups XMMWORD[48+rdi*1+rsi],xmm2 >=20 > + lea rdi,[64+rdi] >=20 > + jnz NEAR $L$oop_shaext >=20 > + >=20 > + pshufd xmm8,xmm8,27 >=20 > + pshufd xmm9,xmm9,27 >=20 > + movups XMMWORD[r8],xmm2 >=20 > + movdqu XMMWORD[r9],xmm8 >=20 > + movd DWORD[16+r9],xmm9 >=20 > + movaps xmm6,XMMWORD[((-8-160))+rax] >=20 > + movaps xmm7,XMMWORD[((-8-144))+rax] >=20 > + movaps xmm8,XMMWORD[((-8-128))+rax] >=20 > + movaps xmm9,XMMWORD[((-8-112))+rax] >=20 > + movaps xmm10,XMMWORD[((-8-96))+rax] >=20 > + movaps xmm11,XMMWORD[((-8-80))+rax] >=20 > + movaps xmm12,XMMWORD[((-8-64))+rax] >=20 > + movaps xmm13,XMMWORD[((-8-48))+rax] >=20 > + movaps xmm14,XMMWORD[((-8-32))+rax] >=20 > + movaps xmm15,XMMWORD[((-8-16))+rax] >=20 > + mov rsp,rax >=20 > +$L$epilogue_shaext: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_cbc_sha1_enc_shaext: >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +ssse3_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + lea r10,[aesni_cbc_sha1_enc_shaext] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$seh_no_shaext >=20 > + >=20 > + lea rsi,[rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + lea rax,[168+rax] >=20 > + jmp NEAR $L$common_seh_tail >=20 > +$L$seh_no_shaext: >=20 > + lea rsi,[96+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + lea rax,[264+rax] >=20 > + >=20 > + mov r15,QWORD[rax] >=20 > + mov r14,QWORD[8+rax] >=20 > + mov r13,QWORD[16+rax] >=20 > + mov r12,QWORD[24+rax] >=20 > + mov rbp,QWORD[32+rax] >=20 > + mov rbx,QWORD[40+rax] >=20 > + lea rax,[48+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + mov QWORD[240+r8],r15 >=20 > + >=20 > +$L$common_seh_tail: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase >=20 > + DD $L$SEH_info_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase >=20 > + DD $L$SEH_begin_aesni_cbc_sha1_enc_shaext wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_cbc_sha1_enc_shaext wrt ..imagebase >=20 > + DD $L$SEH_info_aesni_cbc_sha1_enc_shaext wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_aesni_cbc_sha1_enc_ssse3: >=20 > +DB 9,0,0,0 >=20 > + DD ssse3_handler wrt ..imagebase >=20 > + DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 > wrt ..imagebase >=20 > +$L$SEH_info_aesni_cbc_sha1_enc_shaext: >=20 > +DB 9,0,0,0 >=20 > + DD ssse3_handler wrt ..imagebase >=20 > + DD $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext > wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256- > x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256- > x86_64.nasm > new file mode 100644 > index 0000000000..f5c250b904 > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256- > x86_64.nasm > @@ -0,0 +1,78 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/aes/asm/aesni-sha256-x86_64.pl >=20 > +; >=20 > +; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > +global aesni_cbc_sha256_enc >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_cbc_sha256_enc: >=20 > + >=20 > + xor eax,eax >=20 > + cmp rcx,0 >=20 > + je NEAR $L$probe >=20 > + ud2 >=20 > +$L$probe: >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 64 >=20 > + >=20 > +K256: >=20 > + DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 >=20 > + DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 >=20 > + DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 >=20 > + DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 >=20 > + DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 >=20 > + DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 >=20 > + DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 >=20 > + DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 >=20 > + DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc >=20 > + DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc >=20 > + DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da >=20 > + DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da >=20 > + DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 >=20 > + DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 >=20 > + DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 >=20 > + DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 >=20 > + DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 >=20 > + DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 >=20 > + DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 >=20 > + DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 >=20 > + DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 >=20 > + DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 >=20 > + DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 >=20 > + DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 >=20 > + DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 >=20 > + DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 >=20 > + DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 >=20 > + DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 >=20 > + DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 >=20 > + DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 >=20 > + DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 >=20 > + DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 >=20 > + >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0,0,0,0,0,0,0,0,-1,-1,-1,-1 >=20 > + DD 0,0,0,0,0,0,0,0 >=20 > +DB 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54 >=20 > +DB 32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95 >=20 > +DB 54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98 >=20 > +DB 121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108 >=20 > +DB 46,111,114,103,62,0 >=20 > +ALIGN 64 >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nas= m > b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm > new file mode 100644 > index 0000000000..57ee23ea8c > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm > @@ -0,0 +1,5103 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/aes/asm/aesni-x86_64.pl >=20 > +; >=20 > +; Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > +global aesni_encrypt >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_encrypt: >=20 > + >=20 > + movups xmm2,XMMWORD[rcx] >=20 > + mov eax,DWORD[240+r8] >=20 > + movups xmm0,XMMWORD[r8] >=20 > + movups xmm1,XMMWORD[16+r8] >=20 > + lea r8,[32+r8] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_1: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[r8] >=20 > + lea r8,[16+r8] >=20 > + jnz NEAR $L$oop_enc1_1 >=20 > +DB 102,15,56,221,209 >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + movups XMMWORD[rdx],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +global aesni_decrypt >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_decrypt: >=20 > + >=20 > + movups xmm2,XMMWORD[rcx] >=20 > + mov eax,DWORD[240+r8] >=20 > + movups xmm0,XMMWORD[r8] >=20 > + movups xmm1,XMMWORD[16+r8] >=20 > + lea r8,[32+r8] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_2: >=20 > +DB 102,15,56,222,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[r8] >=20 > + lea r8,[16+r8] >=20 > + jnz NEAR $L$oop_dec1_2 >=20 > +DB 102,15,56,223,209 >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + movups XMMWORD[rdx],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_encrypt2: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > + add rax,16 >=20 > + >=20 > +$L$enc_loop2: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$enc_loop2 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_decrypt2: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > + add rax,16 >=20 > + >=20 > +$L$dec_loop2: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$dec_loop2 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,223,208 >=20 > +DB 102,15,56,223,216 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_encrypt3: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + xorps xmm4,xmm0 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > + add rax,16 >=20 > + >=20 > +$L$enc_loop3: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$enc_loop3 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > +DB 102,15,56,221,224 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_decrypt3: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + xorps xmm4,xmm0 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > + add rax,16 >=20 > + >=20 > +$L$dec_loop3: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$dec_loop3 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,223,208 >=20 > +DB 102,15,56,223,216 >=20 > +DB 102,15,56,223,224 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_encrypt4: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + xorps xmm4,xmm0 >=20 > + xorps xmm5,xmm0 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > +DB 0x0f,0x1f,0x00 >=20 > + add rax,16 >=20 > + >=20 > +$L$enc_loop4: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$enc_loop4 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > +DB 102,15,56,221,224 >=20 > +DB 102,15,56,221,232 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_decrypt4: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + xorps xmm4,xmm0 >=20 > + xorps xmm5,xmm0 >=20 > + movups xmm0,XMMWORD[32+rcx] >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > +DB 0x0f,0x1f,0x00 >=20 > + add rax,16 >=20 > + >=20 > +$L$dec_loop4: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$dec_loop4 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,223,208 >=20 > +DB 102,15,56,223,216 >=20 > +DB 102,15,56,223,224 >=20 > +DB 102,15,56,223,232 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_encrypt6: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm4,xmm0 >=20 > +DB 102,15,56,220,209 >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > +DB 102,15,56,220,217 >=20 > + pxor xmm5,xmm0 >=20 > + pxor xmm6,xmm0 >=20 > +DB 102,15,56,220,225 >=20 > + pxor xmm7,xmm0 >=20 > + movups xmm0,XMMWORD[rax*1+rcx] >=20 > + add rax,16 >=20 > + jmp NEAR $L$enc_loop6_enter >=20 > +ALIGN 16 >=20 > +$L$enc_loop6: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +$L$enc_loop6_enter: >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$enc_loop6 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > +DB 102,15,56,221,224 >=20 > +DB 102,15,56,221,232 >=20 > +DB 102,15,56,221,240 >=20 > +DB 102,15,56,221,248 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_decrypt6: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm4,xmm0 >=20 > +DB 102,15,56,222,209 >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > +DB 102,15,56,222,217 >=20 > + pxor xmm5,xmm0 >=20 > + pxor xmm6,xmm0 >=20 > +DB 102,15,56,222,225 >=20 > + pxor xmm7,xmm0 >=20 > + movups xmm0,XMMWORD[rax*1+rcx] >=20 > + add rax,16 >=20 > + jmp NEAR $L$dec_loop6_enter >=20 > +ALIGN 16 >=20 > +$L$dec_loop6: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +$L$dec_loop6_enter: >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$dec_loop6 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,15,56,223,208 >=20 > +DB 102,15,56,223,216 >=20 > +DB 102,15,56,223,224 >=20 > +DB 102,15,56,223,232 >=20 > +DB 102,15,56,223,240 >=20 > +DB 102,15,56,223,248 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_encrypt8: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + pxor xmm4,xmm0 >=20 > + pxor xmm5,xmm0 >=20 > + pxor xmm6,xmm0 >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > +DB 102,15,56,220,209 >=20 > + pxor xmm7,xmm0 >=20 > + pxor xmm8,xmm0 >=20 > +DB 102,15,56,220,217 >=20 > + pxor xmm9,xmm0 >=20 > + movups xmm0,XMMWORD[rax*1+rcx] >=20 > + add rax,16 >=20 > + jmp NEAR $L$enc_loop8_inner >=20 > +ALIGN 16 >=20 > +$L$enc_loop8: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +$L$enc_loop8_inner: >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > +$L$enc_loop8_enter: >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$enc_loop8 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > +DB 102,15,56,221,224 >=20 > +DB 102,15,56,221,232 >=20 > +DB 102,15,56,221,240 >=20 > +DB 102,15,56,221,248 >=20 > +DB 102,68,15,56,221,192 >=20 > +DB 102,68,15,56,221,200 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_aesni_decrypt8: >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + shl eax,4 >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm0 >=20 > + pxor xmm4,xmm0 >=20 > + pxor xmm5,xmm0 >=20 > + pxor xmm6,xmm0 >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + neg rax >=20 > +DB 102,15,56,222,209 >=20 > + pxor xmm7,xmm0 >=20 > + pxor xmm8,xmm0 >=20 > +DB 102,15,56,222,217 >=20 > + pxor xmm9,xmm0 >=20 > + movups xmm0,XMMWORD[rax*1+rcx] >=20 > + add rax,16 >=20 > + jmp NEAR $L$dec_loop8_inner >=20 > +ALIGN 16 >=20 > +$L$dec_loop8: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +$L$dec_loop8_inner: >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > +$L$dec_loop8_enter: >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$dec_loop8 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > +DB 102,15,56,223,208 >=20 > +DB 102,15,56,223,216 >=20 > +DB 102,15,56,223,224 >=20 > +DB 102,15,56,223,232 >=20 > +DB 102,15,56,223,240 >=20 > +DB 102,15,56,223,248 >=20 > +DB 102,68,15,56,223,192 >=20 > +DB 102,68,15,56,223,200 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global aesni_ecb_encrypt >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_ecb_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_ecb_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-88))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > +$L$ecb_enc_body: >=20 > + and rdx,-16 >=20 > + jz NEAR $L$ecb_ret >=20 > + >=20 > + mov eax,DWORD[240+rcx] >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + mov r11,rcx >=20 > + mov r10d,eax >=20 > + test r8d,r8d >=20 > + jz NEAR $L$ecb_decrypt >=20 > + >=20 > + cmp rdx,0x80 >=20 > + jb NEAR $L$ecb_enc_tail >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + movdqu xmm8,XMMWORD[96+rdi] >=20 > + movdqu xmm9,XMMWORD[112+rdi] >=20 > + lea rdi,[128+rdi] >=20 > + sub rdx,0x80 >=20 > + jmp NEAR $L$ecb_enc_loop8_enter >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_loop8: >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + mov rcx,r11 >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + mov eax,r10d >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + movdqu xmm8,XMMWORD[96+rdi] >=20 > + movups XMMWORD[112+rsi],xmm9 >=20 > + lea rsi,[128+rsi] >=20 > + movdqu xmm9,XMMWORD[112+rdi] >=20 > + lea rdi,[128+rdi] >=20 > +$L$ecb_enc_loop8_enter: >=20 > + >=20 > + call _aesni_encrypt8 >=20 > + >=20 > + sub rdx,0x80 >=20 > + jnc NEAR $L$ecb_enc_loop8 >=20 > + >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + mov rcx,r11 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + mov eax,r10d >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + movups XMMWORD[112+rsi],xmm9 >=20 > + lea rsi,[128+rsi] >=20 > + add rdx,0x80 >=20 > + jz NEAR $L$ecb_ret >=20 > + >=20 > +$L$ecb_enc_tail: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + cmp rdx,0x20 >=20 > + jb NEAR $L$ecb_enc_one >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + je NEAR $L$ecb_enc_two >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + cmp rdx,0x40 >=20 > + jb NEAR $L$ecb_enc_three >=20 > + movups xmm5,XMMWORD[48+rdi] >=20 > + je NEAR $L$ecb_enc_four >=20 > + movups xmm6,XMMWORD[64+rdi] >=20 > + cmp rdx,0x60 >=20 > + jb NEAR $L$ecb_enc_five >=20 > + movups xmm7,XMMWORD[80+rdi] >=20 > + je NEAR $L$ecb_enc_six >=20 > + movdqu xmm8,XMMWORD[96+rdi] >=20 > + xorps xmm9,xmm9 >=20 > + call _aesni_encrypt8 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_one: >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_3: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_enc1_3 >=20 > +DB 102,15,56,221,209 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_two: >=20 > + call _aesni_encrypt2 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_three: >=20 > + call _aesni_encrypt3 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_four: >=20 > + call _aesni_encrypt4 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_five: >=20 > + xorps xmm7,xmm7 >=20 > + call _aesni_encrypt6 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_enc_six: >=20 > + call _aesni_encrypt6 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + jmp NEAR $L$ecb_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ecb_decrypt: >=20 > + cmp rdx,0x80 >=20 > + jb NEAR $L$ecb_dec_tail >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + movdqu xmm8,XMMWORD[96+rdi] >=20 > + movdqu xmm9,XMMWORD[112+rdi] >=20 > + lea rdi,[128+rdi] >=20 > + sub rdx,0x80 >=20 > + jmp NEAR $L$ecb_dec_loop8_enter >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_loop8: >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + mov rcx,r11 >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + mov eax,r10d >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + movdqu xmm8,XMMWORD[96+rdi] >=20 > + movups XMMWORD[112+rsi],xmm9 >=20 > + lea rsi,[128+rsi] >=20 > + movdqu xmm9,XMMWORD[112+rdi] >=20 > + lea rdi,[128+rdi] >=20 > +$L$ecb_dec_loop8_enter: >=20 > + >=20 > + call _aesni_decrypt8 >=20 > + >=20 > + movups xmm0,XMMWORD[r11] >=20 > + sub rdx,0x80 >=20 > + jnc NEAR $L$ecb_dec_loop8 >=20 > + >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + mov rcx,r11 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + mov eax,r10d >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + pxor xmm7,xmm7 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + pxor xmm8,xmm8 >=20 > + movups XMMWORD[112+rsi],xmm9 >=20 > + pxor xmm9,xmm9 >=20 > + lea rsi,[128+rsi] >=20 > + add rdx,0x80 >=20 > + jz NEAR $L$ecb_ret >=20 > + >=20 > +$L$ecb_dec_tail: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + cmp rdx,0x20 >=20 > + jb NEAR $L$ecb_dec_one >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + je NEAR $L$ecb_dec_two >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + cmp rdx,0x40 >=20 > + jb NEAR $L$ecb_dec_three >=20 > + movups xmm5,XMMWORD[48+rdi] >=20 > + je NEAR $L$ecb_dec_four >=20 > + movups xmm6,XMMWORD[64+rdi] >=20 > + cmp rdx,0x60 >=20 > + jb NEAR $L$ecb_dec_five >=20 > + movups xmm7,XMMWORD[80+rdi] >=20 > + je NEAR $L$ecb_dec_six >=20 > + movups xmm8,XMMWORD[96+rdi] >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + xorps xmm9,xmm9 >=20 > + call _aesni_decrypt8 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + pxor xmm7,xmm7 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + pxor xmm8,xmm8 >=20 > + pxor xmm9,xmm9 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_one: >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_4: >=20 > +DB 102,15,56,222,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_dec1_4 >=20 > +DB 102,15,56,223,209 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_two: >=20 > + call _aesni_decrypt2 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_three: >=20 > + call _aesni_decrypt3 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_four: >=20 > + call _aesni_decrypt4 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_five: >=20 > + xorps xmm7,xmm7 >=20 > + call _aesni_decrypt6 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + pxor xmm7,xmm7 >=20 > + jmp NEAR $L$ecb_ret >=20 > +ALIGN 16 >=20 > +$L$ecb_dec_six: >=20 > + call _aesni_decrypt6 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + pxor xmm7,xmm7 >=20 > + >=20 > +$L$ecb_ret: >=20 > + xorps xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps xmm7,XMMWORD[16+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps xmm8,XMMWORD[32+rsp] >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps xmm9,XMMWORD[48+rsp] >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + lea rsp,[88+rsp] >=20 > +$L$ecb_enc_ret: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_ecb_encrypt: >=20 > +global aesni_ccm64_encrypt_blocks >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_ccm64_encrypt_blocks: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_ccm64_encrypt_blocks: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-88))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > +$L$ccm64_enc_body: >=20 > + mov eax,DWORD[240+rcx] >=20 > + movdqu xmm6,XMMWORD[r8] >=20 > + movdqa xmm9,XMMWORD[$L$increment64] >=20 > + movdqa xmm7,XMMWORD[$L$bswap_mask] >=20 > + >=20 > + shl eax,4 >=20 > + mov r10d,16 >=20 > + lea r11,[rcx] >=20 > + movdqu xmm3,XMMWORD[r9] >=20 > + movdqa xmm2,xmm6 >=20 > + lea rcx,[32+rax*1+rcx] >=20 > +DB 102,15,56,0,247 >=20 > + sub r10,rax >=20 > + jmp NEAR $L$ccm64_enc_outer >=20 > +ALIGN 16 >=20 > +$L$ccm64_enc_outer: >=20 > + movups xmm0,XMMWORD[r11] >=20 > + mov rax,r10 >=20 > + movups xmm8,XMMWORD[rdi] >=20 > + >=20 > + xorps xmm2,xmm0 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + xorps xmm0,xmm8 >=20 > + xorps xmm3,xmm0 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > +$L$ccm64_enc2_loop: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ccm64_enc2_loop >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + paddq xmm6,xmm9 >=20 > + dec rdx >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > + >=20 > + lea rdi,[16+rdi] >=20 > + xorps xmm8,xmm2 >=20 > + movdqa xmm2,xmm6 >=20 > + movups XMMWORD[rsi],xmm8 >=20 > +DB 102,15,56,0,215 >=20 > + lea rsi,[16+rsi] >=20 > + jnz NEAR $L$ccm64_enc_outer >=20 > + >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[r9],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm8,xmm8 >=20 > + pxor xmm6,xmm6 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps xmm7,XMMWORD[16+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps xmm8,XMMWORD[32+rsp] >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps xmm9,XMMWORD[48+rsp] >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + lea rsp,[88+rsp] >=20 > +$L$ccm64_enc_ret: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_ccm64_encrypt_blocks: >=20 > +global aesni_ccm64_decrypt_blocks >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_ccm64_decrypt_blocks: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_ccm64_decrypt_blocks: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-88))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > +$L$ccm64_dec_body: >=20 > + mov eax,DWORD[240+rcx] >=20 > + movups xmm6,XMMWORD[r8] >=20 > + movdqu xmm3,XMMWORD[r9] >=20 > + movdqa xmm9,XMMWORD[$L$increment64] >=20 > + movdqa xmm7,XMMWORD[$L$bswap_mask] >=20 > + >=20 > + movaps xmm2,xmm6 >=20 > + mov r10d,eax >=20 > + mov r11,rcx >=20 > +DB 102,15,56,0,247 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_5: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_enc1_5 >=20 > +DB 102,15,56,221,209 >=20 > + shl r10d,4 >=20 > + mov eax,16 >=20 > + movups xmm8,XMMWORD[rdi] >=20 > + paddq xmm6,xmm9 >=20 > + lea rdi,[16+rdi] >=20 > + sub rax,r10 >=20 > + lea rcx,[32+r10*1+r11] >=20 > + mov r10,rax >=20 > + jmp NEAR $L$ccm64_dec_outer >=20 > +ALIGN 16 >=20 > +$L$ccm64_dec_outer: >=20 > + xorps xmm8,xmm2 >=20 > + movdqa xmm2,xmm6 >=20 > + movups XMMWORD[rsi],xmm8 >=20 > + lea rsi,[16+rsi] >=20 > +DB 102,15,56,0,215 >=20 > + >=20 > + sub rdx,1 >=20 > + jz NEAR $L$ccm64_dec_break >=20 > + >=20 > + movups xmm0,XMMWORD[r11] >=20 > + mov rax,r10 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + xorps xmm8,xmm0 >=20 > + xorps xmm2,xmm0 >=20 > + xorps xmm3,xmm8 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + jmp NEAR $L$ccm64_dec2_loop >=20 > +ALIGN 16 >=20 > +$L$ccm64_dec2_loop: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ccm64_dec2_loop >=20 > + movups xmm8,XMMWORD[rdi] >=20 > + paddq xmm6,xmm9 >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,221,208 >=20 > +DB 102,15,56,221,216 >=20 > + lea rdi,[16+rdi] >=20 > + jmp NEAR $L$ccm64_dec_outer >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ccm64_dec_break: >=20 > + >=20 > + mov eax,DWORD[240+r11] >=20 > + movups xmm0,XMMWORD[r11] >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + xorps xmm8,xmm0 >=20 > + lea r11,[32+r11] >=20 > + xorps xmm3,xmm8 >=20 > +$L$oop_enc1_6: >=20 > +DB 102,15,56,220,217 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[r11] >=20 > + lea r11,[16+r11] >=20 > + jnz NEAR $L$oop_enc1_6 >=20 > +DB 102,15,56,221,217 >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + movups XMMWORD[r9],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm8,xmm8 >=20 > + pxor xmm6,xmm6 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps xmm7,XMMWORD[16+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps xmm8,XMMWORD[32+rsp] >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps xmm9,XMMWORD[48+rsp] >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + lea rsp,[88+rsp] >=20 > +$L$ccm64_dec_ret: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_ccm64_decrypt_blocks: >=20 > +global aesni_ctr32_encrypt_blocks >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_ctr32_encrypt_blocks: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_ctr32_encrypt_blocks: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + >=20 > + >=20 > + >=20 > + cmp rdx,1 >=20 > + jne NEAR $L$ctr32_bulk >=20 > + >=20 > + >=20 > + >=20 > + movups xmm2,XMMWORD[r8] >=20 > + movups xmm3,XMMWORD[rdi] >=20 > + mov edx,DWORD[240+rcx] >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_7: >=20 > +DB 102,15,56,220,209 >=20 > + dec edx >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_enc1_7 >=20 > +DB 102,15,56,221,209 >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + xorps xmm2,xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + xorps xmm2,xmm2 >=20 > + jmp NEAR $L$ctr32_epilogue >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ctr32_bulk: >=20 > + lea r11,[rsp] >=20 > + >=20 > + push rbp >=20 > + >=20 > + sub rsp,288 >=20 > + and rsp,-16 >=20 > + movaps XMMWORD[(-168)+r11],xmm6 >=20 > + movaps XMMWORD[(-152)+r11],xmm7 >=20 > + movaps XMMWORD[(-136)+r11],xmm8 >=20 > + movaps XMMWORD[(-120)+r11],xmm9 >=20 > + movaps XMMWORD[(-104)+r11],xmm10 >=20 > + movaps XMMWORD[(-88)+r11],xmm11 >=20 > + movaps XMMWORD[(-72)+r11],xmm12 >=20 > + movaps XMMWORD[(-56)+r11],xmm13 >=20 > + movaps XMMWORD[(-40)+r11],xmm14 >=20 > + movaps XMMWORD[(-24)+r11],xmm15 >=20 > +$L$ctr32_body: >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + movdqu xmm2,XMMWORD[r8] >=20 > + movdqu xmm0,XMMWORD[rcx] >=20 > + mov r8d,DWORD[12+r8] >=20 > + pxor xmm2,xmm0 >=20 > + mov ebp,DWORD[12+rcx] >=20 > + movdqa XMMWORD[rsp],xmm2 >=20 > + bswap r8d >=20 > + movdqa xmm3,xmm2 >=20 > + movdqa xmm4,xmm2 >=20 > + movdqa xmm5,xmm2 >=20 > + movdqa XMMWORD[64+rsp],xmm2 >=20 > + movdqa XMMWORD[80+rsp],xmm2 >=20 > + movdqa XMMWORD[96+rsp],xmm2 >=20 > + mov r10,rdx >=20 > + movdqa XMMWORD[112+rsp],xmm2 >=20 > + >=20 > + lea rax,[1+r8] >=20 > + lea rdx,[2+r8] >=20 > + bswap eax >=20 > + bswap edx >=20 > + xor eax,ebp >=20 > + xor edx,ebp >=20 > +DB 102,15,58,34,216,3 >=20 > + lea rax,[3+r8] >=20 > + movdqa XMMWORD[16+rsp],xmm3 >=20 > +DB 102,15,58,34,226,3 >=20 > + bswap eax >=20 > + mov rdx,r10 >=20 > + lea r10,[4+r8] >=20 > + movdqa XMMWORD[32+rsp],xmm4 >=20 > + xor eax,ebp >=20 > + bswap r10d >=20 > +DB 102,15,58,34,232,3 >=20 > + xor r10d,ebp >=20 > + movdqa XMMWORD[48+rsp],xmm5 >=20 > + lea r9,[5+r8] >=20 > + mov DWORD[((64+12))+rsp],r10d >=20 > + bswap r9d >=20 > + lea r10,[6+r8] >=20 > + mov eax,DWORD[240+rcx] >=20 > + xor r9d,ebp >=20 > + bswap r10d >=20 > + mov DWORD[((80+12))+rsp],r9d >=20 > + xor r10d,ebp >=20 > + lea r9,[7+r8] >=20 > + mov DWORD[((96+12))+rsp],r10d >=20 > + bswap r9d >=20 > + mov r10d,DWORD[((OPENSSL_ia32cap_P+4))] >=20 > + xor r9d,ebp >=20 > + and r10d,71303168 >=20 > + mov DWORD[((112+12))+rsp],r9d >=20 > + >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + >=20 > + movdqa xmm6,XMMWORD[64+rsp] >=20 > + movdqa xmm7,XMMWORD[80+rsp] >=20 > + >=20 > + cmp rdx,8 >=20 > + jb NEAR $L$ctr32_tail >=20 > + >=20 > + sub rdx,6 >=20 > + cmp r10d,4194304 >=20 > + je NEAR $L$ctr32_6x >=20 > + >=20 > + lea rcx,[128+rcx] >=20 > + sub rdx,2 >=20 > + jmp NEAR $L$ctr32_loop8 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ctr32_6x: >=20 > + shl eax,4 >=20 > + mov r10d,48 >=20 > + bswap ebp >=20 > + lea rcx,[32+rax*1+rcx] >=20 > + sub r10,rax >=20 > + jmp NEAR $L$ctr32_loop6 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ctr32_loop6: >=20 > + add r8d,6 >=20 > + movups xmm0,XMMWORD[((-48))+r10*1+rcx] >=20 > +DB 102,15,56,220,209 >=20 > + mov eax,r8d >=20 > + xor eax,ebp >=20 > +DB 102,15,56,220,217 >=20 > +DB 0x0f,0x38,0xf1,0x44,0x24,12 >=20 > + lea eax,[1+r8] >=20 > +DB 102,15,56,220,225 >=20 > + xor eax,ebp >=20 > +DB 0x0f,0x38,0xf1,0x44,0x24,28 >=20 > +DB 102,15,56,220,233 >=20 > + lea eax,[2+r8] >=20 > + xor eax,ebp >=20 > +DB 102,15,56,220,241 >=20 > +DB 0x0f,0x38,0xf1,0x44,0x24,44 >=20 > + lea eax,[3+r8] >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[((-32))+r10*1+rcx] >=20 > + xor eax,ebp >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 0x0f,0x38,0xf1,0x44,0x24,60 >=20 > + lea eax,[4+r8] >=20 > +DB 102,15,56,220,216 >=20 > + xor eax,ebp >=20 > +DB 0x0f,0x38,0xf1,0x44,0x24,76 >=20 > +DB 102,15,56,220,224 >=20 > + lea eax,[5+r8] >=20 > + xor eax,ebp >=20 > +DB 102,15,56,220,232 >=20 > +DB 0x0f,0x38,0xf1,0x44,0x24,92 >=20 > + mov rax,r10 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[((-16))+r10*1+rcx] >=20 > + >=20 > + call $L$enc_loop6 >=20 > + >=20 > + movdqu xmm8,XMMWORD[rdi] >=20 > + movdqu xmm9,XMMWORD[16+rdi] >=20 > + movdqu xmm10,XMMWORD[32+rdi] >=20 > + movdqu xmm11,XMMWORD[48+rdi] >=20 > + movdqu xmm12,XMMWORD[64+rdi] >=20 > + movdqu xmm13,XMMWORD[80+rdi] >=20 > + lea rdi,[96+rdi] >=20 > + movups xmm1,XMMWORD[((-64))+r10*1+rcx] >=20 > + pxor xmm8,xmm2 >=20 > + movaps xmm2,XMMWORD[rsp] >=20 > + pxor xmm9,xmm3 >=20 > + movaps xmm3,XMMWORD[16+rsp] >=20 > + pxor xmm10,xmm4 >=20 > + movaps xmm4,XMMWORD[32+rsp] >=20 > + pxor xmm11,xmm5 >=20 > + movaps xmm5,XMMWORD[48+rsp] >=20 > + pxor xmm12,xmm6 >=20 > + movaps xmm6,XMMWORD[64+rsp] >=20 > + pxor xmm13,xmm7 >=20 > + movaps xmm7,XMMWORD[80+rsp] >=20 > + movdqu XMMWORD[rsi],xmm8 >=20 > + movdqu XMMWORD[16+rsi],xmm9 >=20 > + movdqu XMMWORD[32+rsi],xmm10 >=20 > + movdqu XMMWORD[48+rsi],xmm11 >=20 > + movdqu XMMWORD[64+rsi],xmm12 >=20 > + movdqu XMMWORD[80+rsi],xmm13 >=20 > + lea rsi,[96+rsi] >=20 > + >=20 > + sub rdx,6 >=20 > + jnc NEAR $L$ctr32_loop6 >=20 > + >=20 > + add rdx,6 >=20 > + jz NEAR $L$ctr32_done >=20 > + >=20 > + lea eax,[((-48))+r10] >=20 > + lea rcx,[((-80))+r10*1+rcx] >=20 > + neg eax >=20 > + shr eax,4 >=20 > + jmp NEAR $L$ctr32_tail >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ctr32_loop8: >=20 > + add r8d,8 >=20 > + movdqa xmm8,XMMWORD[96+rsp] >=20 > +DB 102,15,56,220,209 >=20 > + mov r9d,r8d >=20 > + movdqa xmm9,XMMWORD[112+rsp] >=20 > +DB 102,15,56,220,217 >=20 > + bswap r9d >=20 > + movups xmm0,XMMWORD[((32-128))+rcx] >=20 > +DB 102,15,56,220,225 >=20 > + xor r9d,ebp >=20 > + nop >=20 > +DB 102,15,56,220,233 >=20 > + mov DWORD[((0+12))+rsp],r9d >=20 > + lea r9,[1+r8] >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movups xmm1,XMMWORD[((48-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > + xor r9d,ebp >=20 > +DB 0x66,0x90 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + mov DWORD[((16+12))+rsp],r9d >=20 > + lea r9,[2+r8] >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((64-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + xor r9d,ebp >=20 > +DB 0x66,0x90 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + mov DWORD[((32+12))+rsp],r9d >=20 > + lea r9,[3+r8] >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movups xmm1,XMMWORD[((80-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > + xor r9d,ebp >=20 > +DB 0x66,0x90 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + mov DWORD[((48+12))+rsp],r9d >=20 > + lea r9,[4+r8] >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((96-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + xor r9d,ebp >=20 > +DB 0x66,0x90 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + mov DWORD[((64+12))+rsp],r9d >=20 > + lea r9,[5+r8] >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movups xmm1,XMMWORD[((112-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > + xor r9d,ebp >=20 > +DB 0x66,0x90 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + mov DWORD[((80+12))+rsp],r9d >=20 > + lea r9,[6+r8] >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((128-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + xor r9d,ebp >=20 > +DB 0x66,0x90 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + mov DWORD[((96+12))+rsp],r9d >=20 > + lea r9,[7+r8] >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movups xmm1,XMMWORD[((144-128))+rcx] >=20 > + bswap r9d >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > + xor r9d,ebp >=20 > + movdqu xmm10,XMMWORD[rdi] >=20 > +DB 102,15,56,220,232 >=20 > + mov DWORD[((112+12))+rsp],r9d >=20 > + cmp eax,11 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((160-128))+rcx] >=20 > + >=20 > + jb NEAR $L$ctr32_enc_done >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movups xmm1,XMMWORD[((176-128))+rcx] >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((192-128))+rcx] >=20 > + je NEAR $L$ctr32_enc_done >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movups xmm1,XMMWORD[((208-128))+rcx] >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > +DB 102,68,15,56,220,192 >=20 > +DB 102,68,15,56,220,200 >=20 > + movups xmm0,XMMWORD[((224-128))+rcx] >=20 > + jmp NEAR $L$ctr32_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ctr32_enc_done: >=20 > + movdqu xmm11,XMMWORD[16+rdi] >=20 > + pxor xmm10,xmm0 >=20 > + movdqu xmm12,XMMWORD[32+rdi] >=20 > + pxor xmm11,xmm0 >=20 > + movdqu xmm13,XMMWORD[48+rdi] >=20 > + pxor xmm12,xmm0 >=20 > + movdqu xmm14,XMMWORD[64+rdi] >=20 > + pxor xmm13,xmm0 >=20 > + movdqu xmm15,XMMWORD[80+rdi] >=20 > + pxor xmm14,xmm0 >=20 > + pxor xmm15,xmm0 >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > +DB 102,68,15,56,220,201 >=20 > + movdqu xmm1,XMMWORD[96+rdi] >=20 > + lea rdi,[128+rdi] >=20 > + >=20 > +DB 102,65,15,56,221,210 >=20 > + pxor xmm1,xmm0 >=20 > + movdqu xmm10,XMMWORD[((112-128))+rdi] >=20 > +DB 102,65,15,56,221,219 >=20 > + pxor xmm10,xmm0 >=20 > + movdqa xmm11,XMMWORD[rsp] >=20 > +DB 102,65,15,56,221,228 >=20 > +DB 102,65,15,56,221,237 >=20 > + movdqa xmm12,XMMWORD[16+rsp] >=20 > + movdqa xmm13,XMMWORD[32+rsp] >=20 > +DB 102,65,15,56,221,246 >=20 > +DB 102,65,15,56,221,255 >=20 > + movdqa xmm14,XMMWORD[48+rsp] >=20 > + movdqa xmm15,XMMWORD[64+rsp] >=20 > +DB 102,68,15,56,221,193 >=20 > + movdqa xmm0,XMMWORD[80+rsp] >=20 > + movups xmm1,XMMWORD[((16-128))+rcx] >=20 > +DB 102,69,15,56,221,202 >=20 > + >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movdqa xmm2,xmm11 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movdqa xmm3,xmm12 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movdqa xmm4,xmm13 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movdqa xmm5,xmm14 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movdqa xmm6,xmm15 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + movdqa xmm7,xmm0 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + movups XMMWORD[112+rsi],xmm9 >=20 > + lea rsi,[128+rsi] >=20 > + >=20 > + sub rdx,8 >=20 > + jnc NEAR $L$ctr32_loop8 >=20 > + >=20 > + add rdx,8 >=20 > + jz NEAR $L$ctr32_done >=20 > + lea rcx,[((-128))+rcx] >=20 > + >=20 > +$L$ctr32_tail: >=20 > + >=20 > + >=20 > + lea rcx,[16+rcx] >=20 > + cmp rdx,4 >=20 > + jb NEAR $L$ctr32_loop3 >=20 > + je NEAR $L$ctr32_loop4 >=20 > + >=20 > + >=20 > + shl eax,4 >=20 > + movdqa xmm8,XMMWORD[96+rsp] >=20 > + pxor xmm9,xmm9 >=20 > + >=20 > + movups xmm0,XMMWORD[16+rcx] >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > + lea rcx,[((32-16))+rax*1+rcx] >=20 > + neg rax >=20 > +DB 102,15,56,220,225 >=20 > + add rax,16 >=20 > + movups xmm10,XMMWORD[rdi] >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > + movups xmm11,XMMWORD[16+rdi] >=20 > + movups xmm12,XMMWORD[32+rdi] >=20 > +DB 102,15,56,220,249 >=20 > +DB 102,68,15,56,220,193 >=20 > + >=20 > + call $L$enc_loop8_enter >=20 > + >=20 > + movdqu xmm13,XMMWORD[48+rdi] >=20 > + pxor xmm2,xmm10 >=20 > + movdqu xmm10,XMMWORD[64+rdi] >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm6,xmm10 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + movdqu XMMWORD[64+rsi],xmm6 >=20 > + cmp rdx,6 >=20 > + jb NEAR $L$ctr32_done >=20 > + >=20 > + movups xmm11,XMMWORD[80+rdi] >=20 > + xorps xmm7,xmm11 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + je NEAR $L$ctr32_done >=20 > + >=20 > + movups xmm12,XMMWORD[96+rdi] >=20 > + xorps xmm8,xmm12 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + jmp NEAR $L$ctr32_done >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ctr32_loop4: >=20 > +DB 102,15,56,220,209 >=20 > + lea rcx,[16+rcx] >=20 > + dec eax >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + jnz NEAR $L$ctr32_loop4 >=20 > +DB 102,15,56,221,209 >=20 > +DB 102,15,56,221,217 >=20 > + movups xmm10,XMMWORD[rdi] >=20 > + movups xmm11,XMMWORD[16+rdi] >=20 > +DB 102,15,56,221,225 >=20 > +DB 102,15,56,221,233 >=20 > + movups xmm12,XMMWORD[32+rdi] >=20 > + movups xmm13,XMMWORD[48+rdi] >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + xorps xmm3,xmm11 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + jmp NEAR $L$ctr32_done >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ctr32_loop3: >=20 > +DB 102,15,56,220,209 >=20 > + lea rcx,[16+rcx] >=20 > + dec eax >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + jnz NEAR $L$ctr32_loop3 >=20 > +DB 102,15,56,221,209 >=20 > +DB 102,15,56,221,217 >=20 > +DB 102,15,56,221,225 >=20 > + >=20 > + movups xmm10,XMMWORD[rdi] >=20 > + xorps xmm2,xmm10 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + cmp rdx,2 >=20 > + jb NEAR $L$ctr32_done >=20 > + >=20 > + movups xmm11,XMMWORD[16+rdi] >=20 > + xorps xmm3,xmm11 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + je NEAR $L$ctr32_done >=20 > + >=20 > + movups xmm12,XMMWORD[32+rdi] >=20 > + xorps xmm4,xmm12 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + >=20 > +$L$ctr32_done: >=20 > + xorps xmm0,xmm0 >=20 > + xor ebp,ebp >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + movaps xmm6,XMMWORD[((-168))+r11] >=20 > + movaps XMMWORD[(-168)+r11],xmm0 >=20 > + movaps xmm7,XMMWORD[((-152))+r11] >=20 > + movaps XMMWORD[(-152)+r11],xmm0 >=20 > + movaps xmm8,XMMWORD[((-136))+r11] >=20 > + movaps XMMWORD[(-136)+r11],xmm0 >=20 > + movaps xmm9,XMMWORD[((-120))+r11] >=20 > + movaps XMMWORD[(-120)+r11],xmm0 >=20 > + movaps xmm10,XMMWORD[((-104))+r11] >=20 > + movaps XMMWORD[(-104)+r11],xmm0 >=20 > + movaps xmm11,XMMWORD[((-88))+r11] >=20 > + movaps XMMWORD[(-88)+r11],xmm0 >=20 > + movaps xmm12,XMMWORD[((-72))+r11] >=20 > + movaps XMMWORD[(-72)+r11],xmm0 >=20 > + movaps xmm13,XMMWORD[((-56))+r11] >=20 > + movaps XMMWORD[(-56)+r11],xmm0 >=20 > + movaps xmm14,XMMWORD[((-40))+r11] >=20 > + movaps XMMWORD[(-40)+r11],xmm0 >=20 > + movaps xmm15,XMMWORD[((-24))+r11] >=20 > + movaps XMMWORD[(-24)+r11],xmm0 >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + movaps XMMWORD[64+rsp],xmm0 >=20 > + movaps XMMWORD[80+rsp],xmm0 >=20 > + movaps XMMWORD[96+rsp],xmm0 >=20 > + movaps XMMWORD[112+rsp],xmm0 >=20 > + mov rbp,QWORD[((-8))+r11] >=20 > + >=20 > + lea rsp,[r11] >=20 > + >=20 > +$L$ctr32_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_ctr32_encrypt_blocks: >=20 > +global aesni_xts_encrypt >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_xts_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_xts_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea r11,[rsp] >=20 > + >=20 > + push rbp >=20 > + >=20 > + sub rsp,272 >=20 > + and rsp,-16 >=20 > + movaps XMMWORD[(-168)+r11],xmm6 >=20 > + movaps XMMWORD[(-152)+r11],xmm7 >=20 > + movaps XMMWORD[(-136)+r11],xmm8 >=20 > + movaps XMMWORD[(-120)+r11],xmm9 >=20 > + movaps XMMWORD[(-104)+r11],xmm10 >=20 > + movaps XMMWORD[(-88)+r11],xmm11 >=20 > + movaps XMMWORD[(-72)+r11],xmm12 >=20 > + movaps XMMWORD[(-56)+r11],xmm13 >=20 > + movaps XMMWORD[(-40)+r11],xmm14 >=20 > + movaps XMMWORD[(-24)+r11],xmm15 >=20 > +$L$xts_enc_body: >=20 > + movups xmm2,XMMWORD[r9] >=20 > + mov eax,DWORD[240+r8] >=20 > + mov r10d,DWORD[240+rcx] >=20 > + movups xmm0,XMMWORD[r8] >=20 > + movups xmm1,XMMWORD[16+r8] >=20 > + lea r8,[32+r8] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_8: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[r8] >=20 > + lea r8,[16+r8] >=20 > + jnz NEAR $L$oop_enc1_8 >=20 > +DB 102,15,56,221,209 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + mov rbp,rcx >=20 > + mov eax,r10d >=20 > + shl r10d,4 >=20 > + mov r9,rdx >=20 > + and rdx,-16 >=20 > + >=20 > + movups xmm1,XMMWORD[16+r10*1+rcx] >=20 > + >=20 > + movdqa xmm8,XMMWORD[$L$xts_magic] >=20 > + movdqa xmm15,xmm2 >=20 > + pshufd xmm9,xmm2,0x5f >=20 > + pxor xmm1,xmm0 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm10,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm10,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm11,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm11,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm12,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm12,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm13,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm13,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm15 >=20 > + psrad xmm9,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm9,xmm8 >=20 > + pxor xmm14,xmm0 >=20 > + pxor xmm15,xmm9 >=20 > + movaps XMMWORD[96+rsp],xmm1 >=20 > + >=20 > + sub rdx,16*6 >=20 > + jc NEAR $L$xts_enc_short >=20 > + >=20 > + mov eax,16+96 >=20 > + lea rcx,[32+r10*1+rbp] >=20 > + sub rax,r10 >=20 > + movups xmm1,XMMWORD[16+rbp] >=20 > + mov r10,rax >=20 > + lea r8,[$L$xts_magic] >=20 > + jmp NEAR $L$xts_enc_grandloop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$xts_enc_grandloop: >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqa xmm8,xmm0 >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + pxor xmm2,xmm10 >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + pxor xmm3,xmm11 >=20 > +DB 102,15,56,220,209 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + pxor xmm4,xmm12 >=20 > +DB 102,15,56,220,217 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + pxor xmm5,xmm13 >=20 > +DB 102,15,56,220,225 >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + pxor xmm8,xmm15 >=20 > + movdqa xmm9,XMMWORD[96+rsp] >=20 > + pxor xmm6,xmm14 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm0,XMMWORD[32+rbp] >=20 > + lea rdi,[96+rdi] >=20 > + pxor xmm7,xmm8 >=20 > + >=20 > + pxor xmm10,xmm9 >=20 > +DB 102,15,56,220,241 >=20 > + pxor xmm11,xmm9 >=20 > + movdqa XMMWORD[rsp],xmm10 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[48+rbp] >=20 > + pxor xmm12,xmm9 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > + pxor xmm13,xmm9 >=20 > + movdqa XMMWORD[16+rsp],xmm11 >=20 > +DB 102,15,56,220,216 >=20 > + pxor xmm14,xmm9 >=20 > + movdqa XMMWORD[32+rsp],xmm12 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + pxor xmm8,xmm9 >=20 > + movdqa XMMWORD[64+rsp],xmm14 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[64+rbp] >=20 > + movdqa XMMWORD[80+rsp],xmm8 >=20 > + pshufd xmm9,xmm15,0x5f >=20 > + jmp NEAR $L$xts_enc_loop6 >=20 > +ALIGN 32 >=20 > +$L$xts_enc_loop6: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[((-64))+rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[((-80))+rax*1+rcx] >=20 > + jnz NEAR $L$xts_enc_loop6 >=20 > + >=20 > + movdqa xmm8,XMMWORD[r8] >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,220,209 >=20 > + paddq xmm15,xmm15 >=20 > + psrad xmm14,31 >=20 > +DB 102,15,56,220,217 >=20 > + pand xmm14,xmm8 >=20 > + movups xmm10,XMMWORD[rbp] >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > + pxor xmm15,xmm14 >=20 > + movaps xmm11,xmm10 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[((-64))+rcx] >=20 > + >=20 > + movdqa xmm14,xmm9 >=20 > +DB 102,15,56,220,208 >=20 > + paddd xmm9,xmm9 >=20 > + pxor xmm10,xmm15 >=20 > +DB 102,15,56,220,216 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + pand xmm14,xmm8 >=20 > + movaps xmm12,xmm11 >=20 > +DB 102,15,56,220,240 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[((-48))+rcx] >=20 > + >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,220,209 >=20 > + pxor xmm11,xmm15 >=20 > + psrad xmm14,31 >=20 > +DB 102,15,56,220,217 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movdqa XMMWORD[48+rsp],xmm13 >=20 > + pxor xmm15,xmm14 >=20 > +DB 102,15,56,220,241 >=20 > + movaps xmm13,xmm12 >=20 > + movdqa xmm14,xmm9 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[((-32))+rcx] >=20 > + >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,220,208 >=20 > + pxor xmm12,xmm15 >=20 > + psrad xmm14,31 >=20 > +DB 102,15,56,220,216 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > + pxor xmm15,xmm14 >=20 > + movaps xmm14,xmm13 >=20 > +DB 102,15,56,220,248 >=20 > + >=20 > + movdqa xmm0,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,220,209 >=20 > + pxor xmm13,xmm15 >=20 > + psrad xmm0,31 >=20 > +DB 102,15,56,220,217 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm0,xmm8 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + pxor xmm15,xmm0 >=20 > + movups xmm0,XMMWORD[rbp] >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[16+rbp] >=20 > + >=20 > + pxor xmm14,xmm15 >=20 > +DB 102,15,56,221,84,36,0 >=20 > + psrad xmm9,31 >=20 > + paddq xmm15,xmm15 >=20 > +DB 102,15,56,221,92,36,16 >=20 > +DB 102,15,56,221,100,36,32 >=20 > + pand xmm9,xmm8 >=20 > + mov rax,r10 >=20 > +DB 102,15,56,221,108,36,48 >=20 > +DB 102,15,56,221,116,36,64 >=20 > +DB 102,15,56,221,124,36,80 >=20 > + pxor xmm15,xmm9 >=20 > + >=20 > + lea rsi,[96+rsi] >=20 > + movups XMMWORD[(-96)+rsi],xmm2 >=20 > + movups XMMWORD[(-80)+rsi],xmm3 >=20 > + movups XMMWORD[(-64)+rsi],xmm4 >=20 > + movups XMMWORD[(-48)+rsi],xmm5 >=20 > + movups XMMWORD[(-32)+rsi],xmm6 >=20 > + movups XMMWORD[(-16)+rsi],xmm7 >=20 > + sub rdx,16*6 >=20 > + jnc NEAR $L$xts_enc_grandloop >=20 > + >=20 > + mov eax,16+96 >=20 > + sub eax,r10d >=20 > + mov rcx,rbp >=20 > + shr eax,4 >=20 > + >=20 > +$L$xts_enc_short: >=20 > + >=20 > + mov r10d,eax >=20 > + pxor xmm10,xmm0 >=20 > + add rdx,16*6 >=20 > + jz NEAR $L$xts_enc_done >=20 > + >=20 > + pxor xmm11,xmm0 >=20 > + cmp rdx,0x20 >=20 > + jb NEAR $L$xts_enc_one >=20 > + pxor xmm12,xmm0 >=20 > + je NEAR $L$xts_enc_two >=20 > + >=20 > + pxor xmm13,xmm0 >=20 > + cmp rdx,0x40 >=20 > + jb NEAR $L$xts_enc_three >=20 > + pxor xmm14,xmm0 >=20 > + je NEAR $L$xts_enc_four >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + pxor xmm2,xmm10 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + pxor xmm3,xmm11 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + lea rdi,[80+rdi] >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm5,xmm13 >=20 > + pxor xmm6,xmm14 >=20 > + pxor xmm7,xmm7 >=20 > + >=20 > + call _aesni_encrypt6 >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm15 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + xorps xmm5,xmm13 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + xorps xmm6,xmm14 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + movdqu XMMWORD[64+rsi],xmm6 >=20 > + lea rsi,[80+rsi] >=20 > + jmp NEAR $L$xts_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_enc_one: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + lea rdi,[16+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_9: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_enc1_9 >=20 > +DB 102,15,56,221,209 >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + lea rsi,[16+rsi] >=20 > + jmp NEAR $L$xts_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_enc_two: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + lea rdi,[32+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + xorps xmm3,xmm11 >=20 > + >=20 > + call _aesni_encrypt2 >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm12 >=20 > + xorps xmm3,xmm11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + lea rsi,[32+rsi] >=20 > + jmp NEAR $L$xts_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_enc_three: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + lea rdi,[48+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + >=20 > + call _aesni_encrypt3 >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm13 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + lea rsi,[48+rsi] >=20 > + jmp NEAR $L$xts_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_enc_four: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + movups xmm5,XMMWORD[48+rdi] >=20 > + lea rdi,[64+rdi] >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + xorps xmm5,xmm13 >=20 > + >=20 > + call _aesni_encrypt4 >=20 > + >=20 > + pxor xmm2,xmm10 >=20 > + movdqa xmm10,xmm14 >=20 > + pxor xmm3,xmm11 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + lea rsi,[64+rsi] >=20 > + jmp NEAR $L$xts_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_enc_done: >=20 > + and r9,15 >=20 > + jz NEAR $L$xts_enc_ret >=20 > + mov rdx,r9 >=20 > + >=20 > +$L$xts_enc_steal: >=20 > + movzx eax,BYTE[rdi] >=20 > + movzx ecx,BYTE[((-16))+rsi] >=20 > + lea rdi,[1+rdi] >=20 > + mov BYTE[((-16))+rsi],al >=20 > + mov BYTE[rsi],cl >=20 > + lea rsi,[1+rsi] >=20 > + sub rdx,1 >=20 > + jnz NEAR $L$xts_enc_steal >=20 > + >=20 > + sub rsi,r9 >=20 > + mov rcx,rbp >=20 > + mov eax,r10d >=20 > + >=20 > + movups xmm2,XMMWORD[((-16))+rsi] >=20 > + xorps xmm2,xmm10 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_10: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_enc1_10 >=20 > +DB 102,15,56,221,209 >=20 > + xorps xmm2,xmm10 >=20 > + movups XMMWORD[(-16)+rsi],xmm2 >=20 > + >=20 > +$L$xts_enc_ret: >=20 > + xorps xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + movaps xmm6,XMMWORD[((-168))+r11] >=20 > + movaps XMMWORD[(-168)+r11],xmm0 >=20 > + movaps xmm7,XMMWORD[((-152))+r11] >=20 > + movaps XMMWORD[(-152)+r11],xmm0 >=20 > + movaps xmm8,XMMWORD[((-136))+r11] >=20 > + movaps XMMWORD[(-136)+r11],xmm0 >=20 > + movaps xmm9,XMMWORD[((-120))+r11] >=20 > + movaps XMMWORD[(-120)+r11],xmm0 >=20 > + movaps xmm10,XMMWORD[((-104))+r11] >=20 > + movaps XMMWORD[(-104)+r11],xmm0 >=20 > + movaps xmm11,XMMWORD[((-88))+r11] >=20 > + movaps XMMWORD[(-88)+r11],xmm0 >=20 > + movaps xmm12,XMMWORD[((-72))+r11] >=20 > + movaps XMMWORD[(-72)+r11],xmm0 >=20 > + movaps xmm13,XMMWORD[((-56))+r11] >=20 > + movaps XMMWORD[(-56)+r11],xmm0 >=20 > + movaps xmm14,XMMWORD[((-40))+r11] >=20 > + movaps XMMWORD[(-40)+r11],xmm0 >=20 > + movaps xmm15,XMMWORD[((-24))+r11] >=20 > + movaps XMMWORD[(-24)+r11],xmm0 >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + movaps XMMWORD[64+rsp],xmm0 >=20 > + movaps XMMWORD[80+rsp],xmm0 >=20 > + movaps XMMWORD[96+rsp],xmm0 >=20 > + mov rbp,QWORD[((-8))+r11] >=20 > + >=20 > + lea rsp,[r11] >=20 > + >=20 > +$L$xts_enc_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_xts_encrypt: >=20 > +global aesni_xts_decrypt >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_xts_decrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_xts_decrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea r11,[rsp] >=20 > + >=20 > + push rbp >=20 > + >=20 > + sub rsp,272 >=20 > + and rsp,-16 >=20 > + movaps XMMWORD[(-168)+r11],xmm6 >=20 > + movaps XMMWORD[(-152)+r11],xmm7 >=20 > + movaps XMMWORD[(-136)+r11],xmm8 >=20 > + movaps XMMWORD[(-120)+r11],xmm9 >=20 > + movaps XMMWORD[(-104)+r11],xmm10 >=20 > + movaps XMMWORD[(-88)+r11],xmm11 >=20 > + movaps XMMWORD[(-72)+r11],xmm12 >=20 > + movaps XMMWORD[(-56)+r11],xmm13 >=20 > + movaps XMMWORD[(-40)+r11],xmm14 >=20 > + movaps XMMWORD[(-24)+r11],xmm15 >=20 > +$L$xts_dec_body: >=20 > + movups xmm2,XMMWORD[r9] >=20 > + mov eax,DWORD[240+r8] >=20 > + mov r10d,DWORD[240+rcx] >=20 > + movups xmm0,XMMWORD[r8] >=20 > + movups xmm1,XMMWORD[16+r8] >=20 > + lea r8,[32+r8] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_enc1_11: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[r8] >=20 > + lea r8,[16+r8] >=20 > + jnz NEAR $L$oop_enc1_11 >=20 > +DB 102,15,56,221,209 >=20 > + xor eax,eax >=20 > + test rdx,15 >=20 > + setnz al >=20 > + shl rax,4 >=20 > + sub rdx,rax >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + mov rbp,rcx >=20 > + mov eax,r10d >=20 > + shl r10d,4 >=20 > + mov r9,rdx >=20 > + and rdx,-16 >=20 > + >=20 > + movups xmm1,XMMWORD[16+r10*1+rcx] >=20 > + >=20 > + movdqa xmm8,XMMWORD[$L$xts_magic] >=20 > + movdqa xmm15,xmm2 >=20 > + pshufd xmm9,xmm2,0x5f >=20 > + pxor xmm1,xmm0 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm10,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm10,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm11,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm11,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm12,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm12,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > + movdqa xmm13,xmm15 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > + pxor xmm13,xmm0 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm15 >=20 > + psrad xmm9,31 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm9,xmm8 >=20 > + pxor xmm14,xmm0 >=20 > + pxor xmm15,xmm9 >=20 > + movaps XMMWORD[96+rsp],xmm1 >=20 > + >=20 > + sub rdx,16*6 >=20 > + jc NEAR $L$xts_dec_short >=20 > + >=20 > + mov eax,16+96 >=20 > + lea rcx,[32+r10*1+rbp] >=20 > + sub rax,r10 >=20 > + movups xmm1,XMMWORD[16+rbp] >=20 > + mov r10,rax >=20 > + lea r8,[$L$xts_magic] >=20 > + jmp NEAR $L$xts_dec_grandloop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$xts_dec_grandloop: >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqa xmm8,xmm0 >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + pxor xmm2,xmm10 >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + pxor xmm3,xmm11 >=20 > +DB 102,15,56,222,209 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + pxor xmm4,xmm12 >=20 > +DB 102,15,56,222,217 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + pxor xmm5,xmm13 >=20 > +DB 102,15,56,222,225 >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + pxor xmm8,xmm15 >=20 > + movdqa xmm9,XMMWORD[96+rsp] >=20 > + pxor xmm6,xmm14 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm0,XMMWORD[32+rbp] >=20 > + lea rdi,[96+rdi] >=20 > + pxor xmm7,xmm8 >=20 > + >=20 > + pxor xmm10,xmm9 >=20 > +DB 102,15,56,222,241 >=20 > + pxor xmm11,xmm9 >=20 > + movdqa XMMWORD[rsp],xmm10 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[48+rbp] >=20 > + pxor xmm12,xmm9 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > + pxor xmm13,xmm9 >=20 > + movdqa XMMWORD[16+rsp],xmm11 >=20 > +DB 102,15,56,222,216 >=20 > + pxor xmm14,xmm9 >=20 > + movdqa XMMWORD[32+rsp],xmm12 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + pxor xmm8,xmm9 >=20 > + movdqa XMMWORD[64+rsp],xmm14 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > + movups xmm0,XMMWORD[64+rbp] >=20 > + movdqa XMMWORD[80+rsp],xmm8 >=20 > + pshufd xmm9,xmm15,0x5f >=20 > + jmp NEAR $L$xts_dec_loop6 >=20 > +ALIGN 32 >=20 > +$L$xts_dec_loop6: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[((-64))+rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > + movups xmm0,XMMWORD[((-80))+rax*1+rcx] >=20 > + jnz NEAR $L$xts_dec_loop6 >=20 > + >=20 > + movdqa xmm8,XMMWORD[r8] >=20 > + movdqa xmm14,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,222,209 >=20 > + paddq xmm15,xmm15 >=20 > + psrad xmm14,31 >=20 > +DB 102,15,56,222,217 >=20 > + pand xmm14,xmm8 >=20 > + movups xmm10,XMMWORD[rbp] >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > + pxor xmm15,xmm14 >=20 > + movaps xmm11,xmm10 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[((-64))+rcx] >=20 > + >=20 > + movdqa xmm14,xmm9 >=20 > +DB 102,15,56,222,208 >=20 > + paddd xmm9,xmm9 >=20 > + pxor xmm10,xmm15 >=20 > +DB 102,15,56,222,216 >=20 > + psrad xmm14,31 >=20 > + paddq xmm15,xmm15 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + pand xmm14,xmm8 >=20 > + movaps xmm12,xmm11 >=20 > +DB 102,15,56,222,240 >=20 > + pxor xmm15,xmm14 >=20 > + movdqa xmm14,xmm9 >=20 > +DB 102,15,56,222,248 >=20 > + movups xmm0,XMMWORD[((-48))+rcx] >=20 > + >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,222,209 >=20 > + pxor xmm11,xmm15 >=20 > + psrad xmm14,31 >=20 > +DB 102,15,56,222,217 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movdqa XMMWORD[48+rsp],xmm13 >=20 > + pxor xmm15,xmm14 >=20 > +DB 102,15,56,222,241 >=20 > + movaps xmm13,xmm12 >=20 > + movdqa xmm14,xmm9 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[((-32))+rcx] >=20 > + >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,222,208 >=20 > + pxor xmm12,xmm15 >=20 > + psrad xmm14,31 >=20 > +DB 102,15,56,222,216 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm14,xmm8 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > + pxor xmm15,xmm14 >=20 > + movaps xmm14,xmm13 >=20 > +DB 102,15,56,222,248 >=20 > + >=20 > + movdqa xmm0,xmm9 >=20 > + paddd xmm9,xmm9 >=20 > +DB 102,15,56,222,209 >=20 > + pxor xmm13,xmm15 >=20 > + psrad xmm0,31 >=20 > +DB 102,15,56,222,217 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm0,xmm8 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + pxor xmm15,xmm0 >=20 > + movups xmm0,XMMWORD[rbp] >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[16+rbp] >=20 > + >=20 > + pxor xmm14,xmm15 >=20 > +DB 102,15,56,223,84,36,0 >=20 > + psrad xmm9,31 >=20 > + paddq xmm15,xmm15 >=20 > +DB 102,15,56,223,92,36,16 >=20 > +DB 102,15,56,223,100,36,32 >=20 > + pand xmm9,xmm8 >=20 > + mov rax,r10 >=20 > +DB 102,15,56,223,108,36,48 >=20 > +DB 102,15,56,223,116,36,64 >=20 > +DB 102,15,56,223,124,36,80 >=20 > + pxor xmm15,xmm9 >=20 > + >=20 > + lea rsi,[96+rsi] >=20 > + movups XMMWORD[(-96)+rsi],xmm2 >=20 > + movups XMMWORD[(-80)+rsi],xmm3 >=20 > + movups XMMWORD[(-64)+rsi],xmm4 >=20 > + movups XMMWORD[(-48)+rsi],xmm5 >=20 > + movups XMMWORD[(-32)+rsi],xmm6 >=20 > + movups XMMWORD[(-16)+rsi],xmm7 >=20 > + sub rdx,16*6 >=20 > + jnc NEAR $L$xts_dec_grandloop >=20 > + >=20 > + mov eax,16+96 >=20 > + sub eax,r10d >=20 > + mov rcx,rbp >=20 > + shr eax,4 >=20 > + >=20 > +$L$xts_dec_short: >=20 > + >=20 > + mov r10d,eax >=20 > + pxor xmm10,xmm0 >=20 > + pxor xmm11,xmm0 >=20 > + add rdx,16*6 >=20 > + jz NEAR $L$xts_dec_done >=20 > + >=20 > + pxor xmm12,xmm0 >=20 > + cmp rdx,0x20 >=20 > + jb NEAR $L$xts_dec_one >=20 > + pxor xmm13,xmm0 >=20 > + je NEAR $L$xts_dec_two >=20 > + >=20 > + pxor xmm14,xmm0 >=20 > + cmp rdx,0x40 >=20 > + jb NEAR $L$xts_dec_three >=20 > + je NEAR $L$xts_dec_four >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + pxor xmm2,xmm10 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + pxor xmm3,xmm11 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + lea rdi,[80+rdi] >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm5,xmm13 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + call _aesni_decrypt6 >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + xorps xmm5,xmm13 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + xorps xmm6,xmm14 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm14,xmm14 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + pcmpgtd xmm14,xmm15 >=20 > + movdqu XMMWORD[64+rsi],xmm6 >=20 > + lea rsi,[80+rsi] >=20 > + pshufd xmm11,xmm14,0x13 >=20 > + and r9,15 >=20 > + jz NEAR $L$xts_dec_ret >=20 > + >=20 > + movdqa xmm10,xmm15 >=20 > + paddq xmm15,xmm15 >=20 > + pand xmm11,xmm8 >=20 > + pxor xmm11,xmm15 >=20 > + jmp NEAR $L$xts_dec_done2 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_dec_one: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + lea rdi,[16+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_12: >=20 > +DB 102,15,56,222,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_dec1_12 >=20 > +DB 102,15,56,223,209 >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movdqa xmm11,xmm12 >=20 > + lea rsi,[16+rsi] >=20 > + jmp NEAR $L$xts_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_dec_two: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + lea rdi,[32+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + xorps xmm3,xmm11 >=20 > + >=20 > + call _aesni_decrypt2 >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm12 >=20 > + xorps xmm3,xmm11 >=20 > + movdqa xmm11,xmm13 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + lea rsi,[32+rsi] >=20 > + jmp NEAR $L$xts_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_dec_three: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + lea rdi,[48+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + >=20 > + call _aesni_decrypt3 >=20 > + >=20 > + xorps xmm2,xmm10 >=20 > + movdqa xmm10,xmm13 >=20 > + xorps xmm3,xmm11 >=20 > + movdqa xmm11,xmm14 >=20 > + xorps xmm4,xmm12 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + lea rsi,[48+rsi] >=20 > + jmp NEAR $L$xts_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_dec_four: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + xorps xmm2,xmm10 >=20 > + movups xmm5,XMMWORD[48+rdi] >=20 > + lea rdi,[64+rdi] >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm4,xmm12 >=20 > + xorps xmm5,xmm13 >=20 > + >=20 > + call _aesni_decrypt4 >=20 > + >=20 > + pxor xmm2,xmm10 >=20 > + movdqa xmm10,xmm14 >=20 > + pxor xmm3,xmm11 >=20 > + movdqa xmm11,xmm15 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + lea rsi,[64+rsi] >=20 > + jmp NEAR $L$xts_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$xts_dec_done: >=20 > + and r9,15 >=20 > + jz NEAR $L$xts_dec_ret >=20 > +$L$xts_dec_done2: >=20 > + mov rdx,r9 >=20 > + mov rcx,rbp >=20 > + mov eax,r10d >=20 > + >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + xorps xmm2,xmm11 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_13: >=20 > +DB 102,15,56,222,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_dec1_13 >=20 > +DB 102,15,56,223,209 >=20 > + xorps xmm2,xmm11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + >=20 > +$L$xts_dec_steal: >=20 > + movzx eax,BYTE[16+rdi] >=20 > + movzx ecx,BYTE[rsi] >=20 > + lea rdi,[1+rdi] >=20 > + mov BYTE[rsi],al >=20 > + mov BYTE[16+rsi],cl >=20 > + lea rsi,[1+rsi] >=20 > + sub rdx,1 >=20 > + jnz NEAR $L$xts_dec_steal >=20 > + >=20 > + sub rsi,r9 >=20 > + mov rcx,rbp >=20 > + mov eax,r10d >=20 > + >=20 > + movups xmm2,XMMWORD[rsi] >=20 > + xorps xmm2,xmm10 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_14: >=20 > +DB 102,15,56,222,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_dec1_14 >=20 > +DB 102,15,56,223,209 >=20 > + xorps xmm2,xmm10 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + >=20 > +$L$xts_dec_ret: >=20 > + xorps xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + movaps xmm6,XMMWORD[((-168))+r11] >=20 > + movaps XMMWORD[(-168)+r11],xmm0 >=20 > + movaps xmm7,XMMWORD[((-152))+r11] >=20 > + movaps XMMWORD[(-152)+r11],xmm0 >=20 > + movaps xmm8,XMMWORD[((-136))+r11] >=20 > + movaps XMMWORD[(-136)+r11],xmm0 >=20 > + movaps xmm9,XMMWORD[((-120))+r11] >=20 > + movaps XMMWORD[(-120)+r11],xmm0 >=20 > + movaps xmm10,XMMWORD[((-104))+r11] >=20 > + movaps XMMWORD[(-104)+r11],xmm0 >=20 > + movaps xmm11,XMMWORD[((-88))+r11] >=20 > + movaps XMMWORD[(-88)+r11],xmm0 >=20 > + movaps xmm12,XMMWORD[((-72))+r11] >=20 > + movaps XMMWORD[(-72)+r11],xmm0 >=20 > + movaps xmm13,XMMWORD[((-56))+r11] >=20 > + movaps XMMWORD[(-56)+r11],xmm0 >=20 > + movaps xmm14,XMMWORD[((-40))+r11] >=20 > + movaps XMMWORD[(-40)+r11],xmm0 >=20 > + movaps xmm15,XMMWORD[((-24))+r11] >=20 > + movaps XMMWORD[(-24)+r11],xmm0 >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + movaps XMMWORD[64+rsp],xmm0 >=20 > + movaps XMMWORD[80+rsp],xmm0 >=20 > + movaps XMMWORD[96+rsp],xmm0 >=20 > + mov rbp,QWORD[((-8))+r11] >=20 > + >=20 > + lea rsp,[r11] >=20 > + >=20 > +$L$xts_dec_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_xts_decrypt: >=20 > +global aesni_ocb_encrypt >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_ocb_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_ocb_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea rax,[rsp] >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + lea rsp,[((-160))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[64+rsp],xmm10 >=20 > + movaps XMMWORD[80+rsp],xmm11 >=20 > + movaps XMMWORD[96+rsp],xmm12 >=20 > + movaps XMMWORD[112+rsp],xmm13 >=20 > + movaps XMMWORD[128+rsp],xmm14 >=20 > + movaps XMMWORD[144+rsp],xmm15 >=20 > +$L$ocb_enc_body: >=20 > + mov rbx,QWORD[56+rax] >=20 > + mov rbp,QWORD[((56+8))+rax] >=20 > + >=20 > + mov r10d,DWORD[240+rcx] >=20 > + mov r11,rcx >=20 > + shl r10d,4 >=20 > + movups xmm9,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+r10*1+rcx] >=20 > + >=20 > + movdqu xmm15,XMMWORD[r9] >=20 > + pxor xmm9,xmm1 >=20 > + pxor xmm15,xmm1 >=20 > + >=20 > + mov eax,16+32 >=20 > + lea rcx,[32+r10*1+r11] >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + sub rax,r10 >=20 > + mov r10,rax >=20 > + >=20 > + movdqu xmm10,XMMWORD[rbx] >=20 > + movdqu xmm8,XMMWORD[rbp] >=20 > + >=20 > + test r8,1 >=20 > + jnz NEAR $L$ocb_enc_odd >=20 > + >=20 > + bsf r12,r8 >=20 > + add r8,1 >=20 > + shl r12,4 >=20 > + movdqu xmm7,XMMWORD[r12*1+rbx] >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + lea rdi,[16+rdi] >=20 > + >=20 > + call __ocb_encrypt1 >=20 > + >=20 > + movdqa xmm15,xmm7 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + lea rsi,[16+rsi] >=20 > + sub rdx,1 >=20 > + jz NEAR $L$ocb_enc_done >=20 > + >=20 > +$L$ocb_enc_odd: >=20 > + lea r12,[1+r8] >=20 > + lea r13,[3+r8] >=20 > + lea r14,[5+r8] >=20 > + lea r8,[6+r8] >=20 > + bsf r12,r12 >=20 > + bsf r13,r13 >=20 > + bsf r14,r14 >=20 > + shl r12,4 >=20 > + shl r13,4 >=20 > + shl r14,4 >=20 > + >=20 > + sub rdx,6 >=20 > + jc NEAR $L$ocb_enc_short >=20 > + jmp NEAR $L$ocb_enc_grandloop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_enc_grandloop: >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + lea rdi,[96+rdi] >=20 > + >=20 > + call __ocb_encrypt6 >=20 > + >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + lea rsi,[96+rsi] >=20 > + sub rdx,6 >=20 > + jnc NEAR $L$ocb_enc_grandloop >=20 > + >=20 > +$L$ocb_enc_short: >=20 > + add rdx,6 >=20 > + jz NEAR $L$ocb_enc_done >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + cmp rdx,2 >=20 > + jb NEAR $L$ocb_enc_one >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + je NEAR $L$ocb_enc_two >=20 > + >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + cmp rdx,4 >=20 > + jb NEAR $L$ocb_enc_three >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + je NEAR $L$ocb_enc_four >=20 > + >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + pxor xmm7,xmm7 >=20 > + >=20 > + call __ocb_encrypt6 >=20 > + >=20 > + movdqa xmm15,xmm14 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + >=20 > + jmp NEAR $L$ocb_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_enc_one: >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + call __ocb_encrypt1 >=20 > + >=20 > + movdqa xmm15,xmm7 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + jmp NEAR $L$ocb_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_enc_two: >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + >=20 > + call __ocb_encrypt4 >=20 > + >=20 > + movdqa xmm15,xmm11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + >=20 > + jmp NEAR $L$ocb_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_enc_three: >=20 > + pxor xmm5,xmm5 >=20 > + >=20 > + call __ocb_encrypt4 >=20 > + >=20 > + movdqa xmm15,xmm12 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + >=20 > + jmp NEAR $L$ocb_enc_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_enc_four: >=20 > + call __ocb_encrypt4 >=20 > + >=20 > + movdqa xmm15,xmm13 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + >=20 > +$L$ocb_enc_done: >=20 > + pxor xmm15,xmm0 >=20 > + movdqu XMMWORD[rbp],xmm8 >=20 > + movdqu XMMWORD[r9],xmm15 >=20 > + >=20 > + xorps xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps xmm7,XMMWORD[16+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps xmm8,XMMWORD[32+rsp] >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps xmm9,XMMWORD[48+rsp] >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + movaps xmm10,XMMWORD[64+rsp] >=20 > + movaps XMMWORD[64+rsp],xmm0 >=20 > + movaps xmm11,XMMWORD[80+rsp] >=20 > + movaps XMMWORD[80+rsp],xmm0 >=20 > + movaps xmm12,XMMWORD[96+rsp] >=20 > + movaps XMMWORD[96+rsp],xmm0 >=20 > + movaps xmm13,XMMWORD[112+rsp] >=20 > + movaps XMMWORD[112+rsp],xmm0 >=20 > + movaps xmm14,XMMWORD[128+rsp] >=20 > + movaps XMMWORD[128+rsp],xmm0 >=20 > + movaps xmm15,XMMWORD[144+rsp] >=20 > + movaps XMMWORD[144+rsp],xmm0 >=20 > + lea rax,[((160+40))+rsp] >=20 > +$L$ocb_enc_pop: >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$ocb_enc_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_ocb_encrypt: >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +__ocb_encrypt6: >=20 > + >=20 > + pxor xmm15,xmm9 >=20 > + movdqu xmm11,XMMWORD[r12*1+rbx] >=20 > + movdqa xmm12,xmm10 >=20 > + movdqu xmm13,XMMWORD[r13*1+rbx] >=20 > + movdqa xmm14,xmm10 >=20 > + pxor xmm10,xmm15 >=20 > + movdqu xmm15,XMMWORD[r14*1+rbx] >=20 > + pxor xmm11,xmm10 >=20 > + pxor xmm8,xmm2 >=20 > + pxor xmm2,xmm10 >=20 > + pxor xmm12,xmm11 >=20 > + pxor xmm8,xmm3 >=20 > + pxor xmm3,xmm11 >=20 > + pxor xmm13,xmm12 >=20 > + pxor xmm8,xmm4 >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm14,xmm13 >=20 > + pxor xmm8,xmm5 >=20 > + pxor xmm5,xmm13 >=20 > + pxor xmm15,xmm14 >=20 > + pxor xmm8,xmm6 >=20 > + pxor xmm6,xmm14 >=20 > + pxor xmm8,xmm7 >=20 > + pxor xmm7,xmm15 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > + lea r12,[1+r8] >=20 > + lea r13,[3+r8] >=20 > + lea r14,[5+r8] >=20 > + add r8,6 >=20 > + pxor xmm10,xmm9 >=20 > + bsf r12,r12 >=20 > + bsf r13,r13 >=20 > + bsf r14,r14 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + pxor xmm11,xmm9 >=20 > + pxor xmm12,xmm9 >=20 > +DB 102,15,56,220,241 >=20 > + pxor xmm13,xmm9 >=20 > + pxor xmm14,xmm9 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[48+r11] >=20 > + pxor xmm15,xmm9 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[64+r11] >=20 > + shl r12,4 >=20 > + shl r13,4 >=20 > + jmp NEAR $L$ocb_enc_loop6 >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_enc_loop6: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > +DB 102,15,56,220,240 >=20 > +DB 102,15,56,220,248 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ocb_enc_loop6 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > +DB 102,15,56,220,241 >=20 > +DB 102,15,56,220,249 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + shl r14,4 >=20 > + >=20 > +DB 102,65,15,56,221,210 >=20 > + movdqu xmm10,XMMWORD[rbx] >=20 > + mov rax,r10 >=20 > +DB 102,65,15,56,221,219 >=20 > +DB 102,65,15,56,221,228 >=20 > +DB 102,65,15,56,221,237 >=20 > +DB 102,65,15,56,221,246 >=20 > +DB 102,65,15,56,221,255 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +__ocb_encrypt4: >=20 > + >=20 > + pxor xmm15,xmm9 >=20 > + movdqu xmm11,XMMWORD[r12*1+rbx] >=20 > + movdqa xmm12,xmm10 >=20 > + movdqu xmm13,XMMWORD[r13*1+rbx] >=20 > + pxor xmm10,xmm15 >=20 > + pxor xmm11,xmm10 >=20 > + pxor xmm8,xmm2 >=20 > + pxor xmm2,xmm10 >=20 > + pxor xmm12,xmm11 >=20 > + pxor xmm8,xmm3 >=20 > + pxor xmm3,xmm11 >=20 > + pxor xmm13,xmm12 >=20 > + pxor xmm8,xmm4 >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm8,xmm5 >=20 > + pxor xmm5,xmm13 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > + pxor xmm10,xmm9 >=20 > + pxor xmm11,xmm9 >=20 > + pxor xmm12,xmm9 >=20 > + pxor xmm13,xmm9 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[48+r11] >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[64+r11] >=20 > + jmp NEAR $L$ocb_enc_loop4 >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_enc_loop4: >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > +DB 102,15,56,220,216 >=20 > +DB 102,15,56,220,224 >=20 > +DB 102,15,56,220,232 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ocb_enc_loop4 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > +DB 102,15,56,220,217 >=20 > +DB 102,15,56,220,225 >=20 > +DB 102,15,56,220,233 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + mov rax,r10 >=20 > + >=20 > +DB 102,65,15,56,221,210 >=20 > +DB 102,65,15,56,221,219 >=20 > +DB 102,65,15,56,221,228 >=20 > +DB 102,65,15,56,221,237 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +__ocb_encrypt1: >=20 > + >=20 > + pxor xmm7,xmm15 >=20 > + pxor xmm7,xmm9 >=20 > + pxor xmm8,xmm2 >=20 > + pxor xmm2,xmm7 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[48+r11] >=20 > + pxor xmm7,xmm9 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > + movups xmm0,XMMWORD[64+r11] >=20 > + jmp NEAR $L$ocb_enc_loop1 >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_enc_loop1: >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,220,208 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ocb_enc_loop1 >=20 > + >=20 > +DB 102,15,56,220,209 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + mov rax,r10 >=20 > + >=20 > +DB 102,15,56,221,215 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +global aesni_ocb_decrypt >=20 > + >=20 > +ALIGN 32 >=20 > +aesni_ocb_decrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_ocb_decrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + lea rax,[rsp] >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + lea rsp,[((-160))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[64+rsp],xmm10 >=20 > + movaps XMMWORD[80+rsp],xmm11 >=20 > + movaps XMMWORD[96+rsp],xmm12 >=20 > + movaps XMMWORD[112+rsp],xmm13 >=20 > + movaps XMMWORD[128+rsp],xmm14 >=20 > + movaps XMMWORD[144+rsp],xmm15 >=20 > +$L$ocb_dec_body: >=20 > + mov rbx,QWORD[56+rax] >=20 > + mov rbp,QWORD[((56+8))+rax] >=20 > + >=20 > + mov r10d,DWORD[240+rcx] >=20 > + mov r11,rcx >=20 > + shl r10d,4 >=20 > + movups xmm9,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+r10*1+rcx] >=20 > + >=20 > + movdqu xmm15,XMMWORD[r9] >=20 > + pxor xmm9,xmm1 >=20 > + pxor xmm15,xmm1 >=20 > + >=20 > + mov eax,16+32 >=20 > + lea rcx,[32+r10*1+r11] >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + sub rax,r10 >=20 > + mov r10,rax >=20 > + >=20 > + movdqu xmm10,XMMWORD[rbx] >=20 > + movdqu xmm8,XMMWORD[rbp] >=20 > + >=20 > + test r8,1 >=20 > + jnz NEAR $L$ocb_dec_odd >=20 > + >=20 > + bsf r12,r8 >=20 > + add r8,1 >=20 > + shl r12,4 >=20 > + movdqu xmm7,XMMWORD[r12*1+rbx] >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + lea rdi,[16+rdi] >=20 > + >=20 > + call __ocb_decrypt1 >=20 > + >=20 > + movdqa xmm15,xmm7 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + xorps xmm8,xmm2 >=20 > + lea rsi,[16+rsi] >=20 > + sub rdx,1 >=20 > + jz NEAR $L$ocb_dec_done >=20 > + >=20 > +$L$ocb_dec_odd: >=20 > + lea r12,[1+r8] >=20 > + lea r13,[3+r8] >=20 > + lea r14,[5+r8] >=20 > + lea r8,[6+r8] >=20 > + bsf r12,r12 >=20 > + bsf r13,r13 >=20 > + bsf r14,r14 >=20 > + shl r12,4 >=20 > + shl r13,4 >=20 > + shl r14,4 >=20 > + >=20 > + sub rdx,6 >=20 > + jc NEAR $L$ocb_dec_short >=20 > + jmp NEAR $L$ocb_dec_grandloop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_dec_grandloop: >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + lea rdi,[96+rdi] >=20 > + >=20 > + call __ocb_decrypt6 >=20 > + >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm8,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm8,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm8,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm8,xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm8,xmm6 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + pxor xmm8,xmm7 >=20 > + lea rsi,[96+rsi] >=20 > + sub rdx,6 >=20 > + jnc NEAR $L$ocb_dec_grandloop >=20 > + >=20 > +$L$ocb_dec_short: >=20 > + add rdx,6 >=20 > + jz NEAR $L$ocb_dec_done >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + cmp rdx,2 >=20 > + jb NEAR $L$ocb_dec_one >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + je NEAR $L$ocb_dec_two >=20 > + >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + cmp rdx,4 >=20 > + jb NEAR $L$ocb_dec_three >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + je NEAR $L$ocb_dec_four >=20 > + >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + pxor xmm7,xmm7 >=20 > + >=20 > + call __ocb_decrypt6 >=20 > + >=20 > + movdqa xmm15,xmm14 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm8,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm8,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm8,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm8,xmm5 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm8,xmm6 >=20 > + >=20 > + jmp NEAR $L$ocb_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_dec_one: >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + call __ocb_decrypt1 >=20 > + >=20 > + movdqa xmm15,xmm7 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + xorps xmm8,xmm2 >=20 > + jmp NEAR $L$ocb_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_dec_two: >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + >=20 > + call __ocb_decrypt4 >=20 > + >=20 > + movdqa xmm15,xmm11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + xorps xmm8,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + xorps xmm8,xmm3 >=20 > + >=20 > + jmp NEAR $L$ocb_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_dec_three: >=20 > + pxor xmm5,xmm5 >=20 > + >=20 > + call __ocb_decrypt4 >=20 > + >=20 > + movdqa xmm15,xmm12 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + xorps xmm8,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + xorps xmm8,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + xorps xmm8,xmm4 >=20 > + >=20 > + jmp NEAR $L$ocb_dec_done >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ocb_dec_four: >=20 > + call __ocb_decrypt4 >=20 > + >=20 > + movdqa xmm15,xmm13 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm8,xmm2 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm8,xmm3 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm8,xmm4 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm8,xmm5 >=20 > + >=20 > +$L$ocb_dec_done: >=20 > + pxor xmm15,xmm0 >=20 > + movdqu XMMWORD[rbp],xmm8 >=20 > + movdqu XMMWORD[r9],xmm15 >=20 > + >=20 > + xorps xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + movaps XMMWORD[rsp],xmm0 >=20 > + movaps xmm7,XMMWORD[16+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps xmm8,XMMWORD[32+rsp] >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps xmm9,XMMWORD[48+rsp] >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + movaps xmm10,XMMWORD[64+rsp] >=20 > + movaps XMMWORD[64+rsp],xmm0 >=20 > + movaps xmm11,XMMWORD[80+rsp] >=20 > + movaps XMMWORD[80+rsp],xmm0 >=20 > + movaps xmm12,XMMWORD[96+rsp] >=20 > + movaps XMMWORD[96+rsp],xmm0 >=20 > + movaps xmm13,XMMWORD[112+rsp] >=20 > + movaps XMMWORD[112+rsp],xmm0 >=20 > + movaps xmm14,XMMWORD[128+rsp] >=20 > + movaps XMMWORD[128+rsp],xmm0 >=20 > + movaps xmm15,XMMWORD[144+rsp] >=20 > + movaps XMMWORD[144+rsp],xmm0 >=20 > + lea rax,[((160+40))+rsp] >=20 > +$L$ocb_dec_pop: >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$ocb_dec_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_ocb_decrypt: >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +__ocb_decrypt6: >=20 > + >=20 > + pxor xmm15,xmm9 >=20 > + movdqu xmm11,XMMWORD[r12*1+rbx] >=20 > + movdqa xmm12,xmm10 >=20 > + movdqu xmm13,XMMWORD[r13*1+rbx] >=20 > + movdqa xmm14,xmm10 >=20 > + pxor xmm10,xmm15 >=20 > + movdqu xmm15,XMMWORD[r14*1+rbx] >=20 > + pxor xmm11,xmm10 >=20 > + pxor xmm2,xmm10 >=20 > + pxor xmm12,xmm11 >=20 > + pxor xmm3,xmm11 >=20 > + pxor xmm13,xmm12 >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm14,xmm13 >=20 > + pxor xmm5,xmm13 >=20 > + pxor xmm15,xmm14 >=20 > + pxor xmm6,xmm14 >=20 > + pxor xmm7,xmm15 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > + lea r12,[1+r8] >=20 > + lea r13,[3+r8] >=20 > + lea r14,[5+r8] >=20 > + add r8,6 >=20 > + pxor xmm10,xmm9 >=20 > + bsf r12,r12 >=20 > + bsf r13,r13 >=20 > + bsf r14,r14 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + pxor xmm11,xmm9 >=20 > + pxor xmm12,xmm9 >=20 > +DB 102,15,56,222,241 >=20 > + pxor xmm13,xmm9 >=20 > + pxor xmm14,xmm9 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[48+r11] >=20 > + pxor xmm15,xmm9 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > + movups xmm0,XMMWORD[64+r11] >=20 > + shl r12,4 >=20 > + shl r13,4 >=20 > + jmp NEAR $L$ocb_dec_loop6 >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_dec_loop6: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ocb_dec_loop6 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + shl r14,4 >=20 > + >=20 > +DB 102,65,15,56,223,210 >=20 > + movdqu xmm10,XMMWORD[rbx] >=20 > + mov rax,r10 >=20 > +DB 102,65,15,56,223,219 >=20 > +DB 102,65,15,56,223,228 >=20 > +DB 102,65,15,56,223,237 >=20 > +DB 102,65,15,56,223,246 >=20 > +DB 102,65,15,56,223,255 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +__ocb_decrypt4: >=20 > + >=20 > + pxor xmm15,xmm9 >=20 > + movdqu xmm11,XMMWORD[r12*1+rbx] >=20 > + movdqa xmm12,xmm10 >=20 > + movdqu xmm13,XMMWORD[r13*1+rbx] >=20 > + pxor xmm10,xmm15 >=20 > + pxor xmm11,xmm10 >=20 > + pxor xmm2,xmm10 >=20 > + pxor xmm12,xmm11 >=20 > + pxor xmm3,xmm11 >=20 > + pxor xmm13,xmm12 >=20 > + pxor xmm4,xmm12 >=20 > + pxor xmm5,xmm13 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > + pxor xmm10,xmm9 >=20 > + pxor xmm11,xmm9 >=20 > + pxor xmm12,xmm9 >=20 > + pxor xmm13,xmm9 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[48+r11] >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[64+r11] >=20 > + jmp NEAR $L$ocb_dec_loop4 >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_dec_loop4: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ocb_dec_loop4 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + mov rax,r10 >=20 > + >=20 > +DB 102,65,15,56,223,210 >=20 > +DB 102,65,15,56,223,219 >=20 > +DB 102,65,15,56,223,228 >=20 > +DB 102,65,15,56,223,237 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 32 >=20 > +__ocb_decrypt1: >=20 > + >=20 > + pxor xmm7,xmm15 >=20 > + pxor xmm7,xmm9 >=20 > + pxor xmm2,xmm7 >=20 > + movups xmm0,XMMWORD[32+r11] >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > + movups xmm1,XMMWORD[48+r11] >=20 > + pxor xmm7,xmm9 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > + movups xmm0,XMMWORD[64+r11] >=20 > + jmp NEAR $L$ocb_dec_loop1 >=20 > + >=20 > +ALIGN 32 >=20 > +$L$ocb_dec_loop1: >=20 > +DB 102,15,56,222,209 >=20 > + movups xmm1,XMMWORD[rax*1+rcx] >=20 > + add rax,32 >=20 > + >=20 > +DB 102,15,56,222,208 >=20 > + movups xmm0,XMMWORD[((-16))+rax*1+rcx] >=20 > + jnz NEAR $L$ocb_dec_loop1 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > + movups xmm1,XMMWORD[16+r11] >=20 > + mov rax,r10 >=20 > + >=20 > +DB 102,15,56,223,215 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global aesni_cbc_encrypt >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_cbc_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_aesni_cbc_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + test rdx,rdx >=20 > + jz NEAR $L$cbc_ret >=20 > + >=20 > + mov r10d,DWORD[240+rcx] >=20 > + mov r11,rcx >=20 > + test r9d,r9d >=20 > + jz NEAR $L$cbc_decrypt >=20 > + >=20 > + movups xmm2,XMMWORD[r8] >=20 > + mov eax,r10d >=20 > + cmp rdx,16 >=20 > + jb NEAR $L$cbc_enc_tail >=20 > + sub rdx,16 >=20 > + jmp NEAR $L$cbc_enc_loop >=20 > +ALIGN 16 >=20 > +$L$cbc_enc_loop: >=20 > + movups xmm3,XMMWORD[rdi] >=20 > + lea rdi,[16+rdi] >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + xorps xmm3,xmm0 >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm3 >=20 > +$L$oop_enc1_15: >=20 > +DB 102,15,56,220,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_enc1_15 >=20 > +DB 102,15,56,221,209 >=20 > + mov eax,r10d >=20 > + mov rcx,r11 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + lea rsi,[16+rsi] >=20 > + sub rdx,16 >=20 > + jnc NEAR $L$cbc_enc_loop >=20 > + add rdx,16 >=20 > + jnz NEAR $L$cbc_enc_tail >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + movups XMMWORD[r8],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + jmp NEAR $L$cbc_ret >=20 > + >=20 > +$L$cbc_enc_tail: >=20 > + mov rcx,rdx >=20 > + xchg rsi,rdi >=20 > + DD 0x9066A4F3 >=20 > + mov ecx,16 >=20 > + sub rcx,rdx >=20 > + xor eax,eax >=20 > + DD 0x9066AAF3 >=20 > + lea rdi,[((-16))+rdi] >=20 > + mov eax,r10d >=20 > + mov rsi,rdi >=20 > + mov rcx,r11 >=20 > + xor rdx,rdx >=20 > + jmp NEAR $L$cbc_enc_loop >=20 > + >=20 > +ALIGN 16 >=20 > +$L$cbc_decrypt: >=20 > + cmp rdx,16 >=20 > + jne NEAR $L$cbc_decrypt_bulk >=20 > + >=20 > + >=20 > + >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[r8] >=20 > + movdqa xmm4,xmm2 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_16: >=20 > +DB 102,15,56,222,209 >=20 > + dec r10d >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_dec1_16 >=20 > +DB 102,15,56,223,209 >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + movdqu XMMWORD[r8],xmm4 >=20 > + xorps xmm2,xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + jmp NEAR $L$cbc_ret >=20 > +ALIGN 16 >=20 > +$L$cbc_decrypt_bulk: >=20 > + lea r11,[rsp] >=20 > + >=20 > + push rbp >=20 > + >=20 > + sub rsp,176 >=20 > + and rsp,-16 >=20 > + movaps XMMWORD[16+rsp],xmm6 >=20 > + movaps XMMWORD[32+rsp],xmm7 >=20 > + movaps XMMWORD[48+rsp],xmm8 >=20 > + movaps XMMWORD[64+rsp],xmm9 >=20 > + movaps XMMWORD[80+rsp],xmm10 >=20 > + movaps XMMWORD[96+rsp],xmm11 >=20 > + movaps XMMWORD[112+rsp],xmm12 >=20 > + movaps XMMWORD[128+rsp],xmm13 >=20 > + movaps XMMWORD[144+rsp],xmm14 >=20 > + movaps XMMWORD[160+rsp],xmm15 >=20 > +$L$cbc_decrypt_body: >=20 > + mov rbp,rcx >=20 > + movups xmm10,XMMWORD[r8] >=20 > + mov eax,r10d >=20 > + cmp rdx,0x50 >=20 > + jbe NEAR $L$cbc_dec_tail >=20 > + >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqa xmm11,xmm2 >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movdqa xmm12,xmm3 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movdqa xmm13,xmm4 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movdqa xmm14,xmm5 >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + movdqa xmm15,xmm6 >=20 > + mov r9d,DWORD[((OPENSSL_ia32cap_P+4))] >=20 > + cmp rdx,0x70 >=20 > + jbe NEAR $L$cbc_dec_six_or_seven >=20 > + >=20 > + and r9d,71303168 >=20 > + sub rdx,0x50 >=20 > + cmp r9d,4194304 >=20 > + je NEAR $L$cbc_dec_loop6_enter >=20 > + sub rdx,0x20 >=20 > + lea rcx,[112+rcx] >=20 > + jmp NEAR $L$cbc_dec_loop8_enter >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_loop8: >=20 > + movups XMMWORD[rsi],xmm9 >=20 > + lea rsi,[16+rsi] >=20 > +$L$cbc_dec_loop8_enter: >=20 > + movdqu xmm8,XMMWORD[96+rdi] >=20 > + pxor xmm2,xmm0 >=20 > + movdqu xmm9,XMMWORD[112+rdi] >=20 > + pxor xmm3,xmm0 >=20 > + movups xmm1,XMMWORD[((16-112))+rcx] >=20 > + pxor xmm4,xmm0 >=20 > + mov rbp,-1 >=20 > + cmp rdx,0x70 >=20 > + pxor xmm5,xmm0 >=20 > + pxor xmm6,xmm0 >=20 > + pxor xmm7,xmm0 >=20 > + pxor xmm8,xmm0 >=20 > + >=20 > +DB 102,15,56,222,209 >=20 > + pxor xmm9,xmm0 >=20 > + movups xmm0,XMMWORD[((32-112))+rcx] >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > + adc rbp,0 >=20 > + and rbp,128 >=20 > +DB 102,68,15,56,222,201 >=20 > + add rbp,rdi >=20 > + movups xmm1,XMMWORD[((48-112))+rcx] >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((64-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > + movups xmm1,XMMWORD[((80-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((96-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > + movups xmm1,XMMWORD[((112-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((128-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > + movups xmm1,XMMWORD[((144-112))+rcx] >=20 > + cmp eax,11 >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((160-112))+rcx] >=20 > + jb NEAR $L$cbc_dec_done >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > + movups xmm1,XMMWORD[((176-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((192-112))+rcx] >=20 > + je NEAR $L$cbc_dec_done >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > + movups xmm1,XMMWORD[((208-112))+rcx] >=20 > + nop >=20 > +DB 102,15,56,222,208 >=20 > +DB 102,15,56,222,216 >=20 > +DB 102,15,56,222,224 >=20 > +DB 102,15,56,222,232 >=20 > +DB 102,15,56,222,240 >=20 > +DB 102,15,56,222,248 >=20 > +DB 102,68,15,56,222,192 >=20 > +DB 102,68,15,56,222,200 >=20 > + movups xmm0,XMMWORD[((224-112))+rcx] >=20 > + jmp NEAR $L$cbc_dec_done >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_done: >=20 > +DB 102,15,56,222,209 >=20 > +DB 102,15,56,222,217 >=20 > + pxor xmm10,xmm0 >=20 > + pxor xmm11,xmm0 >=20 > +DB 102,15,56,222,225 >=20 > +DB 102,15,56,222,233 >=20 > + pxor xmm12,xmm0 >=20 > + pxor xmm13,xmm0 >=20 > +DB 102,15,56,222,241 >=20 > +DB 102,15,56,222,249 >=20 > + pxor xmm14,xmm0 >=20 > + pxor xmm15,xmm0 >=20 > +DB 102,68,15,56,222,193 >=20 > +DB 102,68,15,56,222,201 >=20 > + movdqu xmm1,XMMWORD[80+rdi] >=20 > + >=20 > +DB 102,65,15,56,223,210 >=20 > + movdqu xmm10,XMMWORD[96+rdi] >=20 > + pxor xmm1,xmm0 >=20 > +DB 102,65,15,56,223,219 >=20 > + pxor xmm10,xmm0 >=20 > + movdqu xmm0,XMMWORD[112+rdi] >=20 > +DB 102,65,15,56,223,228 >=20 > + lea rdi,[128+rdi] >=20 > + movdqu xmm11,XMMWORD[rbp] >=20 > +DB 102,65,15,56,223,237 >=20 > +DB 102,65,15,56,223,246 >=20 > + movdqu xmm12,XMMWORD[16+rbp] >=20 > + movdqu xmm13,XMMWORD[32+rbp] >=20 > +DB 102,65,15,56,223,255 >=20 > +DB 102,68,15,56,223,193 >=20 > + movdqu xmm14,XMMWORD[48+rbp] >=20 > + movdqu xmm15,XMMWORD[64+rbp] >=20 > +DB 102,69,15,56,223,202 >=20 > + movdqa xmm10,xmm0 >=20 > + movdqu xmm1,XMMWORD[80+rbp] >=20 > + movups xmm0,XMMWORD[((-112))+rcx] >=20 > + >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + movdqa xmm2,xmm11 >=20 > + movups XMMWORD[16+rsi],xmm3 >=20 > + movdqa xmm3,xmm12 >=20 > + movups XMMWORD[32+rsi],xmm4 >=20 > + movdqa xmm4,xmm13 >=20 > + movups XMMWORD[48+rsi],xmm5 >=20 > + movdqa xmm5,xmm14 >=20 > + movups XMMWORD[64+rsi],xmm6 >=20 > + movdqa xmm6,xmm15 >=20 > + movups XMMWORD[80+rsi],xmm7 >=20 > + movdqa xmm7,xmm1 >=20 > + movups XMMWORD[96+rsi],xmm8 >=20 > + lea rsi,[112+rsi] >=20 > + >=20 > + sub rdx,0x80 >=20 > + ja NEAR $L$cbc_dec_loop8 >=20 > + >=20 > + movaps xmm2,xmm9 >=20 > + lea rcx,[((-112))+rcx] >=20 > + add rdx,0x70 >=20 > + jle NEAR $L$cbc_dec_clear_tail_collected >=20 > + movups XMMWORD[rsi],xmm9 >=20 > + lea rsi,[16+rsi] >=20 > + cmp rdx,0x50 >=20 > + jbe NEAR $L$cbc_dec_tail >=20 > + >=20 > + movaps xmm2,xmm11 >=20 > +$L$cbc_dec_six_or_seven: >=20 > + cmp rdx,0x60 >=20 > + ja NEAR $L$cbc_dec_seven >=20 > + >=20 > + movaps xmm8,xmm7 >=20 > + call _aesni_decrypt6 >=20 > + pxor xmm2,xmm10 >=20 > + movaps xmm10,xmm8 >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm6,xmm14 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + pxor xmm7,xmm15 >=20 > + movdqu XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + lea rsi,[80+rsi] >=20 > + movdqa xmm2,xmm7 >=20 > + pxor xmm7,xmm7 >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > + >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_seven: >=20 > + movups xmm8,XMMWORD[96+rdi] >=20 > + xorps xmm9,xmm9 >=20 > + call _aesni_decrypt8 >=20 > + movups xmm9,XMMWORD[80+rdi] >=20 > + pxor xmm2,xmm10 >=20 > + movups xmm10,XMMWORD[96+rdi] >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm6,xmm14 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + pxor xmm7,xmm15 >=20 > + movdqu XMMWORD[64+rsi],xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + pxor xmm8,xmm9 >=20 > + movdqu XMMWORD[80+rsi],xmm7 >=20 > + pxor xmm7,xmm7 >=20 > + lea rsi,[96+rsi] >=20 > + movdqa xmm2,xmm8 >=20 > + pxor xmm8,xmm8 >=20 > + pxor xmm9,xmm9 >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > + >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_loop6: >=20 > + movups XMMWORD[rsi],xmm7 >=20 > + lea rsi,[16+rsi] >=20 > + movdqu xmm2,XMMWORD[rdi] >=20 > + movdqu xmm3,XMMWORD[16+rdi] >=20 > + movdqa xmm11,xmm2 >=20 > + movdqu xmm4,XMMWORD[32+rdi] >=20 > + movdqa xmm12,xmm3 >=20 > + movdqu xmm5,XMMWORD[48+rdi] >=20 > + movdqa xmm13,xmm4 >=20 > + movdqu xmm6,XMMWORD[64+rdi] >=20 > + movdqa xmm14,xmm5 >=20 > + movdqu xmm7,XMMWORD[80+rdi] >=20 > + movdqa xmm15,xmm6 >=20 > +$L$cbc_dec_loop6_enter: >=20 > + lea rdi,[96+rdi] >=20 > + movdqa xmm8,xmm7 >=20 > + >=20 > + call _aesni_decrypt6 >=20 > + >=20 > + pxor xmm2,xmm10 >=20 > + movdqa xmm10,xmm8 >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm6,xmm14 >=20 > + mov rcx,rbp >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm7,xmm15 >=20 > + mov eax,r10d >=20 > + movdqu XMMWORD[64+rsi],xmm6 >=20 > + lea rsi,[80+rsi] >=20 > + sub rdx,0x60 >=20 > + ja NEAR $L$cbc_dec_loop6 >=20 > + >=20 > + movdqa xmm2,xmm7 >=20 > + add rdx,0x50 >=20 > + jle NEAR $L$cbc_dec_clear_tail_collected >=20 > + movups XMMWORD[rsi],xmm7 >=20 > + lea rsi,[16+rsi] >=20 > + >=20 > +$L$cbc_dec_tail: >=20 > + movups xmm2,XMMWORD[rdi] >=20 > + sub rdx,0x10 >=20 > + jbe NEAR $L$cbc_dec_one >=20 > + >=20 > + movups xmm3,XMMWORD[16+rdi] >=20 > + movaps xmm11,xmm2 >=20 > + sub rdx,0x10 >=20 > + jbe NEAR $L$cbc_dec_two >=20 > + >=20 > + movups xmm4,XMMWORD[32+rdi] >=20 > + movaps xmm12,xmm3 >=20 > + sub rdx,0x10 >=20 > + jbe NEAR $L$cbc_dec_three >=20 > + >=20 > + movups xmm5,XMMWORD[48+rdi] >=20 > + movaps xmm13,xmm4 >=20 > + sub rdx,0x10 >=20 > + jbe NEAR $L$cbc_dec_four >=20 > + >=20 > + movups xmm6,XMMWORD[64+rdi] >=20 > + movaps xmm14,xmm5 >=20 > + movaps xmm15,xmm6 >=20 > + xorps xmm7,xmm7 >=20 > + call _aesni_decrypt6 >=20 > + pxor xmm2,xmm10 >=20 > + movaps xmm10,xmm15 >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm6,xmm14 >=20 > + movdqu XMMWORD[48+rsi],xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + lea rsi,[64+rsi] >=20 > + movdqa xmm2,xmm6 >=20 > + pxor xmm6,xmm6 >=20 > + pxor xmm7,xmm7 >=20 > + sub rdx,0x10 >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > + >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_one: >=20 > + movaps xmm11,xmm2 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + movups xmm1,XMMWORD[16+rcx] >=20 > + lea rcx,[32+rcx] >=20 > + xorps xmm2,xmm0 >=20 > +$L$oop_dec1_17: >=20 > +DB 102,15,56,222,209 >=20 > + dec eax >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + lea rcx,[16+rcx] >=20 > + jnz NEAR $L$oop_dec1_17 >=20 > +DB 102,15,56,223,209 >=20 > + xorps xmm2,xmm10 >=20 > + movaps xmm10,xmm11 >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_two: >=20 > + movaps xmm12,xmm3 >=20 > + call _aesni_decrypt2 >=20 > + pxor xmm2,xmm10 >=20 > + movaps xmm10,xmm12 >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + movdqa xmm2,xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + lea rsi,[16+rsi] >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_three: >=20 > + movaps xmm13,xmm4 >=20 > + call _aesni_decrypt3 >=20 > + pxor xmm2,xmm10 >=20 > + movaps xmm10,xmm13 >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + movdqa xmm2,xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + lea rsi,[32+rsi] >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_four: >=20 > + movaps xmm14,xmm5 >=20 > + call _aesni_decrypt4 >=20 > + pxor xmm2,xmm10 >=20 > + movaps xmm10,xmm14 >=20 > + pxor xmm3,xmm11 >=20 > + movdqu XMMWORD[rsi],xmm2 >=20 > + pxor xmm4,xmm12 >=20 > + movdqu XMMWORD[16+rsi],xmm3 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm5,xmm13 >=20 > + movdqu XMMWORD[32+rsi],xmm4 >=20 > + pxor xmm4,xmm4 >=20 > + movdqa xmm2,xmm5 >=20 > + pxor xmm5,xmm5 >=20 > + lea rsi,[48+rsi] >=20 > + jmp NEAR $L$cbc_dec_tail_collected >=20 > + >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_clear_tail_collected: >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > +$L$cbc_dec_tail_collected: >=20 > + movups XMMWORD[r8],xmm10 >=20 > + and rdx,15 >=20 > + jnz NEAR $L$cbc_dec_tail_partial >=20 > + movups XMMWORD[rsi],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + jmp NEAR $L$cbc_dec_ret >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_tail_partial: >=20 > + movaps XMMWORD[rsp],xmm2 >=20 > + pxor xmm2,xmm2 >=20 > + mov rcx,16 >=20 > + mov rdi,rsi >=20 > + sub rcx,rdx >=20 > + lea rsi,[rsp] >=20 > + DD 0x9066A4F3 >=20 > + movdqa XMMWORD[rsp],xmm2 >=20 > + >=20 > +$L$cbc_dec_ret: >=20 > + xorps xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + movaps xmm6,XMMWORD[16+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm0 >=20 > + movaps xmm7,XMMWORD[32+rsp] >=20 > + movaps XMMWORD[32+rsp],xmm0 >=20 > + movaps xmm8,XMMWORD[48+rsp] >=20 > + movaps XMMWORD[48+rsp],xmm0 >=20 > + movaps xmm9,XMMWORD[64+rsp] >=20 > + movaps XMMWORD[64+rsp],xmm0 >=20 > + movaps xmm10,XMMWORD[80+rsp] >=20 > + movaps XMMWORD[80+rsp],xmm0 >=20 > + movaps xmm11,XMMWORD[96+rsp] >=20 > + movaps XMMWORD[96+rsp],xmm0 >=20 > + movaps xmm12,XMMWORD[112+rsp] >=20 > + movaps XMMWORD[112+rsp],xmm0 >=20 > + movaps xmm13,XMMWORD[128+rsp] >=20 > + movaps XMMWORD[128+rsp],xmm0 >=20 > + movaps xmm14,XMMWORD[144+rsp] >=20 > + movaps XMMWORD[144+rsp],xmm0 >=20 > + movaps xmm15,XMMWORD[160+rsp] >=20 > + movaps XMMWORD[160+rsp],xmm0 >=20 > + mov rbp,QWORD[((-8))+r11] >=20 > + >=20 > + lea rsp,[r11] >=20 > + >=20 > +$L$cbc_ret: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_aesni_cbc_encrypt: >=20 > +global aesni_set_decrypt_key >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_set_decrypt_key: >=20 > + >=20 > +DB 0x48,0x83,0xEC,0x08 >=20 > + >=20 > + call __aesni_set_encrypt_key >=20 > + shl edx,4 >=20 > + test eax,eax >=20 > + jnz NEAR $L$dec_key_ret >=20 > + lea rcx,[16+rdx*1+r8] >=20 > + >=20 > + movups xmm0,XMMWORD[r8] >=20 > + movups xmm1,XMMWORD[rcx] >=20 > + movups XMMWORD[rcx],xmm0 >=20 > + movups XMMWORD[r8],xmm1 >=20 > + lea r8,[16+r8] >=20 > + lea rcx,[((-16))+rcx] >=20 > + >=20 > +$L$dec_key_inverse: >=20 > + movups xmm0,XMMWORD[r8] >=20 > + movups xmm1,XMMWORD[rcx] >=20 > +DB 102,15,56,219,192 >=20 > +DB 102,15,56,219,201 >=20 > + lea r8,[16+r8] >=20 > + lea rcx,[((-16))+rcx] >=20 > + movups XMMWORD[16+rcx],xmm0 >=20 > + movups XMMWORD[(-16)+r8],xmm1 >=20 > + cmp rcx,r8 >=20 > + ja NEAR $L$dec_key_inverse >=20 > + >=20 > + movups xmm0,XMMWORD[r8] >=20 > +DB 102,15,56,219,192 >=20 > + pxor xmm1,xmm1 >=20 > + movups XMMWORD[rcx],xmm0 >=20 > + pxor xmm0,xmm0 >=20 > +$L$dec_key_ret: >=20 > + add rsp,8 >=20 > + >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_set_decrypt_key: >=20 > + >=20 > +global aesni_set_encrypt_key >=20 > + >=20 > +ALIGN 16 >=20 > +aesni_set_encrypt_key: >=20 > +__aesni_set_encrypt_key: >=20 > + >=20 > +DB 0x48,0x83,0xEC,0x08 >=20 > + >=20 > + mov rax,-1 >=20 > + test rcx,rcx >=20 > + jz NEAR $L$enc_key_ret >=20 > + test r8,r8 >=20 > + jz NEAR $L$enc_key_ret >=20 > + >=20 > + mov r10d,268437504 >=20 > + movups xmm0,XMMWORD[rcx] >=20 > + xorps xmm4,xmm4 >=20 > + and r10d,DWORD[((OPENSSL_ia32cap_P+4))] >=20 > + lea rax,[16+r8] >=20 > + cmp edx,256 >=20 > + je NEAR $L$14rounds >=20 > + cmp edx,192 >=20 > + je NEAR $L$12rounds >=20 > + cmp edx,128 >=20 > + jne NEAR $L$bad_keybits >=20 > + >=20 > +$L$10rounds: >=20 > + mov edx,9 >=20 > + cmp r10d,268435456 >=20 > + je NEAR $L$10rounds_alt >=20 > + >=20 > + movups XMMWORD[r8],xmm0 >=20 > +DB 102,15,58,223,200,1 >=20 > + call $L$key_expansion_128_cold >=20 > +DB 102,15,58,223,200,2 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,4 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,8 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,16 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,32 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,64 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,128 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,27 >=20 > + call $L$key_expansion_128 >=20 > +DB 102,15,58,223,200,54 >=20 > + call $L$key_expansion_128 >=20 > + movups XMMWORD[rax],xmm0 >=20 > + mov DWORD[80+rax],edx >=20 > + xor eax,eax >=20 > + jmp NEAR $L$enc_key_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$10rounds_alt: >=20 > + movdqa xmm5,XMMWORD[$L$key_rotate] >=20 > + mov r10d,8 >=20 > + movdqa xmm4,XMMWORD[$L$key_rcon1] >=20 > + movdqa xmm2,xmm0 >=20 > + movdqu XMMWORD[r8],xmm0 >=20 > + jmp NEAR $L$oop_key128 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_key128: >=20 > +DB 102,15,56,0,197 >=20 > +DB 102,15,56,221,196 >=20 > + pslld xmm4,1 >=20 > + lea rax,[16+rax] >=20 > + >=20 > + movdqa xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm2,xmm3 >=20 > + >=20 > + pxor xmm0,xmm2 >=20 > + movdqu XMMWORD[(-16)+rax],xmm0 >=20 > + movdqa xmm2,xmm0 >=20 > + >=20 > + dec r10d >=20 > + jnz NEAR $L$oop_key128 >=20 > + >=20 > + movdqa xmm4,XMMWORD[$L$key_rcon1b] >=20 > + >=20 > +DB 102,15,56,0,197 >=20 > +DB 102,15,56,221,196 >=20 > + pslld xmm4,1 >=20 > + >=20 > + movdqa xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm2,xmm3 >=20 > + >=20 > + pxor xmm0,xmm2 >=20 > + movdqu XMMWORD[rax],xmm0 >=20 > + >=20 > + movdqa xmm2,xmm0 >=20 > +DB 102,15,56,0,197 >=20 > +DB 102,15,56,221,196 >=20 > + >=20 > + movdqa xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm3,xmm2 >=20 > + pslldq xmm2,4 >=20 > + pxor xmm2,xmm3 >=20 > + >=20 > + pxor xmm0,xmm2 >=20 > + movdqu XMMWORD[16+rax],xmm0 >=20 > + >=20 > + mov DWORD[96+rax],edx >=20 > + xor eax,eax >=20 > + jmp NEAR $L$enc_key_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$12rounds: >=20 > + movq xmm2,QWORD[16+rcx] >=20 > + mov edx,11 >=20 > + cmp r10d,268435456 >=20 > + je NEAR $L$12rounds_alt >=20 > + >=20 > + movups XMMWORD[r8],xmm0 >=20 > +DB 102,15,58,223,202,1 >=20 > + call $L$key_expansion_192a_cold >=20 > +DB 102,15,58,223,202,2 >=20 > + call $L$key_expansion_192b >=20 > +DB 102,15,58,223,202,4 >=20 > + call $L$key_expansion_192a >=20 > +DB 102,15,58,223,202,8 >=20 > + call $L$key_expansion_192b >=20 > +DB 102,15,58,223,202,16 >=20 > + call $L$key_expansion_192a >=20 > +DB 102,15,58,223,202,32 >=20 > + call $L$key_expansion_192b >=20 > +DB 102,15,58,223,202,64 >=20 > + call $L$key_expansion_192a >=20 > +DB 102,15,58,223,202,128 >=20 > + call $L$key_expansion_192b >=20 > + movups XMMWORD[rax],xmm0 >=20 > + mov DWORD[48+rax],edx >=20 > + xor rax,rax >=20 > + jmp NEAR $L$enc_key_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$12rounds_alt: >=20 > + movdqa xmm5,XMMWORD[$L$key_rotate192] >=20 > + movdqa xmm4,XMMWORD[$L$key_rcon1] >=20 > + mov r10d,8 >=20 > + movdqu XMMWORD[r8],xmm0 >=20 > + jmp NEAR $L$oop_key192 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_key192: >=20 > + movq QWORD[rax],xmm2 >=20 > + movdqa xmm1,xmm2 >=20 > +DB 102,15,56,0,213 >=20 > +DB 102,15,56,221,212 >=20 > + pslld xmm4,1 >=20 > + lea rax,[24+rax] >=20 > + >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,4 >=20 > + pxor xmm3,xmm0 >=20 > + pslldq xmm0,4 >=20 > + pxor xmm3,xmm0 >=20 > + pslldq xmm0,4 >=20 > + pxor xmm0,xmm3 >=20 > + >=20 > + pshufd xmm3,xmm0,0xff >=20 > + pxor xmm3,xmm1 >=20 > + pslldq xmm1,4 >=20 > + pxor xmm3,xmm1 >=20 > + >=20 > + pxor xmm0,xmm2 >=20 > + pxor xmm2,xmm3 >=20 > + movdqu XMMWORD[(-16)+rax],xmm0 >=20 > + >=20 > + dec r10d >=20 > + jnz NEAR $L$oop_key192 >=20 > + >=20 > + mov DWORD[32+rax],edx >=20 > + xor eax,eax >=20 > + jmp NEAR $L$enc_key_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$14rounds: >=20 > + movups xmm2,XMMWORD[16+rcx] >=20 > + mov edx,13 >=20 > + lea rax,[16+rax] >=20 > + cmp r10d,268435456 >=20 > + je NEAR $L$14rounds_alt >=20 > + >=20 > + movups XMMWORD[r8],xmm0 >=20 > + movups XMMWORD[16+r8],xmm2 >=20 > +DB 102,15,58,223,202,1 >=20 > + call $L$key_expansion_256a_cold >=20 > +DB 102,15,58,223,200,1 >=20 > + call $L$key_expansion_256b >=20 > +DB 102,15,58,223,202,2 >=20 > + call $L$key_expansion_256a >=20 > +DB 102,15,58,223,200,2 >=20 > + call $L$key_expansion_256b >=20 > +DB 102,15,58,223,202,4 >=20 > + call $L$key_expansion_256a >=20 > +DB 102,15,58,223,200,4 >=20 > + call $L$key_expansion_256b >=20 > +DB 102,15,58,223,202,8 >=20 > + call $L$key_expansion_256a >=20 > +DB 102,15,58,223,200,8 >=20 > + call $L$key_expansion_256b >=20 > +DB 102,15,58,223,202,16 >=20 > + call $L$key_expansion_256a >=20 > +DB 102,15,58,223,200,16 >=20 > + call $L$key_expansion_256b >=20 > +DB 102,15,58,223,202,32 >=20 > + call $L$key_expansion_256a >=20 > +DB 102,15,58,223,200,32 >=20 > + call $L$key_expansion_256b >=20 > +DB 102,15,58,223,202,64 >=20 > + call $L$key_expansion_256a >=20 > + movups XMMWORD[rax],xmm0 >=20 > + mov DWORD[16+rax],edx >=20 > + xor rax,rax >=20 > + jmp NEAR $L$enc_key_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$14rounds_alt: >=20 > + movdqa xmm5,XMMWORD[$L$key_rotate] >=20 > + movdqa xmm4,XMMWORD[$L$key_rcon1] >=20 > + mov r10d,7 >=20 > + movdqu XMMWORD[r8],xmm0 >=20 > + movdqa xmm1,xmm2 >=20 > + movdqu XMMWORD[16+r8],xmm2 >=20 > + jmp NEAR $L$oop_key256 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_key256: >=20 > +DB 102,15,56,0,213 >=20 > +DB 102,15,56,221,212 >=20 > + >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,4 >=20 > + pxor xmm3,xmm0 >=20 > + pslldq xmm0,4 >=20 > + pxor xmm3,xmm0 >=20 > + pslldq xmm0,4 >=20 > + pxor xmm0,xmm3 >=20 > + pslld xmm4,1 >=20 > + >=20 > + pxor xmm0,xmm2 >=20 > + movdqu XMMWORD[rax],xmm0 >=20 > + >=20 > + dec r10d >=20 > + jz NEAR $L$done_key256 >=20 > + >=20 > + pshufd xmm2,xmm0,0xff >=20 > + pxor xmm3,xmm3 >=20 > +DB 102,15,56,221,211 >=20 > + >=20 > + movdqa xmm3,xmm1 >=20 > + pslldq xmm1,4 >=20 > + pxor xmm3,xmm1 >=20 > + pslldq xmm1,4 >=20 > + pxor xmm3,xmm1 >=20 > + pslldq xmm1,4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + pxor xmm2,xmm1 >=20 > + movdqu XMMWORD[16+rax],xmm2 >=20 > + lea rax,[32+rax] >=20 > + movdqa xmm1,xmm2 >=20 > + >=20 > + jmp NEAR $L$oop_key256 >=20 > + >=20 > +$L$done_key256: >=20 > + mov DWORD[16+rax],edx >=20 > + xor eax,eax >=20 > + jmp NEAR $L$enc_key_ret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$bad_keybits: >=20 > + mov rax,-2 >=20 > +$L$enc_key_ret: >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + add rsp,8 >=20 > + >=20 > + DB 0F3h,0C3h ;repret >=20 > +$L$SEH_end_set_encrypt_key: >=20 > + >=20 > +ALIGN 16 >=20 > +$L$key_expansion_128: >=20 > + movups XMMWORD[rax],xmm0 >=20 > + lea rax,[16+rax] >=20 > +$L$key_expansion_128_cold: >=20 > + shufps xmm4,xmm0,16 >=20 > + xorps xmm0,xmm4 >=20 > + shufps xmm4,xmm0,140 >=20 > + xorps xmm0,xmm4 >=20 > + shufps xmm1,xmm1,255 >=20 > + xorps xmm0,xmm1 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$key_expansion_192a: >=20 > + movups XMMWORD[rax],xmm0 >=20 > + lea rax,[16+rax] >=20 > +$L$key_expansion_192a_cold: >=20 > + movaps xmm5,xmm2 >=20 > +$L$key_expansion_192b_warm: >=20 > + shufps xmm4,xmm0,16 >=20 > + movdqa xmm3,xmm2 >=20 > + xorps xmm0,xmm4 >=20 > + shufps xmm4,xmm0,140 >=20 > + pslldq xmm3,4 >=20 > + xorps xmm0,xmm4 >=20 > + pshufd xmm1,xmm1,85 >=20 > + pxor xmm2,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + pshufd xmm3,xmm0,255 >=20 > + pxor xmm2,xmm3 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$key_expansion_192b: >=20 > + movaps xmm3,xmm0 >=20 > + shufps xmm5,xmm0,68 >=20 > + movups XMMWORD[rax],xmm5 >=20 > + shufps xmm3,xmm2,78 >=20 > + movups XMMWORD[16+rax],xmm3 >=20 > + lea rax,[32+rax] >=20 > + jmp NEAR $L$key_expansion_192b_warm >=20 > + >=20 > +ALIGN 16 >=20 > +$L$key_expansion_256a: >=20 > + movups XMMWORD[rax],xmm2 >=20 > + lea rax,[16+rax] >=20 > +$L$key_expansion_256a_cold: >=20 > + shufps xmm4,xmm0,16 >=20 > + xorps xmm0,xmm4 >=20 > + shufps xmm4,xmm0,140 >=20 > + xorps xmm0,xmm4 >=20 > + shufps xmm1,xmm1,255 >=20 > + xorps xmm0,xmm1 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$key_expansion_256b: >=20 > + movups XMMWORD[rax],xmm0 >=20 > + lea rax,[16+rax] >=20 > + >=20 > + shufps xmm4,xmm2,16 >=20 > + xorps xmm2,xmm4 >=20 > + shufps xmm4,xmm2,140 >=20 > + xorps xmm2,xmm4 >=20 > + shufps xmm1,xmm1,170 >=20 > + xorps xmm2,xmm1 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 64 >=20 > +$L$bswap_mask: >=20 > +DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 >=20 > +$L$increment32: >=20 > + DD 6,6,6,0 >=20 > +$L$increment64: >=20 > + DD 1,0,0,0 >=20 > +$L$xts_magic: >=20 > + DD 0x87,0,1,0 >=20 > +$L$increment1: >=20 > +DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 >=20 > +$L$key_rotate: >=20 > + DD 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d >=20 > +$L$key_rotate192: >=20 > + DD 0x04070605,0x04070605,0x04070605,0x04070605 >=20 > +$L$key_rcon1: >=20 > + DD 1,1,1,1 >=20 > +$L$key_rcon1b: >=20 > + DD 0x1b,0x1b,0x1b,0x1b >=20 > + >=20 > +DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 >=20 > +DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 >=20 > +DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 >=20 > +DB 115,108,46,111,114,103,62,0 >=20 > +ALIGN 64 >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +ecb_ccm64_se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + lea rsi,[rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,8 >=20 > + DD 0xa548f3fc >=20 > + lea rax,[88+rax] >=20 > + >=20 > + jmp NEAR $L$common_seh_tail >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +ctr_xts_se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[208+r8] >=20 > + >=20 > + lea rsi,[((-168))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rbp,QWORD[((-8))+rax] >=20 > + mov QWORD[160+r8],rbp >=20 > + jmp NEAR $L$common_seh_tail >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +ocb_se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + mov r10d,DWORD[8+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$ocb_no_xmm >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + lea rsi,[rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + lea rax,[((160+40))+rax] >=20 > + >=20 > +$L$ocb_no_xmm: >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + >=20 > + jmp NEAR $L$common_seh_tail >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +cbc_se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + lea r10,[$L$cbc_decrypt_bulk] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + >=20 > + lea r10,[$L$cbc_decrypt_body] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + lea r10,[$L$cbc_ret] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + lea rsi,[16+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rax,QWORD[208+r8] >=20 > + >=20 > + mov rbp,QWORD[((-8))+rax] >=20 > + mov QWORD[160+r8],rbp >=20 > + >=20 > +$L$common_seh_tail: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_ecb_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_ecb wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase >=20 > + DD $L$SEH_info_ccm64_enc wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase >=20 > + DD $L$SEH_info_ccm64_dec wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase >=20 > + DD $L$SEH_info_ctr32 wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_xts_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_xts_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_xts_enc wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_xts_decrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_xts_decrypt wrt ..imagebase >=20 > + DD $L$SEH_info_xts_dec wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_ocb_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_ocb_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_ocb_enc wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_aesni_ocb_decrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_ocb_decrypt wrt ..imagebase >=20 > + DD $L$SEH_info_ocb_dec wrt ..imagebase >=20 > + DD $L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_aesni_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_cbc wrt ..imagebase >=20 > + >=20 > + DD aesni_set_decrypt_key wrt ..imagebase >=20 > + DD $L$SEH_end_set_decrypt_key wrt ..imagebase >=20 > + DD $L$SEH_info_key wrt ..imagebase >=20 > + >=20 > + DD aesni_set_encrypt_key wrt ..imagebase >=20 > + DD $L$SEH_end_set_encrypt_key wrt ..imagebase >=20 > + DD $L$SEH_info_key wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_ecb: >=20 > +DB 9,0,0,0 >=20 > + DD ecb_ccm64_se_handler wrt ..imagebase >=20 > + DD $L$ecb_enc_body wrt ..imagebase,$L$ecb_enc_ret wrt ..ima= gebase >=20 > +$L$SEH_info_ccm64_enc: >=20 > +DB 9,0,0,0 >=20 > + DD ecb_ccm64_se_handler wrt ..imagebase >=20 > + DD $L$ccm64_enc_body wrt ..imagebase,$L$ccm64_enc_ret > wrt ..imagebase >=20 > +$L$SEH_info_ccm64_dec: >=20 > +DB 9,0,0,0 >=20 > + DD ecb_ccm64_se_handler wrt ..imagebase >=20 > + DD $L$ccm64_dec_body wrt ..imagebase,$L$ccm64_dec_ret > wrt ..imagebase >=20 > +$L$SEH_info_ctr32: >=20 > +DB 9,0,0,0 >=20 > + DD ctr_xts_se_handler wrt ..imagebase >=20 > + DD $L$ctr32_body wrt ..imagebase,$L$ctr32_epilogue wrt ..im= agebase >=20 > +$L$SEH_info_xts_enc: >=20 > +DB 9,0,0,0 >=20 > + DD ctr_xts_se_handler wrt ..imagebase >=20 > + DD $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_xts_dec: >=20 > +DB 9,0,0,0 >=20 > + DD ctr_xts_se_handler wrt ..imagebase >=20 > + DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_ocb_enc: >=20 > +DB 9,0,0,0 >=20 > + DD ocb_se_handler wrt ..imagebase >=20 > + DD $L$ocb_enc_body wrt ..imagebase,$L$ocb_enc_epilogue > wrt ..imagebase >=20 > + DD $L$ocb_enc_pop wrt ..imagebase >=20 > + DD 0 >=20 > +$L$SEH_info_ocb_dec: >=20 > +DB 9,0,0,0 >=20 > + DD ocb_se_handler wrt ..imagebase >=20 > + DD $L$ocb_dec_body wrt ..imagebase,$L$ocb_dec_epilogue > wrt ..imagebase >=20 > + DD $L$ocb_dec_pop wrt ..imagebase >=20 > + DD 0 >=20 > +$L$SEH_info_cbc: >=20 > +DB 9,0,0,0 >=20 > + DD cbc_se_handler wrt ..imagebase >=20 > +$L$SEH_info_key: >=20 > +DB 0x01,0x04,0x01,0x00 >=20 > +DB 0x04,0x02,0x00,0x00 >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nas= m > b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm > new file mode 100644 > index 0000000000..1c911fa294 > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm > @@ -0,0 +1,1173 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/aes/asm/vpaes-x86_64.pl >=20 > +; >=20 > +; Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_encrypt_core: >=20 > + >=20 > + mov r9,rdx >=20 > + mov r11,16 >=20 > + mov eax,DWORD[240+rdx] >=20 > + movdqa xmm1,xmm9 >=20 > + movdqa xmm2,XMMWORD[$L$k_ipt] >=20 > + pandn xmm1,xmm0 >=20 > + movdqu xmm5,XMMWORD[r9] >=20 > + psrld xmm1,4 >=20 > + pand xmm0,xmm9 >=20 > +DB 102,15,56,0,208 >=20 > + movdqa xmm0,XMMWORD[(($L$k_ipt+16))] >=20 > +DB 102,15,56,0,193 >=20 > + pxor xmm2,xmm5 >=20 > + add r9,16 >=20 > + pxor xmm0,xmm2 >=20 > + lea r10,[$L$k_mc_backward] >=20 > + jmp NEAR $L$enc_entry >=20 > + >=20 > +ALIGN 16 >=20 > +$L$enc_loop: >=20 > + >=20 > + movdqa xmm4,xmm13 >=20 > + movdqa xmm0,xmm12 >=20 > +DB 102,15,56,0,226 >=20 > +DB 102,15,56,0,195 >=20 > + pxor xmm4,xmm5 >=20 > + movdqa xmm5,xmm15 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm1,XMMWORD[((-64))+r10*1+r11] >=20 > +DB 102,15,56,0,234 >=20 > + movdqa xmm4,XMMWORD[r10*1+r11] >=20 > + movdqa xmm2,xmm14 >=20 > +DB 102,15,56,0,211 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm2,xmm5 >=20 > +DB 102,15,56,0,193 >=20 > + add r9,16 >=20 > + pxor xmm0,xmm2 >=20 > +DB 102,15,56,0,220 >=20 > + add r11,16 >=20 > + pxor xmm3,xmm0 >=20 > +DB 102,15,56,0,193 >=20 > + and r11,0x30 >=20 > + sub rax,1 >=20 > + pxor xmm0,xmm3 >=20 > + >=20 > +$L$enc_entry: >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + movdqa xmm5,xmm11 >=20 > + pandn xmm1,xmm0 >=20 > + psrld xmm1,4 >=20 > + pand xmm0,xmm9 >=20 > +DB 102,15,56,0,232 >=20 > + movdqa xmm3,xmm10 >=20 > + pxor xmm0,xmm1 >=20 > +DB 102,15,56,0,217 >=20 > + movdqa xmm4,xmm10 >=20 > + pxor xmm3,xmm5 >=20 > +DB 102,15,56,0,224 >=20 > + movdqa xmm2,xmm10 >=20 > + pxor xmm4,xmm5 >=20 > +DB 102,15,56,0,211 >=20 > + movdqa xmm3,xmm10 >=20 > + pxor xmm2,xmm0 >=20 > +DB 102,15,56,0,220 >=20 > + movdqu xmm5,XMMWORD[r9] >=20 > + pxor xmm3,xmm1 >=20 > + jnz NEAR $L$enc_loop >=20 > + >=20 > + >=20 > + movdqa xmm4,XMMWORD[((-96))+r10] >=20 > + movdqa xmm0,XMMWORD[((-80))+r10] >=20 > +DB 102,15,56,0,226 >=20 > + pxor xmm4,xmm5 >=20 > +DB 102,15,56,0,195 >=20 > + movdqa xmm1,XMMWORD[64+r10*1+r11] >=20 > + pxor xmm0,xmm4 >=20 > +DB 102,15,56,0,193 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_decrypt_core: >=20 > + >=20 > + mov r9,rdx >=20 > + mov eax,DWORD[240+rdx] >=20 > + movdqa xmm1,xmm9 >=20 > + movdqa xmm2,XMMWORD[$L$k_dipt] >=20 > + pandn xmm1,xmm0 >=20 > + mov r11,rax >=20 > + psrld xmm1,4 >=20 > + movdqu xmm5,XMMWORD[r9] >=20 > + shl r11,4 >=20 > + pand xmm0,xmm9 >=20 > +DB 102,15,56,0,208 >=20 > + movdqa xmm0,XMMWORD[(($L$k_dipt+16))] >=20 > + xor r11,0x30 >=20 > + lea r10,[$L$k_dsbd] >=20 > +DB 102,15,56,0,193 >=20 > + and r11,0x30 >=20 > + pxor xmm2,xmm5 >=20 > + movdqa xmm5,XMMWORD[(($L$k_mc_forward+48))] >=20 > + pxor xmm0,xmm2 >=20 > + add r9,16 >=20 > + add r11,r10 >=20 > + jmp NEAR $L$dec_entry >=20 > + >=20 > +ALIGN 16 >=20 > +$L$dec_loop: >=20 > + >=20 > + >=20 > + >=20 > + movdqa xmm4,XMMWORD[((-32))+r10] >=20 > + movdqa xmm1,XMMWORD[((-16))+r10] >=20 > +DB 102,15,56,0,226 >=20 > +DB 102,15,56,0,203 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,XMMWORD[r10] >=20 > + pxor xmm0,xmm1 >=20 > + movdqa xmm1,XMMWORD[16+r10] >=20 > + >=20 > +DB 102,15,56,0,226 >=20 > +DB 102,15,56,0,197 >=20 > +DB 102,15,56,0,203 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,XMMWORD[32+r10] >=20 > + pxor xmm0,xmm1 >=20 > + movdqa xmm1,XMMWORD[48+r10] >=20 > + >=20 > +DB 102,15,56,0,226 >=20 > +DB 102,15,56,0,197 >=20 > +DB 102,15,56,0,203 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,XMMWORD[64+r10] >=20 > + pxor xmm0,xmm1 >=20 > + movdqa xmm1,XMMWORD[80+r10] >=20 > + >=20 > +DB 102,15,56,0,226 >=20 > +DB 102,15,56,0,197 >=20 > +DB 102,15,56,0,203 >=20 > + pxor xmm0,xmm4 >=20 > + add r9,16 >=20 > +DB 102,15,58,15,237,12 >=20 > + pxor xmm0,xmm1 >=20 > + sub rax,1 >=20 > + >=20 > +$L$dec_entry: >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + pandn xmm1,xmm0 >=20 > + movdqa xmm2,xmm11 >=20 > + psrld xmm1,4 >=20 > + pand xmm0,xmm9 >=20 > +DB 102,15,56,0,208 >=20 > + movdqa xmm3,xmm10 >=20 > + pxor xmm0,xmm1 >=20 > +DB 102,15,56,0,217 >=20 > + movdqa xmm4,xmm10 >=20 > + pxor xmm3,xmm2 >=20 > +DB 102,15,56,0,224 >=20 > + pxor xmm4,xmm2 >=20 > + movdqa xmm2,xmm10 >=20 > +DB 102,15,56,0,211 >=20 > + movdqa xmm3,xmm10 >=20 > + pxor xmm2,xmm0 >=20 > +DB 102,15,56,0,220 >=20 > + movdqu xmm0,XMMWORD[r9] >=20 > + pxor xmm3,xmm1 >=20 > + jnz NEAR $L$dec_loop >=20 > + >=20 > + >=20 > + movdqa xmm4,XMMWORD[96+r10] >=20 > +DB 102,15,56,0,226 >=20 > + pxor xmm4,xmm0 >=20 > + movdqa xmm0,XMMWORD[112+r10] >=20 > + movdqa xmm2,XMMWORD[((-352))+r11] >=20 > +DB 102,15,56,0,195 >=20 > + pxor xmm0,xmm4 >=20 > +DB 102,15,56,0,194 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_schedule_core: >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + call _vpaes_preheat >=20 > + movdqa xmm8,XMMWORD[$L$k_rcon] >=20 > + movdqu xmm0,XMMWORD[rdi] >=20 > + >=20 > + >=20 > + movdqa xmm3,xmm0 >=20 > + lea r11,[$L$k_ipt] >=20 > + call _vpaes_schedule_transform >=20 > + movdqa xmm7,xmm0 >=20 > + >=20 > + lea r10,[$L$k_sr] >=20 > + test rcx,rcx >=20 > + jnz NEAR $L$schedule_am_decrypting >=20 > + >=20 > + >=20 > + movdqu XMMWORD[rdx],xmm0 >=20 > + jmp NEAR $L$schedule_go >=20 > + >=20 > +$L$schedule_am_decrypting: >=20 > + >=20 > + movdqa xmm1,XMMWORD[r10*1+r8] >=20 > +DB 102,15,56,0,217 >=20 > + movdqu XMMWORD[rdx],xmm3 >=20 > + xor r8,0x30 >=20 > + >=20 > +$L$schedule_go: >=20 > + cmp esi,192 >=20 > + ja NEAR $L$schedule_256 >=20 > + je NEAR $L$schedule_192 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +$L$schedule_128: >=20 > + mov esi,10 >=20 > + >=20 > +$L$oop_schedule_128: >=20 > + call _vpaes_schedule_round >=20 > + dec rsi >=20 > + jz NEAR $L$schedule_mangle_last >=20 > + call _vpaes_schedule_mangle >=20 > + jmp NEAR $L$oop_schedule_128 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +$L$schedule_192: >=20 > + movdqu xmm0,XMMWORD[8+rdi] >=20 > + call _vpaes_schedule_transform >=20 > + movdqa xmm6,xmm0 >=20 > + pxor xmm4,xmm4 >=20 > + movhlps xmm6,xmm4 >=20 > + mov esi,4 >=20 > + >=20 > +$L$oop_schedule_192: >=20 > + call _vpaes_schedule_round >=20 > +DB 102,15,58,15,198,8 >=20 > + call _vpaes_schedule_mangle >=20 > + call _vpaes_schedule_192_smear >=20 > + call _vpaes_schedule_mangle >=20 > + call _vpaes_schedule_round >=20 > + dec rsi >=20 > + jz NEAR $L$schedule_mangle_last >=20 > + call _vpaes_schedule_mangle >=20 > + call _vpaes_schedule_192_smear >=20 > + jmp NEAR $L$oop_schedule_192 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +$L$schedule_256: >=20 > + movdqu xmm0,XMMWORD[16+rdi] >=20 > + call _vpaes_schedule_transform >=20 > + mov esi,7 >=20 > + >=20 > +$L$oop_schedule_256: >=20 > + call _vpaes_schedule_mangle >=20 > + movdqa xmm6,xmm0 >=20 > + >=20 > + >=20 > + call _vpaes_schedule_round >=20 > + dec rsi >=20 > + jz NEAR $L$schedule_mangle_last >=20 > + call _vpaes_schedule_mangle >=20 > + >=20 > + >=20 > + pshufd xmm0,xmm0,0xFF >=20 > + movdqa xmm5,xmm7 >=20 > + movdqa xmm7,xmm6 >=20 > + call _vpaes_schedule_low_round >=20 > + movdqa xmm7,xmm5 >=20 > + >=20 > + jmp NEAR $L$oop_schedule_256 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +$L$schedule_mangle_last: >=20 > + >=20 > + lea r11,[$L$k_deskew] >=20 > + test rcx,rcx >=20 > + jnz NEAR $L$schedule_mangle_last_dec >=20 > + >=20 > + >=20 > + movdqa xmm1,XMMWORD[r10*1+r8] >=20 > +DB 102,15,56,0,193 >=20 > + lea r11,[$L$k_opt] >=20 > + add rdx,32 >=20 > + >=20 > +$L$schedule_mangle_last_dec: >=20 > + add rdx,-16 >=20 > + pxor xmm0,XMMWORD[$L$k_s63] >=20 > + call _vpaes_schedule_transform >=20 > + movdqu XMMWORD[rdx],xmm0 >=20 > + >=20 > + >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + pxor xmm6,xmm6 >=20 > + pxor xmm7,xmm7 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_schedule_192_smear: >=20 > + >=20 > + pshufd xmm1,xmm6,0x80 >=20 > + pshufd xmm0,xmm7,0xFE >=20 > + pxor xmm6,xmm1 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm6,xmm0 >=20 > + movdqa xmm0,xmm6 >=20 > + movhlps xmm6,xmm1 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_schedule_round: >=20 > + >=20 > + >=20 > + pxor xmm1,xmm1 >=20 > +DB 102,65,15,58,15,200,15 >=20 > +DB 102,69,15,58,15,192,15 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + pshufd xmm0,xmm0,0xFF >=20 > +DB 102,15,58,15,192,1 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +_vpaes_schedule_low_round: >=20 > + >=20 > + movdqa xmm1,xmm7 >=20 > + pslldq xmm7,4 >=20 > + pxor xmm7,xmm1 >=20 > + movdqa xmm1,xmm7 >=20 > + pslldq xmm7,8 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm7,XMMWORD[$L$k_s63] >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + pandn xmm1,xmm0 >=20 > + psrld xmm1,4 >=20 > + pand xmm0,xmm9 >=20 > + movdqa xmm2,xmm11 >=20 > +DB 102,15,56,0,208 >=20 > + pxor xmm0,xmm1 >=20 > + movdqa xmm3,xmm10 >=20 > +DB 102,15,56,0,217 >=20 > + pxor xmm3,xmm2 >=20 > + movdqa xmm4,xmm10 >=20 > +DB 102,15,56,0,224 >=20 > + pxor xmm4,xmm2 >=20 > + movdqa xmm2,xmm10 >=20 > +DB 102,15,56,0,211 >=20 > + pxor xmm2,xmm0 >=20 > + movdqa xmm3,xmm10 >=20 > +DB 102,15,56,0,220 >=20 > + pxor xmm3,xmm1 >=20 > + movdqa xmm4,xmm13 >=20 > +DB 102,15,56,0,226 >=20 > + movdqa xmm0,xmm12 >=20 > +DB 102,15,56,0,195 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + >=20 > + pxor xmm0,xmm7 >=20 > + movdqa xmm7,xmm0 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_schedule_transform: >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + pandn xmm1,xmm0 >=20 > + psrld xmm1,4 >=20 > + pand xmm0,xmm9 >=20 > + movdqa xmm2,XMMWORD[r11] >=20 > +DB 102,15,56,0,208 >=20 > + movdqa xmm0,XMMWORD[16+r11] >=20 > +DB 102,15,56,0,193 >=20 > + pxor xmm0,xmm2 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_schedule_mangle: >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm5,XMMWORD[$L$k_mc_forward] >=20 > + test rcx,rcx >=20 > + jnz NEAR $L$schedule_mangle_dec >=20 > + >=20 > + >=20 > + add rdx,16 >=20 > + pxor xmm4,XMMWORD[$L$k_s63] >=20 > +DB 102,15,56,0,229 >=20 > + movdqa xmm3,xmm4 >=20 > +DB 102,15,56,0,229 >=20 > + pxor xmm3,xmm4 >=20 > +DB 102,15,56,0,229 >=20 > + pxor xmm3,xmm4 >=20 > + >=20 > + jmp NEAR $L$schedule_mangle_both >=20 > +ALIGN 16 >=20 > +$L$schedule_mangle_dec: >=20 > + >=20 > + lea r11,[$L$k_dksd] >=20 > + movdqa xmm1,xmm9 >=20 > + pandn xmm1,xmm4 >=20 > + psrld xmm1,4 >=20 > + pand xmm4,xmm9 >=20 > + >=20 > + movdqa xmm2,XMMWORD[r11] >=20 > +DB 102,15,56,0,212 >=20 > + movdqa xmm3,XMMWORD[16+r11] >=20 > +DB 102,15,56,0,217 >=20 > + pxor xmm3,xmm2 >=20 > +DB 102,15,56,0,221 >=20 > + >=20 > + movdqa xmm2,XMMWORD[32+r11] >=20 > +DB 102,15,56,0,212 >=20 > + pxor xmm2,xmm3 >=20 > + movdqa xmm3,XMMWORD[48+r11] >=20 > +DB 102,15,56,0,217 >=20 > + pxor xmm3,xmm2 >=20 > +DB 102,15,56,0,221 >=20 > + >=20 > + movdqa xmm2,XMMWORD[64+r11] >=20 > +DB 102,15,56,0,212 >=20 > + pxor xmm2,xmm3 >=20 > + movdqa xmm3,XMMWORD[80+r11] >=20 > +DB 102,15,56,0,217 >=20 > + pxor xmm3,xmm2 >=20 > +DB 102,15,56,0,221 >=20 > + >=20 > + movdqa xmm2,XMMWORD[96+r11] >=20 > +DB 102,15,56,0,212 >=20 > + pxor xmm2,xmm3 >=20 > + movdqa xmm3,XMMWORD[112+r11] >=20 > +DB 102,15,56,0,217 >=20 > + pxor xmm3,xmm2 >=20 > + >=20 > + add rdx,-16 >=20 > + >=20 > +$L$schedule_mangle_both: >=20 > + movdqa xmm1,XMMWORD[r10*1+r8] >=20 > +DB 102,15,56,0,217 >=20 > + add r8,-16 >=20 > + and r8,0x30 >=20 > + movdqu XMMWORD[rdx],xmm3 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +global vpaes_set_encrypt_key >=20 > + >=20 > +ALIGN 16 >=20 > +vpaes_set_encrypt_key: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_vpaes_set_encrypt_key: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-184))+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm6 >=20 > + movaps XMMWORD[32+rsp],xmm7 >=20 > + movaps XMMWORD[48+rsp],xmm8 >=20 > + movaps XMMWORD[64+rsp],xmm9 >=20 > + movaps XMMWORD[80+rsp],xmm10 >=20 > + movaps XMMWORD[96+rsp],xmm11 >=20 > + movaps XMMWORD[112+rsp],xmm12 >=20 > + movaps XMMWORD[128+rsp],xmm13 >=20 > + movaps XMMWORD[144+rsp],xmm14 >=20 > + movaps XMMWORD[160+rsp],xmm15 >=20 > +$L$enc_key_body: >=20 > + mov eax,esi >=20 > + shr eax,5 >=20 > + add eax,5 >=20 > + mov DWORD[240+rdx],eax >=20 > + >=20 > + mov ecx,0 >=20 > + mov r8d,0x30 >=20 > + call _vpaes_schedule_core >=20 > + movaps xmm6,XMMWORD[16+rsp] >=20 > + movaps xmm7,XMMWORD[32+rsp] >=20 > + movaps xmm8,XMMWORD[48+rsp] >=20 > + movaps xmm9,XMMWORD[64+rsp] >=20 > + movaps xmm10,XMMWORD[80+rsp] >=20 > + movaps xmm11,XMMWORD[96+rsp] >=20 > + movaps xmm12,XMMWORD[112+rsp] >=20 > + movaps xmm13,XMMWORD[128+rsp] >=20 > + movaps xmm14,XMMWORD[144+rsp] >=20 > + movaps xmm15,XMMWORD[160+rsp] >=20 > + lea rsp,[184+rsp] >=20 > +$L$enc_key_epilogue: >=20 > + xor eax,eax >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_vpaes_set_encrypt_key: >=20 > + >=20 > +global vpaes_set_decrypt_key >=20 > + >=20 > +ALIGN 16 >=20 > +vpaes_set_decrypt_key: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_vpaes_set_decrypt_key: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-184))+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm6 >=20 > + movaps XMMWORD[32+rsp],xmm7 >=20 > + movaps XMMWORD[48+rsp],xmm8 >=20 > + movaps XMMWORD[64+rsp],xmm9 >=20 > + movaps XMMWORD[80+rsp],xmm10 >=20 > + movaps XMMWORD[96+rsp],xmm11 >=20 > + movaps XMMWORD[112+rsp],xmm12 >=20 > + movaps XMMWORD[128+rsp],xmm13 >=20 > + movaps XMMWORD[144+rsp],xmm14 >=20 > + movaps XMMWORD[160+rsp],xmm15 >=20 > +$L$dec_key_body: >=20 > + mov eax,esi >=20 > + shr eax,5 >=20 > + add eax,5 >=20 > + mov DWORD[240+rdx],eax >=20 > + shl eax,4 >=20 > + lea rdx,[16+rax*1+rdx] >=20 > + >=20 > + mov ecx,1 >=20 > + mov r8d,esi >=20 > + shr r8d,1 >=20 > + and r8d,32 >=20 > + xor r8d,32 >=20 > + call _vpaes_schedule_core >=20 > + movaps xmm6,XMMWORD[16+rsp] >=20 > + movaps xmm7,XMMWORD[32+rsp] >=20 > + movaps xmm8,XMMWORD[48+rsp] >=20 > + movaps xmm9,XMMWORD[64+rsp] >=20 > + movaps xmm10,XMMWORD[80+rsp] >=20 > + movaps xmm11,XMMWORD[96+rsp] >=20 > + movaps xmm12,XMMWORD[112+rsp] >=20 > + movaps xmm13,XMMWORD[128+rsp] >=20 > + movaps xmm14,XMMWORD[144+rsp] >=20 > + movaps xmm15,XMMWORD[160+rsp] >=20 > + lea rsp,[184+rsp] >=20 > +$L$dec_key_epilogue: >=20 > + xor eax,eax >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_vpaes_set_decrypt_key: >=20 > + >=20 > +global vpaes_encrypt >=20 > + >=20 > +ALIGN 16 >=20 > +vpaes_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_vpaes_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-184))+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm6 >=20 > + movaps XMMWORD[32+rsp],xmm7 >=20 > + movaps XMMWORD[48+rsp],xmm8 >=20 > + movaps XMMWORD[64+rsp],xmm9 >=20 > + movaps XMMWORD[80+rsp],xmm10 >=20 > + movaps XMMWORD[96+rsp],xmm11 >=20 > + movaps XMMWORD[112+rsp],xmm12 >=20 > + movaps XMMWORD[128+rsp],xmm13 >=20 > + movaps XMMWORD[144+rsp],xmm14 >=20 > + movaps XMMWORD[160+rsp],xmm15 >=20 > +$L$enc_body: >=20 > + movdqu xmm0,XMMWORD[rdi] >=20 > + call _vpaes_preheat >=20 > + call _vpaes_encrypt_core >=20 > + movdqu XMMWORD[rsi],xmm0 >=20 > + movaps xmm6,XMMWORD[16+rsp] >=20 > + movaps xmm7,XMMWORD[32+rsp] >=20 > + movaps xmm8,XMMWORD[48+rsp] >=20 > + movaps xmm9,XMMWORD[64+rsp] >=20 > + movaps xmm10,XMMWORD[80+rsp] >=20 > + movaps xmm11,XMMWORD[96+rsp] >=20 > + movaps xmm12,XMMWORD[112+rsp] >=20 > + movaps xmm13,XMMWORD[128+rsp] >=20 > + movaps xmm14,XMMWORD[144+rsp] >=20 > + movaps xmm15,XMMWORD[160+rsp] >=20 > + lea rsp,[184+rsp] >=20 > +$L$enc_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_vpaes_encrypt: >=20 > + >=20 > +global vpaes_decrypt >=20 > + >=20 > +ALIGN 16 >=20 > +vpaes_decrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_vpaes_decrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + lea rsp,[((-184))+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm6 >=20 > + movaps XMMWORD[32+rsp],xmm7 >=20 > + movaps XMMWORD[48+rsp],xmm8 >=20 > + movaps XMMWORD[64+rsp],xmm9 >=20 > + movaps XMMWORD[80+rsp],xmm10 >=20 > + movaps XMMWORD[96+rsp],xmm11 >=20 > + movaps XMMWORD[112+rsp],xmm12 >=20 > + movaps XMMWORD[128+rsp],xmm13 >=20 > + movaps XMMWORD[144+rsp],xmm14 >=20 > + movaps XMMWORD[160+rsp],xmm15 >=20 > +$L$dec_body: >=20 > + movdqu xmm0,XMMWORD[rdi] >=20 > + call _vpaes_preheat >=20 > + call _vpaes_decrypt_core >=20 > + movdqu XMMWORD[rsi],xmm0 >=20 > + movaps xmm6,XMMWORD[16+rsp] >=20 > + movaps xmm7,XMMWORD[32+rsp] >=20 > + movaps xmm8,XMMWORD[48+rsp] >=20 > + movaps xmm9,XMMWORD[64+rsp] >=20 > + movaps xmm10,XMMWORD[80+rsp] >=20 > + movaps xmm11,XMMWORD[96+rsp] >=20 > + movaps xmm12,XMMWORD[112+rsp] >=20 > + movaps xmm13,XMMWORD[128+rsp] >=20 > + movaps xmm14,XMMWORD[144+rsp] >=20 > + movaps xmm15,XMMWORD[160+rsp] >=20 > + lea rsp,[184+rsp] >=20 > +$L$dec_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_vpaes_decrypt: >=20 > +global vpaes_cbc_encrypt >=20 > + >=20 > +ALIGN 16 >=20 > +vpaes_cbc_encrypt: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_vpaes_cbc_encrypt: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + mov r8,QWORD[40+rsp] >=20 > + mov r9,QWORD[48+rsp] >=20 > + >=20 > + >=20 > + >=20 > + xchg rdx,rcx >=20 > + sub rcx,16 >=20 > + jc NEAR $L$cbc_abort >=20 > + lea rsp,[((-184))+rsp] >=20 > + movaps XMMWORD[16+rsp],xmm6 >=20 > + movaps XMMWORD[32+rsp],xmm7 >=20 > + movaps XMMWORD[48+rsp],xmm8 >=20 > + movaps XMMWORD[64+rsp],xmm9 >=20 > + movaps XMMWORD[80+rsp],xmm10 >=20 > + movaps XMMWORD[96+rsp],xmm11 >=20 > + movaps XMMWORD[112+rsp],xmm12 >=20 > + movaps XMMWORD[128+rsp],xmm13 >=20 > + movaps XMMWORD[144+rsp],xmm14 >=20 > + movaps XMMWORD[160+rsp],xmm15 >=20 > +$L$cbc_body: >=20 > + movdqu xmm6,XMMWORD[r8] >=20 > + sub rsi,rdi >=20 > + call _vpaes_preheat >=20 > + cmp r9d,0 >=20 > + je NEAR $L$cbc_dec_loop >=20 > + jmp NEAR $L$cbc_enc_loop >=20 > +ALIGN 16 >=20 > +$L$cbc_enc_loop: >=20 > + movdqu xmm0,XMMWORD[rdi] >=20 > + pxor xmm0,xmm6 >=20 > + call _vpaes_encrypt_core >=20 > + movdqa xmm6,xmm0 >=20 > + movdqu XMMWORD[rdi*1+rsi],xmm0 >=20 > + lea rdi,[16+rdi] >=20 > + sub rcx,16 >=20 > + jnc NEAR $L$cbc_enc_loop >=20 > + jmp NEAR $L$cbc_done >=20 > +ALIGN 16 >=20 > +$L$cbc_dec_loop: >=20 > + movdqu xmm0,XMMWORD[rdi] >=20 > + movdqa xmm7,xmm0 >=20 > + call _vpaes_decrypt_core >=20 > + pxor xmm0,xmm6 >=20 > + movdqa xmm6,xmm7 >=20 > + movdqu XMMWORD[rdi*1+rsi],xmm0 >=20 > + lea rdi,[16+rdi] >=20 > + sub rcx,16 >=20 > + jnc NEAR $L$cbc_dec_loop >=20 > +$L$cbc_done: >=20 > + movdqu XMMWORD[r8],xmm6 >=20 > + movaps xmm6,XMMWORD[16+rsp] >=20 > + movaps xmm7,XMMWORD[32+rsp] >=20 > + movaps xmm8,XMMWORD[48+rsp] >=20 > + movaps xmm9,XMMWORD[64+rsp] >=20 > + movaps xmm10,XMMWORD[80+rsp] >=20 > + movaps xmm11,XMMWORD[96+rsp] >=20 > + movaps xmm12,XMMWORD[112+rsp] >=20 > + movaps xmm13,XMMWORD[128+rsp] >=20 > + movaps xmm14,XMMWORD[144+rsp] >=20 > + movaps xmm15,XMMWORD[160+rsp] >=20 > + lea rsp,[184+rsp] >=20 > +$L$cbc_epilogue: >=20 > +$L$cbc_abort: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_vpaes_cbc_encrypt: >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +_vpaes_preheat: >=20 > + >=20 > + lea r10,[$L$k_s0F] >=20 > + movdqa xmm10,XMMWORD[((-32))+r10] >=20 > + movdqa xmm11,XMMWORD[((-16))+r10] >=20 > + movdqa xmm9,XMMWORD[r10] >=20 > + movdqa xmm13,XMMWORD[48+r10] >=20 > + movdqa xmm12,XMMWORD[64+r10] >=20 > + movdqa xmm15,XMMWORD[80+r10] >=20 > + movdqa xmm14,XMMWORD[96+r10] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +ALIGN 64 >=20 > +_vpaes_consts: >=20 > +$L$k_inv: >=20 > + DQ 0x0E05060F0D080180,0x040703090A0B0C02 >=20 > + DQ 0x01040A060F0B0780,0x030D0E0C02050809 >=20 > + >=20 > +$L$k_s0F: >=20 > + DQ 0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F >=20 > + >=20 > +$L$k_ipt: >=20 > + DQ 0xC2B2E8985A2A7000,0xCABAE09052227808 >=20 > + DQ 0x4C01307D317C4D00,0xCD80B1FCB0FDCC81 >=20 > + >=20 > +$L$k_sb1: >=20 > + DQ 0xB19BE18FCB503E00,0xA5DF7A6E142AF544 >=20 > + DQ 0x3618D415FAE22300,0x3BF7CCC10D2ED9EF >=20 > +$L$k_sb2: >=20 > + DQ 0xE27A93C60B712400,0x5EB7E955BC982FCD >=20 > + DQ 0x69EB88400AE12900,0xC2A163C8AB82234A >=20 > +$L$k_sbo: >=20 > + DQ 0xD0D26D176FBDC700,0x15AABF7AC502A878 >=20 > + DQ 0xCFE474A55FBB6A00,0x8E1E90D1412B35FA >=20 > + >=20 > +$L$k_mc_forward: >=20 > + DQ 0x0407060500030201,0x0C0F0E0D080B0A09 >=20 > + DQ 0x080B0A0904070605,0x000302010C0F0E0D >=20 > + DQ 0x0C0F0E0D080B0A09,0x0407060500030201 >=20 > + DQ 0x000302010C0F0E0D,0x080B0A0904070605 >=20 > + >=20 > +$L$k_mc_backward: >=20 > + DQ 0x0605040702010003,0x0E0D0C0F0A09080B >=20 > + DQ 0x020100030E0D0C0F,0x0A09080B06050407 >=20 > + DQ 0x0E0D0C0F0A09080B,0x0605040702010003 >=20 > + DQ 0x0A09080B06050407,0x020100030E0D0C0F >=20 > + >=20 > +$L$k_sr: >=20 > + DQ 0x0706050403020100,0x0F0E0D0C0B0A0908 >=20 > + DQ 0x030E09040F0A0500,0x0B06010C07020D08 >=20 > + DQ 0x0F060D040B020900,0x070E050C030A0108 >=20 > + DQ 0x0B0E0104070A0D00,0x0306090C0F020508 >=20 > + >=20 > +$L$k_rcon: >=20 > + DQ 0x1F8391B9AF9DEEB6,0x702A98084D7C7D81 >=20 > + >=20 > +$L$k_s63: >=20 > + DQ 0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B >=20 > + >=20 > +$L$k_opt: >=20 > + DQ 0xFF9F4929D6B66000,0xF7974121DEBE6808 >=20 > + DQ 0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0 >=20 > + >=20 > +$L$k_deskew: >=20 > + DQ 0x07E4A34047A4E300,0x1DFEB95A5DBEF91A >=20 > + DQ 0x5F36B5DC83EA6900,0x2841C2ABF49D1E77 >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +$L$k_dksd: >=20 > + DQ 0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9 >=20 > + DQ 0x41C277F4B5368300,0x5FDC69EAAB289D1E >=20 > +$L$k_dksb: >=20 > + DQ 0x9A4FCA1F8550D500,0x03D653861CC94C99 >=20 > + DQ 0x115BEDA7B6FC4A00,0xD993256F7E3482C8 >=20 > +$L$k_dkse: >=20 > + DQ 0xD5031CCA1FC9D600,0x53859A4C994F5086 >=20 > + DQ 0xA23196054FDC7BE8,0xCD5EF96A20B31487 >=20 > +$L$k_dks9: >=20 > + DQ 0xB6116FC87ED9A700,0x4AED933482255BFC >=20 > + DQ 0x4576516227143300,0x8BB89FACE9DAFDCE >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > +$L$k_dipt: >=20 > + DQ 0x0F505B040B545F00,0x154A411E114E451A >=20 > + DQ 0x86E383E660056500,0x12771772F491F194 >=20 > + >=20 > +$L$k_dsb9: >=20 > + DQ 0x851C03539A86D600,0xCAD51F504F994CC9 >=20 > + DQ 0xC03B1789ECD74900,0x725E2C9EB2FBA565 >=20 > +$L$k_dsbd: >=20 > + DQ 0x7D57CCDFE6B1A200,0xF56E9B13882A4439 >=20 > + DQ 0x3CE2FAF724C6CB00,0x2931180D15DEEFD3 >=20 > +$L$k_dsbb: >=20 > + DQ 0xD022649296B44200,0x602646F6B0F2D404 >=20 > + DQ 0xC19498A6CD596700,0xF3FF0C3E3255AA6B >=20 > +$L$k_dsbe: >=20 > + DQ 0x46F2929626D4D000,0x2242600464B4F6B0 >=20 > + DQ 0x0C55A6CDFFAAC100,0x9467F36B98593E32 >=20 > +$L$k_dsbo: >=20 > + DQ 0x1387EA537EF94000,0xC7AA6DB9D4943E2D >=20 > + DQ 0x12D7560F93441D00,0xCA4B8159D8C58E9C >=20 > +DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 >=20 > +DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 >=20 > +DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 >=20 > +DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 >=20 > +DB 85,110,105,118,101,114,115,105,116,121,41,0 >=20 > +ALIGN 64 >=20 > + >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + >=20 > + lea rsi,[16+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + lea rax,[184+rax] >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase >=20 > + DD $L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase >=20 > + DD $L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase >=20 > + DD $L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase >=20 > + DD $L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_vpaes_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_vpaes_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_vpaes_encrypt wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_vpaes_decrypt wrt ..imagebase >=20 > + DD $L$SEH_end_vpaes_decrypt wrt ..imagebase >=20 > + DD $L$SEH_info_vpaes_decrypt wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase >=20 > + DD $L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase >=20 > + >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_vpaes_set_encrypt_key: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_vpaes_set_decrypt_key: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_vpaes_encrypt: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imageb= ase >=20 > +$L$SEH_info_vpaes_decrypt: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imageb= ase >=20 > +$L$SEH_info_vpaes_cbc_encrypt: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imageb= ase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash- > x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash- > x86_64.nasm > new file mode 100644 > index 0000000000..60f283d5fb > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm > @@ -0,0 +1,1569 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/modes/asm/ghash-x86_64.pl >=20 > +; >=20 > +; Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > + >=20 > +global gcm_gmult_4bit >=20 > + >=20 > +ALIGN 16 >=20 > +gcm_gmult_4bit: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_gcm_gmult_4bit: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + >=20 > + >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + sub rsp,280 >=20 > + >=20 > +$L$gmult_prologue: >=20 > + >=20 > + movzx r8,BYTE[15+rdi] >=20 > + lea r11,[$L$rem_4bit] >=20 > + xor rax,rax >=20 > + xor rbx,rbx >=20 > + mov al,r8b >=20 > + mov bl,r8b >=20 > + shl al,4 >=20 > + mov rcx,14 >=20 > + mov r8,QWORD[8+rax*1+rsi] >=20 > + mov r9,QWORD[rax*1+rsi] >=20 > + and bl,0xf0 >=20 > + mov rdx,r8 >=20 > + jmp NEAR $L$oop1 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop1: >=20 > + shr r8,4 >=20 > + and rdx,0xf >=20 > + mov r10,r9 >=20 > + mov al,BYTE[rcx*1+rdi] >=20 > + shr r9,4 >=20 > + xor r8,QWORD[8+rbx*1+rsi] >=20 > + shl r10,60 >=20 > + xor r9,QWORD[rbx*1+rsi] >=20 > + mov bl,al >=20 > + xor r9,QWORD[rdx*8+r11] >=20 > + mov rdx,r8 >=20 > + shl al,4 >=20 > + xor r8,r10 >=20 > + dec rcx >=20 > + js NEAR $L$break1 >=20 > + >=20 > + shr r8,4 >=20 > + and rdx,0xf >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + shl r10,60 >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + and bl,0xf0 >=20 > + xor r9,QWORD[rdx*8+r11] >=20 > + mov rdx,r8 >=20 > + xor r8,r10 >=20 > + jmp NEAR $L$oop1 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$break1: >=20 > + shr r8,4 >=20 > + and rdx,0xf >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + shl r10,60 >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + and bl,0xf0 >=20 > + xor r9,QWORD[rdx*8+r11] >=20 > + mov rdx,r8 >=20 > + xor r8,r10 >=20 > + >=20 > + shr r8,4 >=20 > + and rdx,0xf >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + xor r8,QWORD[8+rbx*1+rsi] >=20 > + shl r10,60 >=20 > + xor r9,QWORD[rbx*1+rsi] >=20 > + xor r8,r10 >=20 > + xor r9,QWORD[rdx*8+r11] >=20 > + >=20 > + bswap r8 >=20 > + bswap r9 >=20 > + mov QWORD[8+rdi],r8 >=20 > + mov QWORD[rdi],r9 >=20 > + >=20 > + lea rsi,[((280+48))+rsp] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rsi] >=20 > + >=20 > + lea rsp,[rsi] >=20 > + >=20 > +$L$gmult_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_gcm_gmult_4bit: >=20 > +global gcm_ghash_4bit >=20 > + >=20 > +ALIGN 16 >=20 > +gcm_ghash_4bit: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_gcm_ghash_4bit: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + mov rcx,r9 >=20 > + >=20 > + >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + sub rsp,280 >=20 > + >=20 > +$L$ghash_prologue: >=20 > + mov r14,rdx >=20 > + mov r15,rcx >=20 > + sub rsi,-128 >=20 > + lea rbp,[((16+128))+rsp] >=20 > + xor edx,edx >=20 > + mov r8,QWORD[((0+0-128))+rsi] >=20 > + mov rax,QWORD[((0+8-128))+rsi] >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov r9,QWORD[((16+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov rbx,QWORD[((16+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[rbp],r8 >=20 > + mov r8,QWORD[((32+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((0-128))+rbp],rax >=20 > + mov rax,QWORD[((32+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[1+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[8+rbp],r9 >=20 > + mov r9,QWORD[((48+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((8-128))+rbp],rbx >=20 > + mov rbx,QWORD[((48+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[2+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[16+rbp],r8 >=20 > + mov r8,QWORD[((64+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((16-128))+rbp],rax >=20 > + mov rax,QWORD[((64+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[3+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[24+rbp],r9 >=20 > + mov r9,QWORD[((80+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((24-128))+rbp],rbx >=20 > + mov rbx,QWORD[((80+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[4+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[32+rbp],r8 >=20 > + mov r8,QWORD[((96+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((32-128))+rbp],rax >=20 > + mov rax,QWORD[((96+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[5+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[40+rbp],r9 >=20 > + mov r9,QWORD[((112+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((40-128))+rbp],rbx >=20 > + mov rbx,QWORD[((112+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[6+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[48+rbp],r8 >=20 > + mov r8,QWORD[((128+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((48-128))+rbp],rax >=20 > + mov rax,QWORD[((128+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[7+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[56+rbp],r9 >=20 > + mov r9,QWORD[((144+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((56-128))+rbp],rbx >=20 > + mov rbx,QWORD[((144+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[8+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[64+rbp],r8 >=20 > + mov r8,QWORD[((160+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((64-128))+rbp],rax >=20 > + mov rax,QWORD[((160+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[9+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[72+rbp],r9 >=20 > + mov r9,QWORD[((176+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((72-128))+rbp],rbx >=20 > + mov rbx,QWORD[((176+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[10+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[80+rbp],r8 >=20 > + mov r8,QWORD[((192+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((80-128))+rbp],rax >=20 > + mov rax,QWORD[((192+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[11+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[88+rbp],r9 >=20 > + mov r9,QWORD[((208+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((88-128))+rbp],rbx >=20 > + mov rbx,QWORD[((208+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[12+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[96+rbp],r8 >=20 > + mov r8,QWORD[((224+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((96-128))+rbp],rax >=20 > + mov rax,QWORD[((224+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[13+rsp],dl >=20 > + or rbx,r10 >=20 > + mov dl,al >=20 > + shr rax,4 >=20 > + mov r10,r8 >=20 > + shr r8,4 >=20 > + mov QWORD[104+rbp],r9 >=20 > + mov r9,QWORD[((240+0-128))+rsi] >=20 > + shl dl,4 >=20 > + mov QWORD[((104-128))+rbp],rbx >=20 > + mov rbx,QWORD[((240+8-128))+rsi] >=20 > + shl r10,60 >=20 > + mov BYTE[14+rsp],dl >=20 > + or rax,r10 >=20 > + mov dl,bl >=20 > + shr rbx,4 >=20 > + mov r10,r9 >=20 > + shr r9,4 >=20 > + mov QWORD[112+rbp],r8 >=20 > + shl dl,4 >=20 > + mov QWORD[((112-128))+rbp],rax >=20 > + shl r10,60 >=20 > + mov BYTE[15+rsp],dl >=20 > + or rbx,r10 >=20 > + mov QWORD[120+rbp],r9 >=20 > + mov QWORD[((120-128))+rbp],rbx >=20 > + add rsi,-128 >=20 > + mov r8,QWORD[8+rdi] >=20 > + mov r9,QWORD[rdi] >=20 > + add r15,r14 >=20 > + lea r11,[$L$rem_8bit] >=20 > + jmp NEAR $L$outer_loop >=20 > +ALIGN 16 >=20 > +$L$outer_loop: >=20 > + xor r9,QWORD[r14] >=20 > + mov rdx,QWORD[8+r14] >=20 > + lea r14,[16+r14] >=20 > + xor rdx,r8 >=20 > + mov QWORD[rdi],r9 >=20 > + mov QWORD[8+rdi],rdx >=20 > + shr rdx,32 >=20 > + xor rax,rax >=20 > + rol edx,8 >=20 > + mov al,dl >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + shr ebx,4 >=20 > + rol edx,8 >=20 > + mov r8,QWORD[8+rax*1+rsi] >=20 > + mov r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + mov edx,DWORD[8+rdi] >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + mov edx,DWORD[4+rdi] >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + mov edx,DWORD[rdi] >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + shr ecx,4 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + movzx ebx,dl >=20 > + shl al,4 >=20 > + movzx r13,BYTE[rcx*1+rsp] >=20 > + shr ebx,4 >=20 > + shl r12,48 >=20 > + xor r13,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r12 >=20 > + shr r8,8 >=20 > + movzx r13,r13b >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rcx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rcx*8+rbp] >=20 > + rol edx,8 >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + mov al,dl >=20 > + xor r8,r10 >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + movzx ecx,dl >=20 > + shl al,4 >=20 > + movzx r12,BYTE[rbx*1+rsp] >=20 > + and ecx,240 >=20 > + shl r13,48 >=20 > + xor r12,r8 >=20 > + mov r10,r9 >=20 > + xor r9,r13 >=20 > + shr r8,8 >=20 > + movzx r12,r12b >=20 > + mov edx,DWORD[((-4))+rdi] >=20 > + shr r9,8 >=20 > + xor r8,QWORD[((-128))+rbx*8+rbp] >=20 > + shl r10,56 >=20 > + xor r9,QWORD[rbx*8+rbp] >=20 > + movzx r12,WORD[r12*2+r11] >=20 > + xor r8,QWORD[8+rax*1+rsi] >=20 > + xor r9,QWORD[rax*1+rsi] >=20 > + shl r12,48 >=20 > + xor r8,r10 >=20 > + xor r9,r12 >=20 > + movzx r13,r8b >=20 > + shr r8,4 >=20 > + mov r10,r9 >=20 > + shl r13b,4 >=20 > + shr r9,4 >=20 > + xor r8,QWORD[8+rcx*1+rsi] >=20 > + movzx r13,WORD[r13*2+r11] >=20 > + shl r10,60 >=20 > + xor r9,QWORD[rcx*1+rsi] >=20 > + xor r8,r10 >=20 > + shl r13,48 >=20 > + bswap r8 >=20 > + xor r9,r13 >=20 > + bswap r9 >=20 > + cmp r14,r15 >=20 > + jb NEAR $L$outer_loop >=20 > + mov QWORD[8+rdi],r8 >=20 > + mov QWORD[rdi],r9 >=20 > + >=20 > + lea rsi,[((280+48))+rsp] >=20 > + >=20 > + mov r15,QWORD[((-48))+rsi] >=20 > + >=20 > + mov r14,QWORD[((-40))+rsi] >=20 > + >=20 > + mov r13,QWORD[((-32))+rsi] >=20 > + >=20 > + mov r12,QWORD[((-24))+rsi] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rsi] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rsi] >=20 > + >=20 > + lea rsp,[rsi] >=20 > + >=20 > +$L$ghash_epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_gcm_ghash_4bit: >=20 > +global gcm_init_clmul >=20 > + >=20 > +ALIGN 16 >=20 > +gcm_init_clmul: >=20 > + >=20 > +$L$_init_clmul: >=20 > +$L$SEH_begin_gcm_init_clmul: >=20 > + >=20 > +DB 0x48,0x83,0xec,0x18 >=20 > +DB 0x0f,0x29,0x34,0x24 >=20 > + movdqu xmm2,XMMWORD[rdx] >=20 > + pshufd xmm2,xmm2,78 >=20 > + >=20 > + >=20 > + pshufd xmm4,xmm2,255 >=20 > + movdqa xmm3,xmm2 >=20 > + psllq xmm2,1 >=20 > + pxor xmm5,xmm5 >=20 > + psrlq xmm3,63 >=20 > + pcmpgtd xmm5,xmm4 >=20 > + pslldq xmm3,8 >=20 > + por xmm2,xmm3 >=20 > + >=20 > + >=20 > + pand xmm5,XMMWORD[$L$0x1c2_polynomial] >=20 > + pxor xmm2,xmm5 >=20 > + >=20 > + >=20 > + pshufd xmm6,xmm2,78 >=20 > + movdqa xmm0,xmm2 >=20 > + pxor xmm6,xmm2 >=20 > + movdqa xmm1,xmm0 >=20 > + pshufd xmm3,xmm0,78 >=20 > + pxor xmm3,xmm0 >=20 > +DB 102,15,58,68,194,0 >=20 > +DB 102,15,58,68,202,17 >=20 > +DB 102,15,58,68,222,0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm3,xmm1 >=20 > + >=20 > + movdqa xmm4,xmm3 >=20 > + psrldq xmm3,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm3 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > + pshufd xmm3,xmm2,78 >=20 > + pshufd xmm4,xmm0,78 >=20 > + pxor xmm3,xmm2 >=20 > + movdqu XMMWORD[rcx],xmm2 >=20 > + pxor xmm4,xmm0 >=20 > + movdqu XMMWORD[16+rcx],xmm0 >=20 > +DB 102,15,58,15,227,8 >=20 > + movdqu XMMWORD[32+rcx],xmm4 >=20 > + movdqa xmm1,xmm0 >=20 > + pshufd xmm3,xmm0,78 >=20 > + pxor xmm3,xmm0 >=20 > +DB 102,15,58,68,194,0 >=20 > +DB 102,15,58,68,202,17 >=20 > +DB 102,15,58,68,222,0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm3,xmm1 >=20 > + >=20 > + movdqa xmm4,xmm3 >=20 > + psrldq xmm3,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm3 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > + movdqa xmm5,xmm0 >=20 > + movdqa xmm1,xmm0 >=20 > + pshufd xmm3,xmm0,78 >=20 > + pxor xmm3,xmm0 >=20 > +DB 102,15,58,68,194,0 >=20 > +DB 102,15,58,68,202,17 >=20 > +DB 102,15,58,68,222,0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm3,xmm1 >=20 > + >=20 > + movdqa xmm4,xmm3 >=20 > + psrldq xmm3,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm3 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > + pshufd xmm3,xmm5,78 >=20 > + pshufd xmm4,xmm0,78 >=20 > + pxor xmm3,xmm5 >=20 > + movdqu XMMWORD[48+rcx],xmm5 >=20 > + pxor xmm4,xmm0 >=20 > + movdqu XMMWORD[64+rcx],xmm0 >=20 > +DB 102,15,58,15,227,8 >=20 > + movdqu XMMWORD[80+rcx],xmm4 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + lea rsp,[24+rsp] >=20 > +$L$SEH_end_gcm_init_clmul: >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global gcm_gmult_clmul >=20 > + >=20 > +ALIGN 16 >=20 > +gcm_gmult_clmul: >=20 > + >=20 > +$L$_gmult_clmul: >=20 > + movdqu xmm0,XMMWORD[rcx] >=20 > + movdqa xmm5,XMMWORD[$L$bswap_mask] >=20 > + movdqu xmm2,XMMWORD[rdx] >=20 > + movdqu xmm4,XMMWORD[32+rdx] >=20 > +DB 102,15,56,0,197 >=20 > + movdqa xmm1,xmm0 >=20 > + pshufd xmm3,xmm0,78 >=20 > + pxor xmm3,xmm0 >=20 > +DB 102,15,58,68,194,0 >=20 > +DB 102,15,58,68,202,17 >=20 > +DB 102,15,58,68,220,0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm3,xmm1 >=20 > + >=20 > + movdqa xmm4,xmm3 >=20 > + psrldq xmm3,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm3 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > +DB 102,15,56,0,197 >=20 > + movdqu XMMWORD[rcx],xmm0 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global gcm_ghash_clmul >=20 > + >=20 > +ALIGN 32 >=20 > +gcm_ghash_clmul: >=20 > + >=20 > +$L$_ghash_clmul: >=20 > + lea rax,[((-136))+rsp] >=20 > +$L$SEH_begin_gcm_ghash_clmul: >=20 > + >=20 > +DB 0x48,0x8d,0x60,0xe0 >=20 > +DB 0x0f,0x29,0x70,0xe0 >=20 > +DB 0x0f,0x29,0x78,0xf0 >=20 > +DB 0x44,0x0f,0x29,0x00 >=20 > +DB 0x44,0x0f,0x29,0x48,0x10 >=20 > +DB 0x44,0x0f,0x29,0x50,0x20 >=20 > +DB 0x44,0x0f,0x29,0x58,0x30 >=20 > +DB 0x44,0x0f,0x29,0x60,0x40 >=20 > +DB 0x44,0x0f,0x29,0x68,0x50 >=20 > +DB 0x44,0x0f,0x29,0x70,0x60 >=20 > +DB 0x44,0x0f,0x29,0x78,0x70 >=20 > + movdqa xmm10,XMMWORD[$L$bswap_mask] >=20 > + >=20 > + movdqu xmm0,XMMWORD[rcx] >=20 > + movdqu xmm2,XMMWORD[rdx] >=20 > + movdqu xmm7,XMMWORD[32+rdx] >=20 > +DB 102,65,15,56,0,194 >=20 > + >=20 > + sub r9,0x10 >=20 > + jz NEAR $L$odd_tail >=20 > + >=20 > + movdqu xmm6,XMMWORD[16+rdx] >=20 > + mov eax,DWORD[((OPENSSL_ia32cap_P+4))] >=20 > + cmp r9,0x30 >=20 > + jb NEAR $L$skip4x >=20 > + >=20 > + and eax,71303168 >=20 > + cmp eax,4194304 >=20 > + je NEAR $L$skip4x >=20 > + >=20 > + sub r9,0x30 >=20 > + mov rax,0xA040608020C0E000 >=20 > + movdqu xmm14,XMMWORD[48+rdx] >=20 > + movdqu xmm15,XMMWORD[64+rdx] >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + movdqu xmm3,XMMWORD[48+r8] >=20 > + movdqu xmm11,XMMWORD[32+r8] >=20 > +DB 102,65,15,56,0,218 >=20 > +DB 102,69,15,56,0,218 >=20 > + movdqa xmm5,xmm3 >=20 > + pshufd xmm4,xmm3,78 >=20 > + pxor xmm4,xmm3 >=20 > +DB 102,15,58,68,218,0 >=20 > +DB 102,15,58,68,234,17 >=20 > +DB 102,15,58,68,231,0 >=20 > + >=20 > + movdqa xmm13,xmm11 >=20 > + pshufd xmm12,xmm11,78 >=20 > + pxor xmm12,xmm11 >=20 > +DB 102,68,15,58,68,222,0 >=20 > +DB 102,68,15,58,68,238,17 >=20 > +DB 102,68,15,58,68,231,16 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm5,xmm13 >=20 > + movups xmm7,XMMWORD[80+rdx] >=20 > + xorps xmm4,xmm12 >=20 > + >=20 > + movdqu xmm11,XMMWORD[16+r8] >=20 > + movdqu xmm8,XMMWORD[r8] >=20 > +DB 102,69,15,56,0,218 >=20 > +DB 102,69,15,56,0,194 >=20 > + movdqa xmm13,xmm11 >=20 > + pshufd xmm12,xmm11,78 >=20 > + pxor xmm0,xmm8 >=20 > + pxor xmm12,xmm11 >=20 > +DB 102,69,15,58,68,222,0 >=20 > + movdqa xmm1,xmm0 >=20 > + pshufd xmm8,xmm0,78 >=20 > + pxor xmm8,xmm0 >=20 > +DB 102,69,15,58,68,238,17 >=20 > +DB 102,68,15,58,68,231,0 >=20 > + xorps xmm3,xmm11 >=20 > + xorps xmm5,xmm13 >=20 > + >=20 > + lea r8,[64+r8] >=20 > + sub r9,0x40 >=20 > + jc NEAR $L$tail4x >=20 > + >=20 > + jmp NEAR $L$mod4_loop >=20 > +ALIGN 32 >=20 > +$L$mod4_loop: >=20 > +DB 102,65,15,58,68,199,0 >=20 > + xorps xmm4,xmm12 >=20 > + movdqu xmm11,XMMWORD[48+r8] >=20 > +DB 102,69,15,56,0,218 >=20 > +DB 102,65,15,58,68,207,17 >=20 > + xorps xmm0,xmm3 >=20 > + movdqu xmm3,XMMWORD[32+r8] >=20 > + movdqa xmm13,xmm11 >=20 > +DB 102,68,15,58,68,199,16 >=20 > + pshufd xmm12,xmm11,78 >=20 > + xorps xmm1,xmm5 >=20 > + pxor xmm12,xmm11 >=20 > +DB 102,65,15,56,0,218 >=20 > + movups xmm7,XMMWORD[32+rdx] >=20 > + xorps xmm8,xmm4 >=20 > +DB 102,68,15,58,68,218,0 >=20 > + pshufd xmm4,xmm3,78 >=20 > + >=20 > + pxor xmm8,xmm0 >=20 > + movdqa xmm5,xmm3 >=20 > + pxor xmm8,xmm1 >=20 > + pxor xmm4,xmm3 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 102,68,15,58,68,234,17 >=20 > + pslldq xmm8,8 >=20 > + psrldq xmm9,8 >=20 > + pxor xmm0,xmm8 >=20 > + movdqa xmm8,XMMWORD[$L$7_mask] >=20 > + pxor xmm1,xmm9 >=20 > +DB 102,76,15,110,200 >=20 > + >=20 > + pand xmm8,xmm0 >=20 > +DB 102,69,15,56,0,200 >=20 > + pxor xmm9,xmm0 >=20 > +DB 102,68,15,58,68,231,0 >=20 > + psllq xmm9,57 >=20 > + movdqa xmm8,xmm9 >=20 > + pslldq xmm9,8 >=20 > +DB 102,15,58,68,222,0 >=20 > + psrldq xmm8,8 >=20 > + pxor xmm0,xmm9 >=20 > + pxor xmm1,xmm8 >=20 > + movdqu xmm8,XMMWORD[r8] >=20 > + >=20 > + movdqa xmm9,xmm0 >=20 > + psrlq xmm0,1 >=20 > +DB 102,15,58,68,238,17 >=20 > + xorps xmm3,xmm11 >=20 > + movdqu xmm11,XMMWORD[16+r8] >=20 > +DB 102,69,15,56,0,218 >=20 > +DB 102,15,58,68,231,16 >=20 > + xorps xmm5,xmm13 >=20 > + movups xmm7,XMMWORD[80+rdx] >=20 > +DB 102,69,15,56,0,194 >=20 > + pxor xmm1,xmm9 >=20 > + pxor xmm9,xmm0 >=20 > + psrlq xmm0,5 >=20 > + >=20 > + movdqa xmm13,xmm11 >=20 > + pxor xmm4,xmm12 >=20 > + pshufd xmm12,xmm11,78 >=20 > + pxor xmm0,xmm9 >=20 > + pxor xmm1,xmm8 >=20 > + pxor xmm12,xmm11 >=20 > +DB 102,69,15,58,68,222,0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > + movdqa xmm1,xmm0 >=20 > +DB 102,69,15,58,68,238,17 >=20 > + xorps xmm3,xmm11 >=20 > + pshufd xmm8,xmm0,78 >=20 > + pxor xmm8,xmm0 >=20 > + >=20 > +DB 102,68,15,58,68,231,0 >=20 > + xorps xmm5,xmm13 >=20 > + >=20 > + lea r8,[64+r8] >=20 > + sub r9,0x40 >=20 > + jnc NEAR $L$mod4_loop >=20 > + >=20 > +$L$tail4x: >=20 > +DB 102,65,15,58,68,199,0 >=20 > +DB 102,65,15,58,68,207,17 >=20 > +DB 102,68,15,58,68,199,16 >=20 > + xorps xmm4,xmm12 >=20 > + xorps xmm0,xmm3 >=20 > + xorps xmm1,xmm5 >=20 > + pxor xmm1,xmm0 >=20 > + pxor xmm8,xmm4 >=20 > + >=20 > + pxor xmm8,xmm1 >=20 > + pxor xmm1,xmm0 >=20 > + >=20 > + movdqa xmm9,xmm8 >=20 > + psrldq xmm8,8 >=20 > + pslldq xmm9,8 >=20 > + pxor xmm1,xmm8 >=20 > + pxor xmm0,xmm9 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > + add r9,0x40 >=20 > + jz NEAR $L$done >=20 > + movdqu xmm7,XMMWORD[32+rdx] >=20 > + sub r9,0x10 >=20 > + jz NEAR $L$odd_tail >=20 > +$L$skip4x: >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + movdqu xmm8,XMMWORD[r8] >=20 > + movdqu xmm3,XMMWORD[16+r8] >=20 > +DB 102,69,15,56,0,194 >=20 > +DB 102,65,15,56,0,218 >=20 > + pxor xmm0,xmm8 >=20 > + >=20 > + movdqa xmm5,xmm3 >=20 > + pshufd xmm4,xmm3,78 >=20 > + pxor xmm4,xmm3 >=20 > +DB 102,15,58,68,218,0 >=20 > +DB 102,15,58,68,234,17 >=20 > +DB 102,15,58,68,231,0 >=20 > + >=20 > + lea r8,[32+r8] >=20 > + nop >=20 > + sub r9,0x20 >=20 > + jbe NEAR $L$even_tail >=20 > + nop >=20 > + jmp NEAR $L$mod_loop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$mod_loop: >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm8,xmm4 >=20 > + pshufd xmm4,xmm0,78 >=20 > + pxor xmm4,xmm0 >=20 > + >=20 > +DB 102,15,58,68,198,0 >=20 > +DB 102,15,58,68,206,17 >=20 > +DB 102,15,58,68,231,16 >=20 > + >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm1,xmm5 >=20 > + movdqu xmm9,XMMWORD[r8] >=20 > + pxor xmm8,xmm0 >=20 > +DB 102,69,15,56,0,202 >=20 > + movdqu xmm3,XMMWORD[16+r8] >=20 > + >=20 > + pxor xmm8,xmm1 >=20 > + pxor xmm1,xmm9 >=20 > + pxor xmm4,xmm8 >=20 > +DB 102,65,15,56,0,218 >=20 > + movdqa xmm8,xmm4 >=20 > + psrldq xmm8,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm8 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm5,xmm3 >=20 > + >=20 > + movdqa xmm9,xmm0 >=20 > + movdqa xmm8,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm8,xmm0 >=20 > +DB 102,15,58,68,218,0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm8 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm8,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm8,8 >=20 > + pxor xmm0,xmm9 >=20 > + pshufd xmm4,xmm5,78 >=20 > + pxor xmm1,xmm8 >=20 > + pxor xmm4,xmm5 >=20 > + >=20 > + movdqa xmm9,xmm0 >=20 > + psrlq xmm0,1 >=20 > +DB 102,15,58,68,234,17 >=20 > + pxor xmm1,xmm9 >=20 > + pxor xmm9,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm9 >=20 > + lea r8,[32+r8] >=20 > + psrlq xmm0,1 >=20 > +DB 102,15,58,68,231,0 >=20 > + pxor xmm0,xmm1 >=20 > + >=20 > + sub r9,0x20 >=20 > + ja NEAR $L$mod_loop >=20 > + >=20 > +$L$even_tail: >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm8,xmm4 >=20 > + pshufd xmm4,xmm0,78 >=20 > + pxor xmm4,xmm0 >=20 > + >=20 > +DB 102,15,58,68,198,0 >=20 > +DB 102,15,58,68,206,17 >=20 > +DB 102,15,58,68,231,16 >=20 > + >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm1,xmm5 >=20 > + pxor xmm8,xmm0 >=20 > + pxor xmm8,xmm1 >=20 > + pxor xmm4,xmm8 >=20 > + movdqa xmm8,xmm4 >=20 > + psrldq xmm8,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm8 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > + test r9,r9 >=20 > + jnz NEAR $L$done >=20 > + >=20 > +$L$odd_tail: >=20 > + movdqu xmm8,XMMWORD[r8] >=20 > +DB 102,69,15,56,0,194 >=20 > + pxor xmm0,xmm8 >=20 > + movdqa xmm1,xmm0 >=20 > + pshufd xmm3,xmm0,78 >=20 > + pxor xmm3,xmm0 >=20 > +DB 102,15,58,68,194,0 >=20 > +DB 102,15,58,68,202,17 >=20 > +DB 102,15,58,68,223,0 >=20 > + pxor xmm3,xmm0 >=20 > + pxor xmm3,xmm1 >=20 > + >=20 > + movdqa xmm4,xmm3 >=20 > + psrldq xmm3,8 >=20 > + pslldq xmm4,8 >=20 > + pxor xmm1,xmm3 >=20 > + pxor xmm0,xmm4 >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + movdqa xmm3,xmm0 >=20 > + psllq xmm0,5 >=20 > + pxor xmm3,xmm0 >=20 > + psllq xmm0,1 >=20 > + pxor xmm0,xmm3 >=20 > + psllq xmm0,57 >=20 > + movdqa xmm3,xmm0 >=20 > + pslldq xmm0,8 >=20 > + psrldq xmm3,8 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm1,xmm3 >=20 > + >=20 > + >=20 > + movdqa xmm4,xmm0 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm1,xmm4 >=20 > + pxor xmm4,xmm0 >=20 > + psrlq xmm0,5 >=20 > + pxor xmm0,xmm4 >=20 > + psrlq xmm0,1 >=20 > + pxor xmm0,xmm1 >=20 > +$L$done: >=20 > +DB 102,65,15,56,0,194 >=20 > + movdqu XMMWORD[rcx],xmm0 >=20 > + movaps xmm6,XMMWORD[rsp] >=20 > + movaps xmm7,XMMWORD[16+rsp] >=20 > + movaps xmm8,XMMWORD[32+rsp] >=20 > + movaps xmm9,XMMWORD[48+rsp] >=20 > + movaps xmm10,XMMWORD[64+rsp] >=20 > + movaps xmm11,XMMWORD[80+rsp] >=20 > + movaps xmm12,XMMWORD[96+rsp] >=20 > + movaps xmm13,XMMWORD[112+rsp] >=20 > + movaps xmm14,XMMWORD[128+rsp] >=20 > + movaps xmm15,XMMWORD[144+rsp] >=20 > + lea rsp,[168+rsp] >=20 > +$L$SEH_end_gcm_ghash_clmul: >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global gcm_init_avx >=20 > + >=20 > +ALIGN 32 >=20 > +gcm_init_avx: >=20 > + >=20 > + jmp NEAR $L$_init_clmul >=20 > + >=20 > + >=20 > +global gcm_gmult_avx >=20 > + >=20 > +ALIGN 32 >=20 > +gcm_gmult_avx: >=20 > + >=20 > + jmp NEAR $L$_gmult_clmul >=20 > + >=20 > + >=20 > +global gcm_ghash_avx >=20 > + >=20 > +ALIGN 32 >=20 > +gcm_ghash_avx: >=20 > + >=20 > + jmp NEAR $L$_ghash_clmul >=20 > + >=20 > + >=20 > +ALIGN 64 >=20 > +$L$bswap_mask: >=20 > +DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 >=20 > +$L$0x1c2_polynomial: >=20 > +DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 >=20 > +$L$7_mask: >=20 > + DD 7,0,7,0 >=20 > +$L$7_mask_poly: >=20 > + DD 7,0,450,0 >=20 > +ALIGN 64 >=20 > + >=20 > +$L$rem_4bit: >=20 > + DD 0,0,0,471859200,0,943718400,0,610271232 >=20 > + DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208 >=20 > + DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008 >=20 > + DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160 >=20 > + >=20 > +$L$rem_8bit: >=20 > + DW 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E >=20 > + DW 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E >=20 > + DW 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E >=20 > + DW 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E >=20 > + DW 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E >=20 > + DW 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E >=20 > + DW 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E >=20 > + DW 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E >=20 > + DW 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE >=20 > + DW 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE >=20 > + DW 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE >=20 > + DW 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE >=20 > + DW 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E >=20 > + DW 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E >=20 > + DW 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE >=20 > + DW 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE >=20 > + DW 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E >=20 > + DW 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E >=20 > + DW 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E >=20 > + DW 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E >=20 > + DW 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E >=20 > + DW 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E >=20 > + DW 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E >=20 > + DW 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E >=20 > + DW 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE >=20 > + DW 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE >=20 > + DW 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE >=20 > + DW 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE >=20 > + DW 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E >=20 > + DW 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E >=20 > + DW 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE >=20 > + DW 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE >=20 > + >=20 > +DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52 >=20 > +DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 >=20 > +DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 >=20 > +DB 114,103,62,0 >=20 > +ALIGN 64 >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + >=20 > + lea rax,[((48+280))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + mov r15,QWORD[((-48))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + mov QWORD[240+r8],r15 >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase >=20 > + DD $L$SEH_end_gcm_gmult_4bit wrt ..imagebase >=20 > + DD $L$SEH_info_gcm_gmult_4bit wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase >=20 > + DD $L$SEH_end_gcm_ghash_4bit wrt ..imagebase >=20 > + DD $L$SEH_info_gcm_ghash_4bit wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_gcm_init_clmul wrt ..imagebase >=20 > + DD $L$SEH_end_gcm_init_clmul wrt ..imagebase >=20 > + DD $L$SEH_info_gcm_init_clmul wrt ..imagebase >=20 > + >=20 > + DD $L$SEH_begin_gcm_ghash_clmul wrt ..imagebase >=20 > + DD $L$SEH_end_gcm_ghash_clmul wrt ..imagebase >=20 > + DD $L$SEH_info_gcm_ghash_clmul wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_gcm_gmult_4bit: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_gcm_ghash_4bit: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue > wrt ..imagebase >=20 > +$L$SEH_info_gcm_init_clmul: >=20 > +DB 0x01,0x08,0x03,0x00 >=20 > +DB 0x08,0x68,0x00,0x00 >=20 > +DB 0x04,0x22,0x00,0x00 >=20 > +$L$SEH_info_gcm_ghash_clmul: >=20 > +DB 0x01,0x33,0x16,0x00 >=20 > +DB 0x33,0xf8,0x09,0x00 >=20 > +DB 0x2e,0xe8,0x08,0x00 >=20 > +DB 0x29,0xd8,0x07,0x00 >=20 > +DB 0x24,0xc8,0x06,0x00 >=20 > +DB 0x1f,0xb8,0x05,0x00 >=20 > +DB 0x1a,0xa8,0x04,0x00 >=20 > +DB 0x15,0x98,0x03,0x00 >=20 > +DB 0x10,0x88,0x02,0x00 >=20 > +DB 0x0c,0x78,0x01,0x00 >=20 > +DB 0x08,0x68,0x00,0x00 >=20 > +DB 0x04,0x01,0x15,0x00 >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb- > x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb- > x86_64.nasm > new file mode 100644 > index 0000000000..f3b7b0e35e > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm > @@ -0,0 +1,3137 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/sha/asm/sha1-mb-x86_64.pl >=20 > +; >=20 > +; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > + >=20 > +global sha1_multi_block >=20 > + >=20 > +ALIGN 32 >=20 > +sha1_multi_block: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha1_multi_block: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + mov rcx,QWORD[((OPENSSL_ia32cap_P+4))] >=20 > + bt rcx,61 >=20 > + jc NEAR _shaext_shortcut >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[(-120)+rax],xmm10 >=20 > + movaps XMMWORD[(-104)+rax],xmm11 >=20 > + movaps XMMWORD[(-88)+rax],xmm12 >=20 > + movaps XMMWORD[(-72)+rax],xmm13 >=20 > + movaps XMMWORD[(-56)+rax],xmm14 >=20 > + movaps XMMWORD[(-40)+rax],xmm15 >=20 > + sub rsp,288 >=20 > + and rsp,-256 >=20 > + mov QWORD[272+rsp],rax >=20 > + >=20 > +$L$body: >=20 > + lea rbp,[K_XX_XX] >=20 > + lea rbx,[256+rsp] >=20 > + >=20 > +$L$oop_grande: >=20 > + mov DWORD[280+rsp],edx >=20 > + xor edx,edx >=20 > + mov r8,QWORD[rsi] >=20 > + mov ecx,DWORD[8+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[rbx],ecx >=20 > + cmovle r8,rbp >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov ecx,DWORD[24+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[4+rbx],ecx >=20 > + cmovle r9,rbp >=20 > + mov r10,QWORD[32+rsi] >=20 > + mov ecx,DWORD[40+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[8+rbx],ecx >=20 > + cmovle r10,rbp >=20 > + mov r11,QWORD[48+rsi] >=20 > + mov ecx,DWORD[56+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[12+rbx],ecx >=20 > + cmovle r11,rbp >=20 > + test edx,edx >=20 > + jz NEAR $L$done >=20 > + >=20 > + movdqu xmm10,XMMWORD[rdi] >=20 > + lea rax,[128+rsp] >=20 > + movdqu xmm11,XMMWORD[32+rdi] >=20 > + movdqu xmm12,XMMWORD[64+rdi] >=20 > + movdqu xmm13,XMMWORD[96+rdi] >=20 > + movdqu xmm14,XMMWORD[128+rdi] >=20 > + movdqa xmm5,XMMWORD[96+rbp] >=20 > + movdqa xmm15,XMMWORD[((-32))+rbp] >=20 > + jmp NEAR $L$oop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$oop: >=20 > + movd xmm0,DWORD[r8] >=20 > + lea r8,[64+r8] >=20 > + movd xmm2,DWORD[r9] >=20 > + lea r9,[64+r9] >=20 > + movd xmm3,DWORD[r10] >=20 > + lea r10,[64+r10] >=20 > + movd xmm4,DWORD[r11] >=20 > + lea r11,[64+r11] >=20 > + punpckldq xmm0,xmm3 >=20 > + movd xmm1,DWORD[((-60))+r8] >=20 > + punpckldq xmm2,xmm4 >=20 > + movd xmm9,DWORD[((-60))+r9] >=20 > + punpckldq xmm0,xmm2 >=20 > + movd xmm8,DWORD[((-60))+r10] >=20 > +DB 102,15,56,0,197 >=20 > + movd xmm7,DWORD[((-60))+r11] >=20 > + punpckldq xmm1,xmm8 >=20 > + movdqa xmm8,xmm10 >=20 > + paddd xmm14,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm11 >=20 > + movdqa xmm6,xmm11 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm13 >=20 > + pand xmm6,xmm12 >=20 > + punpckldq xmm1,xmm9 >=20 > + movdqa xmm9,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(0-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + movd xmm2,DWORD[((-56))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-56))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > +DB 102,15,56,0,205 >=20 > + movd xmm8,DWORD[((-56))+r10] >=20 > + por xmm11,xmm7 >=20 > + movd xmm7,DWORD[((-56))+r11] >=20 > + punpckldq xmm2,xmm8 >=20 > + movdqa xmm8,xmm14 >=20 > + paddd xmm13,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm10 >=20 > + movdqa xmm6,xmm10 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm12 >=20 > + pand xmm6,xmm11 >=20 > + punpckldq xmm2,xmm9 >=20 > + movdqa xmm9,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(16-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + movd xmm3,DWORD[((-52))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-52))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > +DB 102,15,56,0,213 >=20 > + movd xmm8,DWORD[((-52))+r10] >=20 > + por xmm10,xmm7 >=20 > + movd xmm7,DWORD[((-52))+r11] >=20 > + punpckldq xmm3,xmm8 >=20 > + movdqa xmm8,xmm13 >=20 > + paddd xmm12,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm14 >=20 > + movdqa xmm6,xmm14 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm11 >=20 > + pand xmm6,xmm10 >=20 > + punpckldq xmm3,xmm9 >=20 > + movdqa xmm9,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(32-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + movd xmm4,DWORD[((-48))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-48))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > +DB 102,15,56,0,221 >=20 > + movd xmm8,DWORD[((-48))+r10] >=20 > + por xmm14,xmm7 >=20 > + movd xmm7,DWORD[((-48))+r11] >=20 > + punpckldq xmm4,xmm8 >=20 > + movdqa xmm8,xmm12 >=20 > + paddd xmm11,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm13 >=20 > + movdqa xmm6,xmm13 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm10 >=20 > + pand xmm6,xmm14 >=20 > + punpckldq xmm4,xmm9 >=20 > + movdqa xmm9,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(48-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + movd xmm0,DWORD[((-44))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-44))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > +DB 102,15,56,0,229 >=20 > + movd xmm8,DWORD[((-44))+r10] >=20 > + por xmm13,xmm7 >=20 > + movd xmm7,DWORD[((-44))+r11] >=20 > + punpckldq xmm0,xmm8 >=20 > + movdqa xmm8,xmm11 >=20 > + paddd xmm10,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm12 >=20 > + movdqa xmm6,xmm12 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm14 >=20 > + pand xmm6,xmm13 >=20 > + punpckldq xmm0,xmm9 >=20 > + movdqa xmm9,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(64-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + movd xmm1,DWORD[((-40))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-40))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > +DB 102,15,56,0,197 >=20 > + movd xmm8,DWORD[((-40))+r10] >=20 > + por xmm12,xmm7 >=20 > + movd xmm7,DWORD[((-40))+r11] >=20 > + punpckldq xmm1,xmm8 >=20 > + movdqa xmm8,xmm10 >=20 > + paddd xmm14,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm11 >=20 > + movdqa xmm6,xmm11 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm13 >=20 > + pand xmm6,xmm12 >=20 > + punpckldq xmm1,xmm9 >=20 > + movdqa xmm9,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(80-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + movd xmm2,DWORD[((-36))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-36))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > +DB 102,15,56,0,205 >=20 > + movd xmm8,DWORD[((-36))+r10] >=20 > + por xmm11,xmm7 >=20 > + movd xmm7,DWORD[((-36))+r11] >=20 > + punpckldq xmm2,xmm8 >=20 > + movdqa xmm8,xmm14 >=20 > + paddd xmm13,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm10 >=20 > + movdqa xmm6,xmm10 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm12 >=20 > + pand xmm6,xmm11 >=20 > + punpckldq xmm2,xmm9 >=20 > + movdqa xmm9,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(96-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + movd xmm3,DWORD[((-32))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-32))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > +DB 102,15,56,0,213 >=20 > + movd xmm8,DWORD[((-32))+r10] >=20 > + por xmm10,xmm7 >=20 > + movd xmm7,DWORD[((-32))+r11] >=20 > + punpckldq xmm3,xmm8 >=20 > + movdqa xmm8,xmm13 >=20 > + paddd xmm12,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm14 >=20 > + movdqa xmm6,xmm14 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm11 >=20 > + pand xmm6,xmm10 >=20 > + punpckldq xmm3,xmm9 >=20 > + movdqa xmm9,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(112-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + movd xmm4,DWORD[((-28))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-28))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > +DB 102,15,56,0,221 >=20 > + movd xmm8,DWORD[((-28))+r10] >=20 > + por xmm14,xmm7 >=20 > + movd xmm7,DWORD[((-28))+r11] >=20 > + punpckldq xmm4,xmm8 >=20 > + movdqa xmm8,xmm12 >=20 > + paddd xmm11,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm13 >=20 > + movdqa xmm6,xmm13 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm10 >=20 > + pand xmm6,xmm14 >=20 > + punpckldq xmm4,xmm9 >=20 > + movdqa xmm9,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(128-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + movd xmm0,DWORD[((-24))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-24))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > +DB 102,15,56,0,229 >=20 > + movd xmm8,DWORD[((-24))+r10] >=20 > + por xmm13,xmm7 >=20 > + movd xmm7,DWORD[((-24))+r11] >=20 > + punpckldq xmm0,xmm8 >=20 > + movdqa xmm8,xmm11 >=20 > + paddd xmm10,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm12 >=20 > + movdqa xmm6,xmm12 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm14 >=20 > + pand xmm6,xmm13 >=20 > + punpckldq xmm0,xmm9 >=20 > + movdqa xmm9,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(144-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + movd xmm1,DWORD[((-20))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-20))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > +DB 102,15,56,0,197 >=20 > + movd xmm8,DWORD[((-20))+r10] >=20 > + por xmm12,xmm7 >=20 > + movd xmm7,DWORD[((-20))+r11] >=20 > + punpckldq xmm1,xmm8 >=20 > + movdqa xmm8,xmm10 >=20 > + paddd xmm14,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm11 >=20 > + movdqa xmm6,xmm11 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm13 >=20 > + pand xmm6,xmm12 >=20 > + punpckldq xmm1,xmm9 >=20 > + movdqa xmm9,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(160-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + movd xmm2,DWORD[((-16))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-16))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > +DB 102,15,56,0,205 >=20 > + movd xmm8,DWORD[((-16))+r10] >=20 > + por xmm11,xmm7 >=20 > + movd xmm7,DWORD[((-16))+r11] >=20 > + punpckldq xmm2,xmm8 >=20 > + movdqa xmm8,xmm14 >=20 > + paddd xmm13,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm10 >=20 > + movdqa xmm6,xmm10 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm12 >=20 > + pand xmm6,xmm11 >=20 > + punpckldq xmm2,xmm9 >=20 > + movdqa xmm9,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(176-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + movd xmm3,DWORD[((-12))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-12))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > +DB 102,15,56,0,213 >=20 > + movd xmm8,DWORD[((-12))+r10] >=20 > + por xmm10,xmm7 >=20 > + movd xmm7,DWORD[((-12))+r11] >=20 > + punpckldq xmm3,xmm8 >=20 > + movdqa xmm8,xmm13 >=20 > + paddd xmm12,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm14 >=20 > + movdqa xmm6,xmm14 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm11 >=20 > + pand xmm6,xmm10 >=20 > + punpckldq xmm3,xmm9 >=20 > + movdqa xmm9,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(192-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + movd xmm4,DWORD[((-8))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-8))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > +DB 102,15,56,0,221 >=20 > + movd xmm8,DWORD[((-8))+r10] >=20 > + por xmm14,xmm7 >=20 > + movd xmm7,DWORD[((-8))+r11] >=20 > + punpckldq xmm4,xmm8 >=20 > + movdqa xmm8,xmm12 >=20 > + paddd xmm11,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm13 >=20 > + movdqa xmm6,xmm13 >=20 > + pslld xmm8,5 >=20 > + pandn xmm7,xmm10 >=20 > + pand xmm6,xmm14 >=20 > + punpckldq xmm4,xmm9 >=20 > + movdqa xmm9,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(208-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + movd xmm0,DWORD[((-4))+r8] >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + por xmm8,xmm9 >=20 > + movd xmm9,DWORD[((-4))+r9] >=20 > + pslld xmm7,30 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > +DB 102,15,56,0,229 >=20 > + movd xmm8,DWORD[((-4))+r10] >=20 > + por xmm13,xmm7 >=20 > + movdqa xmm1,XMMWORD[((0-128))+rax] >=20 > + movd xmm7,DWORD[((-4))+r11] >=20 > + punpckldq xmm0,xmm8 >=20 > + movdqa xmm8,xmm11 >=20 > + paddd xmm10,xmm15 >=20 > + punpckldq xmm9,xmm7 >=20 > + movdqa xmm7,xmm12 >=20 > + movdqa xmm6,xmm12 >=20 > + pslld xmm8,5 >=20 > + prefetcht0 [63+r8] >=20 > + pandn xmm7,xmm14 >=20 > + pand xmm6,xmm13 >=20 > + punpckldq xmm0,xmm9 >=20 > + movdqa xmm9,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(224-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + movdqa xmm7,xmm12 >=20 > + prefetcht0 [63+r9] >=20 > + >=20 > + por xmm8,xmm9 >=20 > + pslld xmm7,30 >=20 > + paddd xmm10,xmm6 >=20 > + prefetcht0 [63+r10] >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > +DB 102,15,56,0,197 >=20 > + prefetcht0 [63+r11] >=20 > + por xmm12,xmm7 >=20 > + movdqa xmm2,XMMWORD[((16-128))+rax] >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((32-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + pxor xmm1,XMMWORD[((128-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + movdqa xmm7,xmm11 >=20 > + pslld xmm8,5 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm6,xmm11 >=20 > + pandn xmm7,xmm13 >=20 > + movdqa xmm5,xmm1 >=20 > + pand xmm6,xmm12 >=20 > + movdqa xmm9,xmm10 >=20 > + psrld xmm5,31 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + movdqa XMMWORD[(240-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + >=20 > + movdqa xmm7,xmm11 >=20 > + por xmm8,xmm9 >=20 > + pslld xmm7,30 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((48-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + pxor xmm2,XMMWORD[((144-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + movdqa xmm7,xmm10 >=20 > + pslld xmm8,5 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm6,xmm10 >=20 > + pandn xmm7,xmm12 >=20 > + movdqa xmm5,xmm2 >=20 > + pand xmm6,xmm11 >=20 > + movdqa xmm9,xmm14 >=20 > + psrld xmm5,31 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + movdqa XMMWORD[(0-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + >=20 > + movdqa xmm7,xmm10 >=20 > + por xmm8,xmm9 >=20 > + pslld xmm7,30 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((64-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + pxor xmm3,XMMWORD[((160-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + movdqa xmm7,xmm14 >=20 > + pslld xmm8,5 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm6,xmm14 >=20 > + pandn xmm7,xmm11 >=20 > + movdqa xmm5,xmm3 >=20 > + pand xmm6,xmm10 >=20 > + movdqa xmm9,xmm13 >=20 > + psrld xmm5,31 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + movdqa XMMWORD[(16-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + >=20 > + movdqa xmm7,xmm14 >=20 > + por xmm8,xmm9 >=20 > + pslld xmm7,30 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((80-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + pxor xmm4,XMMWORD[((176-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + movdqa xmm7,xmm13 >=20 > + pslld xmm8,5 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm6,xmm13 >=20 > + pandn xmm7,xmm10 >=20 > + movdqa xmm5,xmm4 >=20 > + pand xmm6,xmm14 >=20 > + movdqa xmm9,xmm12 >=20 > + psrld xmm5,31 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + movdqa XMMWORD[(32-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + >=20 > + movdqa xmm7,xmm13 >=20 > + por xmm8,xmm9 >=20 > + pslld xmm7,30 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((96-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + pxor xmm0,XMMWORD[((192-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + movdqa xmm7,xmm12 >=20 > + pslld xmm8,5 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm6,xmm12 >=20 > + pandn xmm7,xmm14 >=20 > + movdqa xmm5,xmm0 >=20 > + pand xmm6,xmm13 >=20 > + movdqa xmm9,xmm11 >=20 > + psrld xmm5,31 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + movdqa XMMWORD[(48-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm7 >=20 > + >=20 > + movdqa xmm7,xmm12 >=20 > + por xmm8,xmm9 >=20 > + pslld xmm7,30 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + movdqa xmm15,XMMWORD[rbp] >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((112-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((208-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(64-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((128-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((224-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(80-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((144-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((240-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + movdqa XMMWORD[(96-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((160-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((0-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + movdqa XMMWORD[(112-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((176-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((16-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + movdqa XMMWORD[(128-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((192-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((32-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(144-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((208-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((48-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(160-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((224-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((64-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + movdqa XMMWORD[(176-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((240-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((80-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + movdqa XMMWORD[(192-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((0-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((96-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + movdqa XMMWORD[(208-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((16-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((112-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(224-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((32-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((128-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(240-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((48-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((144-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + movdqa XMMWORD[(0-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((64-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((160-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + movdqa XMMWORD[(16-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((80-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((176-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + movdqa XMMWORD[(32-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((96-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((192-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(48-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((112-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((208-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(64-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((128-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((224-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + movdqa XMMWORD[(80-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((144-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((240-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + movdqa XMMWORD[(96-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((160-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((0-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + movdqa XMMWORD[(112-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + movdqa xmm15,XMMWORD[32+rbp] >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((176-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm7,xmm13 >=20 > + pxor xmm1,XMMWORD[((16-128))+rax] >=20 > + pxor xmm1,xmm3 >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm10 >=20 > + pand xmm7,xmm12 >=20 > + >=20 > + movdqa xmm6,xmm13 >=20 > + movdqa xmm5,xmm1 >=20 > + psrld xmm9,27 >=20 > + paddd xmm14,xmm7 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(128-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm11 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm1,xmm1 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((192-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm7,xmm12 >=20 > + pxor xmm2,XMMWORD[((32-128))+rax] >=20 > + pxor xmm2,xmm4 >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm14 >=20 > + pand xmm7,xmm11 >=20 > + >=20 > + movdqa xmm6,xmm12 >=20 > + movdqa xmm5,xmm2 >=20 > + psrld xmm9,27 >=20 > + paddd xmm13,xmm7 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(144-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm10 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm2,xmm2 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((208-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm7,xmm11 >=20 > + pxor xmm3,XMMWORD[((48-128))+rax] >=20 > + pxor xmm3,xmm0 >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm13 >=20 > + pand xmm7,xmm10 >=20 > + >=20 > + movdqa xmm6,xmm11 >=20 > + movdqa xmm5,xmm3 >=20 > + psrld xmm9,27 >=20 > + paddd xmm12,xmm7 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(160-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm14 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm3,xmm3 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((224-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm7,xmm10 >=20 > + pxor xmm4,XMMWORD[((64-128))+rax] >=20 > + pxor xmm4,xmm1 >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm12 >=20 > + pand xmm7,xmm14 >=20 > + >=20 > + movdqa xmm6,xmm10 >=20 > + movdqa xmm5,xmm4 >=20 > + psrld xmm9,27 >=20 > + paddd xmm11,xmm7 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(176-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm13 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm4,xmm4 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((240-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm7,xmm14 >=20 > + pxor xmm0,XMMWORD[((80-128))+rax] >=20 > + pxor xmm0,xmm2 >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm11 >=20 > + pand xmm7,xmm13 >=20 > + >=20 > + movdqa xmm6,xmm14 >=20 > + movdqa xmm5,xmm0 >=20 > + psrld xmm9,27 >=20 > + paddd xmm10,xmm7 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(192-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm12 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm0,xmm0 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((0-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm7,xmm13 >=20 > + pxor xmm1,XMMWORD[((96-128))+rax] >=20 > + pxor xmm1,xmm3 >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm10 >=20 > + pand xmm7,xmm12 >=20 > + >=20 > + movdqa xmm6,xmm13 >=20 > + movdqa xmm5,xmm1 >=20 > + psrld xmm9,27 >=20 > + paddd xmm14,xmm7 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(208-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm11 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm1,xmm1 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((16-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm7,xmm12 >=20 > + pxor xmm2,XMMWORD[((112-128))+rax] >=20 > + pxor xmm2,xmm4 >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm14 >=20 > + pand xmm7,xmm11 >=20 > + >=20 > + movdqa xmm6,xmm12 >=20 > + movdqa xmm5,xmm2 >=20 > + psrld xmm9,27 >=20 > + paddd xmm13,xmm7 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(224-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm10 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm2,xmm2 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((32-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm7,xmm11 >=20 > + pxor xmm3,XMMWORD[((128-128))+rax] >=20 > + pxor xmm3,xmm0 >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm13 >=20 > + pand xmm7,xmm10 >=20 > + >=20 > + movdqa xmm6,xmm11 >=20 > + movdqa xmm5,xmm3 >=20 > + psrld xmm9,27 >=20 > + paddd xmm12,xmm7 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(240-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm14 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm3,xmm3 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((48-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm7,xmm10 >=20 > + pxor xmm4,XMMWORD[((144-128))+rax] >=20 > + pxor xmm4,xmm1 >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm12 >=20 > + pand xmm7,xmm14 >=20 > + >=20 > + movdqa xmm6,xmm10 >=20 > + movdqa xmm5,xmm4 >=20 > + psrld xmm9,27 >=20 > + paddd xmm11,xmm7 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(0-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm13 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm4,xmm4 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((64-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm7,xmm14 >=20 > + pxor xmm0,XMMWORD[((160-128))+rax] >=20 > + pxor xmm0,xmm2 >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm11 >=20 > + pand xmm7,xmm13 >=20 > + >=20 > + movdqa xmm6,xmm14 >=20 > + movdqa xmm5,xmm0 >=20 > + psrld xmm9,27 >=20 > + paddd xmm10,xmm7 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(16-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm12 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm0,xmm0 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((80-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm7,xmm13 >=20 > + pxor xmm1,XMMWORD[((176-128))+rax] >=20 > + pxor xmm1,xmm3 >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm10 >=20 > + pand xmm7,xmm12 >=20 > + >=20 > + movdqa xmm6,xmm13 >=20 > + movdqa xmm5,xmm1 >=20 > + psrld xmm9,27 >=20 > + paddd xmm14,xmm7 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(32-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm11 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm1,xmm1 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((96-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm7,xmm12 >=20 > + pxor xmm2,XMMWORD[((192-128))+rax] >=20 > + pxor xmm2,xmm4 >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm14 >=20 > + pand xmm7,xmm11 >=20 > + >=20 > + movdqa xmm6,xmm12 >=20 > + movdqa xmm5,xmm2 >=20 > + psrld xmm9,27 >=20 > + paddd xmm13,xmm7 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(48-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm10 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm2,xmm2 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((112-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm7,xmm11 >=20 > + pxor xmm3,XMMWORD[((208-128))+rax] >=20 > + pxor xmm3,xmm0 >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm13 >=20 > + pand xmm7,xmm10 >=20 > + >=20 > + movdqa xmm6,xmm11 >=20 > + movdqa xmm5,xmm3 >=20 > + psrld xmm9,27 >=20 > + paddd xmm12,xmm7 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(64-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm14 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm3,xmm3 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((128-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm7,xmm10 >=20 > + pxor xmm4,XMMWORD[((224-128))+rax] >=20 > + pxor xmm4,xmm1 >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm12 >=20 > + pand xmm7,xmm14 >=20 > + >=20 > + movdqa xmm6,xmm10 >=20 > + movdqa xmm5,xmm4 >=20 > + psrld xmm9,27 >=20 > + paddd xmm11,xmm7 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(80-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm13 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm4,xmm4 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((144-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm7,xmm14 >=20 > + pxor xmm0,XMMWORD[((240-128))+rax] >=20 > + pxor xmm0,xmm2 >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm11 >=20 > + pand xmm7,xmm13 >=20 > + >=20 > + movdqa xmm6,xmm14 >=20 > + movdqa xmm5,xmm0 >=20 > + psrld xmm9,27 >=20 > + paddd xmm10,xmm7 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(96-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm12 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm0,xmm0 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((160-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm7,xmm13 >=20 > + pxor xmm1,XMMWORD[((0-128))+rax] >=20 > + pxor xmm1,xmm3 >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm10 >=20 > + pand xmm7,xmm12 >=20 > + >=20 > + movdqa xmm6,xmm13 >=20 > + movdqa xmm5,xmm1 >=20 > + psrld xmm9,27 >=20 > + paddd xmm14,xmm7 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa XMMWORD[(112-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm11 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm1,xmm1 >=20 > + paddd xmm14,xmm6 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((176-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm7,xmm12 >=20 > + pxor xmm2,XMMWORD[((16-128))+rax] >=20 > + pxor xmm2,xmm4 >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm14 >=20 > + pand xmm7,xmm11 >=20 > + >=20 > + movdqa xmm6,xmm12 >=20 > + movdqa xmm5,xmm2 >=20 > + psrld xmm9,27 >=20 > + paddd xmm13,xmm7 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa XMMWORD[(128-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm10 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm2,xmm2 >=20 > + paddd xmm13,xmm6 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((192-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm7,xmm11 >=20 > + pxor xmm3,XMMWORD[((32-128))+rax] >=20 > + pxor xmm3,xmm0 >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm13 >=20 > + pand xmm7,xmm10 >=20 > + >=20 > + movdqa xmm6,xmm11 >=20 > + movdqa xmm5,xmm3 >=20 > + psrld xmm9,27 >=20 > + paddd xmm12,xmm7 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa XMMWORD[(144-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm14 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm3,xmm3 >=20 > + paddd xmm12,xmm6 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((208-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm7,xmm10 >=20 > + pxor xmm4,XMMWORD[((48-128))+rax] >=20 > + pxor xmm4,xmm1 >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm12 >=20 > + pand xmm7,xmm14 >=20 > + >=20 > + movdqa xmm6,xmm10 >=20 > + movdqa xmm5,xmm4 >=20 > + psrld xmm9,27 >=20 > + paddd xmm11,xmm7 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa XMMWORD[(160-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm13 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm4,xmm4 >=20 > + paddd xmm11,xmm6 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((224-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm7,xmm14 >=20 > + pxor xmm0,XMMWORD[((64-128))+rax] >=20 > + pxor xmm0,xmm2 >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + movdqa xmm9,xmm11 >=20 > + pand xmm7,xmm13 >=20 > + >=20 > + movdqa xmm6,xmm14 >=20 > + movdqa xmm5,xmm0 >=20 > + psrld xmm9,27 >=20 > + paddd xmm10,xmm7 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa XMMWORD[(176-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + pand xmm6,xmm12 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + paddd xmm0,xmm0 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + movdqa xmm15,XMMWORD[64+rbp] >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((240-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((80-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(192-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((0-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((96-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(208-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((16-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((112-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + movdqa XMMWORD[(224-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((32-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((128-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + movdqa XMMWORD[(240-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((48-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((144-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + movdqa XMMWORD[(0-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((64-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((160-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(16-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((80-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((176-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(32-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((96-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((192-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + movdqa XMMWORD[(48-128)+rax],xmm2 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((112-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((208-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + movdqa XMMWORD[(64-128)+rax],xmm3 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((128-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((224-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + movdqa XMMWORD[(80-128)+rax],xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((144-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((240-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + movdqa XMMWORD[(96-128)+rax],xmm0 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((160-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((0-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + movdqa XMMWORD[(112-128)+rax],xmm1 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((176-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((16-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((192-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((32-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + pxor xmm0,xmm2 >=20 > + movdqa xmm2,XMMWORD[((208-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm11 >=20 > + movdqa xmm6,xmm14 >=20 > + pxor xmm0,XMMWORD[((48-128))+rax] >=20 > + paddd xmm10,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + paddd xmm10,xmm4 >=20 > + pxor xmm0,xmm2 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm0 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm0,xmm0 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm0,xmm5 >=20 > + por xmm12,xmm7 >=20 > + pxor xmm1,xmm3 >=20 > + movdqa xmm3,XMMWORD[((224-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm10 >=20 > + movdqa xmm6,xmm13 >=20 > + pxor xmm1,XMMWORD[((64-128))+rax] >=20 > + paddd xmm14,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm11 >=20 > + >=20 > + movdqa xmm9,xmm10 >=20 > + paddd xmm14,xmm0 >=20 > + pxor xmm1,xmm3 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm1 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm1,xmm1 >=20 > + >=20 > + psrld xmm11,2 >=20 > + paddd xmm14,xmm8 >=20 > + por xmm1,xmm5 >=20 > + por xmm11,xmm7 >=20 > + pxor xmm2,xmm4 >=20 > + movdqa xmm4,XMMWORD[((240-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm14 >=20 > + movdqa xmm6,xmm12 >=20 > + pxor xmm2,XMMWORD[((80-128))+rax] >=20 > + paddd xmm13,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm10 >=20 > + >=20 > + movdqa xmm9,xmm14 >=20 > + paddd xmm13,xmm1 >=20 > + pxor xmm2,xmm4 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm2 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm13,xmm6 >=20 > + paddd xmm2,xmm2 >=20 > + >=20 > + psrld xmm10,2 >=20 > + paddd xmm13,xmm8 >=20 > + por xmm2,xmm5 >=20 > + por xmm10,xmm7 >=20 > + pxor xmm3,xmm0 >=20 > + movdqa xmm0,XMMWORD[((0-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm13 >=20 > + movdqa xmm6,xmm11 >=20 > + pxor xmm3,XMMWORD[((96-128))+rax] >=20 > + paddd xmm12,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm14 >=20 > + >=20 > + movdqa xmm9,xmm13 >=20 > + paddd xmm12,xmm2 >=20 > + pxor xmm3,xmm0 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm10 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm3 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm3,xmm3 >=20 > + >=20 > + psrld xmm14,2 >=20 > + paddd xmm12,xmm8 >=20 > + por xmm3,xmm5 >=20 > + por xmm14,xmm7 >=20 > + pxor xmm4,xmm1 >=20 > + movdqa xmm1,XMMWORD[((16-128))+rax] >=20 > + >=20 > + movdqa xmm8,xmm12 >=20 > + movdqa xmm6,xmm10 >=20 > + pxor xmm4,XMMWORD[((112-128))+rax] >=20 > + paddd xmm11,xmm15 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + movdqa xmm9,xmm12 >=20 > + paddd xmm11,xmm3 >=20 > + pxor xmm4,xmm1 >=20 > + psrld xmm9,27 >=20 > + pxor xmm6,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + movdqa xmm5,xmm4 >=20 > + por xmm8,xmm9 >=20 > + psrld xmm5,31 >=20 > + paddd xmm11,xmm6 >=20 > + paddd xmm4,xmm4 >=20 > + >=20 > + psrld xmm13,2 >=20 > + paddd xmm11,xmm8 >=20 > + por xmm4,xmm5 >=20 > + por xmm13,xmm7 >=20 > + movdqa xmm8,xmm11 >=20 > + paddd xmm10,xmm15 >=20 > + movdqa xmm6,xmm14 >=20 > + pslld xmm8,5 >=20 > + pxor xmm6,xmm12 >=20 > + >=20 > + movdqa xmm9,xmm11 >=20 > + paddd xmm10,xmm4 >=20 > + psrld xmm9,27 >=20 > + movdqa xmm7,xmm12 >=20 > + pxor xmm6,xmm13 >=20 > + >=20 > + pslld xmm7,30 >=20 > + por xmm8,xmm9 >=20 > + paddd xmm10,xmm6 >=20 > + >=20 > + psrld xmm12,2 >=20 > + paddd xmm10,xmm8 >=20 > + por xmm12,xmm7 >=20 > + movdqa xmm0,XMMWORD[rbx] >=20 > + mov ecx,1 >=20 > + cmp ecx,DWORD[rbx] >=20 > + pxor xmm8,xmm8 >=20 > + cmovge r8,rbp >=20 > + cmp ecx,DWORD[4+rbx] >=20 > + movdqa xmm1,xmm0 >=20 > + cmovge r9,rbp >=20 > + cmp ecx,DWORD[8+rbx] >=20 > + pcmpgtd xmm1,xmm8 >=20 > + cmovge r10,rbp >=20 > + cmp ecx,DWORD[12+rbx] >=20 > + paddd xmm0,xmm1 >=20 > + cmovge r11,rbp >=20 > + >=20 > + movdqu xmm6,XMMWORD[rdi] >=20 > + pand xmm10,xmm1 >=20 > + movdqu xmm7,XMMWORD[32+rdi] >=20 > + pand xmm11,xmm1 >=20 > + paddd xmm10,xmm6 >=20 > + movdqu xmm8,XMMWORD[64+rdi] >=20 > + pand xmm12,xmm1 >=20 > + paddd xmm11,xmm7 >=20 > + movdqu xmm9,XMMWORD[96+rdi] >=20 > + pand xmm13,xmm1 >=20 > + paddd xmm12,xmm8 >=20 > + movdqu xmm5,XMMWORD[128+rdi] >=20 > + pand xmm14,xmm1 >=20 > + movdqu XMMWORD[rdi],xmm10 >=20 > + paddd xmm13,xmm9 >=20 > + movdqu XMMWORD[32+rdi],xmm11 >=20 > + paddd xmm14,xmm5 >=20 > + movdqu XMMWORD[64+rdi],xmm12 >=20 > + movdqu XMMWORD[96+rdi],xmm13 >=20 > + movdqu XMMWORD[128+rdi],xmm14 >=20 > + >=20 > + movdqa XMMWORD[rbx],xmm0 >=20 > + movdqa xmm5,XMMWORD[96+rbp] >=20 > + movdqa xmm15,XMMWORD[((-32))+rbp] >=20 > + dec edx >=20 > + jnz NEAR $L$oop >=20 > + >=20 > + mov edx,DWORD[280+rsp] >=20 > + lea rdi,[16+rdi] >=20 > + lea rsi,[64+rsi] >=20 > + dec edx >=20 > + jnz NEAR $L$oop_grande >=20 > + >=20 > +$L$done: >=20 > + mov rax,QWORD[272+rsp] >=20 > + >=20 > + movaps xmm6,XMMWORD[((-184))+rax] >=20 > + movaps xmm7,XMMWORD[((-168))+rax] >=20 > + movaps xmm8,XMMWORD[((-152))+rax] >=20 > + movaps xmm9,XMMWORD[((-136))+rax] >=20 > + movaps xmm10,XMMWORD[((-120))+rax] >=20 > + movaps xmm11,XMMWORD[((-104))+rax] >=20 > + movaps xmm12,XMMWORD[((-88))+rax] >=20 > + movaps xmm13,XMMWORD[((-72))+rax] >=20 > + movaps xmm14,XMMWORD[((-56))+rax] >=20 > + movaps xmm15,XMMWORD[((-40))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha1_multi_block: >=20 > + >=20 > +ALIGN 32 >=20 > +sha1_multi_block_shaext: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha1_multi_block_shaext: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > +_shaext_shortcut: >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[(-120)+rax],xmm10 >=20 > + movaps XMMWORD[(-104)+rax],xmm11 >=20 > + movaps XMMWORD[(-88)+rax],xmm12 >=20 > + movaps XMMWORD[(-72)+rax],xmm13 >=20 > + movaps XMMWORD[(-56)+rax],xmm14 >=20 > + movaps XMMWORD[(-40)+rax],xmm15 >=20 > + sub rsp,288 >=20 > + shl edx,1 >=20 > + and rsp,-256 >=20 > + lea rdi,[64+rdi] >=20 > + mov QWORD[272+rsp],rax >=20 > +$L$body_shaext: >=20 > + lea rbx,[256+rsp] >=20 > + movdqa xmm3,XMMWORD[((K_XX_XX+128))] >=20 > + >=20 > +$L$oop_grande_shaext: >=20 > + mov DWORD[280+rsp],edx >=20 > + xor edx,edx >=20 > + mov r8,QWORD[rsi] >=20 > + mov ecx,DWORD[8+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[rbx],ecx >=20 > + cmovle r8,rsp >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov ecx,DWORD[24+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[4+rbx],ecx >=20 > + cmovle r9,rsp >=20 > + test edx,edx >=20 > + jz NEAR $L$done_shaext >=20 > + >=20 > + movq xmm0,QWORD[((0-64))+rdi] >=20 > + movq xmm4,QWORD[((32-64))+rdi] >=20 > + movq xmm5,QWORD[((64-64))+rdi] >=20 > + movq xmm6,QWORD[((96-64))+rdi] >=20 > + movq xmm7,QWORD[((128-64))+rdi] >=20 > + >=20 > + punpckldq xmm0,xmm4 >=20 > + punpckldq xmm5,xmm6 >=20 > + >=20 > + movdqa xmm8,xmm0 >=20 > + punpcklqdq xmm0,xmm5 >=20 > + punpckhqdq xmm8,xmm5 >=20 > + >=20 > + pshufd xmm1,xmm7,63 >=20 > + pshufd xmm9,xmm7,127 >=20 > + pshufd xmm0,xmm0,27 >=20 > + pshufd xmm8,xmm8,27 >=20 > + jmp NEAR $L$oop_shaext >=20 > + >=20 > +ALIGN 32 >=20 > +$L$oop_shaext: >=20 > + movdqu xmm4,XMMWORD[r8] >=20 > + movdqu xmm11,XMMWORD[r9] >=20 > + movdqu xmm5,XMMWORD[16+r8] >=20 > + movdqu xmm12,XMMWORD[16+r9] >=20 > + movdqu xmm6,XMMWORD[32+r8] >=20 > +DB 102,15,56,0,227 >=20 > + movdqu xmm13,XMMWORD[32+r9] >=20 > +DB 102,68,15,56,0,219 >=20 > + movdqu xmm7,XMMWORD[48+r8] >=20 > + lea r8,[64+r8] >=20 > +DB 102,15,56,0,235 >=20 > + movdqu xmm14,XMMWORD[48+r9] >=20 > + lea r9,[64+r9] >=20 > +DB 102,68,15,56,0,227 >=20 > + >=20 > + movdqa XMMWORD[80+rsp],xmm1 >=20 > + paddd xmm1,xmm4 >=20 > + movdqa XMMWORD[112+rsp],xmm9 >=20 > + paddd xmm9,xmm11 >=20 > + movdqa XMMWORD[64+rsp],xmm0 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa XMMWORD[96+rsp],xmm8 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,0 >=20 > +DB 15,56,200,213 >=20 > +DB 69,15,58,204,193,0 >=20 > +DB 69,15,56,200,212 >=20 > +DB 102,15,56,0,243 >=20 > + prefetcht0 [127+r8] >=20 > +DB 15,56,201,229 >=20 > +DB 102,68,15,56,0,235 >=20 > + prefetcht0 [127+r9] >=20 > +DB 69,15,56,201,220 >=20 > + >=20 > +DB 102,15,56,0,251 >=20 > + movdqa xmm1,xmm0 >=20 > +DB 102,68,15,56,0,243 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,0 >=20 > +DB 15,56,200,206 >=20 > +DB 69,15,58,204,194,0 >=20 > +DB 69,15,56,200,205 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + pxor xmm11,xmm13 >=20 > +DB 69,15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,0 >=20 > +DB 15,56,200,215 >=20 > +DB 69,15,58,204,193,0 >=20 > +DB 69,15,56,200,214 >=20 > +DB 15,56,202,231 >=20 > +DB 69,15,56,202,222 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,201,247 >=20 > + pxor xmm12,xmm14 >=20 > +DB 69,15,56,201,238 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,0 >=20 > +DB 15,56,200,204 >=20 > +DB 69,15,58,204,194,0 >=20 > +DB 69,15,56,200,203 >=20 > +DB 15,56,202,236 >=20 > +DB 69,15,56,202,227 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > + pxor xmm13,xmm11 >=20 > +DB 69,15,56,201,243 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,0 >=20 > +DB 15,56,200,213 >=20 > +DB 69,15,58,204,193,0 >=20 > +DB 69,15,56,200,212 >=20 > +DB 15,56,202,245 >=20 > +DB 69,15,56,202,236 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,201,229 >=20 > + pxor xmm14,xmm12 >=20 > +DB 69,15,56,201,220 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,1 >=20 > +DB 15,56,200,206 >=20 > +DB 69,15,58,204,194,1 >=20 > +DB 69,15,56,200,205 >=20 > +DB 15,56,202,254 >=20 > +DB 69,15,56,202,245 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + pxor xmm11,xmm13 >=20 > +DB 69,15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,1 >=20 > +DB 15,56,200,215 >=20 > +DB 69,15,58,204,193,1 >=20 > +DB 69,15,56,200,214 >=20 > +DB 15,56,202,231 >=20 > +DB 69,15,56,202,222 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,201,247 >=20 > + pxor xmm12,xmm14 >=20 > +DB 69,15,56,201,238 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,1 >=20 > +DB 15,56,200,204 >=20 > +DB 69,15,58,204,194,1 >=20 > +DB 69,15,56,200,203 >=20 > +DB 15,56,202,236 >=20 > +DB 69,15,56,202,227 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > + pxor xmm13,xmm11 >=20 > +DB 69,15,56,201,243 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,1 >=20 > +DB 15,56,200,213 >=20 > +DB 69,15,58,204,193,1 >=20 > +DB 69,15,56,200,212 >=20 > +DB 15,56,202,245 >=20 > +DB 69,15,56,202,236 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,201,229 >=20 > + pxor xmm14,xmm12 >=20 > +DB 69,15,56,201,220 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,1 >=20 > +DB 15,56,200,206 >=20 > +DB 69,15,58,204,194,1 >=20 > +DB 69,15,56,200,205 >=20 > +DB 15,56,202,254 >=20 > +DB 69,15,56,202,245 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + pxor xmm11,xmm13 >=20 > +DB 69,15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,2 >=20 > +DB 15,56,200,215 >=20 > +DB 69,15,58,204,193,2 >=20 > +DB 69,15,56,200,214 >=20 > +DB 15,56,202,231 >=20 > +DB 69,15,56,202,222 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,201,247 >=20 > + pxor xmm12,xmm14 >=20 > +DB 69,15,56,201,238 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,2 >=20 > +DB 15,56,200,204 >=20 > +DB 69,15,58,204,194,2 >=20 > +DB 69,15,56,200,203 >=20 > +DB 15,56,202,236 >=20 > +DB 69,15,56,202,227 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > + pxor xmm13,xmm11 >=20 > +DB 69,15,56,201,243 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,2 >=20 > +DB 15,56,200,213 >=20 > +DB 69,15,58,204,193,2 >=20 > +DB 69,15,56,200,212 >=20 > +DB 15,56,202,245 >=20 > +DB 69,15,56,202,236 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,201,229 >=20 > + pxor xmm14,xmm12 >=20 > +DB 69,15,56,201,220 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,2 >=20 > +DB 15,56,200,206 >=20 > +DB 69,15,58,204,194,2 >=20 > +DB 69,15,56,200,205 >=20 > +DB 15,56,202,254 >=20 > +DB 69,15,56,202,245 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > + pxor xmm11,xmm13 >=20 > +DB 69,15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,2 >=20 > +DB 15,56,200,215 >=20 > +DB 69,15,58,204,193,2 >=20 > +DB 69,15,56,200,214 >=20 > +DB 15,56,202,231 >=20 > +DB 69,15,56,202,222 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,201,247 >=20 > + pxor xmm12,xmm14 >=20 > +DB 69,15,56,201,238 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,3 >=20 > +DB 15,56,200,204 >=20 > +DB 69,15,58,204,194,3 >=20 > +DB 69,15,56,200,203 >=20 > +DB 15,56,202,236 >=20 > +DB 69,15,56,202,227 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > + pxor xmm13,xmm11 >=20 > +DB 69,15,56,201,243 >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,3 >=20 > +DB 15,56,200,213 >=20 > +DB 69,15,58,204,193,3 >=20 > +DB 69,15,56,200,212 >=20 > +DB 15,56,202,245 >=20 > +DB 69,15,56,202,236 >=20 > + pxor xmm7,xmm5 >=20 > + pxor xmm14,xmm12 >=20 > + >=20 > + mov ecx,1 >=20 > + pxor xmm4,xmm4 >=20 > + cmp ecx,DWORD[rbx] >=20 > + cmovge r8,rsp >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,3 >=20 > +DB 15,56,200,206 >=20 > +DB 69,15,58,204,194,3 >=20 > +DB 69,15,56,200,205 >=20 > +DB 15,56,202,254 >=20 > +DB 69,15,56,202,245 >=20 > + >=20 > + cmp ecx,DWORD[4+rbx] >=20 > + cmovge r9,rsp >=20 > + movq xmm6,QWORD[rbx] >=20 > + >=20 > + movdqa xmm2,xmm0 >=20 > + movdqa xmm10,xmm8 >=20 > +DB 15,58,204,193,3 >=20 > +DB 15,56,200,215 >=20 > +DB 69,15,58,204,193,3 >=20 > +DB 69,15,56,200,214 >=20 > + >=20 > + pshufd xmm11,xmm6,0x00 >=20 > + pshufd xmm12,xmm6,0x55 >=20 > + movdqa xmm7,xmm6 >=20 > + pcmpgtd xmm11,xmm4 >=20 > + pcmpgtd xmm12,xmm4 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm9,xmm8 >=20 > +DB 15,58,204,194,3 >=20 > +DB 15,56,200,204 >=20 > +DB 69,15,58,204,194,3 >=20 > +DB 68,15,56,200,204 >=20 > + >=20 > + pcmpgtd xmm7,xmm4 >=20 > + pand xmm0,xmm11 >=20 > + pand xmm1,xmm11 >=20 > + pand xmm8,xmm12 >=20 > + pand xmm9,xmm12 >=20 > + paddd xmm6,xmm7 >=20 > + >=20 > + paddd xmm0,XMMWORD[64+rsp] >=20 > + paddd xmm1,XMMWORD[80+rsp] >=20 > + paddd xmm8,XMMWORD[96+rsp] >=20 > + paddd xmm9,XMMWORD[112+rsp] >=20 > + >=20 > + movq QWORD[rbx],xmm6 >=20 > + dec edx >=20 > + jnz NEAR $L$oop_shaext >=20 > + >=20 > + mov edx,DWORD[280+rsp] >=20 > + >=20 > + pshufd xmm0,xmm0,27 >=20 > + pshufd xmm8,xmm8,27 >=20 > + >=20 > + movdqa xmm6,xmm0 >=20 > + punpckldq xmm0,xmm8 >=20 > + punpckhdq xmm6,xmm8 >=20 > + punpckhdq xmm1,xmm9 >=20 > + movq QWORD[(0-64)+rdi],xmm0 >=20 > + psrldq xmm0,8 >=20 > + movq QWORD[(64-64)+rdi],xmm6 >=20 > + psrldq xmm6,8 >=20 > + movq QWORD[(32-64)+rdi],xmm0 >=20 > + psrldq xmm1,8 >=20 > + movq QWORD[(96-64)+rdi],xmm6 >=20 > + movq QWORD[(128-64)+rdi],xmm1 >=20 > + >=20 > + lea rdi,[8+rdi] >=20 > + lea rsi,[32+rsi] >=20 > + dec edx >=20 > + jnz NEAR $L$oop_grande_shaext >=20 > + >=20 > +$L$done_shaext: >=20 > + >=20 > + movaps xmm6,XMMWORD[((-184))+rax] >=20 > + movaps xmm7,XMMWORD[((-168))+rax] >=20 > + movaps xmm8,XMMWORD[((-152))+rax] >=20 > + movaps xmm9,XMMWORD[((-136))+rax] >=20 > + movaps xmm10,XMMWORD[((-120))+rax] >=20 > + movaps xmm11,XMMWORD[((-104))+rax] >=20 > + movaps xmm12,XMMWORD[((-88))+rax] >=20 > + movaps xmm13,XMMWORD[((-72))+rax] >=20 > + movaps xmm14,XMMWORD[((-56))+rax] >=20 > + movaps xmm15,XMMWORD[((-40))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$epilogue_shaext: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha1_multi_block_shaext: >=20 > + >=20 > +ALIGN 256 >=20 > + DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 >=20 > + DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 >=20 > +K_XX_XX: >=20 > + DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 >=20 > + DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 >=20 > + DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc >=20 > + DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc >=20 > + DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 >=20 > + DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > +DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 >=20 > +DB 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107 >=20 > +DB 32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120 >=20 > +DB 56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77 >=20 > +DB 83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110 >=20 > +DB 115,115,108,46,111,114,103,62,0 >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[272+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + >=20 > + lea rsi,[((-24-160))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_sha1_multi_block wrt ..imagebase >=20 > + DD $L$SEH_end_sha1_multi_block wrt ..imagebase >=20 > + DD $L$SEH_info_sha1_multi_block wrt ..imagebase >=20 > + DD $L$SEH_begin_sha1_multi_block_shaext wrt ..imagebase >=20 > + DD $L$SEH_end_sha1_multi_block_shaext wrt ..imagebase >=20 > + DD $L$SEH_info_sha1_multi_block_shaext wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_sha1_multi_block: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$body wrt ..imagebase,$L$epilogue wrt ..imagebase >=20 > +$L$SEH_info_sha1_multi_block_shaext: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$body_shaext wrt ..imagebase,$L$epilogue_shaext > wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > new file mode 100644 > index 0000000000..c6d68d348f > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > @@ -0,0 +1,2884 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/sha/asm/sha1-x86_64.pl >=20 > +; >=20 > +; Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > + >=20 > +global sha1_block_data_order >=20 > + >=20 > +ALIGN 16 >=20 > +sha1_block_data_order: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha1_block_data_order: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + mov r9d,DWORD[((OPENSSL_ia32cap_P+0))] >=20 > + mov r8d,DWORD[((OPENSSL_ia32cap_P+4))] >=20 > + mov r10d,DWORD[((OPENSSL_ia32cap_P+8))] >=20 > + test r8d,512 >=20 > + jz NEAR $L$ialu >=20 > + test r10d,536870912 >=20 > + jnz NEAR _shaext_shortcut >=20 > + jmp NEAR _ssse3_shortcut >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ialu: >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + mov r8,rdi >=20 > + sub rsp,72 >=20 > + mov r9,rsi >=20 > + and rsp,-64 >=20 > + mov r10,rdx >=20 > + mov QWORD[64+rsp],rax >=20 > + >=20 > +$L$prologue: >=20 > + >=20 > + mov esi,DWORD[r8] >=20 > + mov edi,DWORD[4+r8] >=20 > + mov r11d,DWORD[8+r8] >=20 > + mov r12d,DWORD[12+r8] >=20 > + mov r13d,DWORD[16+r8] >=20 > + jmp NEAR $L$loop >=20 > + >=20 > +ALIGN 16 >=20 > +$L$loop: >=20 > + mov edx,DWORD[r9] >=20 > + bswap edx >=20 > + mov ebp,DWORD[4+r9] >=20 > + mov eax,r12d >=20 > + mov DWORD[rsp],edx >=20 > + mov ecx,esi >=20 > + bswap ebp >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + and eax,edi >=20 > + lea r13d,[1518500249+r13*1+rdx] >=20 > + add r13d,ecx >=20 > + xor eax,r12d >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + mov r14d,DWORD[8+r9] >=20 > + mov eax,r11d >=20 > + mov DWORD[4+rsp],ebp >=20 > + mov ecx,r13d >=20 > + bswap r14d >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + and eax,esi >=20 > + lea r12d,[1518500249+r12*1+rbp] >=20 > + add r12d,ecx >=20 > + xor eax,r11d >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + mov edx,DWORD[12+r9] >=20 > + mov eax,edi >=20 > + mov DWORD[8+rsp],r14d >=20 > + mov ecx,r12d >=20 > + bswap edx >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + and eax,r13d >=20 > + lea r11d,[1518500249+r11*1+r14] >=20 > + add r11d,ecx >=20 > + xor eax,edi >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + mov ebp,DWORD[16+r9] >=20 > + mov eax,esi >=20 > + mov DWORD[12+rsp],edx >=20 > + mov ecx,r11d >=20 > + bswap ebp >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + and eax,r12d >=20 > + lea edi,[1518500249+rdi*1+rdx] >=20 > + add edi,ecx >=20 > + xor eax,esi >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + mov r14d,DWORD[20+r9] >=20 > + mov eax,r13d >=20 > + mov DWORD[16+rsp],ebp >=20 > + mov ecx,edi >=20 > + bswap r14d >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + and eax,r11d >=20 > + lea esi,[1518500249+rsi*1+rbp] >=20 > + add esi,ecx >=20 > + xor eax,r13d >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + mov edx,DWORD[24+r9] >=20 > + mov eax,r12d >=20 > + mov DWORD[20+rsp],r14d >=20 > + mov ecx,esi >=20 > + bswap edx >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + and eax,edi >=20 > + lea r13d,[1518500249+r13*1+r14] >=20 > + add r13d,ecx >=20 > + xor eax,r12d >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + mov ebp,DWORD[28+r9] >=20 > + mov eax,r11d >=20 > + mov DWORD[24+rsp],edx >=20 > + mov ecx,r13d >=20 > + bswap ebp >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + and eax,esi >=20 > + lea r12d,[1518500249+r12*1+rdx] >=20 > + add r12d,ecx >=20 > + xor eax,r11d >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + mov r14d,DWORD[32+r9] >=20 > + mov eax,edi >=20 > + mov DWORD[28+rsp],ebp >=20 > + mov ecx,r12d >=20 > + bswap r14d >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + and eax,r13d >=20 > + lea r11d,[1518500249+r11*1+rbp] >=20 > + add r11d,ecx >=20 > + xor eax,edi >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + mov edx,DWORD[36+r9] >=20 > + mov eax,esi >=20 > + mov DWORD[32+rsp],r14d >=20 > + mov ecx,r11d >=20 > + bswap edx >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + and eax,r12d >=20 > + lea edi,[1518500249+rdi*1+r14] >=20 > + add edi,ecx >=20 > + xor eax,esi >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + mov ebp,DWORD[40+r9] >=20 > + mov eax,r13d >=20 > + mov DWORD[36+rsp],edx >=20 > + mov ecx,edi >=20 > + bswap ebp >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + and eax,r11d >=20 > + lea esi,[1518500249+rsi*1+rdx] >=20 > + add esi,ecx >=20 > + xor eax,r13d >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + mov r14d,DWORD[44+r9] >=20 > + mov eax,r12d >=20 > + mov DWORD[40+rsp],ebp >=20 > + mov ecx,esi >=20 > + bswap r14d >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + and eax,edi >=20 > + lea r13d,[1518500249+r13*1+rbp] >=20 > + add r13d,ecx >=20 > + xor eax,r12d >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + mov edx,DWORD[48+r9] >=20 > + mov eax,r11d >=20 > + mov DWORD[44+rsp],r14d >=20 > + mov ecx,r13d >=20 > + bswap edx >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + and eax,esi >=20 > + lea r12d,[1518500249+r12*1+r14] >=20 > + add r12d,ecx >=20 > + xor eax,r11d >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + mov ebp,DWORD[52+r9] >=20 > + mov eax,edi >=20 > + mov DWORD[48+rsp],edx >=20 > + mov ecx,r12d >=20 > + bswap ebp >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + and eax,r13d >=20 > + lea r11d,[1518500249+r11*1+rdx] >=20 > + add r11d,ecx >=20 > + xor eax,edi >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + mov r14d,DWORD[56+r9] >=20 > + mov eax,esi >=20 > + mov DWORD[52+rsp],ebp >=20 > + mov ecx,r11d >=20 > + bswap r14d >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + and eax,r12d >=20 > + lea edi,[1518500249+rdi*1+rbp] >=20 > + add edi,ecx >=20 > + xor eax,esi >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + mov edx,DWORD[60+r9] >=20 > + mov eax,r13d >=20 > + mov DWORD[56+rsp],r14d >=20 > + mov ecx,edi >=20 > + bswap edx >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + and eax,r11d >=20 > + lea esi,[1518500249+rsi*1+r14] >=20 > + add esi,ecx >=20 > + xor eax,r13d >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + xor ebp,DWORD[rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[60+rsp],edx >=20 > + mov ecx,esi >=20 > + xor ebp,DWORD[8+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[32+rsp] >=20 > + and eax,edi >=20 > + lea r13d,[1518500249+r13*1+rdx] >=20 > + rol edi,30 >=20 > + xor eax,r12d >=20 > + add r13d,ecx >=20 > + rol ebp,1 >=20 > + add r13d,eax >=20 > + xor r14d,DWORD[4+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[rsp],ebp >=20 > + mov ecx,r13d >=20 > + xor r14d,DWORD[12+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[36+rsp] >=20 > + and eax,esi >=20 > + lea r12d,[1518500249+r12*1+rbp] >=20 > + rol esi,30 >=20 > + xor eax,r11d >=20 > + add r12d,ecx >=20 > + rol r14d,1 >=20 > + add r12d,eax >=20 > + xor edx,DWORD[8+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[4+rsp],r14d >=20 > + mov ecx,r12d >=20 > + xor edx,DWORD[16+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[40+rsp] >=20 > + and eax,r13d >=20 > + lea r11d,[1518500249+r11*1+r14] >=20 > + rol r13d,30 >=20 > + xor eax,edi >=20 > + add r11d,ecx >=20 > + rol edx,1 >=20 > + add r11d,eax >=20 > + xor ebp,DWORD[12+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[8+rsp],edx >=20 > + mov ecx,r11d >=20 > + xor ebp,DWORD[20+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[44+rsp] >=20 > + and eax,r12d >=20 > + lea edi,[1518500249+rdi*1+rdx] >=20 > + rol r12d,30 >=20 > + xor eax,esi >=20 > + add edi,ecx >=20 > + rol ebp,1 >=20 > + add edi,eax >=20 > + xor r14d,DWORD[16+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[12+rsp],ebp >=20 > + mov ecx,edi >=20 > + xor r14d,DWORD[24+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[48+rsp] >=20 > + and eax,r11d >=20 > + lea esi,[1518500249+rsi*1+rbp] >=20 > + rol r11d,30 >=20 > + xor eax,r13d >=20 > + add esi,ecx >=20 > + rol r14d,1 >=20 > + add esi,eax >=20 > + xor edx,DWORD[20+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[16+rsp],r14d >=20 > + mov ecx,esi >=20 > + xor edx,DWORD[28+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[52+rsp] >=20 > + lea r13d,[1859775393+r13*1+r14] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[24+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[20+rsp],edx >=20 > + mov ecx,r13d >=20 > + xor ebp,DWORD[32+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[56+rsp] >=20 > + lea r12d,[1859775393+r12*1+rdx] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[28+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[24+rsp],ebp >=20 > + mov ecx,r12d >=20 > + xor r14d,DWORD[36+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[60+rsp] >=20 > + lea r11d,[1859775393+r11*1+rbp] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[32+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[28+rsp],r14d >=20 > + mov ecx,r11d >=20 > + xor edx,DWORD[40+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[rsp] >=20 > + lea edi,[1859775393+rdi*1+r14] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[36+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[32+rsp],edx >=20 > + mov ecx,edi >=20 > + xor ebp,DWORD[44+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[4+rsp] >=20 > + lea esi,[1859775393+rsi*1+rdx] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[40+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[36+rsp],ebp >=20 > + mov ecx,esi >=20 > + xor r14d,DWORD[48+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[8+rsp] >=20 > + lea r13d,[1859775393+r13*1+rbp] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[44+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[40+rsp],r14d >=20 > + mov ecx,r13d >=20 > + xor edx,DWORD[52+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[12+rsp] >=20 > + lea r12d,[1859775393+r12*1+r14] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[48+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[44+rsp],edx >=20 > + mov ecx,r12d >=20 > + xor ebp,DWORD[56+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[16+rsp] >=20 > + lea r11d,[1859775393+r11*1+rdx] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[52+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[48+rsp],ebp >=20 > + mov ecx,r11d >=20 > + xor r14d,DWORD[60+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[20+rsp] >=20 > + lea edi,[1859775393+rdi*1+rbp] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[56+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[52+rsp],r14d >=20 > + mov ecx,edi >=20 > + xor edx,DWORD[rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[24+rsp] >=20 > + lea esi,[1859775393+rsi*1+r14] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[60+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[56+rsp],edx >=20 > + mov ecx,esi >=20 > + xor ebp,DWORD[4+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[28+rsp] >=20 > + lea r13d,[1859775393+r13*1+rdx] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[60+rsp],ebp >=20 > + mov ecx,r13d >=20 > + xor r14d,DWORD[8+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[32+rsp] >=20 > + lea r12d,[1859775393+r12*1+rbp] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[4+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[rsp],r14d >=20 > + mov ecx,r12d >=20 > + xor edx,DWORD[12+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[36+rsp] >=20 > + lea r11d,[1859775393+r11*1+r14] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[8+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[4+rsp],edx >=20 > + mov ecx,r11d >=20 > + xor ebp,DWORD[16+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[40+rsp] >=20 > + lea edi,[1859775393+rdi*1+rdx] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[12+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[8+rsp],ebp >=20 > + mov ecx,edi >=20 > + xor r14d,DWORD[20+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[44+rsp] >=20 > + lea esi,[1859775393+rsi*1+rbp] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[16+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[12+rsp],r14d >=20 > + mov ecx,esi >=20 > + xor edx,DWORD[24+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[48+rsp] >=20 > + lea r13d,[1859775393+r13*1+r14] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[20+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[16+rsp],edx >=20 > + mov ecx,r13d >=20 > + xor ebp,DWORD[28+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[52+rsp] >=20 > + lea r12d,[1859775393+r12*1+rdx] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[24+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[20+rsp],ebp >=20 > + mov ecx,r12d >=20 > + xor r14d,DWORD[32+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[56+rsp] >=20 > + lea r11d,[1859775393+r11*1+rbp] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[28+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[24+rsp],r14d >=20 > + mov ecx,r11d >=20 > + xor edx,DWORD[36+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[60+rsp] >=20 > + lea edi,[1859775393+rdi*1+r14] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[32+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[28+rsp],edx >=20 > + mov ecx,edi >=20 > + xor ebp,DWORD[40+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[rsp] >=20 > + lea esi,[1859775393+rsi*1+rdx] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[36+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[32+rsp],ebp >=20 > + mov ebx,r12d >=20 > + xor r14d,DWORD[44+rsp] >=20 > + and eax,r11d >=20 > + mov ecx,esi >=20 > + xor r14d,DWORD[4+rsp] >=20 > + lea r13d,[((-1894007588))+r13*1+rbp] >=20 > + xor ebx,r11d >=20 > + rol ecx,5 >=20 > + add r13d,eax >=20 > + rol r14d,1 >=20 > + and ebx,edi >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,ebx >=20 > + xor edx,DWORD[40+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[36+rsp],r14d >=20 > + mov ebx,r11d >=20 > + xor edx,DWORD[48+rsp] >=20 > + and eax,edi >=20 > + mov ecx,r13d >=20 > + xor edx,DWORD[8+rsp] >=20 > + lea r12d,[((-1894007588))+r12*1+r14] >=20 > + xor ebx,edi >=20 > + rol ecx,5 >=20 > + add r12d,eax >=20 > + rol edx,1 >=20 > + and ebx,esi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,ebx >=20 > + xor ebp,DWORD[44+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[40+rsp],edx >=20 > + mov ebx,edi >=20 > + xor ebp,DWORD[52+rsp] >=20 > + and eax,esi >=20 > + mov ecx,r12d >=20 > + xor ebp,DWORD[12+rsp] >=20 > + lea r11d,[((-1894007588))+r11*1+rdx] >=20 > + xor ebx,esi >=20 > + rol ecx,5 >=20 > + add r11d,eax >=20 > + rol ebp,1 >=20 > + and ebx,r13d >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,ebx >=20 > + xor r14d,DWORD[48+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[44+rsp],ebp >=20 > + mov ebx,esi >=20 > + xor r14d,DWORD[56+rsp] >=20 > + and eax,r13d >=20 > + mov ecx,r11d >=20 > + xor r14d,DWORD[16+rsp] >=20 > + lea edi,[((-1894007588))+rdi*1+rbp] >=20 > + xor ebx,r13d >=20 > + rol ecx,5 >=20 > + add edi,eax >=20 > + rol r14d,1 >=20 > + and ebx,r12d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,ebx >=20 > + xor edx,DWORD[52+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[48+rsp],r14d >=20 > + mov ebx,r13d >=20 > + xor edx,DWORD[60+rsp] >=20 > + and eax,r12d >=20 > + mov ecx,edi >=20 > + xor edx,DWORD[20+rsp] >=20 > + lea esi,[((-1894007588))+rsi*1+r14] >=20 > + xor ebx,r12d >=20 > + rol ecx,5 >=20 > + add esi,eax >=20 > + rol edx,1 >=20 > + and ebx,r11d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,ebx >=20 > + xor ebp,DWORD[56+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[52+rsp],edx >=20 > + mov ebx,r12d >=20 > + xor ebp,DWORD[rsp] >=20 > + and eax,r11d >=20 > + mov ecx,esi >=20 > + xor ebp,DWORD[24+rsp] >=20 > + lea r13d,[((-1894007588))+r13*1+rdx] >=20 > + xor ebx,r11d >=20 > + rol ecx,5 >=20 > + add r13d,eax >=20 > + rol ebp,1 >=20 > + and ebx,edi >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,ebx >=20 > + xor r14d,DWORD[60+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[56+rsp],ebp >=20 > + mov ebx,r11d >=20 > + xor r14d,DWORD[4+rsp] >=20 > + and eax,edi >=20 > + mov ecx,r13d >=20 > + xor r14d,DWORD[28+rsp] >=20 > + lea r12d,[((-1894007588))+r12*1+rbp] >=20 > + xor ebx,edi >=20 > + rol ecx,5 >=20 > + add r12d,eax >=20 > + rol r14d,1 >=20 > + and ebx,esi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,ebx >=20 > + xor edx,DWORD[rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[60+rsp],r14d >=20 > + mov ebx,edi >=20 > + xor edx,DWORD[8+rsp] >=20 > + and eax,esi >=20 > + mov ecx,r12d >=20 > + xor edx,DWORD[32+rsp] >=20 > + lea r11d,[((-1894007588))+r11*1+r14] >=20 > + xor ebx,esi >=20 > + rol ecx,5 >=20 > + add r11d,eax >=20 > + rol edx,1 >=20 > + and ebx,r13d >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,ebx >=20 > + xor ebp,DWORD[4+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[rsp],edx >=20 > + mov ebx,esi >=20 > + xor ebp,DWORD[12+rsp] >=20 > + and eax,r13d >=20 > + mov ecx,r11d >=20 > + xor ebp,DWORD[36+rsp] >=20 > + lea edi,[((-1894007588))+rdi*1+rdx] >=20 > + xor ebx,r13d >=20 > + rol ecx,5 >=20 > + add edi,eax >=20 > + rol ebp,1 >=20 > + and ebx,r12d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,ebx >=20 > + xor r14d,DWORD[8+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[4+rsp],ebp >=20 > + mov ebx,r13d >=20 > + xor r14d,DWORD[16+rsp] >=20 > + and eax,r12d >=20 > + mov ecx,edi >=20 > + xor r14d,DWORD[40+rsp] >=20 > + lea esi,[((-1894007588))+rsi*1+rbp] >=20 > + xor ebx,r12d >=20 > + rol ecx,5 >=20 > + add esi,eax >=20 > + rol r14d,1 >=20 > + and ebx,r11d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,ebx >=20 > + xor edx,DWORD[12+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[8+rsp],r14d >=20 > + mov ebx,r12d >=20 > + xor edx,DWORD[20+rsp] >=20 > + and eax,r11d >=20 > + mov ecx,esi >=20 > + xor edx,DWORD[44+rsp] >=20 > + lea r13d,[((-1894007588))+r13*1+r14] >=20 > + xor ebx,r11d >=20 > + rol ecx,5 >=20 > + add r13d,eax >=20 > + rol edx,1 >=20 > + and ebx,edi >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,ebx >=20 > + xor ebp,DWORD[16+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[12+rsp],edx >=20 > + mov ebx,r11d >=20 > + xor ebp,DWORD[24+rsp] >=20 > + and eax,edi >=20 > + mov ecx,r13d >=20 > + xor ebp,DWORD[48+rsp] >=20 > + lea r12d,[((-1894007588))+r12*1+rdx] >=20 > + xor ebx,edi >=20 > + rol ecx,5 >=20 > + add r12d,eax >=20 > + rol ebp,1 >=20 > + and ebx,esi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,ebx >=20 > + xor r14d,DWORD[20+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[16+rsp],ebp >=20 > + mov ebx,edi >=20 > + xor r14d,DWORD[28+rsp] >=20 > + and eax,esi >=20 > + mov ecx,r12d >=20 > + xor r14d,DWORD[52+rsp] >=20 > + lea r11d,[((-1894007588))+r11*1+rbp] >=20 > + xor ebx,esi >=20 > + rol ecx,5 >=20 > + add r11d,eax >=20 > + rol r14d,1 >=20 > + and ebx,r13d >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,ebx >=20 > + xor edx,DWORD[24+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[20+rsp],r14d >=20 > + mov ebx,esi >=20 > + xor edx,DWORD[32+rsp] >=20 > + and eax,r13d >=20 > + mov ecx,r11d >=20 > + xor edx,DWORD[56+rsp] >=20 > + lea edi,[((-1894007588))+rdi*1+r14] >=20 > + xor ebx,r13d >=20 > + rol ecx,5 >=20 > + add edi,eax >=20 > + rol edx,1 >=20 > + and ebx,r12d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,ebx >=20 > + xor ebp,DWORD[28+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[24+rsp],edx >=20 > + mov ebx,r13d >=20 > + xor ebp,DWORD[36+rsp] >=20 > + and eax,r12d >=20 > + mov ecx,edi >=20 > + xor ebp,DWORD[60+rsp] >=20 > + lea esi,[((-1894007588))+rsi*1+rdx] >=20 > + xor ebx,r12d >=20 > + rol ecx,5 >=20 > + add esi,eax >=20 > + rol ebp,1 >=20 > + and ebx,r11d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,ebx >=20 > + xor r14d,DWORD[32+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[28+rsp],ebp >=20 > + mov ebx,r12d >=20 > + xor r14d,DWORD[40+rsp] >=20 > + and eax,r11d >=20 > + mov ecx,esi >=20 > + xor r14d,DWORD[rsp] >=20 > + lea r13d,[((-1894007588))+r13*1+rbp] >=20 > + xor ebx,r11d >=20 > + rol ecx,5 >=20 > + add r13d,eax >=20 > + rol r14d,1 >=20 > + and ebx,edi >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,ebx >=20 > + xor edx,DWORD[36+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[32+rsp],r14d >=20 > + mov ebx,r11d >=20 > + xor edx,DWORD[44+rsp] >=20 > + and eax,edi >=20 > + mov ecx,r13d >=20 > + xor edx,DWORD[4+rsp] >=20 > + lea r12d,[((-1894007588))+r12*1+r14] >=20 > + xor ebx,edi >=20 > + rol ecx,5 >=20 > + add r12d,eax >=20 > + rol edx,1 >=20 > + and ebx,esi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,ebx >=20 > + xor ebp,DWORD[40+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[36+rsp],edx >=20 > + mov ebx,edi >=20 > + xor ebp,DWORD[48+rsp] >=20 > + and eax,esi >=20 > + mov ecx,r12d >=20 > + xor ebp,DWORD[8+rsp] >=20 > + lea r11d,[((-1894007588))+r11*1+rdx] >=20 > + xor ebx,esi >=20 > + rol ecx,5 >=20 > + add r11d,eax >=20 > + rol ebp,1 >=20 > + and ebx,r13d >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,ebx >=20 > + xor r14d,DWORD[44+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[40+rsp],ebp >=20 > + mov ebx,esi >=20 > + xor r14d,DWORD[52+rsp] >=20 > + and eax,r13d >=20 > + mov ecx,r11d >=20 > + xor r14d,DWORD[12+rsp] >=20 > + lea edi,[((-1894007588))+rdi*1+rbp] >=20 > + xor ebx,r13d >=20 > + rol ecx,5 >=20 > + add edi,eax >=20 > + rol r14d,1 >=20 > + and ebx,r12d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,ebx >=20 > + xor edx,DWORD[48+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[44+rsp],r14d >=20 > + mov ebx,r13d >=20 > + xor edx,DWORD[56+rsp] >=20 > + and eax,r12d >=20 > + mov ecx,edi >=20 > + xor edx,DWORD[16+rsp] >=20 > + lea esi,[((-1894007588))+rsi*1+r14] >=20 > + xor ebx,r12d >=20 > + rol ecx,5 >=20 > + add esi,eax >=20 > + rol edx,1 >=20 > + and ebx,r11d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,ebx >=20 > + xor ebp,DWORD[52+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[48+rsp],edx >=20 > + mov ecx,esi >=20 > + xor ebp,DWORD[60+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[20+rsp] >=20 > + lea r13d,[((-899497514))+r13*1+rdx] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[56+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[52+rsp],ebp >=20 > + mov ecx,r13d >=20 > + xor r14d,DWORD[rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[24+rsp] >=20 > + lea r12d,[((-899497514))+r12*1+rbp] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[60+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[56+rsp],r14d >=20 > + mov ecx,r12d >=20 > + xor edx,DWORD[4+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[28+rsp] >=20 > + lea r11d,[((-899497514))+r11*1+r14] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[60+rsp],edx >=20 > + mov ecx,r11d >=20 > + xor ebp,DWORD[8+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[32+rsp] >=20 > + lea edi,[((-899497514))+rdi*1+rdx] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[4+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[rsp],ebp >=20 > + mov ecx,edi >=20 > + xor r14d,DWORD[12+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[36+rsp] >=20 > + lea esi,[((-899497514))+rsi*1+rbp] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[8+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[4+rsp],r14d >=20 > + mov ecx,esi >=20 > + xor edx,DWORD[16+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[40+rsp] >=20 > + lea r13d,[((-899497514))+r13*1+r14] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[12+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[8+rsp],edx >=20 > + mov ecx,r13d >=20 > + xor ebp,DWORD[20+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[44+rsp] >=20 > + lea r12d,[((-899497514))+r12*1+rdx] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[16+rsp] >=20 > + mov eax,r13d >=20 > + mov DWORD[12+rsp],ebp >=20 > + mov ecx,r12d >=20 > + xor r14d,DWORD[24+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[48+rsp] >=20 > + lea r11d,[((-899497514))+r11*1+rbp] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[20+rsp] >=20 > + mov eax,r12d >=20 > + mov DWORD[16+rsp],r14d >=20 > + mov ecx,r11d >=20 > + xor edx,DWORD[28+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[52+rsp] >=20 > + lea edi,[((-899497514))+rdi*1+r14] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[24+rsp] >=20 > + mov eax,r11d >=20 > + mov DWORD[20+rsp],edx >=20 > + mov ecx,edi >=20 > + xor ebp,DWORD[32+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[56+rsp] >=20 > + lea esi,[((-899497514))+rsi*1+rdx] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[28+rsp] >=20 > + mov eax,edi >=20 > + mov DWORD[24+rsp],ebp >=20 > + mov ecx,esi >=20 > + xor r14d,DWORD[36+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[60+rsp] >=20 > + lea r13d,[((-899497514))+r13*1+rbp] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[32+rsp] >=20 > + mov eax,esi >=20 > + mov DWORD[28+rsp],r14d >=20 > + mov ecx,r13d >=20 > + xor edx,DWORD[40+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[rsp] >=20 > + lea r12d,[((-899497514))+r12*1+r14] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[36+rsp] >=20 > + mov eax,r13d >=20 > + >=20 > + mov ecx,r12d >=20 > + xor ebp,DWORD[44+rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[4+rsp] >=20 > + lea r11d,[((-899497514))+r11*1+rdx] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[40+rsp] >=20 > + mov eax,r12d >=20 > + >=20 > + mov ecx,r11d >=20 > + xor r14d,DWORD[48+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[8+rsp] >=20 > + lea edi,[((-899497514))+rdi*1+rbp] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[44+rsp] >=20 > + mov eax,r11d >=20 > + >=20 > + mov ecx,edi >=20 > + xor edx,DWORD[52+rsp] >=20 > + xor eax,r13d >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[12+rsp] >=20 > + lea esi,[((-899497514))+rsi*1+r14] >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[48+rsp] >=20 > + mov eax,edi >=20 > + >=20 > + mov ecx,esi >=20 > + xor ebp,DWORD[56+rsp] >=20 > + xor eax,r12d >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[16+rsp] >=20 > + lea r13d,[((-899497514))+r13*1+rdx] >=20 > + xor eax,r11d >=20 > + add r13d,ecx >=20 > + rol edi,30 >=20 > + add r13d,eax >=20 > + rol ebp,1 >=20 > + xor r14d,DWORD[52+rsp] >=20 > + mov eax,esi >=20 > + >=20 > + mov ecx,r13d >=20 > + xor r14d,DWORD[60+rsp] >=20 > + xor eax,r11d >=20 > + rol ecx,5 >=20 > + xor r14d,DWORD[20+rsp] >=20 > + lea r12d,[((-899497514))+r12*1+rbp] >=20 > + xor eax,edi >=20 > + add r12d,ecx >=20 > + rol esi,30 >=20 > + add r12d,eax >=20 > + rol r14d,1 >=20 > + xor edx,DWORD[56+rsp] >=20 > + mov eax,r13d >=20 > + >=20 > + mov ecx,r12d >=20 > + xor edx,DWORD[rsp] >=20 > + xor eax,edi >=20 > + rol ecx,5 >=20 > + xor edx,DWORD[24+rsp] >=20 > + lea r11d,[((-899497514))+r11*1+r14] >=20 > + xor eax,esi >=20 > + add r11d,ecx >=20 > + rol r13d,30 >=20 > + add r11d,eax >=20 > + rol edx,1 >=20 > + xor ebp,DWORD[60+rsp] >=20 > + mov eax,r12d >=20 > + >=20 > + mov ecx,r11d >=20 > + xor ebp,DWORD[4+rsp] >=20 > + xor eax,esi >=20 > + rol ecx,5 >=20 > + xor ebp,DWORD[28+rsp] >=20 > + lea edi,[((-899497514))+rdi*1+rdx] >=20 > + xor eax,r13d >=20 > + add edi,ecx >=20 > + rol r12d,30 >=20 > + add edi,eax >=20 > + rol ebp,1 >=20 > + mov eax,r11d >=20 > + mov ecx,edi >=20 > + xor eax,r13d >=20 > + lea esi,[((-899497514))+rsi*1+rbp] >=20 > + rol ecx,5 >=20 > + xor eax,r12d >=20 > + add esi,ecx >=20 > + rol r11d,30 >=20 > + add esi,eax >=20 > + add esi,DWORD[r8] >=20 > + add edi,DWORD[4+r8] >=20 > + add r11d,DWORD[8+r8] >=20 > + add r12d,DWORD[12+r8] >=20 > + add r13d,DWORD[16+r8] >=20 > + mov DWORD[r8],esi >=20 > + mov DWORD[4+r8],edi >=20 > + mov DWORD[8+r8],r11d >=20 > + mov DWORD[12+r8],r12d >=20 > + mov DWORD[16+r8],r13d >=20 > + >=20 > + sub r10,1 >=20 > + lea r9,[64+r9] >=20 > + jnz NEAR $L$loop >=20 > + >=20 > + mov rsi,QWORD[64+rsp] >=20 > + >=20 > + mov r14,QWORD[((-40))+rsi] >=20 > + >=20 > + mov r13,QWORD[((-32))+rsi] >=20 > + >=20 > + mov r12,QWORD[((-24))+rsi] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rsi] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rsi] >=20 > + >=20 > + lea rsp,[rsi] >=20 > + >=20 > +$L$epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha1_block_data_order: >=20 > + >=20 > +ALIGN 32 >=20 > +sha1_block_data_order_shaext: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha1_block_data_order_shaext: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > +_shaext_shortcut: >=20 > + >=20 > + lea rsp,[((-72))+rsp] >=20 > + movaps XMMWORD[(-8-64)+rax],xmm6 >=20 > + movaps XMMWORD[(-8-48)+rax],xmm7 >=20 > + movaps XMMWORD[(-8-32)+rax],xmm8 >=20 > + movaps XMMWORD[(-8-16)+rax],xmm9 >=20 > +$L$prologue_shaext: >=20 > + movdqu xmm0,XMMWORD[rdi] >=20 > + movd xmm1,DWORD[16+rdi] >=20 > + movdqa xmm3,XMMWORD[((K_XX_XX+160))] >=20 > + >=20 > + movdqu xmm4,XMMWORD[rsi] >=20 > + pshufd xmm0,xmm0,27 >=20 > + movdqu xmm5,XMMWORD[16+rsi] >=20 > + pshufd xmm1,xmm1,27 >=20 > + movdqu xmm6,XMMWORD[32+rsi] >=20 > +DB 102,15,56,0,227 >=20 > + movdqu xmm7,XMMWORD[48+rsi] >=20 > +DB 102,15,56,0,235 >=20 > +DB 102,15,56,0,243 >=20 > + movdqa xmm9,xmm1 >=20 > +DB 102,15,56,0,251 >=20 > + jmp NEAR $L$oop_shaext >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_shaext: >=20 > + dec rdx >=20 > + lea r8,[64+rsi] >=20 > + paddd xmm1,xmm4 >=20 > + cmovne rsi,r8 >=20 > + movdqa xmm8,xmm0 >=20 > +DB 15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,0 >=20 > +DB 15,56,200,213 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > +DB 15,56,202,231 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,0 >=20 > +DB 15,56,200,206 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,202,236 >=20 > +DB 15,56,201,247 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,0 >=20 > +DB 15,56,200,215 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > +DB 15,56,202,245 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,0 >=20 > +DB 15,56,200,204 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,202,254 >=20 > +DB 15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,0 >=20 > +DB 15,56,200,213 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > +DB 15,56,202,231 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,1 >=20 > +DB 15,56,200,206 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,202,236 >=20 > +DB 15,56,201,247 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,1 >=20 > +DB 15,56,200,215 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > +DB 15,56,202,245 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,1 >=20 > +DB 15,56,200,204 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,202,254 >=20 > +DB 15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,1 >=20 > +DB 15,56,200,213 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > +DB 15,56,202,231 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,1 >=20 > +DB 15,56,200,206 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,202,236 >=20 > +DB 15,56,201,247 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,2 >=20 > +DB 15,56,200,215 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > +DB 15,56,202,245 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,2 >=20 > +DB 15,56,200,204 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,202,254 >=20 > +DB 15,56,201,229 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,2 >=20 > +DB 15,56,200,213 >=20 > + pxor xmm4,xmm6 >=20 > +DB 15,56,201,238 >=20 > +DB 15,56,202,231 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,2 >=20 > +DB 15,56,200,206 >=20 > + pxor xmm5,xmm7 >=20 > +DB 15,56,202,236 >=20 > +DB 15,56,201,247 >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,2 >=20 > +DB 15,56,200,215 >=20 > + pxor xmm6,xmm4 >=20 > +DB 15,56,201,252 >=20 > +DB 15,56,202,245 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,3 >=20 > +DB 15,56,200,204 >=20 > + pxor xmm7,xmm5 >=20 > +DB 15,56,202,254 >=20 > + movdqu xmm4,XMMWORD[rsi] >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,3 >=20 > +DB 15,56,200,213 >=20 > + movdqu xmm5,XMMWORD[16+rsi] >=20 > +DB 102,15,56,0,227 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,3 >=20 > +DB 15,56,200,206 >=20 > + movdqu xmm6,XMMWORD[32+rsi] >=20 > +DB 102,15,56,0,235 >=20 > + >=20 > + movdqa xmm2,xmm0 >=20 > +DB 15,58,204,193,3 >=20 > +DB 15,56,200,215 >=20 > + movdqu xmm7,XMMWORD[48+rsi] >=20 > +DB 102,15,56,0,243 >=20 > + >=20 > + movdqa xmm1,xmm0 >=20 > +DB 15,58,204,194,3 >=20 > +DB 65,15,56,200,201 >=20 > +DB 102,15,56,0,251 >=20 > + >=20 > + paddd xmm0,xmm8 >=20 > + movdqa xmm9,xmm1 >=20 > + >=20 > + jnz NEAR $L$oop_shaext >=20 > + >=20 > + pshufd xmm0,xmm0,27 >=20 > + pshufd xmm1,xmm1,27 >=20 > + movdqu XMMWORD[rdi],xmm0 >=20 > + movd DWORD[16+rdi],xmm1 >=20 > + movaps xmm6,XMMWORD[((-8-64))+rax] >=20 > + movaps xmm7,XMMWORD[((-8-48))+rax] >=20 > + movaps xmm8,XMMWORD[((-8-32))+rax] >=20 > + movaps xmm9,XMMWORD[((-8-16))+rax] >=20 > + mov rsp,rax >=20 > +$L$epilogue_shaext: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha1_block_data_order_shaext: >=20 > + >=20 > +ALIGN 16 >=20 > +sha1_block_data_order_ssse3: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha1_block_data_order_ssse3: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > +_ssse3_shortcut: >=20 > + >=20 > + mov r11,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + lea rsp,[((-160))+rsp] >=20 > + movaps XMMWORD[(-40-96)+r11],xmm6 >=20 > + movaps XMMWORD[(-40-80)+r11],xmm7 >=20 > + movaps XMMWORD[(-40-64)+r11],xmm8 >=20 > + movaps XMMWORD[(-40-48)+r11],xmm9 >=20 > + movaps XMMWORD[(-40-32)+r11],xmm10 >=20 > + movaps XMMWORD[(-40-16)+r11],xmm11 >=20 > +$L$prologue_ssse3: >=20 > + and rsp,-64 >=20 > + mov r8,rdi >=20 > + mov r9,rsi >=20 > + mov r10,rdx >=20 > + >=20 > + shl r10,6 >=20 > + add r10,r9 >=20 > + lea r14,[((K_XX_XX+64))] >=20 > + >=20 > + mov eax,DWORD[r8] >=20 > + mov ebx,DWORD[4+r8] >=20 > + mov ecx,DWORD[8+r8] >=20 > + mov edx,DWORD[12+r8] >=20 > + mov esi,ebx >=20 > + mov ebp,DWORD[16+r8] >=20 > + mov edi,ecx >=20 > + xor edi,edx >=20 > + and esi,edi >=20 > + >=20 > + movdqa xmm6,XMMWORD[64+r14] >=20 > + movdqa xmm9,XMMWORD[((-64))+r14] >=20 > + movdqu xmm0,XMMWORD[r9] >=20 > + movdqu xmm1,XMMWORD[16+r9] >=20 > + movdqu xmm2,XMMWORD[32+r9] >=20 > + movdqu xmm3,XMMWORD[48+r9] >=20 > +DB 102,15,56,0,198 >=20 > +DB 102,15,56,0,206 >=20 > +DB 102,15,56,0,214 >=20 > + add r9,64 >=20 > + paddd xmm0,xmm9 >=20 > +DB 102,15,56,0,222 >=20 > + paddd xmm1,xmm9 >=20 > + paddd xmm2,xmm9 >=20 > + movdqa XMMWORD[rsp],xmm0 >=20 > + psubd xmm0,xmm9 >=20 > + movdqa XMMWORD[16+rsp],xmm1 >=20 > + psubd xmm1,xmm9 >=20 > + movdqa XMMWORD[32+rsp],xmm2 >=20 > + psubd xmm2,xmm9 >=20 > + jmp NEAR $L$oop_ssse3 >=20 > +ALIGN 16 >=20 > +$L$oop_ssse3: >=20 > + ror ebx,2 >=20 > + pshufd xmm4,xmm0,238 >=20 > + xor esi,edx >=20 > + movdqa xmm8,xmm3 >=20 > + paddd xmm9,xmm3 >=20 > + mov edi,eax >=20 > + add ebp,DWORD[rsp] >=20 > + punpcklqdq xmm4,xmm1 >=20 > + xor ebx,ecx >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + psrldq xmm8,4 >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + pxor xmm4,xmm0 >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + pxor xmm8,xmm2 >=20 > + xor edi,ecx >=20 > + mov esi,ebp >=20 > + add edx,DWORD[4+rsp] >=20 > + pxor xmm4,xmm8 >=20 > + xor eax,ebx >=20 > + rol ebp,5 >=20 > + movdqa XMMWORD[48+rsp],xmm9 >=20 > + add edx,edi >=20 > + and esi,eax >=20 > + movdqa xmm10,xmm4 >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + ror ebp,7 >=20 > + movdqa xmm8,xmm4 >=20 > + xor esi,ebx >=20 > + pslldq xmm10,12 >=20 > + paddd xmm4,xmm4 >=20 > + mov edi,edx >=20 > + add ecx,DWORD[8+rsp] >=20 > + psrld xmm8,31 >=20 > + xor ebp,eax >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movdqa xmm9,xmm10 >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + psrld xmm10,30 >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + por xmm4,xmm8 >=20 > + xor edi,eax >=20 > + mov esi,ecx >=20 > + add ebx,DWORD[12+rsp] >=20 > + pslld xmm9,2 >=20 > + pxor xmm4,xmm10 >=20 > + xor edx,ebp >=20 > + movdqa xmm10,XMMWORD[((-64))+r14] >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + and esi,edx >=20 > + pxor xmm4,xmm9 >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + ror ecx,7 >=20 > + pshufd xmm5,xmm1,238 >=20 > + xor esi,ebp >=20 > + movdqa xmm9,xmm4 >=20 > + paddd xmm10,xmm4 >=20 > + mov edi,ebx >=20 > + add eax,DWORD[16+rsp] >=20 > + punpcklqdq xmm5,xmm2 >=20 > + xor ecx,edx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + psrldq xmm9,4 >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + pxor xmm5,xmm1 >=20 > + add eax,ebx >=20 > + ror ebx,7 >=20 > + pxor xmm9,xmm3 >=20 > + xor edi,edx >=20 > + mov esi,eax >=20 > + add ebp,DWORD[20+rsp] >=20 > + pxor xmm5,xmm9 >=20 > + xor ebx,ecx >=20 > + rol eax,5 >=20 > + movdqa XMMWORD[rsp],xmm10 >=20 > + add ebp,edi >=20 > + and esi,ebx >=20 > + movdqa xmm8,xmm5 >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + movdqa xmm9,xmm5 >=20 > + xor esi,ecx >=20 > + pslldq xmm8,12 >=20 > + paddd xmm5,xmm5 >=20 > + mov edi,ebp >=20 > + add edx,DWORD[24+rsp] >=20 > + psrld xmm9,31 >=20 > + xor eax,ebx >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + movdqa xmm10,xmm8 >=20 > + and edi,eax >=20 > + xor eax,ebx >=20 > + psrld xmm8,30 >=20 > + add edx,ebp >=20 > + ror ebp,7 >=20 > + por xmm5,xmm9 >=20 > + xor edi,ebx >=20 > + mov esi,edx >=20 > + add ecx,DWORD[28+rsp] >=20 > + pslld xmm10,2 >=20 > + pxor xmm5,xmm8 >=20 > + xor ebp,eax >=20 > + movdqa xmm8,XMMWORD[((-32))+r14] >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + and esi,ebp >=20 > + pxor xmm5,xmm10 >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + pshufd xmm6,xmm2,238 >=20 > + xor esi,eax >=20 > + movdqa xmm10,xmm5 >=20 > + paddd xmm8,xmm5 >=20 > + mov edi,ecx >=20 > + add ebx,DWORD[32+rsp] >=20 > + punpcklqdq xmm6,xmm3 >=20 > + xor edx,ebp >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + psrldq xmm10,4 >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + pxor xmm6,xmm2 >=20 > + add ebx,ecx >=20 > + ror ecx,7 >=20 > + pxor xmm10,xmm4 >=20 > + xor edi,ebp >=20 > + mov esi,ebx >=20 > + add eax,DWORD[36+rsp] >=20 > + pxor xmm6,xmm10 >=20 > + xor ecx,edx >=20 > + rol ebx,5 >=20 > + movdqa XMMWORD[16+rsp],xmm8 >=20 > + add eax,edi >=20 > + and esi,ecx >=20 > + movdqa xmm9,xmm6 >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + ror ebx,7 >=20 > + movdqa xmm10,xmm6 >=20 > + xor esi,edx >=20 > + pslldq xmm9,12 >=20 > + paddd xmm6,xmm6 >=20 > + mov edi,eax >=20 > + add ebp,DWORD[40+rsp] >=20 > + psrld xmm10,31 >=20 > + xor ebx,ecx >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + movdqa xmm8,xmm9 >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + psrld xmm9,30 >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + por xmm6,xmm10 >=20 > + xor edi,ecx >=20 > + mov esi,ebp >=20 > + add edx,DWORD[44+rsp] >=20 > + pslld xmm8,2 >=20 > + pxor xmm6,xmm9 >=20 > + xor eax,ebx >=20 > + movdqa xmm9,XMMWORD[((-32))+r14] >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + and esi,eax >=20 > + pxor xmm6,xmm8 >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + ror ebp,7 >=20 > + pshufd xmm7,xmm3,238 >=20 > + xor esi,ebx >=20 > + movdqa xmm8,xmm6 >=20 > + paddd xmm9,xmm6 >=20 > + mov edi,edx >=20 > + add ecx,DWORD[48+rsp] >=20 > + punpcklqdq xmm7,xmm4 >=20 > + xor ebp,eax >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + psrldq xmm8,4 >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + pxor xmm7,xmm3 >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + pxor xmm8,xmm5 >=20 > + xor edi,eax >=20 > + mov esi,ecx >=20 > + add ebx,DWORD[52+rsp] >=20 > + pxor xmm7,xmm8 >=20 > + xor edx,ebp >=20 > + rol ecx,5 >=20 > + movdqa XMMWORD[32+rsp],xmm9 >=20 > + add ebx,edi >=20 > + and esi,edx >=20 > + movdqa xmm10,xmm7 >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + ror ecx,7 >=20 > + movdqa xmm8,xmm7 >=20 > + xor esi,ebp >=20 > + pslldq xmm10,12 >=20 > + paddd xmm7,xmm7 >=20 > + mov edi,ebx >=20 > + add eax,DWORD[56+rsp] >=20 > + psrld xmm8,31 >=20 > + xor ecx,edx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + movdqa xmm9,xmm10 >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + psrld xmm10,30 >=20 > + add eax,ebx >=20 > + ror ebx,7 >=20 > + por xmm7,xmm8 >=20 > + xor edi,edx >=20 > + mov esi,eax >=20 > + add ebp,DWORD[60+rsp] >=20 > + pslld xmm9,2 >=20 > + pxor xmm7,xmm10 >=20 > + xor ebx,ecx >=20 > + movdqa xmm10,XMMWORD[((-32))+r14] >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + and esi,ebx >=20 > + pxor xmm7,xmm9 >=20 > + pshufd xmm9,xmm6,238 >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + ror eax,7 >=20 > + pxor xmm0,xmm4 >=20 > + xor esi,ecx >=20 > + mov edi,ebp >=20 > + add edx,DWORD[rsp] >=20 > + punpcklqdq xmm9,xmm7 >=20 > + xor eax,ebx >=20 > + rol ebp,5 >=20 > + pxor xmm0,xmm1 >=20 > + add edx,esi >=20 > + and edi,eax >=20 > + movdqa xmm8,xmm10 >=20 > + xor eax,ebx >=20 > + paddd xmm10,xmm7 >=20 > + add edx,ebp >=20 > + pxor xmm0,xmm9 >=20 > + ror ebp,7 >=20 > + xor edi,ebx >=20 > + mov esi,edx >=20 > + add ecx,DWORD[4+rsp] >=20 > + movdqa xmm9,xmm0 >=20 > + xor ebp,eax >=20 > + rol edx,5 >=20 > + movdqa XMMWORD[48+rsp],xmm10 >=20 > + add ecx,edi >=20 > + and esi,ebp >=20 > + xor ebp,eax >=20 > + pslld xmm0,2 >=20 > + add ecx,edx >=20 > + ror edx,7 >=20 > + psrld xmm9,30 >=20 > + xor esi,eax >=20 > + mov edi,ecx >=20 > + add ebx,DWORD[8+rsp] >=20 > + por xmm0,xmm9 >=20 > + xor edx,ebp >=20 > + rol ecx,5 >=20 > + pshufd xmm10,xmm7,238 >=20 > + add ebx,esi >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + add eax,DWORD[12+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + pxor xmm1,xmm5 >=20 > + add ebp,DWORD[16+rsp] >=20 > + xor esi,ecx >=20 > + punpcklqdq xmm10,xmm0 >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + pxor xmm1,xmm2 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + movdqa xmm9,xmm8 >=20 > + ror ebx,7 >=20 > + paddd xmm8,xmm0 >=20 > + add ebp,eax >=20 > + pxor xmm1,xmm10 >=20 > + add edx,DWORD[20+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + movdqa xmm10,xmm1 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + movdqa XMMWORD[rsp],xmm8 >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[24+rsp] >=20 > + pslld xmm1,2 >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > + psrld xmm10,30 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + por xmm1,xmm10 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[28+rsp] >=20 > + pshufd xmm8,xmm0,238 >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + pxor xmm2,xmm6 >=20 > + add eax,DWORD[32+rsp] >=20 > + xor esi,edx >=20 > + punpcklqdq xmm8,xmm1 >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + pxor xmm2,xmm3 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + movdqa xmm10,XMMWORD[r14] >=20 > + ror ecx,7 >=20 > + paddd xmm9,xmm1 >=20 > + add eax,ebx >=20 > + pxor xmm2,xmm8 >=20 > + add ebp,DWORD[36+rsp] >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + movdqa xmm8,xmm2 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + movdqa XMMWORD[16+rsp],xmm9 >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[40+rsp] >=20 > + pslld xmm2,2 >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > + psrld xmm8,30 >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + por xmm2,xmm8 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[44+rsp] >=20 > + pshufd xmm9,xmm1,238 >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + pxor xmm3,xmm7 >=20 > + add ebx,DWORD[48+rsp] >=20 > + xor esi,ebp >=20 > + punpcklqdq xmm9,xmm2 >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + pxor xmm3,xmm4 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + movdqa xmm8,xmm10 >=20 > + ror edx,7 >=20 > + paddd xmm10,xmm2 >=20 > + add ebx,ecx >=20 > + pxor xmm3,xmm9 >=20 > + add eax,DWORD[52+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + movdqa xmm9,xmm3 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + movdqa XMMWORD[32+rsp],xmm10 >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[56+rsp] >=20 > + pslld xmm3,2 >=20 > + xor esi,ecx >=20 > + mov edi,eax >=20 > + psrld xmm9,30 >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + ror ebx,7 >=20 > + por xmm3,xmm9 >=20 > + add ebp,eax >=20 > + add edx,DWORD[60+rsp] >=20 > + pshufd xmm10,xmm2,238 >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + pxor xmm4,xmm0 >=20 > + add ecx,DWORD[rsp] >=20 > + xor esi,eax >=20 > + punpcklqdq xmm10,xmm3 >=20 > + mov edi,edx >=20 > + rol edx,5 >=20 > + pxor xmm4,xmm5 >=20 > + add ecx,esi >=20 > + xor edi,eax >=20 > + movdqa xmm9,xmm8 >=20 > + ror ebp,7 >=20 > + paddd xmm8,xmm3 >=20 > + add ecx,edx >=20 > + pxor xmm4,xmm10 >=20 > + add ebx,DWORD[4+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + movdqa xmm10,xmm4 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + movdqa XMMWORD[48+rsp],xmm8 >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[8+rsp] >=20 > + pslld xmm4,2 >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + psrld xmm10,30 >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + ror ecx,7 >=20 > + por xmm4,xmm10 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[12+rsp] >=20 > + pshufd xmm8,xmm3,238 >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + pxor xmm5,xmm1 >=20 > + add edx,DWORD[16+rsp] >=20 > + xor esi,ebx >=20 > + punpcklqdq xmm8,xmm4 >=20 > + mov edi,ebp >=20 > + rol ebp,5 >=20 > + pxor xmm5,xmm6 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + movdqa xmm10,xmm9 >=20 > + ror eax,7 >=20 > + paddd xmm9,xmm4 >=20 > + add edx,ebp >=20 > + pxor xmm5,xmm8 >=20 > + add ecx,DWORD[20+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + movdqa xmm8,xmm5 >=20 > + add ecx,edi >=20 > + xor esi,eax >=20 > + movdqa XMMWORD[rsp],xmm9 >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[24+rsp] >=20 > + pslld xmm5,2 >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + psrld xmm8,30 >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + por xmm5,xmm8 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[28+rsp] >=20 > + pshufd xmm9,xmm4,238 >=20 > + ror ecx,7 >=20 > + mov esi,ebx >=20 > + xor edi,edx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,ecx >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + pxor xmm6,xmm2 >=20 > + add ebp,DWORD[32+rsp] >=20 > + and esi,ecx >=20 > + xor ecx,edx >=20 > + ror ebx,7 >=20 > + punpcklqdq xmm9,xmm5 >=20 > + mov edi,eax >=20 > + xor esi,ecx >=20 > + pxor xmm6,xmm7 >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + movdqa xmm8,xmm10 >=20 > + xor edi,ebx >=20 > + paddd xmm10,xmm5 >=20 > + xor ebx,ecx >=20 > + pxor xmm6,xmm9 >=20 > + add ebp,eax >=20 > + add edx,DWORD[36+rsp] >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + ror eax,7 >=20 > + movdqa xmm9,xmm6 >=20 > + mov esi,ebp >=20 > + xor edi,ebx >=20 > + movdqa XMMWORD[16+rsp],xmm10 >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,eax >=20 > + pslld xmm6,2 >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + psrld xmm9,30 >=20 > + add ecx,DWORD[40+rsp] >=20 > + and esi,eax >=20 > + xor eax,ebx >=20 > + por xmm6,xmm9 >=20 > + ror ebp,7 >=20 > + mov edi,edx >=20 > + xor esi,eax >=20 > + rol edx,5 >=20 > + pshufd xmm10,xmm5,238 >=20 > + add ecx,esi >=20 > + xor edi,ebp >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + add ebx,DWORD[44+rsp] >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + ror edx,7 >=20 > + mov esi,ecx >=20 > + xor edi,ebp >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,edx >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + pxor xmm7,xmm3 >=20 > + add eax,DWORD[48+rsp] >=20 > + and esi,edx >=20 > + xor edx,ebp >=20 > + ror ecx,7 >=20 > + punpcklqdq xmm10,xmm6 >=20 > + mov edi,ebx >=20 > + xor esi,edx >=20 > + pxor xmm7,xmm0 >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + movdqa xmm9,XMMWORD[32+r14] >=20 > + xor edi,ecx >=20 > + paddd xmm8,xmm6 >=20 > + xor ecx,edx >=20 > + pxor xmm7,xmm10 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[52+rsp] >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + ror ebx,7 >=20 > + movdqa xmm10,xmm7 >=20 > + mov esi,eax >=20 > + xor edi,ecx >=20 > + movdqa XMMWORD[32+rsp],xmm8 >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ebx >=20 > + pslld xmm7,2 >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + psrld xmm10,30 >=20 > + add edx,DWORD[56+rsp] >=20 > + and esi,ebx >=20 > + xor ebx,ecx >=20 > + por xmm7,xmm10 >=20 > + ror eax,7 >=20 > + mov edi,ebp >=20 > + xor esi,ebx >=20 > + rol ebp,5 >=20 > + pshufd xmm8,xmm6,238 >=20 > + add edx,esi >=20 > + xor edi,eax >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + add ecx,DWORD[60+rsp] >=20 > + and edi,eax >=20 > + xor eax,ebx >=20 > + ror ebp,7 >=20 > + mov esi,edx >=20 > + xor edi,eax >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,ebp >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + pxor xmm0,xmm4 >=20 > + add ebx,DWORD[rsp] >=20 > + and esi,ebp >=20 > + xor ebp,eax >=20 > + ror edx,7 >=20 > + punpcklqdq xmm8,xmm7 >=20 > + mov edi,ecx >=20 > + xor esi,ebp >=20 > + pxor xmm0,xmm1 >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + movdqa xmm10,xmm9 >=20 > + xor edi,edx >=20 > + paddd xmm9,xmm7 >=20 > + xor edx,ebp >=20 > + pxor xmm0,xmm8 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[4+rsp] >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + ror ecx,7 >=20 > + movdqa xmm8,xmm0 >=20 > + mov esi,ebx >=20 > + xor edi,edx >=20 > + movdqa XMMWORD[48+rsp],xmm9 >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,ecx >=20 > + pslld xmm0,2 >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + psrld xmm8,30 >=20 > + add ebp,DWORD[8+rsp] >=20 > + and esi,ecx >=20 > + xor ecx,edx >=20 > + por xmm0,xmm8 >=20 > + ror ebx,7 >=20 > + mov edi,eax >=20 > + xor esi,ecx >=20 > + rol eax,5 >=20 > + pshufd xmm9,xmm7,238 >=20 > + add ebp,esi >=20 > + xor edi,ebx >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + add edx,DWORD[12+rsp] >=20 > + and edi,ebx >=20 > + xor ebx,ecx >=20 > + ror eax,7 >=20 > + mov esi,ebp >=20 > + xor edi,ebx >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,eax >=20 > + xor eax,ebx >=20 > + add edx,ebp >=20 > + pxor xmm1,xmm5 >=20 > + add ecx,DWORD[16+rsp] >=20 > + and esi,eax >=20 > + xor eax,ebx >=20 > + ror ebp,7 >=20 > + punpcklqdq xmm9,xmm0 >=20 > + mov edi,edx >=20 > + xor esi,eax >=20 > + pxor xmm1,xmm2 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + movdqa xmm8,xmm10 >=20 > + xor edi,ebp >=20 > + paddd xmm10,xmm0 >=20 > + xor ebp,eax >=20 > + pxor xmm1,xmm9 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[20+rsp] >=20 > + and edi,ebp >=20 > + xor ebp,eax >=20 > + ror edx,7 >=20 > + movdqa xmm9,xmm1 >=20 > + mov esi,ecx >=20 > + xor edi,ebp >=20 > + movdqa XMMWORD[rsp],xmm10 >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,edx >=20 > + pslld xmm1,2 >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + psrld xmm9,30 >=20 > + add eax,DWORD[24+rsp] >=20 > + and esi,edx >=20 > + xor edx,ebp >=20 > + por xmm1,xmm9 >=20 > + ror ecx,7 >=20 > + mov edi,ebx >=20 > + xor esi,edx >=20 > + rol ebx,5 >=20 > + pshufd xmm10,xmm0,238 >=20 > + add eax,esi >=20 > + xor edi,ecx >=20 > + xor ecx,edx >=20 > + add eax,ebx >=20 > + add ebp,DWORD[28+rsp] >=20 > + and edi,ecx >=20 > + xor ecx,edx >=20 > + ror ebx,7 >=20 > + mov esi,eax >=20 > + xor edi,ecx >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ebx >=20 > + xor ebx,ecx >=20 > + add ebp,eax >=20 > + pxor xmm2,xmm6 >=20 > + add edx,DWORD[32+rsp] >=20 > + and esi,ebx >=20 > + xor ebx,ecx >=20 > + ror eax,7 >=20 > + punpcklqdq xmm10,xmm1 >=20 > + mov edi,ebp >=20 > + xor esi,ebx >=20 > + pxor xmm2,xmm3 >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + movdqa xmm9,xmm8 >=20 > + xor edi,eax >=20 > + paddd xmm8,xmm1 >=20 > + xor eax,ebx >=20 > + pxor xmm2,xmm10 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[36+rsp] >=20 > + and edi,eax >=20 > + xor eax,ebx >=20 > + ror ebp,7 >=20 > + movdqa xmm10,xmm2 >=20 > + mov esi,edx >=20 > + xor edi,eax >=20 > + movdqa XMMWORD[16+rsp],xmm8 >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,ebp >=20 > + pslld xmm2,2 >=20 > + xor ebp,eax >=20 > + add ecx,edx >=20 > + psrld xmm10,30 >=20 > + add ebx,DWORD[40+rsp] >=20 > + and esi,ebp >=20 > + xor ebp,eax >=20 > + por xmm2,xmm10 >=20 > + ror edx,7 >=20 > + mov edi,ecx >=20 > + xor esi,ebp >=20 > + rol ecx,5 >=20 > + pshufd xmm8,xmm1,238 >=20 > + add ebx,esi >=20 > + xor edi,edx >=20 > + xor edx,ebp >=20 > + add ebx,ecx >=20 > + add eax,DWORD[44+rsp] >=20 > + and edi,edx >=20 > + xor edx,ebp >=20 > + ror ecx,7 >=20 > + mov esi,ebx >=20 > + xor edi,edx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + add eax,ebx >=20 > + pxor xmm3,xmm7 >=20 > + add ebp,DWORD[48+rsp] >=20 > + xor esi,ecx >=20 > + punpcklqdq xmm8,xmm2 >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + pxor xmm3,xmm4 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + movdqa xmm10,xmm9 >=20 > + ror ebx,7 >=20 > + paddd xmm9,xmm2 >=20 > + add ebp,eax >=20 > + pxor xmm3,xmm8 >=20 > + add edx,DWORD[52+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + movdqa xmm8,xmm3 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + movdqa XMMWORD[32+rsp],xmm9 >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[56+rsp] >=20 > + pslld xmm3,2 >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > + psrld xmm8,30 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + por xmm3,xmm8 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[60+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[rsp] >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + paddd xmm10,xmm3 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + movdqa XMMWORD[48+rsp],xmm10 >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[4+rsp] >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[8+rsp] >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[12+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + cmp r9,r10 >=20 > + je NEAR $L$done_ssse3 >=20 > + movdqa xmm6,XMMWORD[64+r14] >=20 > + movdqa xmm9,XMMWORD[((-64))+r14] >=20 > + movdqu xmm0,XMMWORD[r9] >=20 > + movdqu xmm1,XMMWORD[16+r9] >=20 > + movdqu xmm2,XMMWORD[32+r9] >=20 > + movdqu xmm3,XMMWORD[48+r9] >=20 > +DB 102,15,56,0,198 >=20 > + add r9,64 >=20 > + add ebx,DWORD[16+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > +DB 102,15,56,0,206 >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + paddd xmm0,xmm9 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[20+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + movdqa XMMWORD[rsp],xmm0 >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + ror ecx,7 >=20 > + psubd xmm0,xmm9 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[24+rsp] >=20 > + xor esi,ecx >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[28+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[32+rsp] >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > +DB 102,15,56,0,214 >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + paddd xmm1,xmm9 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[36+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + movdqa XMMWORD[16+rsp],xmm1 >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + psubd xmm1,xmm9 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[40+rsp] >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[44+rsp] >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[48+rsp] >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > +DB 102,15,56,0,222 >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + paddd xmm2,xmm9 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[52+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + movdqa XMMWORD[32+rsp],xmm2 >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + psubd xmm2,xmm9 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[56+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[60+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add eax,DWORD[r8] >=20 > + add esi,DWORD[4+r8] >=20 > + add ecx,DWORD[8+r8] >=20 > + add edx,DWORD[12+r8] >=20 > + mov DWORD[r8],eax >=20 > + add ebp,DWORD[16+r8] >=20 > + mov DWORD[4+r8],esi >=20 > + mov ebx,esi >=20 > + mov DWORD[8+r8],ecx >=20 > + mov edi,ecx >=20 > + mov DWORD[12+r8],edx >=20 > + xor edi,edx >=20 > + mov DWORD[16+r8],ebp >=20 > + and esi,edi >=20 > + jmp NEAR $L$oop_ssse3 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$done_ssse3: >=20 > + add ebx,DWORD[16+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[20+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + xor esi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[24+rsp] >=20 > + xor esi,ecx >=20 > + mov edi,eax >=20 > + rol eax,5 >=20 > + add ebp,esi >=20 > + xor edi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[28+rsp] >=20 > + xor edi,ebx >=20 > + mov esi,ebp >=20 > + rol ebp,5 >=20 > + add edx,edi >=20 > + xor esi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[32+rsp] >=20 > + xor esi,eax >=20 > + mov edi,edx >=20 > + rol edx,5 >=20 > + add ecx,esi >=20 > + xor edi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[36+rsp] >=20 > + xor edi,ebp >=20 > + mov esi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,edi >=20 > + xor esi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[40+rsp] >=20 > + xor esi,edx >=20 > + mov edi,ebx >=20 > + rol ebx,5 >=20 > + add eax,esi >=20 > + xor edi,edx >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add ebp,DWORD[44+rsp] >=20 > + xor edi,ecx >=20 > + mov esi,eax >=20 > + rol eax,5 >=20 > + add ebp,edi >=20 > + xor esi,ecx >=20 > + ror ebx,7 >=20 > + add ebp,eax >=20 > + add edx,DWORD[48+rsp] >=20 > + xor esi,ebx >=20 > + mov edi,ebp >=20 > + rol ebp,5 >=20 > + add edx,esi >=20 > + xor edi,ebx >=20 > + ror eax,7 >=20 > + add edx,ebp >=20 > + add ecx,DWORD[52+rsp] >=20 > + xor edi,eax >=20 > + mov esi,edx >=20 > + rol edx,5 >=20 > + add ecx,edi >=20 > + xor esi,eax >=20 > + ror ebp,7 >=20 > + add ecx,edx >=20 > + add ebx,DWORD[56+rsp] >=20 > + xor esi,ebp >=20 > + mov edi,ecx >=20 > + rol ecx,5 >=20 > + add ebx,esi >=20 > + xor edi,ebp >=20 > + ror edx,7 >=20 > + add ebx,ecx >=20 > + add eax,DWORD[60+rsp] >=20 > + xor edi,edx >=20 > + mov esi,ebx >=20 > + rol ebx,5 >=20 > + add eax,edi >=20 > + ror ecx,7 >=20 > + add eax,ebx >=20 > + add eax,DWORD[r8] >=20 > + add esi,DWORD[4+r8] >=20 > + add ecx,DWORD[8+r8] >=20 > + mov DWORD[r8],eax >=20 > + add edx,DWORD[12+r8] >=20 > + mov DWORD[4+r8],esi >=20 > + add ebp,DWORD[16+r8] >=20 > + mov DWORD[8+r8],ecx >=20 > + mov DWORD[12+r8],edx >=20 > + mov DWORD[16+r8],ebp >=20 > + movaps xmm6,XMMWORD[((-40-96))+r11] >=20 > + movaps xmm7,XMMWORD[((-40-80))+r11] >=20 > + movaps xmm8,XMMWORD[((-40-64))+r11] >=20 > + movaps xmm9,XMMWORD[((-40-48))+r11] >=20 > + movaps xmm10,XMMWORD[((-40-32))+r11] >=20 > + movaps xmm11,XMMWORD[((-40-16))+r11] >=20 > + mov r14,QWORD[((-40))+r11] >=20 > + >=20 > + mov r13,QWORD[((-32))+r11] >=20 > + >=20 > + mov r12,QWORD[((-24))+r11] >=20 > + >=20 > + mov rbp,QWORD[((-16))+r11] >=20 > + >=20 > + mov rbx,QWORD[((-8))+r11] >=20 > + >=20 > + lea rsp,[r11] >=20 > + >=20 > +$L$epilogue_ssse3: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha1_block_data_order_ssse3: >=20 > +ALIGN 64 >=20 > +K_XX_XX: >=20 > + DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 >=20 > + DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 >=20 > + DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 >=20 > + DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 >=20 > + DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc >=20 > + DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc >=20 > + DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 >=20 > + DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > +DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 >=20 > +DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 >=20 > +DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 >=20 > +DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 >=20 > +DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114 >=20 > +DB 103,62,0 >=20 > +ALIGN 64 >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + lea r10,[$L$prologue] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + lea r10,[$L$epilogue] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[64+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + >=20 > + jmp NEAR $L$common_seh_tail >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +shaext_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + lea r10,[$L$prologue_shaext] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + lea r10,[$L$epilogue_shaext] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + lea rsi,[((-8-64))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,8 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + jmp NEAR $L$common_seh_tail >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +ssse3_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$common_seh_tail >=20 > + >=20 > + mov rax,QWORD[208+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$common_seh_tail >=20 > + >=20 > + lea rsi,[((-40-96))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,12 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + >=20 > +$L$common_seh_tail: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_end_sha1_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_info_sha1_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_begin_sha1_block_data_order_shaext wrt ..imagebas= e >=20 > + DD $L$SEH_end_sha1_block_data_order_shaext wrt ..imagebase >=20 > + DD $L$SEH_info_sha1_block_data_order_shaext wrt ..imagebase >=20 > + DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase >=20 > + DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase >=20 > + DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_sha1_block_data_order: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > +$L$SEH_info_sha1_block_data_order_shaext: >=20 > +DB 9,0,0,0 >=20 > + DD shaext_handler wrt ..imagebase >=20 > +$L$SEH_info_sha1_block_data_order_ssse3: >=20 > +DB 9,0,0,0 >=20 > + DD ssse3_handler wrt ..imagebase >=20 > + DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 > wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb- > x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb- > x86_64.nasm > new file mode 100644 > index 0000000000..7cd5eae85c > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm > @@ -0,0 +1,3461 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/sha/asm/sha256-mb-x86_64.pl >=20 > +; >=20 > +; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > + >=20 > +global sha256_multi_block >=20 > + >=20 > +ALIGN 32 >=20 > +sha256_multi_block: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha256_multi_block: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + mov rcx,QWORD[((OPENSSL_ia32cap_P+4))] >=20 > + bt rcx,61 >=20 > + jc NEAR _shaext_shortcut >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[(-120)+rax],xmm10 >=20 > + movaps XMMWORD[(-104)+rax],xmm11 >=20 > + movaps XMMWORD[(-88)+rax],xmm12 >=20 > + movaps XMMWORD[(-72)+rax],xmm13 >=20 > + movaps XMMWORD[(-56)+rax],xmm14 >=20 > + movaps XMMWORD[(-40)+rax],xmm15 >=20 > + sub rsp,288 >=20 > + and rsp,-256 >=20 > + mov QWORD[272+rsp],rax >=20 > + >=20 > +$L$body: >=20 > + lea rbp,[((K256+128))] >=20 > + lea rbx,[256+rsp] >=20 > + lea rdi,[128+rdi] >=20 > + >=20 > +$L$oop_grande: >=20 > + mov DWORD[280+rsp],edx >=20 > + xor edx,edx >=20 > + mov r8,QWORD[rsi] >=20 > + mov ecx,DWORD[8+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[rbx],ecx >=20 > + cmovle r8,rbp >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov ecx,DWORD[24+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[4+rbx],ecx >=20 > + cmovle r9,rbp >=20 > + mov r10,QWORD[32+rsi] >=20 > + mov ecx,DWORD[40+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[8+rbx],ecx >=20 > + cmovle r10,rbp >=20 > + mov r11,QWORD[48+rsi] >=20 > + mov ecx,DWORD[56+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[12+rbx],ecx >=20 > + cmovle r11,rbp >=20 > + test edx,edx >=20 > + jz NEAR $L$done >=20 > + >=20 > + movdqu xmm8,XMMWORD[((0-128))+rdi] >=20 > + lea rax,[128+rsp] >=20 > + movdqu xmm9,XMMWORD[((32-128))+rdi] >=20 > + movdqu xmm10,XMMWORD[((64-128))+rdi] >=20 > + movdqu xmm11,XMMWORD[((96-128))+rdi] >=20 > + movdqu xmm12,XMMWORD[((128-128))+rdi] >=20 > + movdqu xmm13,XMMWORD[((160-128))+rdi] >=20 > + movdqu xmm14,XMMWORD[((192-128))+rdi] >=20 > + movdqu xmm15,XMMWORD[((224-128))+rdi] >=20 > + movdqu xmm6,XMMWORD[$L$pbswap] >=20 > + jmp NEAR $L$oop >=20 > + >=20 > +ALIGN 32 >=20 > +$L$oop: >=20 > + movdqa xmm4,xmm10 >=20 > + pxor xmm4,xmm9 >=20 > + movd xmm5,DWORD[r8] >=20 > + movd xmm0,DWORD[r9] >=20 > + movd xmm1,DWORD[r10] >=20 > + movd xmm2,DWORD[r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm12 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm12 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm12 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(0-128)+rax],xmm5 >=20 > + paddd xmm5,xmm15 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-128))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm12 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm12 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm14 >=20 > + pand xmm3,xmm13 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm8 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm8 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > + movdqa xmm7,xmm8 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm8 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm15,xmm9 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm15,xmm4 >=20 > + paddd xmm11,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm15,xmm5 >=20 > + paddd xmm15,xmm7 >=20 > + movd xmm5,DWORD[4+r8] >=20 > + movd xmm0,DWORD[4+r9] >=20 > + movd xmm1,DWORD[4+r10] >=20 > + movd xmm2,DWORD[4+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + movdqa xmm2,xmm11 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm11 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(16-128)+rax],xmm5 >=20 > + paddd xmm5,xmm14 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-96))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm11 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm11 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm13 >=20 > + pand xmm4,xmm12 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm15 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm15 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm8 >=20 > + movdqa xmm7,xmm15 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm15 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm14,xmm8 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm14,xmm3 >=20 > + paddd xmm10,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm14,xmm5 >=20 > + paddd xmm14,xmm7 >=20 > + movd xmm5,DWORD[8+r8] >=20 > + movd xmm0,DWORD[8+r9] >=20 > + movd xmm1,DWORD[8+r10] >=20 > + movd xmm2,DWORD[8+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm10 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm10 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm10 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(32-128)+rax],xmm5 >=20 > + paddd xmm5,xmm13 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-64))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm10 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm10 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm12 >=20 > + pand xmm3,xmm11 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm14 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm14 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm15 >=20 > + movdqa xmm7,xmm14 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm14 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm13,xmm15 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm13,xmm4 >=20 > + paddd xmm9,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm13,xmm5 >=20 > + paddd xmm13,xmm7 >=20 > + movd xmm5,DWORD[12+r8] >=20 > + movd xmm0,DWORD[12+r9] >=20 > + movd xmm1,DWORD[12+r10] >=20 > + movd xmm2,DWORD[12+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm9 >=20 > + >=20 > + movdqa xmm2,xmm9 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm9 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(48-128)+rax],xmm5 >=20 > + paddd xmm5,xmm12 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-32))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm9 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm9 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm11 >=20 > + pand xmm4,xmm10 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm13 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm13 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm13 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm12,xmm14 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm12,xmm3 >=20 > + paddd xmm8,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm12,xmm5 >=20 > + paddd xmm12,xmm7 >=20 > + movd xmm5,DWORD[16+r8] >=20 > + movd xmm0,DWORD[16+r9] >=20 > + movd xmm1,DWORD[16+r10] >=20 > + movd xmm2,DWORD[16+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm8 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm8 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm8 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(64-128)+rax],xmm5 >=20 > + paddd xmm5,xmm11 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm8 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm8 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm10 >=20 > + pand xmm3,xmm9 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm12 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm12 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm12 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm11,xmm13 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm11,xmm4 >=20 > + paddd xmm15,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm11,xmm5 >=20 > + paddd xmm11,xmm7 >=20 > + movd xmm5,DWORD[20+r8] >=20 > + movd xmm0,DWORD[20+r9] >=20 > + movd xmm1,DWORD[20+r10] >=20 > + movd xmm2,DWORD[20+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm15 >=20 > + >=20 > + movdqa xmm2,xmm15 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm15 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(80-128)+rax],xmm5 >=20 > + paddd xmm5,xmm10 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[32+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm15 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm15 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm9 >=20 > + pand xmm4,xmm8 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm11 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm11 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm11 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm10,xmm12 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm10,xmm3 >=20 > + paddd xmm14,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm10,xmm5 >=20 > + paddd xmm10,xmm7 >=20 > + movd xmm5,DWORD[24+r8] >=20 > + movd xmm0,DWORD[24+r9] >=20 > + movd xmm1,DWORD[24+r10] >=20 > + movd xmm2,DWORD[24+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm14 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm14 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm14 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(96-128)+rax],xmm5 >=20 > + paddd xmm5,xmm9 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[64+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm14 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm14 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm8 >=20 > + pand xmm3,xmm15 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm10 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm10 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm10 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm9,xmm11 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm9,xmm4 >=20 > + paddd xmm13,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm9,xmm5 >=20 > + paddd xmm9,xmm7 >=20 > + movd xmm5,DWORD[28+r8] >=20 > + movd xmm0,DWORD[28+r9] >=20 > + movd xmm1,DWORD[28+r10] >=20 > + movd xmm2,DWORD[28+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + movdqa xmm2,xmm13 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm13 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(112-128)+rax],xmm5 >=20 > + paddd xmm5,xmm8 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[96+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm13 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm13 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm15 >=20 > + pand xmm4,xmm14 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm9 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm10 >=20 > + movdqa xmm7,xmm9 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm9 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm8,xmm10 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm8,xmm3 >=20 > + paddd xmm12,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm8,xmm5 >=20 > + paddd xmm8,xmm7 >=20 > + lea rbp,[256+rbp] >=20 > + movd xmm5,DWORD[32+r8] >=20 > + movd xmm0,DWORD[32+r9] >=20 > + movd xmm1,DWORD[32+r10] >=20 > + movd xmm2,DWORD[32+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm12 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm12 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm12 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(128-128)+rax],xmm5 >=20 > + paddd xmm5,xmm15 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-128))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm12 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm12 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm14 >=20 > + pand xmm3,xmm13 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm8 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm8 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > + movdqa xmm7,xmm8 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm8 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm15,xmm9 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm15,xmm4 >=20 > + paddd xmm11,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm15,xmm5 >=20 > + paddd xmm15,xmm7 >=20 > + movd xmm5,DWORD[36+r8] >=20 > + movd xmm0,DWORD[36+r9] >=20 > + movd xmm1,DWORD[36+r10] >=20 > + movd xmm2,DWORD[36+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + movdqa xmm2,xmm11 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm11 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(144-128)+rax],xmm5 >=20 > + paddd xmm5,xmm14 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-96))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm11 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm11 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm13 >=20 > + pand xmm4,xmm12 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm15 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm15 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm8 >=20 > + movdqa xmm7,xmm15 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm15 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm14,xmm8 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm14,xmm3 >=20 > + paddd xmm10,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm14,xmm5 >=20 > + paddd xmm14,xmm7 >=20 > + movd xmm5,DWORD[40+r8] >=20 > + movd xmm0,DWORD[40+r9] >=20 > + movd xmm1,DWORD[40+r10] >=20 > + movd xmm2,DWORD[40+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm10 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm10 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm10 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(160-128)+rax],xmm5 >=20 > + paddd xmm5,xmm13 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-64))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm10 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm10 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm12 >=20 > + pand xmm3,xmm11 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm14 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm14 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm15 >=20 > + movdqa xmm7,xmm14 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm14 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm13,xmm15 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm13,xmm4 >=20 > + paddd xmm9,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm13,xmm5 >=20 > + paddd xmm13,xmm7 >=20 > + movd xmm5,DWORD[44+r8] >=20 > + movd xmm0,DWORD[44+r9] >=20 > + movd xmm1,DWORD[44+r10] >=20 > + movd xmm2,DWORD[44+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm9 >=20 > + >=20 > + movdqa xmm2,xmm9 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm9 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(176-128)+rax],xmm5 >=20 > + paddd xmm5,xmm12 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-32))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm9 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm9 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm11 >=20 > + pand xmm4,xmm10 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm13 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm13 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm13 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm12,xmm14 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm12,xmm3 >=20 > + paddd xmm8,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm12,xmm5 >=20 > + paddd xmm12,xmm7 >=20 > + movd xmm5,DWORD[48+r8] >=20 > + movd xmm0,DWORD[48+r9] >=20 > + movd xmm1,DWORD[48+r10] >=20 > + movd xmm2,DWORD[48+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm8 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm8 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm8 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(192-128)+rax],xmm5 >=20 > + paddd xmm5,xmm11 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm8 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm8 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm10 >=20 > + pand xmm3,xmm9 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm12 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm12 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm12 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm11,xmm13 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm11,xmm4 >=20 > + paddd xmm15,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm11,xmm5 >=20 > + paddd xmm11,xmm7 >=20 > + movd xmm5,DWORD[52+r8] >=20 > + movd xmm0,DWORD[52+r9] >=20 > + movd xmm1,DWORD[52+r10] >=20 > + movd xmm2,DWORD[52+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm15 >=20 > + >=20 > + movdqa xmm2,xmm15 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm15 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(208-128)+rax],xmm5 >=20 > + paddd xmm5,xmm10 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[32+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm15 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm15 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm9 >=20 > + pand xmm4,xmm8 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm11 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm11 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm11 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm10,xmm12 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm10,xmm3 >=20 > + paddd xmm14,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm10,xmm5 >=20 > + paddd xmm10,xmm7 >=20 > + movd xmm5,DWORD[56+r8] >=20 > + movd xmm0,DWORD[56+r9] >=20 > + movd xmm1,DWORD[56+r10] >=20 > + movd xmm2,DWORD[56+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm14 >=20 > +DB 102,15,56,0,238 >=20 > + movdqa xmm2,xmm14 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm14 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(224-128)+rax],xmm5 >=20 > + paddd xmm5,xmm9 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[64+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm14 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm14 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm8 >=20 > + pand xmm3,xmm15 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm10 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm10 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm10 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm9,xmm11 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm9,xmm4 >=20 > + paddd xmm13,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm9,xmm5 >=20 > + paddd xmm9,xmm7 >=20 > + movd xmm5,DWORD[60+r8] >=20 > + lea r8,[64+r8] >=20 > + movd xmm0,DWORD[60+r9] >=20 > + lea r9,[64+r9] >=20 > + movd xmm1,DWORD[60+r10] >=20 > + lea r10,[64+r10] >=20 > + movd xmm2,DWORD[60+r11] >=20 > + lea r11,[64+r11] >=20 > + punpckldq xmm5,xmm1 >=20 > + punpckldq xmm0,xmm2 >=20 > + punpckldq xmm5,xmm0 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + movdqa xmm2,xmm13 >=20 > +DB 102,15,56,0,238 >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm13 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(240-128)+rax],xmm5 >=20 > + paddd xmm5,xmm8 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[96+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm13 >=20 > + prefetcht0 [63+r8] >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm13 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm15 >=20 > + pand xmm4,xmm14 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + prefetcht0 [63+r9] >=20 > + movdqa xmm1,xmm9 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm9 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm10 >=20 > + movdqa xmm7,xmm9 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm9 >=20 > + >=20 > + prefetcht0 [63+r10] >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + prefetcht0 [63+r11] >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm8,xmm10 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm8,xmm3 >=20 > + paddd xmm12,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm8,xmm5 >=20 > + paddd xmm8,xmm7 >=20 > + lea rbp,[256+rbp] >=20 > + movdqu xmm5,XMMWORD[((0-128))+rax] >=20 > + mov ecx,3 >=20 > + jmp NEAR $L$oop_16_xx >=20 > +ALIGN 32 >=20 > +$L$oop_16_xx: >=20 > + movdqa xmm6,XMMWORD[((16-128))+rax] >=20 > + paddd xmm5,XMMWORD[((144-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((224-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + movdqa xmm2,xmm12 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm12 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(0-128)+rax],xmm5 >=20 > + paddd xmm5,xmm15 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-128))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm12 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm12 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm14 >=20 > + pand xmm3,xmm13 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm8 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm8 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > + movdqa xmm7,xmm8 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm8 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm15,xmm9 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm15,xmm4 >=20 > + paddd xmm11,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm15,xmm5 >=20 > + paddd xmm15,xmm7 >=20 > + movdqa xmm5,XMMWORD[((32-128))+rax] >=20 > + paddd xmm6,XMMWORD[((160-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((240-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + movdqa xmm2,xmm11 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm11 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(16-128)+rax],xmm6 >=20 > + paddd xmm6,xmm14 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[((-96))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm11 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm11 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm13 >=20 > + pand xmm4,xmm12 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm15 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm15 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm8 >=20 > + movdqa xmm7,xmm15 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm15 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm14,xmm8 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm14,xmm3 >=20 > + paddd xmm10,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm14,xmm7 >=20 > + movdqa xmm6,XMMWORD[((48-128))+rax] >=20 > + paddd xmm5,XMMWORD[((176-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((0-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + movdqa xmm2,xmm10 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm10 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(32-128)+rax],xmm5 >=20 > + paddd xmm5,xmm13 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-64))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm10 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm10 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm12 >=20 > + pand xmm3,xmm11 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm14 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm14 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm15 >=20 > + movdqa xmm7,xmm14 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm14 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm13,xmm15 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm13,xmm4 >=20 > + paddd xmm9,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm13,xmm5 >=20 > + paddd xmm13,xmm7 >=20 > + movdqa xmm5,XMMWORD[((64-128))+rax] >=20 > + paddd xmm6,XMMWORD[((192-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((16-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm9 >=20 > + >=20 > + movdqa xmm2,xmm9 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm9 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(48-128)+rax],xmm6 >=20 > + paddd xmm6,xmm12 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[((-32))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm9 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm9 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm11 >=20 > + pand xmm4,xmm10 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm13 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm13 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm13 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm12,xmm14 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm12,xmm3 >=20 > + paddd xmm8,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm12,xmm7 >=20 > + movdqa xmm6,XMMWORD[((80-128))+rax] >=20 > + paddd xmm5,XMMWORD[((208-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((32-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm8 >=20 > + >=20 > + movdqa xmm2,xmm8 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm8 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(64-128)+rax],xmm5 >=20 > + paddd xmm5,xmm11 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm8 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm8 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm10 >=20 > + pand xmm3,xmm9 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm12 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm12 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm12 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm11,xmm13 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm11,xmm4 >=20 > + paddd xmm15,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm11,xmm5 >=20 > + paddd xmm11,xmm7 >=20 > + movdqa xmm5,XMMWORD[((96-128))+rax] >=20 > + paddd xmm6,XMMWORD[((224-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((48-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm15 >=20 > + >=20 > + movdqa xmm2,xmm15 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm15 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(80-128)+rax],xmm6 >=20 > + paddd xmm6,xmm10 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[32+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm15 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm15 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm9 >=20 > + pand xmm4,xmm8 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm11 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm11 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm11 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm10,xmm12 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm10,xmm3 >=20 > + paddd xmm14,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm10,xmm7 >=20 > + movdqa xmm6,XMMWORD[((112-128))+rax] >=20 > + paddd xmm5,XMMWORD[((240-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((64-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + movdqa xmm2,xmm14 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm14 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(96-128)+rax],xmm5 >=20 > + paddd xmm5,xmm9 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[64+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm14 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm14 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm8 >=20 > + pand xmm3,xmm15 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm10 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm10 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm10 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm9,xmm11 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm9,xmm4 >=20 > + paddd xmm13,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm9,xmm5 >=20 > + paddd xmm9,xmm7 >=20 > + movdqa xmm5,XMMWORD[((128-128))+rax] >=20 > + paddd xmm6,XMMWORD[((0-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((80-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + movdqa xmm2,xmm13 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm13 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(112-128)+rax],xmm6 >=20 > + paddd xmm6,xmm8 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[96+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm13 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm13 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm15 >=20 > + pand xmm4,xmm14 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm9 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm10 >=20 > + movdqa xmm7,xmm9 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm9 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm8,xmm10 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm8,xmm3 >=20 > + paddd xmm12,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm8,xmm6 >=20 > + paddd xmm8,xmm7 >=20 > + lea rbp,[256+rbp] >=20 > + movdqa xmm6,XMMWORD[((144-128))+rax] >=20 > + paddd xmm5,XMMWORD[((16-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((96-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm12 >=20 > + >=20 > + movdqa xmm2,xmm12 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm12 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(128-128)+rax],xmm5 >=20 > + paddd xmm5,xmm15 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-128))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm12 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm12 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm14 >=20 > + pand xmm3,xmm13 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm8 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm8 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > + movdqa xmm7,xmm8 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm8 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm15,xmm9 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm15,xmm4 >=20 > + paddd xmm11,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm15,xmm5 >=20 > + paddd xmm15,xmm7 >=20 > + movdqa xmm5,XMMWORD[((160-128))+rax] >=20 > + paddd xmm6,XMMWORD[((32-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((112-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm11 >=20 > + >=20 > + movdqa xmm2,xmm11 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm11 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(144-128)+rax],xmm6 >=20 > + paddd xmm6,xmm14 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[((-96))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm11 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm11 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm13 >=20 > + pand xmm4,xmm12 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm15 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm15 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm8 >=20 > + movdqa xmm7,xmm15 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm15 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm14,xmm8 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm14,xmm3 >=20 > + paddd xmm10,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm14,xmm6 >=20 > + paddd xmm14,xmm7 >=20 > + movdqa xmm6,XMMWORD[((176-128))+rax] >=20 > + paddd xmm5,XMMWORD[((48-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((128-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm10 >=20 > + >=20 > + movdqa xmm2,xmm10 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm10 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(160-128)+rax],xmm5 >=20 > + paddd xmm5,xmm13 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[((-64))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm10 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm10 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm12 >=20 > + pand xmm3,xmm11 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm14 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm14 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm15 >=20 > + movdqa xmm7,xmm14 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm14 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm13,xmm15 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm13,xmm4 >=20 > + paddd xmm9,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm13,xmm5 >=20 > + paddd xmm13,xmm7 >=20 > + movdqa xmm5,XMMWORD[((192-128))+rax] >=20 > + paddd xmm6,XMMWORD[((64-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((144-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm9 >=20 > + >=20 > + movdqa xmm2,xmm9 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm9 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(176-128)+rax],xmm6 >=20 > + paddd xmm6,xmm12 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[((-32))+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm9 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm9 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm11 >=20 > + pand xmm4,xmm10 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm13 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm13 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm14 >=20 > + movdqa xmm7,xmm13 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm13 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm12,xmm14 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm12,xmm3 >=20 > + paddd xmm8,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm12,xmm6 >=20 > + paddd xmm12,xmm7 >=20 > + movdqa xmm6,XMMWORD[((208-128))+rax] >=20 > + paddd xmm5,XMMWORD[((80-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((160-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm8 >=20 > + >=20 > + movdqa xmm2,xmm8 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm8 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(192-128)+rax],xmm5 >=20 > + paddd xmm5,xmm11 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm8 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm8 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm10 >=20 > + pand xmm3,xmm9 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm12 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm12 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm13 >=20 > + movdqa xmm7,xmm12 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm12 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm11,xmm13 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm11,xmm4 >=20 > + paddd xmm15,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm11,xmm5 >=20 > + paddd xmm11,xmm7 >=20 > + movdqa xmm5,XMMWORD[((224-128))+rax] >=20 > + paddd xmm6,XMMWORD[((96-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((176-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm15 >=20 > + >=20 > + movdqa xmm2,xmm15 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm15 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(208-128)+rax],xmm6 >=20 > + paddd xmm6,xmm10 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[32+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm15 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm15 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm9 >=20 > + pand xmm4,xmm8 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm11 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm11 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm12 >=20 > + movdqa xmm7,xmm11 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm11 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm10,xmm12 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm10,xmm3 >=20 > + paddd xmm14,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm10,xmm6 >=20 > + paddd xmm10,xmm7 >=20 > + movdqa xmm6,XMMWORD[((240-128))+rax] >=20 > + paddd xmm5,XMMWORD[((112-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm6 >=20 > + movdqa xmm1,xmm6 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm6 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((192-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm3,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm3 >=20 > + >=20 > + psrld xmm3,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + psrld xmm3,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm3 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm5,xmm0 >=20 > + movdqa xmm7,xmm14 >=20 > + >=20 > + movdqa xmm2,xmm14 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm14 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(224-128)+rax],xmm5 >=20 > + paddd xmm5,xmm9 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm5,XMMWORD[64+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm14 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm3,xmm14 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm8 >=20 > + pand xmm3,xmm15 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm10 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm10 >=20 > + psrld xmm1,2 >=20 > + paddd xmm5,xmm7 >=20 > + pxor xmm0,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > + movdqa xmm7,xmm10 >=20 > + pslld xmm2,10 >=20 > + pxor xmm3,xmm10 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm5,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm4,xmm3 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm9,xmm11 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm9,xmm4 >=20 > + paddd xmm13,xmm5 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm9,xmm5 >=20 > + paddd xmm9,xmm7 >=20 > + movdqa xmm5,XMMWORD[((0-128))+rax] >=20 > + paddd xmm6,XMMWORD[((128-128))+rax] >=20 > + >=20 > + movdqa xmm7,xmm5 >=20 > + movdqa xmm1,xmm5 >=20 > + psrld xmm7,3 >=20 > + movdqa xmm2,xmm5 >=20 > + >=20 > + psrld xmm1,7 >=20 > + movdqa xmm0,XMMWORD[((208-128))+rax] >=20 > + pslld xmm2,14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm1,18-7 >=20 > + movdqa xmm4,xmm0 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,25-14 >=20 > + pxor xmm7,xmm1 >=20 > + psrld xmm0,10 >=20 > + movdqa xmm1,xmm4 >=20 > + >=20 > + psrld xmm4,17 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm1,13 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + psrld xmm4,19-17 >=20 > + pxor xmm0,xmm1 >=20 > + pslld xmm1,15-13 >=20 > + pxor xmm0,xmm4 >=20 > + pxor xmm0,xmm1 >=20 > + paddd xmm6,xmm0 >=20 > + movdqa xmm7,xmm13 >=20 > + >=20 > + movdqa xmm2,xmm13 >=20 > + >=20 > + psrld xmm7,6 >=20 > + movdqa xmm1,xmm13 >=20 > + pslld xmm2,7 >=20 > + movdqa XMMWORD[(240-128)+rax],xmm6 >=20 > + paddd xmm6,xmm8 >=20 > + >=20 > + psrld xmm1,11 >=20 > + pxor xmm7,xmm2 >=20 > + pslld xmm2,21-7 >=20 > + paddd xmm6,XMMWORD[96+rbp] >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + psrld xmm1,25-11 >=20 > + movdqa xmm0,xmm13 >=20 > + >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm4,xmm13 >=20 > + pslld xmm2,26-21 >=20 > + pandn xmm0,xmm15 >=20 > + pand xmm4,xmm14 >=20 > + pxor xmm7,xmm1 >=20 > + >=20 > + >=20 > + movdqa xmm1,xmm9 >=20 > + pxor xmm7,xmm2 >=20 > + movdqa xmm2,xmm9 >=20 > + psrld xmm1,2 >=20 > + paddd xmm6,xmm7 >=20 > + pxor xmm0,xmm4 >=20 > + movdqa xmm4,xmm10 >=20 > + movdqa xmm7,xmm9 >=20 > + pslld xmm2,10 >=20 > + pxor xmm4,xmm9 >=20 > + >=20 > + >=20 > + psrld xmm7,13 >=20 > + pxor xmm1,xmm2 >=20 > + paddd xmm6,xmm0 >=20 > + pslld xmm2,19-10 >=20 > + pand xmm3,xmm4 >=20 > + pxor xmm1,xmm7 >=20 > + >=20 > + >=20 > + psrld xmm7,22-13 >=20 > + pxor xmm1,xmm2 >=20 > + movdqa xmm8,xmm10 >=20 > + pslld xmm2,30-19 >=20 > + pxor xmm7,xmm1 >=20 > + pxor xmm8,xmm3 >=20 > + paddd xmm12,xmm6 >=20 > + pxor xmm7,xmm2 >=20 > + >=20 > + paddd xmm8,xmm6 >=20 > + paddd xmm8,xmm7 >=20 > + lea rbp,[256+rbp] >=20 > + dec ecx >=20 > + jnz NEAR $L$oop_16_xx >=20 > + >=20 > + mov ecx,1 >=20 > + lea rbp,[((K256+128))] >=20 > + >=20 > + movdqa xmm7,XMMWORD[rbx] >=20 > + cmp ecx,DWORD[rbx] >=20 > + pxor xmm0,xmm0 >=20 > + cmovge r8,rbp >=20 > + cmp ecx,DWORD[4+rbx] >=20 > + movdqa xmm6,xmm7 >=20 > + cmovge r9,rbp >=20 > + cmp ecx,DWORD[8+rbx] >=20 > + pcmpgtd xmm6,xmm0 >=20 > + cmovge r10,rbp >=20 > + cmp ecx,DWORD[12+rbx] >=20 > + paddd xmm7,xmm6 >=20 > + cmovge r11,rbp >=20 > + >=20 > + movdqu xmm0,XMMWORD[((0-128))+rdi] >=20 > + pand xmm8,xmm6 >=20 > + movdqu xmm1,XMMWORD[((32-128))+rdi] >=20 > + pand xmm9,xmm6 >=20 > + movdqu xmm2,XMMWORD[((64-128))+rdi] >=20 > + pand xmm10,xmm6 >=20 > + movdqu xmm5,XMMWORD[((96-128))+rdi] >=20 > + pand xmm11,xmm6 >=20 > + paddd xmm8,xmm0 >=20 > + movdqu xmm0,XMMWORD[((128-128))+rdi] >=20 > + pand xmm12,xmm6 >=20 > + paddd xmm9,xmm1 >=20 > + movdqu xmm1,XMMWORD[((160-128))+rdi] >=20 > + pand xmm13,xmm6 >=20 > + paddd xmm10,xmm2 >=20 > + movdqu xmm2,XMMWORD[((192-128))+rdi] >=20 > + pand xmm14,xmm6 >=20 > + paddd xmm11,xmm5 >=20 > + movdqu xmm5,XMMWORD[((224-128))+rdi] >=20 > + pand xmm15,xmm6 >=20 > + paddd xmm12,xmm0 >=20 > + paddd xmm13,xmm1 >=20 > + movdqu XMMWORD[(0-128)+rdi],xmm8 >=20 > + paddd xmm14,xmm2 >=20 > + movdqu XMMWORD[(32-128)+rdi],xmm9 >=20 > + paddd xmm15,xmm5 >=20 > + movdqu XMMWORD[(64-128)+rdi],xmm10 >=20 > + movdqu XMMWORD[(96-128)+rdi],xmm11 >=20 > + movdqu XMMWORD[(128-128)+rdi],xmm12 >=20 > + movdqu XMMWORD[(160-128)+rdi],xmm13 >=20 > + movdqu XMMWORD[(192-128)+rdi],xmm14 >=20 > + movdqu XMMWORD[(224-128)+rdi],xmm15 >=20 > + >=20 > + movdqa XMMWORD[rbx],xmm7 >=20 > + movdqa xmm6,XMMWORD[$L$pbswap] >=20 > + dec edx >=20 > + jnz NEAR $L$oop >=20 > + >=20 > + mov edx,DWORD[280+rsp] >=20 > + lea rdi,[16+rdi] >=20 > + lea rsi,[64+rsi] >=20 > + dec edx >=20 > + jnz NEAR $L$oop_grande >=20 > + >=20 > +$L$done: >=20 > + mov rax,QWORD[272+rsp] >=20 > + >=20 > + movaps xmm6,XMMWORD[((-184))+rax] >=20 > + movaps xmm7,XMMWORD[((-168))+rax] >=20 > + movaps xmm8,XMMWORD[((-152))+rax] >=20 > + movaps xmm9,XMMWORD[((-136))+rax] >=20 > + movaps xmm10,XMMWORD[((-120))+rax] >=20 > + movaps xmm11,XMMWORD[((-104))+rax] >=20 > + movaps xmm12,XMMWORD[((-88))+rax] >=20 > + movaps xmm13,XMMWORD[((-72))+rax] >=20 > + movaps xmm14,XMMWORD[((-56))+rax] >=20 > + movaps xmm15,XMMWORD[((-40))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha256_multi_block: >=20 > + >=20 > +ALIGN 32 >=20 > +sha256_multi_block_shaext: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha256_multi_block_shaext: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > +_shaext_shortcut: >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + lea rsp,[((-168))+rsp] >=20 > + movaps XMMWORD[rsp],xmm6 >=20 > + movaps XMMWORD[16+rsp],xmm7 >=20 > + movaps XMMWORD[32+rsp],xmm8 >=20 > + movaps XMMWORD[48+rsp],xmm9 >=20 > + movaps XMMWORD[(-120)+rax],xmm10 >=20 > + movaps XMMWORD[(-104)+rax],xmm11 >=20 > + movaps XMMWORD[(-88)+rax],xmm12 >=20 > + movaps XMMWORD[(-72)+rax],xmm13 >=20 > + movaps XMMWORD[(-56)+rax],xmm14 >=20 > + movaps XMMWORD[(-40)+rax],xmm15 >=20 > + sub rsp,288 >=20 > + shl edx,1 >=20 > + and rsp,-256 >=20 > + lea rdi,[128+rdi] >=20 > + mov QWORD[272+rsp],rax >=20 > +$L$body_shaext: >=20 > + lea rbx,[256+rsp] >=20 > + lea rbp,[((K256_shaext+128))] >=20 > + >=20 > +$L$oop_grande_shaext: >=20 > + mov DWORD[280+rsp],edx >=20 > + xor edx,edx >=20 > + mov r8,QWORD[rsi] >=20 > + mov ecx,DWORD[8+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[rbx],ecx >=20 > + cmovle r8,rsp >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov ecx,DWORD[24+rsi] >=20 > + cmp ecx,edx >=20 > + cmovg edx,ecx >=20 > + test ecx,ecx >=20 > + mov DWORD[4+rbx],ecx >=20 > + cmovle r9,rsp >=20 > + test edx,edx >=20 > + jz NEAR $L$done_shaext >=20 > + >=20 > + movq xmm12,QWORD[((0-128))+rdi] >=20 > + movq xmm4,QWORD[((32-128))+rdi] >=20 > + movq xmm13,QWORD[((64-128))+rdi] >=20 > + movq xmm5,QWORD[((96-128))+rdi] >=20 > + movq xmm8,QWORD[((128-128))+rdi] >=20 > + movq xmm9,QWORD[((160-128))+rdi] >=20 > + movq xmm10,QWORD[((192-128))+rdi] >=20 > + movq xmm11,QWORD[((224-128))+rdi] >=20 > + >=20 > + punpckldq xmm12,xmm4 >=20 > + punpckldq xmm13,xmm5 >=20 > + punpckldq xmm8,xmm9 >=20 > + punpckldq xmm10,xmm11 >=20 > + movdqa xmm3,XMMWORD[((K256_shaext-16))] >=20 > + >=20 > + movdqa xmm14,xmm12 >=20 > + movdqa xmm15,xmm13 >=20 > + punpcklqdq xmm12,xmm8 >=20 > + punpcklqdq xmm13,xmm10 >=20 > + punpckhqdq xmm14,xmm8 >=20 > + punpckhqdq xmm15,xmm10 >=20 > + >=20 > + pshufd xmm12,xmm12,27 >=20 > + pshufd xmm13,xmm13,27 >=20 > + pshufd xmm14,xmm14,27 >=20 > + pshufd xmm15,xmm15,27 >=20 > + jmp NEAR $L$oop_shaext >=20 > + >=20 > +ALIGN 32 >=20 > +$L$oop_shaext: >=20 > + movdqu xmm4,XMMWORD[r8] >=20 > + movdqu xmm8,XMMWORD[r9] >=20 > + movdqu xmm5,XMMWORD[16+r8] >=20 > + movdqu xmm9,XMMWORD[16+r9] >=20 > + movdqu xmm6,XMMWORD[32+r8] >=20 > +DB 102,15,56,0,227 >=20 > + movdqu xmm10,XMMWORD[32+r9] >=20 > +DB 102,68,15,56,0,195 >=20 > + movdqu xmm7,XMMWORD[48+r8] >=20 > + lea r8,[64+r8] >=20 > + movdqu xmm11,XMMWORD[48+r9] >=20 > + lea r9,[64+r9] >=20 > + >=20 > + movdqa xmm0,XMMWORD[((0-128))+rbp] >=20 > +DB 102,15,56,0,235 >=20 > + paddd xmm0,xmm4 >=20 > + pxor xmm4,xmm12 >=20 > + movdqa xmm1,xmm0 >=20 > + movdqa xmm2,XMMWORD[((0-128))+rbp] >=20 > +DB 102,68,15,56,0,203 >=20 > + paddd xmm2,xmm8 >=20 > + movdqa XMMWORD[80+rsp],xmm13 >=20 > +DB 69,15,56,203,236 >=20 > + pxor xmm8,xmm14 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa XMMWORD[112+rsp],xmm15 >=20 > +DB 69,15,56,203,254 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + pxor xmm4,xmm12 >=20 > + movdqa XMMWORD[64+rsp],xmm12 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + pxor xmm8,xmm14 >=20 > + movdqa XMMWORD[96+rsp],xmm14 >=20 > + movdqa xmm1,XMMWORD[((16-128))+rbp] >=20 > + paddd xmm1,xmm5 >=20 > +DB 102,15,56,0,243 >=20 > +DB 69,15,56,203,247 >=20 > + >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((16-128))+rbp] >=20 > + paddd xmm2,xmm9 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + prefetcht0 [127+r8] >=20 > +DB 102,15,56,0,251 >=20 > +DB 102,68,15,56,0,211 >=20 > + prefetcht0 [127+r9] >=20 > +DB 69,15,56,203,254 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > +DB 102,68,15,56,0,219 >=20 > +DB 15,56,204,229 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((32-128))+rbp] >=20 > + paddd xmm1,xmm6 >=20 > +DB 69,15,56,203,247 >=20 > + >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((32-128))+rbp] >=20 > + paddd xmm2,xmm10 >=20 > +DB 69,15,56,203,236 >=20 > +DB 69,15,56,204,193 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm7 >=20 > +DB 69,15,56,203,254 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > +DB 102,15,58,15,222,4 >=20 > + paddd xmm4,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > +DB 102,65,15,58,15,218,4 >=20 > +DB 15,56,204,238 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((48-128))+rbp] >=20 > + paddd xmm1,xmm7 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,202 >=20 > + >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((48-128))+rbp] >=20 > + paddd xmm8,xmm3 >=20 > + paddd xmm2,xmm11 >=20 > +DB 15,56,205,231 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm4 >=20 > +DB 102,15,58,15,223,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,195 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm5,xmm3 >=20 > + movdqa xmm3,xmm8 >=20 > +DB 102,65,15,58,15,219,4 >=20 > +DB 15,56,204,247 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((64-128))+rbp] >=20 > + paddd xmm1,xmm4 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,211 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((64-128))+rbp] >=20 > + paddd xmm9,xmm3 >=20 > + paddd xmm2,xmm8 >=20 > +DB 15,56,205,236 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm5 >=20 > +DB 102,15,58,15,220,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,200 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm6,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > +DB 102,65,15,58,15,216,4 >=20 > +DB 15,56,204,252 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((80-128))+rbp] >=20 > + paddd xmm1,xmm5 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,216 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((80-128))+rbp] >=20 > + paddd xmm10,xmm3 >=20 > + paddd xmm2,xmm9 >=20 > +DB 15,56,205,245 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm6 >=20 > +DB 102,15,58,15,221,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,209 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm7,xmm3 >=20 > + movdqa xmm3,xmm10 >=20 > +DB 102,65,15,58,15,217,4 >=20 > +DB 15,56,204,229 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((96-128))+rbp] >=20 > + paddd xmm1,xmm6 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,193 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((96-128))+rbp] >=20 > + paddd xmm11,xmm3 >=20 > + paddd xmm2,xmm10 >=20 > +DB 15,56,205,254 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm7 >=20 > +DB 102,15,58,15,222,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,218 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm4,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > +DB 102,65,15,58,15,218,4 >=20 > +DB 15,56,204,238 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((112-128))+rbp] >=20 > + paddd xmm1,xmm7 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,202 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((112-128))+rbp] >=20 > + paddd xmm8,xmm3 >=20 > + paddd xmm2,xmm11 >=20 > +DB 15,56,205,231 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm4 >=20 > +DB 102,15,58,15,223,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,195 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm5,xmm3 >=20 > + movdqa xmm3,xmm8 >=20 > +DB 102,65,15,58,15,219,4 >=20 > +DB 15,56,204,247 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((128-128))+rbp] >=20 > + paddd xmm1,xmm4 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,211 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((128-128))+rbp] >=20 > + paddd xmm9,xmm3 >=20 > + paddd xmm2,xmm8 >=20 > +DB 15,56,205,236 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm5 >=20 > +DB 102,15,58,15,220,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,200 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm6,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > +DB 102,65,15,58,15,216,4 >=20 > +DB 15,56,204,252 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((144-128))+rbp] >=20 > + paddd xmm1,xmm5 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,216 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((144-128))+rbp] >=20 > + paddd xmm10,xmm3 >=20 > + paddd xmm2,xmm9 >=20 > +DB 15,56,205,245 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm6 >=20 > +DB 102,15,58,15,221,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,209 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm7,xmm3 >=20 > + movdqa xmm3,xmm10 >=20 > +DB 102,65,15,58,15,217,4 >=20 > +DB 15,56,204,229 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((160-128))+rbp] >=20 > + paddd xmm1,xmm6 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,193 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((160-128))+rbp] >=20 > + paddd xmm11,xmm3 >=20 > + paddd xmm2,xmm10 >=20 > +DB 15,56,205,254 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm7 >=20 > +DB 102,15,58,15,222,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,218 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm4,xmm3 >=20 > + movdqa xmm3,xmm11 >=20 > +DB 102,65,15,58,15,218,4 >=20 > +DB 15,56,204,238 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((176-128))+rbp] >=20 > + paddd xmm1,xmm7 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,202 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((176-128))+rbp] >=20 > + paddd xmm8,xmm3 >=20 > + paddd xmm2,xmm11 >=20 > +DB 15,56,205,231 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm4 >=20 > +DB 102,15,58,15,223,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,195 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm5,xmm3 >=20 > + movdqa xmm3,xmm8 >=20 > +DB 102,65,15,58,15,219,4 >=20 > +DB 15,56,204,247 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((192-128))+rbp] >=20 > + paddd xmm1,xmm4 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,211 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((192-128))+rbp] >=20 > + paddd xmm9,xmm3 >=20 > + paddd xmm2,xmm8 >=20 > +DB 15,56,205,236 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm5 >=20 > +DB 102,15,58,15,220,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,200 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm6,xmm3 >=20 > + movdqa xmm3,xmm9 >=20 > +DB 102,65,15,58,15,216,4 >=20 > +DB 15,56,204,252 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((208-128))+rbp] >=20 > + paddd xmm1,xmm5 >=20 > +DB 69,15,56,203,247 >=20 > +DB 69,15,56,204,216 >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((208-128))+rbp] >=20 > + paddd xmm10,xmm3 >=20 > + paddd xmm2,xmm9 >=20 > +DB 15,56,205,245 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + movdqa xmm3,xmm6 >=20 > +DB 102,15,58,15,221,4 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,209 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + paddd xmm7,xmm3 >=20 > + movdqa xmm3,xmm10 >=20 > +DB 102,65,15,58,15,217,4 >=20 > + nop >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm1,XMMWORD[((224-128))+rbp] >=20 > + paddd xmm1,xmm6 >=20 > +DB 69,15,56,203,247 >=20 > + >=20 > + movdqa xmm0,xmm1 >=20 > + movdqa xmm2,XMMWORD[((224-128))+rbp] >=20 > + paddd xmm11,xmm3 >=20 > + paddd xmm2,xmm10 >=20 > +DB 15,56,205,254 >=20 > + nop >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + mov ecx,1 >=20 > + pxor xmm6,xmm6 >=20 > +DB 69,15,56,203,254 >=20 > +DB 69,15,56,205,218 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + movdqa xmm1,XMMWORD[((240-128))+rbp] >=20 > + paddd xmm1,xmm7 >=20 > + movq xmm7,QWORD[rbx] >=20 > + nop >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + movdqa xmm2,XMMWORD[((240-128))+rbp] >=20 > + paddd xmm2,xmm11 >=20 > +DB 69,15,56,203,247 >=20 > + >=20 > + movdqa xmm0,xmm1 >=20 > + cmp ecx,DWORD[rbx] >=20 > + cmovge r8,rsp >=20 > + cmp ecx,DWORD[4+rbx] >=20 > + cmovge r9,rsp >=20 > + pshufd xmm9,xmm7,0x00 >=20 > +DB 69,15,56,203,236 >=20 > + movdqa xmm0,xmm2 >=20 > + pshufd xmm10,xmm7,0x55 >=20 > + movdqa xmm11,xmm7 >=20 > +DB 69,15,56,203,254 >=20 > + pshufd xmm0,xmm1,0x0e >=20 > + pcmpgtd xmm9,xmm6 >=20 > + pcmpgtd xmm10,xmm6 >=20 > +DB 69,15,56,203,229 >=20 > + pshufd xmm0,xmm2,0x0e >=20 > + pcmpgtd xmm11,xmm6 >=20 > + movdqa xmm3,XMMWORD[((K256_shaext-16))] >=20 > +DB 69,15,56,203,247 >=20 > + >=20 > + pand xmm13,xmm9 >=20 > + pand xmm15,xmm10 >=20 > + pand xmm12,xmm9 >=20 > + pand xmm14,xmm10 >=20 > + paddd xmm11,xmm7 >=20 > + >=20 > + paddd xmm13,XMMWORD[80+rsp] >=20 > + paddd xmm15,XMMWORD[112+rsp] >=20 > + paddd xmm12,XMMWORD[64+rsp] >=20 > + paddd xmm14,XMMWORD[96+rsp] >=20 > + >=20 > + movq QWORD[rbx],xmm11 >=20 > + dec edx >=20 > + jnz NEAR $L$oop_shaext >=20 > + >=20 > + mov edx,DWORD[280+rsp] >=20 > + >=20 > + pshufd xmm12,xmm12,27 >=20 > + pshufd xmm13,xmm13,27 >=20 > + pshufd xmm14,xmm14,27 >=20 > + pshufd xmm15,xmm15,27 >=20 > + >=20 > + movdqa xmm5,xmm12 >=20 > + movdqa xmm6,xmm13 >=20 > + punpckldq xmm12,xmm14 >=20 > + punpckhdq xmm5,xmm14 >=20 > + punpckldq xmm13,xmm15 >=20 > + punpckhdq xmm6,xmm15 >=20 > + >=20 > + movq QWORD[(0-128)+rdi],xmm12 >=20 > + psrldq xmm12,8 >=20 > + movq QWORD[(128-128)+rdi],xmm5 >=20 > + psrldq xmm5,8 >=20 > + movq QWORD[(32-128)+rdi],xmm12 >=20 > + movq QWORD[(160-128)+rdi],xmm5 >=20 > + >=20 > + movq QWORD[(64-128)+rdi],xmm13 >=20 > + psrldq xmm13,8 >=20 > + movq QWORD[(192-128)+rdi],xmm6 >=20 > + psrldq xmm6,8 >=20 > + movq QWORD[(96-128)+rdi],xmm13 >=20 > + movq QWORD[(224-128)+rdi],xmm6 >=20 > + >=20 > + lea rdi,[8+rdi] >=20 > + lea rsi,[32+rsi] >=20 > + dec edx >=20 > + jnz NEAR $L$oop_grande_shaext >=20 > + >=20 > +$L$done_shaext: >=20 > + >=20 > + movaps xmm6,XMMWORD[((-184))+rax] >=20 > + movaps xmm7,XMMWORD[((-168))+rax] >=20 > + movaps xmm8,XMMWORD[((-152))+rax] >=20 > + movaps xmm9,XMMWORD[((-136))+rax] >=20 > + movaps xmm10,XMMWORD[((-120))+rax] >=20 > + movaps xmm11,XMMWORD[((-104))+rax] >=20 > + movaps xmm12,XMMWORD[((-88))+rax] >=20 > + movaps xmm13,XMMWORD[((-72))+rax] >=20 > + movaps xmm14,XMMWORD[((-56))+rax] >=20 > + movaps xmm15,XMMWORD[((-40))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + >=20 > + lea rsp,[rax] >=20 > + >=20 > +$L$epilogue_shaext: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha256_multi_block_shaext: >=20 > +ALIGN 256 >=20 > +K256: >=20 > + DD 1116352408,1116352408,1116352408,1116352408 >=20 > + DD 1116352408,1116352408,1116352408,1116352408 >=20 > + DD 1899447441,1899447441,1899447441,1899447441 >=20 > + DD 1899447441,1899447441,1899447441,1899447441 >=20 > + DD 3049323471,3049323471,3049323471,3049323471 >=20 > + DD 3049323471,3049323471,3049323471,3049323471 >=20 > + DD 3921009573,3921009573,3921009573,3921009573 >=20 > + DD 3921009573,3921009573,3921009573,3921009573 >=20 > + DD 961987163,961987163,961987163,961987163 >=20 > + DD 961987163,961987163,961987163,961987163 >=20 > + DD 1508970993,1508970993,1508970993,1508970993 >=20 > + DD 1508970993,1508970993,1508970993,1508970993 >=20 > + DD 2453635748,2453635748,2453635748,2453635748 >=20 > + DD 2453635748,2453635748,2453635748,2453635748 >=20 > + DD 2870763221,2870763221,2870763221,2870763221 >=20 > + DD 2870763221,2870763221,2870763221,2870763221 >=20 > + DD 3624381080,3624381080,3624381080,3624381080 >=20 > + DD 3624381080,3624381080,3624381080,3624381080 >=20 > + DD 310598401,310598401,310598401,310598401 >=20 > + DD 310598401,310598401,310598401,310598401 >=20 > + DD 607225278,607225278,607225278,607225278 >=20 > + DD 607225278,607225278,607225278,607225278 >=20 > + DD 1426881987,1426881987,1426881987,1426881987 >=20 > + DD 1426881987,1426881987,1426881987,1426881987 >=20 > + DD 1925078388,1925078388,1925078388,1925078388 >=20 > + DD 1925078388,1925078388,1925078388,1925078388 >=20 > + DD 2162078206,2162078206,2162078206,2162078206 >=20 > + DD 2162078206,2162078206,2162078206,2162078206 >=20 > + DD 2614888103,2614888103,2614888103,2614888103 >=20 > + DD 2614888103,2614888103,2614888103,2614888103 >=20 > + DD 3248222580,3248222580,3248222580,3248222580 >=20 > + DD 3248222580,3248222580,3248222580,3248222580 >=20 > + DD 3835390401,3835390401,3835390401,3835390401 >=20 > + DD 3835390401,3835390401,3835390401,3835390401 >=20 > + DD 4022224774,4022224774,4022224774,4022224774 >=20 > + DD 4022224774,4022224774,4022224774,4022224774 >=20 > + DD 264347078,264347078,264347078,264347078 >=20 > + DD 264347078,264347078,264347078,264347078 >=20 > + DD 604807628,604807628,604807628,604807628 >=20 > + DD 604807628,604807628,604807628,604807628 >=20 > + DD 770255983,770255983,770255983,770255983 >=20 > + DD 770255983,770255983,770255983,770255983 >=20 > + DD 1249150122,1249150122,1249150122,1249150122 >=20 > + DD 1249150122,1249150122,1249150122,1249150122 >=20 > + DD 1555081692,1555081692,1555081692,1555081692 >=20 > + DD 1555081692,1555081692,1555081692,1555081692 >=20 > + DD 1996064986,1996064986,1996064986,1996064986 >=20 > + DD 1996064986,1996064986,1996064986,1996064986 >=20 > + DD 2554220882,2554220882,2554220882,2554220882 >=20 > + DD 2554220882,2554220882,2554220882,2554220882 >=20 > + DD 2821834349,2821834349,2821834349,2821834349 >=20 > + DD 2821834349,2821834349,2821834349,2821834349 >=20 > + DD 2952996808,2952996808,2952996808,2952996808 >=20 > + DD 2952996808,2952996808,2952996808,2952996808 >=20 > + DD 3210313671,3210313671,3210313671,3210313671 >=20 > + DD 3210313671,3210313671,3210313671,3210313671 >=20 > + DD 3336571891,3336571891,3336571891,3336571891 >=20 > + DD 3336571891,3336571891,3336571891,3336571891 >=20 > + DD 3584528711,3584528711,3584528711,3584528711 >=20 > + DD 3584528711,3584528711,3584528711,3584528711 >=20 > + DD 113926993,113926993,113926993,113926993 >=20 > + DD 113926993,113926993,113926993,113926993 >=20 > + DD 338241895,338241895,338241895,338241895 >=20 > + DD 338241895,338241895,338241895,338241895 >=20 > + DD 666307205,666307205,666307205,666307205 >=20 > + DD 666307205,666307205,666307205,666307205 >=20 > + DD 773529912,773529912,773529912,773529912 >=20 > + DD 773529912,773529912,773529912,773529912 >=20 > + DD 1294757372,1294757372,1294757372,1294757372 >=20 > + DD 1294757372,1294757372,1294757372,1294757372 >=20 > + DD 1396182291,1396182291,1396182291,1396182291 >=20 > + DD 1396182291,1396182291,1396182291,1396182291 >=20 > + DD 1695183700,1695183700,1695183700,1695183700 >=20 > + DD 1695183700,1695183700,1695183700,1695183700 >=20 > + DD 1986661051,1986661051,1986661051,1986661051 >=20 > + DD 1986661051,1986661051,1986661051,1986661051 >=20 > + DD 2177026350,2177026350,2177026350,2177026350 >=20 > + DD 2177026350,2177026350,2177026350,2177026350 >=20 > + DD 2456956037,2456956037,2456956037,2456956037 >=20 > + DD 2456956037,2456956037,2456956037,2456956037 >=20 > + DD 2730485921,2730485921,2730485921,2730485921 >=20 > + DD 2730485921,2730485921,2730485921,2730485921 >=20 > + DD 2820302411,2820302411,2820302411,2820302411 >=20 > + DD 2820302411,2820302411,2820302411,2820302411 >=20 > + DD 3259730800,3259730800,3259730800,3259730800 >=20 > + DD 3259730800,3259730800,3259730800,3259730800 >=20 > + DD 3345764771,3345764771,3345764771,3345764771 >=20 > + DD 3345764771,3345764771,3345764771,3345764771 >=20 > + DD 3516065817,3516065817,3516065817,3516065817 >=20 > + DD 3516065817,3516065817,3516065817,3516065817 >=20 > + DD 3600352804,3600352804,3600352804,3600352804 >=20 > + DD 3600352804,3600352804,3600352804,3600352804 >=20 > + DD 4094571909,4094571909,4094571909,4094571909 >=20 > + DD 4094571909,4094571909,4094571909,4094571909 >=20 > + DD 275423344,275423344,275423344,275423344 >=20 > + DD 275423344,275423344,275423344,275423344 >=20 > + DD 430227734,430227734,430227734,430227734 >=20 > + DD 430227734,430227734,430227734,430227734 >=20 > + DD 506948616,506948616,506948616,506948616 >=20 > + DD 506948616,506948616,506948616,506948616 >=20 > + DD 659060556,659060556,659060556,659060556 >=20 > + DD 659060556,659060556,659060556,659060556 >=20 > + DD 883997877,883997877,883997877,883997877 >=20 > + DD 883997877,883997877,883997877,883997877 >=20 > + DD 958139571,958139571,958139571,958139571 >=20 > + DD 958139571,958139571,958139571,958139571 >=20 > + DD 1322822218,1322822218,1322822218,1322822218 >=20 > + DD 1322822218,1322822218,1322822218,1322822218 >=20 > + DD 1537002063,1537002063,1537002063,1537002063 >=20 > + DD 1537002063,1537002063,1537002063,1537002063 >=20 > + DD 1747873779,1747873779,1747873779,1747873779 >=20 > + DD 1747873779,1747873779,1747873779,1747873779 >=20 > + DD 1955562222,1955562222,1955562222,1955562222 >=20 > + DD 1955562222,1955562222,1955562222,1955562222 >=20 > + DD 2024104815,2024104815,2024104815,2024104815 >=20 > + DD 2024104815,2024104815,2024104815,2024104815 >=20 > + DD 2227730452,2227730452,2227730452,2227730452 >=20 > + DD 2227730452,2227730452,2227730452,2227730452 >=20 > + DD 2361852424,2361852424,2361852424,2361852424 >=20 > + DD 2361852424,2361852424,2361852424,2361852424 >=20 > + DD 2428436474,2428436474,2428436474,2428436474 >=20 > + DD 2428436474,2428436474,2428436474,2428436474 >=20 > + DD 2756734187,2756734187,2756734187,2756734187 >=20 > + DD 2756734187,2756734187,2756734187,2756734187 >=20 > + DD 3204031479,3204031479,3204031479,3204031479 >=20 > + DD 3204031479,3204031479,3204031479,3204031479 >=20 > + DD 3329325298,3329325298,3329325298,3329325298 >=20 > + DD 3329325298,3329325298,3329325298,3329325298 >=20 > +$L$pbswap: >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > +K256_shaext: >=20 > + DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 >=20 > + DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 >=20 > + DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 >=20 > + DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 >=20 > + DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc >=20 > + DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da >=20 > + DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 >=20 > + DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 >=20 > + DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 >=20 > + DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 >=20 > + DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 >=20 > + DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 >=20 > + DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 >=20 > + DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 >=20 > + DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 >=20 > + DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 >=20 > +DB 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111 >=20 > +DB 99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114 >=20 > +DB 32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71 >=20 > +DB 65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112 >=20 > +DB 101,110,115,115,108,46,111,114,103,62,0 >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[272+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + >=20 > + lea rsi,[((-24-160))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,20 >=20 > + DD 0xa548f3fc >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_sha256_multi_block wrt ..imagebase >=20 > + DD $L$SEH_end_sha256_multi_block wrt ..imagebase >=20 > + DD $L$SEH_info_sha256_multi_block wrt ..imagebase >=20 > + DD $L$SEH_begin_sha256_multi_block_shaext wrt ..imagebase >=20 > + DD $L$SEH_end_sha256_multi_block_shaext wrt ..imagebase >=20 > + DD $L$SEH_info_sha256_multi_block_shaext wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_sha256_multi_block: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$body wrt ..imagebase,$L$epilogue wrt ..imagebase >=20 > +$L$SEH_info_sha256_multi_block_shaext: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$body_shaext wrt ..imagebase,$L$epilogue_shaext > wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.na= sm > b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm > new file mode 100644 > index 0000000000..70e49862a3 > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm > @@ -0,0 +1,3313 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/sha/asm/sha512-x86_64.pl >=20 > +; >=20 > +; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > +global sha256_block_data_order >=20 > + >=20 > +ALIGN 16 >=20 > +sha256_block_data_order: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha256_block_data_order: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + lea r11,[OPENSSL_ia32cap_P] >=20 > + mov r9d,DWORD[r11] >=20 > + mov r10d,DWORD[4+r11] >=20 > + mov r11d,DWORD[8+r11] >=20 > + test r11d,536870912 >=20 > + jnz NEAR _shaext_shortcut >=20 > + test r10d,512 >=20 > + jnz NEAR $L$ssse3_shortcut >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + shl rdx,4 >=20 > + sub rsp,16*4+4*8 >=20 > + lea rdx,[rdx*4+rsi] >=20 > + and rsp,-64 >=20 > + mov QWORD[((64+0))+rsp],rdi >=20 > + mov QWORD[((64+8))+rsp],rsi >=20 > + mov QWORD[((64+16))+rsp],rdx >=20 > + mov QWORD[88+rsp],rax >=20 > + >=20 > +$L$prologue: >=20 > + >=20 > + mov eax,DWORD[rdi] >=20 > + mov ebx,DWORD[4+rdi] >=20 > + mov ecx,DWORD[8+rdi] >=20 > + mov edx,DWORD[12+rdi] >=20 > + mov r8d,DWORD[16+rdi] >=20 > + mov r9d,DWORD[20+rdi] >=20 > + mov r10d,DWORD[24+rdi] >=20 > + mov r11d,DWORD[28+rdi] >=20 > + jmp NEAR $L$loop >=20 > + >=20 > +ALIGN 16 >=20 > +$L$loop: >=20 > + mov edi,ebx >=20 > + lea rbp,[K256] >=20 > + xor edi,ecx >=20 > + mov r12d,DWORD[rsi] >=20 > + mov r13d,r8d >=20 > + mov r14d,eax >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,r9d >=20 > + >=20 > + xor r13d,r8d >=20 > + ror r14d,9 >=20 > + xor r15d,r10d >=20 > + >=20 > + mov DWORD[rsp],r12d >=20 > + xor r14d,eax >=20 > + and r15d,r8d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r11d >=20 > + xor r15d,r10d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r8d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,eax >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,eax >=20 > + >=20 > + xor r15d,ebx >=20 > + ror r13d,6 >=20 > + mov r11d,ebx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r11d,edi >=20 > + add edx,r12d >=20 > + add r11d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add r11d,r14d >=20 > + mov r12d,DWORD[4+rsi] >=20 > + mov r13d,edx >=20 > + mov r14d,r11d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,r8d >=20 > + >=20 > + xor r13d,edx >=20 > + ror r14d,9 >=20 > + xor edi,r9d >=20 > + >=20 > + mov DWORD[4+rsp],r12d >=20 > + xor r14d,r11d >=20 > + and edi,edx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r10d >=20 > + xor edi,r9d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,edx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r11d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r11d >=20 > + >=20 > + xor edi,eax >=20 > + ror r13d,6 >=20 > + mov r10d,eax >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r10d,r15d >=20 > + add ecx,r12d >=20 > + add r10d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add r10d,r14d >=20 > + mov r12d,DWORD[8+rsi] >=20 > + mov r13d,ecx >=20 > + mov r14d,r10d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,edx >=20 > + >=20 > + xor r13d,ecx >=20 > + ror r14d,9 >=20 > + xor r15d,r8d >=20 > + >=20 > + mov DWORD[8+rsp],r12d >=20 > + xor r14d,r10d >=20 > + and r15d,ecx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r9d >=20 > + xor r15d,r8d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ecx >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r10d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r10d >=20 > + >=20 > + xor r15d,r11d >=20 > + ror r13d,6 >=20 > + mov r9d,r11d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r9d,edi >=20 > + add ebx,r12d >=20 > + add r9d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add r9d,r14d >=20 > + mov r12d,DWORD[12+rsi] >=20 > + mov r13d,ebx >=20 > + mov r14d,r9d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,ecx >=20 > + >=20 > + xor r13d,ebx >=20 > + ror r14d,9 >=20 > + xor edi,edx >=20 > + >=20 > + mov DWORD[12+rsp],r12d >=20 > + xor r14d,r9d >=20 > + and edi,ebx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r8d >=20 > + xor edi,edx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ebx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r9d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r9d >=20 > + >=20 > + xor edi,r10d >=20 > + ror r13d,6 >=20 > + mov r8d,r10d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r8d,r15d >=20 > + add eax,r12d >=20 > + add r8d,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + add r8d,r14d >=20 > + mov r12d,DWORD[16+rsi] >=20 > + mov r13d,eax >=20 > + mov r14d,r8d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,ebx >=20 > + >=20 > + xor r13d,eax >=20 > + ror r14d,9 >=20 > + xor r15d,ecx >=20 > + >=20 > + mov DWORD[16+rsp],r12d >=20 > + xor r14d,r8d >=20 > + and r15d,eax >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,edx >=20 > + xor r15d,ecx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,eax >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r8d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r8d >=20 > + >=20 > + xor r15d,r9d >=20 > + ror r13d,6 >=20 > + mov edx,r9d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor edx,edi >=20 > + add r11d,r12d >=20 > + add edx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add edx,r14d >=20 > + mov r12d,DWORD[20+rsi] >=20 > + mov r13d,r11d >=20 > + mov r14d,edx >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,eax >=20 > + >=20 > + xor r13d,r11d >=20 > + ror r14d,9 >=20 > + xor edi,ebx >=20 > + >=20 > + mov DWORD[20+rsp],r12d >=20 > + xor r14d,edx >=20 > + and edi,r11d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ecx >=20 > + xor edi,ebx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r11d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,edx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,edx >=20 > + >=20 > + xor edi,r8d >=20 > + ror r13d,6 >=20 > + mov ecx,r8d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ecx,r15d >=20 > + add r10d,r12d >=20 > + add ecx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add ecx,r14d >=20 > + mov r12d,DWORD[24+rsi] >=20 > + mov r13d,r10d >=20 > + mov r14d,ecx >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,r11d >=20 > + >=20 > + xor r13d,r10d >=20 > + ror r14d,9 >=20 > + xor r15d,eax >=20 > + >=20 > + mov DWORD[24+rsp],r12d >=20 > + xor r14d,ecx >=20 > + and r15d,r10d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ebx >=20 > + xor r15d,eax >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r10d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,ecx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ecx >=20 > + >=20 > + xor r15d,edx >=20 > + ror r13d,6 >=20 > + mov ebx,edx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ebx,edi >=20 > + add r9d,r12d >=20 > + add ebx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add ebx,r14d >=20 > + mov r12d,DWORD[28+rsi] >=20 > + mov r13d,r9d >=20 > + mov r14d,ebx >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,r10d >=20 > + >=20 > + xor r13d,r9d >=20 > + ror r14d,9 >=20 > + xor edi,r11d >=20 > + >=20 > + mov DWORD[28+rsp],r12d >=20 > + xor r14d,ebx >=20 > + and edi,r9d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,eax >=20 > + xor edi,r11d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r9d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,ebx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ebx >=20 > + >=20 > + xor edi,ecx >=20 > + ror r13d,6 >=20 > + mov eax,ecx >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor eax,r15d >=20 > + add r8d,r12d >=20 > + add eax,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + add eax,r14d >=20 > + mov r12d,DWORD[32+rsi] >=20 > + mov r13d,r8d >=20 > + mov r14d,eax >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,r9d >=20 > + >=20 > + xor r13d,r8d >=20 > + ror r14d,9 >=20 > + xor r15d,r10d >=20 > + >=20 > + mov DWORD[32+rsp],r12d >=20 > + xor r14d,eax >=20 > + and r15d,r8d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r11d >=20 > + xor r15d,r10d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r8d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,eax >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,eax >=20 > + >=20 > + xor r15d,ebx >=20 > + ror r13d,6 >=20 > + mov r11d,ebx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r11d,edi >=20 > + add edx,r12d >=20 > + add r11d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add r11d,r14d >=20 > + mov r12d,DWORD[36+rsi] >=20 > + mov r13d,edx >=20 > + mov r14d,r11d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,r8d >=20 > + >=20 > + xor r13d,edx >=20 > + ror r14d,9 >=20 > + xor edi,r9d >=20 > + >=20 > + mov DWORD[36+rsp],r12d >=20 > + xor r14d,r11d >=20 > + and edi,edx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r10d >=20 > + xor edi,r9d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,edx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r11d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r11d >=20 > + >=20 > + xor edi,eax >=20 > + ror r13d,6 >=20 > + mov r10d,eax >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r10d,r15d >=20 > + add ecx,r12d >=20 > + add r10d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add r10d,r14d >=20 > + mov r12d,DWORD[40+rsi] >=20 > + mov r13d,ecx >=20 > + mov r14d,r10d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,edx >=20 > + >=20 > + xor r13d,ecx >=20 > + ror r14d,9 >=20 > + xor r15d,r8d >=20 > + >=20 > + mov DWORD[40+rsp],r12d >=20 > + xor r14d,r10d >=20 > + and r15d,ecx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r9d >=20 > + xor r15d,r8d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ecx >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r10d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r10d >=20 > + >=20 > + xor r15d,r11d >=20 > + ror r13d,6 >=20 > + mov r9d,r11d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r9d,edi >=20 > + add ebx,r12d >=20 > + add r9d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add r9d,r14d >=20 > + mov r12d,DWORD[44+rsi] >=20 > + mov r13d,ebx >=20 > + mov r14d,r9d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,ecx >=20 > + >=20 > + xor r13d,ebx >=20 > + ror r14d,9 >=20 > + xor edi,edx >=20 > + >=20 > + mov DWORD[44+rsp],r12d >=20 > + xor r14d,r9d >=20 > + and edi,ebx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r8d >=20 > + xor edi,edx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ebx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r9d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r9d >=20 > + >=20 > + xor edi,r10d >=20 > + ror r13d,6 >=20 > + mov r8d,r10d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r8d,r15d >=20 > + add eax,r12d >=20 > + add r8d,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + add r8d,r14d >=20 > + mov r12d,DWORD[48+rsi] >=20 > + mov r13d,eax >=20 > + mov r14d,r8d >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,ebx >=20 > + >=20 > + xor r13d,eax >=20 > + ror r14d,9 >=20 > + xor r15d,ecx >=20 > + >=20 > + mov DWORD[48+rsp],r12d >=20 > + xor r14d,r8d >=20 > + and r15d,eax >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,edx >=20 > + xor r15d,ecx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,eax >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r8d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r8d >=20 > + >=20 > + xor r15d,r9d >=20 > + ror r13d,6 >=20 > + mov edx,r9d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor edx,edi >=20 > + add r11d,r12d >=20 > + add edx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add edx,r14d >=20 > + mov r12d,DWORD[52+rsi] >=20 > + mov r13d,r11d >=20 > + mov r14d,edx >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,eax >=20 > + >=20 > + xor r13d,r11d >=20 > + ror r14d,9 >=20 > + xor edi,ebx >=20 > + >=20 > + mov DWORD[52+rsp],r12d >=20 > + xor r14d,edx >=20 > + and edi,r11d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ecx >=20 > + xor edi,ebx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r11d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,edx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,edx >=20 > + >=20 > + xor edi,r8d >=20 > + ror r13d,6 >=20 > + mov ecx,r8d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ecx,r15d >=20 > + add r10d,r12d >=20 > + add ecx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add ecx,r14d >=20 > + mov r12d,DWORD[56+rsi] >=20 > + mov r13d,r10d >=20 > + mov r14d,ecx >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov r15d,r11d >=20 > + >=20 > + xor r13d,r10d >=20 > + ror r14d,9 >=20 > + xor r15d,eax >=20 > + >=20 > + mov DWORD[56+rsp],r12d >=20 > + xor r14d,ecx >=20 > + and r15d,r10d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ebx >=20 > + xor r15d,eax >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r10d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,ecx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ecx >=20 > + >=20 > + xor r15d,edx >=20 > + ror r13d,6 >=20 > + mov ebx,edx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ebx,edi >=20 > + add r9d,r12d >=20 > + add ebx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + add ebx,r14d >=20 > + mov r12d,DWORD[60+rsi] >=20 > + mov r13d,r9d >=20 > + mov r14d,ebx >=20 > + bswap r12d >=20 > + ror r13d,14 >=20 > + mov edi,r10d >=20 > + >=20 > + xor r13d,r9d >=20 > + ror r14d,9 >=20 > + xor edi,r11d >=20 > + >=20 > + mov DWORD[60+rsp],r12d >=20 > + xor r14d,ebx >=20 > + and edi,r9d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,eax >=20 > + xor edi,r11d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r9d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,ebx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ebx >=20 > + >=20 > + xor edi,ecx >=20 > + ror r13d,6 >=20 > + mov eax,ecx >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor eax,r15d >=20 > + add r8d,r12d >=20 > + add eax,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + jmp NEAR $L$rounds_16_xx >=20 > +ALIGN 16 >=20 > +$L$rounds_16_xx: >=20 > + mov r13d,DWORD[4+rsp] >=20 > + mov r15d,DWORD[56+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add eax,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[36+rsp] >=20 > + >=20 > + add r12d,DWORD[rsp] >=20 > + mov r13d,r8d >=20 > + add r12d,r15d >=20 > + mov r14d,eax >=20 > + ror r13d,14 >=20 > + mov r15d,r9d >=20 > + >=20 > + xor r13d,r8d >=20 > + ror r14d,9 >=20 > + xor r15d,r10d >=20 > + >=20 > + mov DWORD[rsp],r12d >=20 > + xor r14d,eax >=20 > + and r15d,r8d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r11d >=20 > + xor r15d,r10d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r8d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,eax >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,eax >=20 > + >=20 > + xor r15d,ebx >=20 > + ror r13d,6 >=20 > + mov r11d,ebx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r11d,edi >=20 > + add edx,r12d >=20 > + add r11d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[8+rsp] >=20 > + mov edi,DWORD[60+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r11d,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[40+rsp] >=20 > + >=20 > + add r12d,DWORD[4+rsp] >=20 > + mov r13d,edx >=20 > + add r12d,edi >=20 > + mov r14d,r11d >=20 > + ror r13d,14 >=20 > + mov edi,r8d >=20 > + >=20 > + xor r13d,edx >=20 > + ror r14d,9 >=20 > + xor edi,r9d >=20 > + >=20 > + mov DWORD[4+rsp],r12d >=20 > + xor r14d,r11d >=20 > + and edi,edx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r10d >=20 > + xor edi,r9d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,edx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r11d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r11d >=20 > + >=20 > + xor edi,eax >=20 > + ror r13d,6 >=20 > + mov r10d,eax >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r10d,r15d >=20 > + add ecx,r12d >=20 > + add r10d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[12+rsp] >=20 > + mov r15d,DWORD[rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r10d,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[44+rsp] >=20 > + >=20 > + add r12d,DWORD[8+rsp] >=20 > + mov r13d,ecx >=20 > + add r12d,r15d >=20 > + mov r14d,r10d >=20 > + ror r13d,14 >=20 > + mov r15d,edx >=20 > + >=20 > + xor r13d,ecx >=20 > + ror r14d,9 >=20 > + xor r15d,r8d >=20 > + >=20 > + mov DWORD[8+rsp],r12d >=20 > + xor r14d,r10d >=20 > + and r15d,ecx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r9d >=20 > + xor r15d,r8d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ecx >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r10d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r10d >=20 > + >=20 > + xor r15d,r11d >=20 > + ror r13d,6 >=20 > + mov r9d,r11d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r9d,edi >=20 > + add ebx,r12d >=20 > + add r9d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[16+rsp] >=20 > + mov edi,DWORD[4+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r9d,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[48+rsp] >=20 > + >=20 > + add r12d,DWORD[12+rsp] >=20 > + mov r13d,ebx >=20 > + add r12d,edi >=20 > + mov r14d,r9d >=20 > + ror r13d,14 >=20 > + mov edi,ecx >=20 > + >=20 > + xor r13d,ebx >=20 > + ror r14d,9 >=20 > + xor edi,edx >=20 > + >=20 > + mov DWORD[12+rsp],r12d >=20 > + xor r14d,r9d >=20 > + and edi,ebx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r8d >=20 > + xor edi,edx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ebx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r9d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r9d >=20 > + >=20 > + xor edi,r10d >=20 > + ror r13d,6 >=20 > + mov r8d,r10d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r8d,r15d >=20 > + add eax,r12d >=20 > + add r8d,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + mov r13d,DWORD[20+rsp] >=20 > + mov r15d,DWORD[8+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r8d,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[52+rsp] >=20 > + >=20 > + add r12d,DWORD[16+rsp] >=20 > + mov r13d,eax >=20 > + add r12d,r15d >=20 > + mov r14d,r8d >=20 > + ror r13d,14 >=20 > + mov r15d,ebx >=20 > + >=20 > + xor r13d,eax >=20 > + ror r14d,9 >=20 > + xor r15d,ecx >=20 > + >=20 > + mov DWORD[16+rsp],r12d >=20 > + xor r14d,r8d >=20 > + and r15d,eax >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,edx >=20 > + xor r15d,ecx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,eax >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r8d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r8d >=20 > + >=20 > + xor r15d,r9d >=20 > + ror r13d,6 >=20 > + mov edx,r9d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor edx,edi >=20 > + add r11d,r12d >=20 > + add edx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[24+rsp] >=20 > + mov edi,DWORD[12+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add edx,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[56+rsp] >=20 > + >=20 > + add r12d,DWORD[20+rsp] >=20 > + mov r13d,r11d >=20 > + add r12d,edi >=20 > + mov r14d,edx >=20 > + ror r13d,14 >=20 > + mov edi,eax >=20 > + >=20 > + xor r13d,r11d >=20 > + ror r14d,9 >=20 > + xor edi,ebx >=20 > + >=20 > + mov DWORD[20+rsp],r12d >=20 > + xor r14d,edx >=20 > + and edi,r11d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ecx >=20 > + xor edi,ebx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r11d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,edx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,edx >=20 > + >=20 > + xor edi,r8d >=20 > + ror r13d,6 >=20 > + mov ecx,r8d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ecx,r15d >=20 > + add r10d,r12d >=20 > + add ecx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[28+rsp] >=20 > + mov r15d,DWORD[16+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add ecx,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[60+rsp] >=20 > + >=20 > + add r12d,DWORD[24+rsp] >=20 > + mov r13d,r10d >=20 > + add r12d,r15d >=20 > + mov r14d,ecx >=20 > + ror r13d,14 >=20 > + mov r15d,r11d >=20 > + >=20 > + xor r13d,r10d >=20 > + ror r14d,9 >=20 > + xor r15d,eax >=20 > + >=20 > + mov DWORD[24+rsp],r12d >=20 > + xor r14d,ecx >=20 > + and r15d,r10d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ebx >=20 > + xor r15d,eax >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r10d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,ecx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ecx >=20 > + >=20 > + xor r15d,edx >=20 > + ror r13d,6 >=20 > + mov ebx,edx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ebx,edi >=20 > + add r9d,r12d >=20 > + add ebx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[32+rsp] >=20 > + mov edi,DWORD[20+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add ebx,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[rsp] >=20 > + >=20 > + add r12d,DWORD[28+rsp] >=20 > + mov r13d,r9d >=20 > + add r12d,edi >=20 > + mov r14d,ebx >=20 > + ror r13d,14 >=20 > + mov edi,r10d >=20 > + >=20 > + xor r13d,r9d >=20 > + ror r14d,9 >=20 > + xor edi,r11d >=20 > + >=20 > + mov DWORD[28+rsp],r12d >=20 > + xor r14d,ebx >=20 > + and edi,r9d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,eax >=20 > + xor edi,r11d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r9d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,ebx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ebx >=20 > + >=20 > + xor edi,ecx >=20 > + ror r13d,6 >=20 > + mov eax,ecx >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor eax,r15d >=20 > + add r8d,r12d >=20 > + add eax,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + mov r13d,DWORD[36+rsp] >=20 > + mov r15d,DWORD[24+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add eax,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[4+rsp] >=20 > + >=20 > + add r12d,DWORD[32+rsp] >=20 > + mov r13d,r8d >=20 > + add r12d,r15d >=20 > + mov r14d,eax >=20 > + ror r13d,14 >=20 > + mov r15d,r9d >=20 > + >=20 > + xor r13d,r8d >=20 > + ror r14d,9 >=20 > + xor r15d,r10d >=20 > + >=20 > + mov DWORD[32+rsp],r12d >=20 > + xor r14d,eax >=20 > + and r15d,r8d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r11d >=20 > + xor r15d,r10d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r8d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,eax >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,eax >=20 > + >=20 > + xor r15d,ebx >=20 > + ror r13d,6 >=20 > + mov r11d,ebx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r11d,edi >=20 > + add edx,r12d >=20 > + add r11d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[40+rsp] >=20 > + mov edi,DWORD[28+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r11d,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[8+rsp] >=20 > + >=20 > + add r12d,DWORD[36+rsp] >=20 > + mov r13d,edx >=20 > + add r12d,edi >=20 > + mov r14d,r11d >=20 > + ror r13d,14 >=20 > + mov edi,r8d >=20 > + >=20 > + xor r13d,edx >=20 > + ror r14d,9 >=20 > + xor edi,r9d >=20 > + >=20 > + mov DWORD[36+rsp],r12d >=20 > + xor r14d,r11d >=20 > + and edi,edx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r10d >=20 > + xor edi,r9d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,edx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r11d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r11d >=20 > + >=20 > + xor edi,eax >=20 > + ror r13d,6 >=20 > + mov r10d,eax >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r10d,r15d >=20 > + add ecx,r12d >=20 > + add r10d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[44+rsp] >=20 > + mov r15d,DWORD[32+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r10d,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[12+rsp] >=20 > + >=20 > + add r12d,DWORD[40+rsp] >=20 > + mov r13d,ecx >=20 > + add r12d,r15d >=20 > + mov r14d,r10d >=20 > + ror r13d,14 >=20 > + mov r15d,edx >=20 > + >=20 > + xor r13d,ecx >=20 > + ror r14d,9 >=20 > + xor r15d,r8d >=20 > + >=20 > + mov DWORD[40+rsp],r12d >=20 > + xor r14d,r10d >=20 > + and r15d,ecx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r9d >=20 > + xor r15d,r8d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ecx >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r10d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r10d >=20 > + >=20 > + xor r15d,r11d >=20 > + ror r13d,6 >=20 > + mov r9d,r11d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r9d,edi >=20 > + add ebx,r12d >=20 > + add r9d,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[48+rsp] >=20 > + mov edi,DWORD[36+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r9d,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[16+rsp] >=20 > + >=20 > + add r12d,DWORD[44+rsp] >=20 > + mov r13d,ebx >=20 > + add r12d,edi >=20 > + mov r14d,r9d >=20 > + ror r13d,14 >=20 > + mov edi,ecx >=20 > + >=20 > + xor r13d,ebx >=20 > + ror r14d,9 >=20 > + xor edi,edx >=20 > + >=20 > + mov DWORD[44+rsp],r12d >=20 > + xor r14d,r9d >=20 > + and edi,ebx >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,r8d >=20 > + xor edi,edx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,ebx >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,r9d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r9d >=20 > + >=20 > + xor edi,r10d >=20 > + ror r13d,6 >=20 > + mov r8d,r10d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor r8d,r15d >=20 > + add eax,r12d >=20 > + add r8d,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + mov r13d,DWORD[52+rsp] >=20 > + mov r15d,DWORD[40+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add r8d,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[20+rsp] >=20 > + >=20 > + add r12d,DWORD[48+rsp] >=20 > + mov r13d,eax >=20 > + add r12d,r15d >=20 > + mov r14d,r8d >=20 > + ror r13d,14 >=20 > + mov r15d,ebx >=20 > + >=20 > + xor r13d,eax >=20 > + ror r14d,9 >=20 > + xor r15d,ecx >=20 > + >=20 > + mov DWORD[48+rsp],r12d >=20 > + xor r14d,r8d >=20 > + and r15d,eax >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,edx >=20 > + xor r15d,ecx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,eax >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,r8d >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,r8d >=20 > + >=20 > + xor r15d,r9d >=20 > + ror r13d,6 >=20 > + mov edx,r9d >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor edx,edi >=20 > + add r11d,r12d >=20 > + add edx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[56+rsp] >=20 > + mov edi,DWORD[44+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add edx,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[24+rsp] >=20 > + >=20 > + add r12d,DWORD[52+rsp] >=20 > + mov r13d,r11d >=20 > + add r12d,edi >=20 > + mov r14d,edx >=20 > + ror r13d,14 >=20 > + mov edi,eax >=20 > + >=20 > + xor r13d,r11d >=20 > + ror r14d,9 >=20 > + xor edi,ebx >=20 > + >=20 > + mov DWORD[52+rsp],r12d >=20 > + xor r14d,edx >=20 > + and edi,r11d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ecx >=20 > + xor edi,ebx >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r11d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,edx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,edx >=20 > + >=20 > + xor edi,r8d >=20 > + ror r13d,6 >=20 > + mov ecx,r8d >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ecx,r15d >=20 > + add r10d,r12d >=20 > + add ecx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[60+rsp] >=20 > + mov r15d,DWORD[48+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add ecx,r14d >=20 > + mov r14d,r15d >=20 > + ror r15d,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor r15d,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror r15d,17 >=20 > + xor r12d,r13d >=20 > + xor r15d,r14d >=20 > + add r12d,DWORD[28+rsp] >=20 > + >=20 > + add r12d,DWORD[56+rsp] >=20 > + mov r13d,r10d >=20 > + add r12d,r15d >=20 > + mov r14d,ecx >=20 > + ror r13d,14 >=20 > + mov r15d,r11d >=20 > + >=20 > + xor r13d,r10d >=20 > + ror r14d,9 >=20 > + xor r15d,eax >=20 > + >=20 > + mov DWORD[56+rsp],r12d >=20 > + xor r14d,ecx >=20 > + and r15d,r10d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,ebx >=20 > + xor r15d,eax >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r10d >=20 > + add r12d,r15d >=20 > + >=20 > + mov r15d,ecx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ecx >=20 > + >=20 > + xor r15d,edx >=20 > + ror r13d,6 >=20 > + mov ebx,edx >=20 > + >=20 > + and edi,r15d >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor ebx,edi >=20 > + add r9d,r12d >=20 > + add ebx,r12d >=20 > + >=20 > + lea rbp,[4+rbp] >=20 > + mov r13d,DWORD[rsp] >=20 > + mov edi,DWORD[52+rsp] >=20 > + >=20 > + mov r12d,r13d >=20 > + ror r13d,11 >=20 > + add ebx,r14d >=20 > + mov r14d,edi >=20 > + ror edi,2 >=20 > + >=20 > + xor r13d,r12d >=20 > + shr r12d,3 >=20 > + ror r13d,7 >=20 > + xor edi,r14d >=20 > + shr r14d,10 >=20 > + >=20 > + ror edi,17 >=20 > + xor r12d,r13d >=20 > + xor edi,r14d >=20 > + add r12d,DWORD[32+rsp] >=20 > + >=20 > + add r12d,DWORD[60+rsp] >=20 > + mov r13d,r9d >=20 > + add r12d,edi >=20 > + mov r14d,ebx >=20 > + ror r13d,14 >=20 > + mov edi,r10d >=20 > + >=20 > + xor r13d,r9d >=20 > + ror r14d,9 >=20 > + xor edi,r11d >=20 > + >=20 > + mov DWORD[60+rsp],r12d >=20 > + xor r14d,ebx >=20 > + and edi,r9d >=20 > + >=20 > + ror r13d,5 >=20 > + add r12d,eax >=20 > + xor edi,r11d >=20 > + >=20 > + ror r14d,11 >=20 > + xor r13d,r9d >=20 > + add r12d,edi >=20 > + >=20 > + mov edi,ebx >=20 > + add r12d,DWORD[rbp] >=20 > + xor r14d,ebx >=20 > + >=20 > + xor edi,ecx >=20 > + ror r13d,6 >=20 > + mov eax,ecx >=20 > + >=20 > + and r15d,edi >=20 > + ror r14d,2 >=20 > + add r12d,r13d >=20 > + >=20 > + xor eax,r15d >=20 > + add r8d,r12d >=20 > + add eax,r12d >=20 > + >=20 > + lea rbp,[20+rbp] >=20 > + cmp BYTE[3+rbp],0 >=20 > + jnz NEAR $L$rounds_16_xx >=20 > + >=20 > + mov rdi,QWORD[((64+0))+rsp] >=20 > + add eax,r14d >=20 > + lea rsi,[64+rsi] >=20 > + >=20 > + add eax,DWORD[rdi] >=20 > + add ebx,DWORD[4+rdi] >=20 > + add ecx,DWORD[8+rdi] >=20 > + add edx,DWORD[12+rdi] >=20 > + add r8d,DWORD[16+rdi] >=20 > + add r9d,DWORD[20+rdi] >=20 > + add r10d,DWORD[24+rdi] >=20 > + add r11d,DWORD[28+rdi] >=20 > + >=20 > + cmp rsi,QWORD[((64+16))+rsp] >=20 > + >=20 > + mov DWORD[rdi],eax >=20 > + mov DWORD[4+rdi],ebx >=20 > + mov DWORD[8+rdi],ecx >=20 > + mov DWORD[12+rdi],edx >=20 > + mov DWORD[16+rdi],r8d >=20 > + mov DWORD[20+rdi],r9d >=20 > + mov DWORD[24+rdi],r10d >=20 > + mov DWORD[28+rdi],r11d >=20 > + jb NEAR $L$loop >=20 > + >=20 > + mov rsi,QWORD[88+rsp] >=20 > + >=20 > + mov r15,QWORD[((-48))+rsi] >=20 > + >=20 > + mov r14,QWORD[((-40))+rsi] >=20 > + >=20 > + mov r13,QWORD[((-32))+rsi] >=20 > + >=20 > + mov r12,QWORD[((-24))+rsi] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rsi] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rsi] >=20 > + >=20 > + lea rsp,[rsi] >=20 > + >=20 > +$L$epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha256_block_data_order: >=20 > +ALIGN 64 >=20 > + >=20 > +K256: >=20 > + DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 >=20 > + DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 >=20 > + DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 >=20 > + DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 >=20 > + DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 >=20 > + DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 >=20 > + DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 >=20 > + DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 >=20 > + DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc >=20 > + DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc >=20 > + DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da >=20 > + DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da >=20 > + DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 >=20 > + DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 >=20 > + DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 >=20 > + DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 >=20 > + DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 >=20 > + DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 >=20 > + DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 >=20 > + DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 >=20 > + DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 >=20 > + DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 >=20 > + DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 >=20 > + DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 >=20 > + DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 >=20 > + DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 >=20 > + DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 >=20 > + DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 >=20 > + DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 >=20 > + DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 >=20 > + DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 >=20 > + DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 >=20 > + >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f >=20 > + DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff >=20 > + DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff >=20 > + DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 >=20 > + DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 >=20 > +DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 >=20 > +DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 >=20 > +DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 >=20 > +DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 >=20 > +DB 111,114,103,62,0 >=20 > + >=20 > +ALIGN 64 >=20 > +sha256_block_data_order_shaext: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha256_block_data_order_shaext: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > +_shaext_shortcut: >=20 > + >=20 > + lea rsp,[((-88))+rsp] >=20 > + movaps XMMWORD[(-8-80)+rax],xmm6 >=20 > + movaps XMMWORD[(-8-64)+rax],xmm7 >=20 > + movaps XMMWORD[(-8-48)+rax],xmm8 >=20 > + movaps XMMWORD[(-8-32)+rax],xmm9 >=20 > + movaps XMMWORD[(-8-16)+rax],xmm10 >=20 > +$L$prologue_shaext: >=20 > + lea rcx,[((K256+128))] >=20 > + movdqu xmm1,XMMWORD[rdi] >=20 > + movdqu xmm2,XMMWORD[16+rdi] >=20 > + movdqa xmm7,XMMWORD[((512-128))+rcx] >=20 > + >=20 > + pshufd xmm0,xmm1,0x1b >=20 > + pshufd xmm1,xmm1,0xb1 >=20 > + pshufd xmm2,xmm2,0x1b >=20 > + movdqa xmm8,xmm7 >=20 > +DB 102,15,58,15,202,8 >=20 > + punpcklqdq xmm2,xmm0 >=20 > + jmp NEAR $L$oop_shaext >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_shaext: >=20 > + movdqu xmm3,XMMWORD[rsi] >=20 > + movdqu xmm4,XMMWORD[16+rsi] >=20 > + movdqu xmm5,XMMWORD[32+rsi] >=20 > +DB 102,15,56,0,223 >=20 > + movdqu xmm6,XMMWORD[48+rsi] >=20 > + >=20 > + movdqa xmm0,XMMWORD[((0-128))+rcx] >=20 > + paddd xmm0,xmm3 >=20 > +DB 102,15,56,0,231 >=20 > + movdqa xmm10,xmm2 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + nop >=20 > + movdqa xmm9,xmm1 >=20 > +DB 15,56,203,202 >=20 > + >=20 > + movdqa xmm0,XMMWORD[((32-128))+rcx] >=20 > + paddd xmm0,xmm4 >=20 > +DB 102,15,56,0,239 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + lea rsi,[64+rsi] >=20 > +DB 15,56,204,220 >=20 > +DB 15,56,203,202 >=20 > + >=20 > + movdqa xmm0,XMMWORD[((64-128))+rcx] >=20 > + paddd xmm0,xmm5 >=20 > +DB 102,15,56,0,247 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm6 >=20 > +DB 102,15,58,15,253,4 >=20 > + nop >=20 > + paddd xmm3,xmm7 >=20 > +DB 15,56,204,229 >=20 > +DB 15,56,203,202 >=20 > + >=20 > + movdqa xmm0,XMMWORD[((96-128))+rcx] >=20 > + paddd xmm0,xmm6 >=20 > +DB 15,56,205,222 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm3 >=20 > +DB 102,15,58,15,254,4 >=20 > + nop >=20 > + paddd xmm4,xmm7 >=20 > +DB 15,56,204,238 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((128-128))+rcx] >=20 > + paddd xmm0,xmm3 >=20 > +DB 15,56,205,227 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm4 >=20 > +DB 102,15,58,15,251,4 >=20 > + nop >=20 > + paddd xmm5,xmm7 >=20 > +DB 15,56,204,243 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((160-128))+rcx] >=20 > + paddd xmm0,xmm4 >=20 > +DB 15,56,205,236 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm5 >=20 > +DB 102,15,58,15,252,4 >=20 > + nop >=20 > + paddd xmm6,xmm7 >=20 > +DB 15,56,204,220 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((192-128))+rcx] >=20 > + paddd xmm0,xmm5 >=20 > +DB 15,56,205,245 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm6 >=20 > +DB 102,15,58,15,253,4 >=20 > + nop >=20 > + paddd xmm3,xmm7 >=20 > +DB 15,56,204,229 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((224-128))+rcx] >=20 > + paddd xmm0,xmm6 >=20 > +DB 15,56,205,222 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm3 >=20 > +DB 102,15,58,15,254,4 >=20 > + nop >=20 > + paddd xmm4,xmm7 >=20 > +DB 15,56,204,238 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((256-128))+rcx] >=20 > + paddd xmm0,xmm3 >=20 > +DB 15,56,205,227 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm4 >=20 > +DB 102,15,58,15,251,4 >=20 > + nop >=20 > + paddd xmm5,xmm7 >=20 > +DB 15,56,204,243 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((288-128))+rcx] >=20 > + paddd xmm0,xmm4 >=20 > +DB 15,56,205,236 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm5 >=20 > +DB 102,15,58,15,252,4 >=20 > + nop >=20 > + paddd xmm6,xmm7 >=20 > +DB 15,56,204,220 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((320-128))+rcx] >=20 > + paddd xmm0,xmm5 >=20 > +DB 15,56,205,245 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm6 >=20 > +DB 102,15,58,15,253,4 >=20 > + nop >=20 > + paddd xmm3,xmm7 >=20 > +DB 15,56,204,229 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((352-128))+rcx] >=20 > + paddd xmm0,xmm6 >=20 > +DB 15,56,205,222 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm3 >=20 > +DB 102,15,58,15,254,4 >=20 > + nop >=20 > + paddd xmm4,xmm7 >=20 > +DB 15,56,204,238 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((384-128))+rcx] >=20 > + paddd xmm0,xmm3 >=20 > +DB 15,56,205,227 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm4 >=20 > +DB 102,15,58,15,251,4 >=20 > + nop >=20 > + paddd xmm5,xmm7 >=20 > +DB 15,56,204,243 >=20 > +DB 15,56,203,202 >=20 > + movdqa xmm0,XMMWORD[((416-128))+rcx] >=20 > + paddd xmm0,xmm4 >=20 > +DB 15,56,205,236 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + movdqa xmm7,xmm5 >=20 > +DB 102,15,58,15,252,4 >=20 > +DB 15,56,203,202 >=20 > + paddd xmm6,xmm7 >=20 > + >=20 > + movdqa xmm0,XMMWORD[((448-128))+rcx] >=20 > + paddd xmm0,xmm5 >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > +DB 15,56,205,245 >=20 > + movdqa xmm7,xmm8 >=20 > +DB 15,56,203,202 >=20 > + >=20 > + movdqa xmm0,XMMWORD[((480-128))+rcx] >=20 > + paddd xmm0,xmm6 >=20 > + nop >=20 > +DB 15,56,203,209 >=20 > + pshufd xmm0,xmm0,0x0e >=20 > + dec rdx >=20 > + nop >=20 > +DB 15,56,203,202 >=20 > + >=20 > + paddd xmm2,xmm10 >=20 > + paddd xmm1,xmm9 >=20 > + jnz NEAR $L$oop_shaext >=20 > + >=20 > + pshufd xmm2,xmm2,0xb1 >=20 > + pshufd xmm7,xmm1,0x1b >=20 > + pshufd xmm1,xmm1,0xb1 >=20 > + punpckhqdq xmm1,xmm2 >=20 > +DB 102,15,58,15,215,8 >=20 > + >=20 > + movdqu XMMWORD[rdi],xmm1 >=20 > + movdqu XMMWORD[16+rdi],xmm2 >=20 > + movaps xmm6,XMMWORD[((-8-80))+rax] >=20 > + movaps xmm7,XMMWORD[((-8-64))+rax] >=20 > + movaps xmm8,XMMWORD[((-8-48))+rax] >=20 > + movaps xmm9,XMMWORD[((-8-32))+rax] >=20 > + movaps xmm10,XMMWORD[((-8-16))+rax] >=20 > + mov rsp,rax >=20 > +$L$epilogue_shaext: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha256_block_data_order_shaext: >=20 > + >=20 > +ALIGN 64 >=20 > +sha256_block_data_order_ssse3: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha256_block_data_order_ssse3: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > +$L$ssse3_shortcut: >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + shl rdx,4 >=20 > + sub rsp,160 >=20 > + lea rdx,[rdx*4+rsi] >=20 > + and rsp,-64 >=20 > + mov QWORD[((64+0))+rsp],rdi >=20 > + mov QWORD[((64+8))+rsp],rsi >=20 > + mov QWORD[((64+16))+rsp],rdx >=20 > + mov QWORD[88+rsp],rax >=20 > + >=20 > + movaps XMMWORD[(64+32)+rsp],xmm6 >=20 > + movaps XMMWORD[(64+48)+rsp],xmm7 >=20 > + movaps XMMWORD[(64+64)+rsp],xmm8 >=20 > + movaps XMMWORD[(64+80)+rsp],xmm9 >=20 > +$L$prologue_ssse3: >=20 > + >=20 > + mov eax,DWORD[rdi] >=20 > + mov ebx,DWORD[4+rdi] >=20 > + mov ecx,DWORD[8+rdi] >=20 > + mov edx,DWORD[12+rdi] >=20 > + mov r8d,DWORD[16+rdi] >=20 > + mov r9d,DWORD[20+rdi] >=20 > + mov r10d,DWORD[24+rdi] >=20 > + mov r11d,DWORD[28+rdi] >=20 > + >=20 > + >=20 > + jmp NEAR $L$loop_ssse3 >=20 > +ALIGN 16 >=20 > +$L$loop_ssse3: >=20 > + movdqa xmm7,XMMWORD[((K256+512))] >=20 > + movdqu xmm0,XMMWORD[rsi] >=20 > + movdqu xmm1,XMMWORD[16+rsi] >=20 > + movdqu xmm2,XMMWORD[32+rsi] >=20 > +DB 102,15,56,0,199 >=20 > + movdqu xmm3,XMMWORD[48+rsi] >=20 > + lea rbp,[K256] >=20 > +DB 102,15,56,0,207 >=20 > + movdqa xmm4,XMMWORD[rbp] >=20 > + movdqa xmm5,XMMWORD[32+rbp] >=20 > +DB 102,15,56,0,215 >=20 > + paddd xmm4,xmm0 >=20 > + movdqa xmm6,XMMWORD[64+rbp] >=20 > +DB 102,15,56,0,223 >=20 > + movdqa xmm7,XMMWORD[96+rbp] >=20 > + paddd xmm5,xmm1 >=20 > + paddd xmm6,xmm2 >=20 > + paddd xmm7,xmm3 >=20 > + movdqa XMMWORD[rsp],xmm4 >=20 > + mov r14d,eax >=20 > + movdqa XMMWORD[16+rsp],xmm5 >=20 > + mov edi,ebx >=20 > + movdqa XMMWORD[32+rsp],xmm6 >=20 > + xor edi,ecx >=20 > + movdqa XMMWORD[48+rsp],xmm7 >=20 > + mov r13d,r8d >=20 > + jmp NEAR $L$ssse3_00_47 >=20 > + >=20 > +ALIGN 16 >=20 > +$L$ssse3_00_47: >=20 > + sub rbp,-128 >=20 > + ror r13d,14 >=20 > + movdqa xmm4,xmm1 >=20 > + mov eax,r14d >=20 > + mov r12d,r9d >=20 > + movdqa xmm7,xmm3 >=20 > + ror r14d,9 >=20 > + xor r13d,r8d >=20 > + xor r12d,r10d >=20 > + ror r13d,5 >=20 > + xor r14d,eax >=20 > +DB 102,15,58,15,224,4 >=20 > + and r12d,r8d >=20 > + xor r13d,r8d >=20 > +DB 102,15,58,15,250,4 >=20 > + add r11d,DWORD[rsp] >=20 > + mov r15d,eax >=20 > + xor r12d,r10d >=20 > + ror r14d,11 >=20 > + movdqa xmm5,xmm4 >=20 > + xor r15d,ebx >=20 > + add r11d,r12d >=20 > + movdqa xmm6,xmm4 >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + psrld xmm4,3 >=20 > + xor r14d,eax >=20 > + add r11d,r13d >=20 > + xor edi,ebx >=20 > + paddd xmm0,xmm7 >=20 > + ror r14d,2 >=20 > + add edx,r11d >=20 > + psrld xmm6,7 >=20 > + add r11d,edi >=20 > + mov r13d,edx >=20 > + pshufd xmm7,xmm3,250 >=20 > + add r14d,r11d >=20 > + ror r13d,14 >=20 > + pslld xmm5,14 >=20 > + mov r11d,r14d >=20 > + mov r12d,r8d >=20 > + pxor xmm4,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,edx >=20 > + xor r12d,r9d >=20 > + ror r13d,5 >=20 > + psrld xmm6,11 >=20 > + xor r14d,r11d >=20 > + pxor xmm4,xmm5 >=20 > + and r12d,edx >=20 > + xor r13d,edx >=20 > + pslld xmm5,11 >=20 > + add r10d,DWORD[4+rsp] >=20 > + mov edi,r11d >=20 > + pxor xmm4,xmm6 >=20 > + xor r12d,r9d >=20 > + ror r14d,11 >=20 > + movdqa xmm6,xmm7 >=20 > + xor edi,eax >=20 > + add r10d,r12d >=20 > + pxor xmm4,xmm5 >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,r11d >=20 > + psrld xmm7,10 >=20 > + add r10d,r13d >=20 > + xor r15d,eax >=20 > + paddd xmm0,xmm4 >=20 > + ror r14d,2 >=20 > + add ecx,r10d >=20 > + psrlq xmm6,17 >=20 > + add r10d,r15d >=20 > + mov r13d,ecx >=20 > + add r14d,r10d >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,14 >=20 > + mov r10d,r14d >=20 > + mov r12d,edx >=20 > + ror r14d,9 >=20 > + psrlq xmm6,2 >=20 > + xor r13d,ecx >=20 > + xor r12d,r8d >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,5 >=20 > + xor r14d,r10d >=20 > + and r12d,ecx >=20 > + pshufd xmm7,xmm7,128 >=20 > + xor r13d,ecx >=20 > + add r9d,DWORD[8+rsp] >=20 > + mov r15d,r10d >=20 > + psrldq xmm7,8 >=20 > + xor r12d,r8d >=20 > + ror r14d,11 >=20 > + xor r15d,r11d >=20 > + add r9d,r12d >=20 > + ror r13d,6 >=20 > + paddd xmm0,xmm7 >=20 > + and edi,r15d >=20 > + xor r14d,r10d >=20 > + add r9d,r13d >=20 > + pshufd xmm7,xmm0,80 >=20 > + xor edi,r11d >=20 > + ror r14d,2 >=20 > + add ebx,r9d >=20 > + movdqa xmm6,xmm7 >=20 > + add r9d,edi >=20 > + mov r13d,ebx >=20 > + psrld xmm7,10 >=20 > + add r14d,r9d >=20 > + ror r13d,14 >=20 > + psrlq xmm6,17 >=20 > + mov r9d,r14d >=20 > + mov r12d,ecx >=20 > + pxor xmm7,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,ebx >=20 > + xor r12d,edx >=20 > + ror r13d,5 >=20 > + xor r14d,r9d >=20 > + psrlq xmm6,2 >=20 > + and r12d,ebx >=20 > + xor r13d,ebx >=20 > + add r8d,DWORD[12+rsp] >=20 > + pxor xmm7,xmm6 >=20 > + mov edi,r9d >=20 > + xor r12d,edx >=20 > + ror r14d,11 >=20 > + pshufd xmm7,xmm7,8 >=20 > + xor edi,r10d >=20 > + add r8d,r12d >=20 > + movdqa xmm6,XMMWORD[rbp] >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + pslldq xmm7,8 >=20 > + xor r14d,r9d >=20 > + add r8d,r13d >=20 > + xor r15d,r10d >=20 > + paddd xmm0,xmm7 >=20 > + ror r14d,2 >=20 > + add eax,r8d >=20 > + add r8d,r15d >=20 > + paddd xmm6,xmm0 >=20 > + mov r13d,eax >=20 > + add r14d,r8d >=20 > + movdqa XMMWORD[rsp],xmm6 >=20 > + ror r13d,14 >=20 > + movdqa xmm4,xmm2 >=20 > + mov r8d,r14d >=20 > + mov r12d,ebx >=20 > + movdqa xmm7,xmm0 >=20 > + ror r14d,9 >=20 > + xor r13d,eax >=20 > + xor r12d,ecx >=20 > + ror r13d,5 >=20 > + xor r14d,r8d >=20 > +DB 102,15,58,15,225,4 >=20 > + and r12d,eax >=20 > + xor r13d,eax >=20 > +DB 102,15,58,15,251,4 >=20 > + add edx,DWORD[16+rsp] >=20 > + mov r15d,r8d >=20 > + xor r12d,ecx >=20 > + ror r14d,11 >=20 > + movdqa xmm5,xmm4 >=20 > + xor r15d,r9d >=20 > + add edx,r12d >=20 > + movdqa xmm6,xmm4 >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + psrld xmm4,3 >=20 > + xor r14d,r8d >=20 > + add edx,r13d >=20 > + xor edi,r9d >=20 > + paddd xmm1,xmm7 >=20 > + ror r14d,2 >=20 > + add r11d,edx >=20 > + psrld xmm6,7 >=20 > + add edx,edi >=20 > + mov r13d,r11d >=20 > + pshufd xmm7,xmm0,250 >=20 > + add r14d,edx >=20 > + ror r13d,14 >=20 > + pslld xmm5,14 >=20 > + mov edx,r14d >=20 > + mov r12d,eax >=20 > + pxor xmm4,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,r11d >=20 > + xor r12d,ebx >=20 > + ror r13d,5 >=20 > + psrld xmm6,11 >=20 > + xor r14d,edx >=20 > + pxor xmm4,xmm5 >=20 > + and r12d,r11d >=20 > + xor r13d,r11d >=20 > + pslld xmm5,11 >=20 > + add ecx,DWORD[20+rsp] >=20 > + mov edi,edx >=20 > + pxor xmm4,xmm6 >=20 > + xor r12d,ebx >=20 > + ror r14d,11 >=20 > + movdqa xmm6,xmm7 >=20 > + xor edi,r8d >=20 > + add ecx,r12d >=20 > + pxor xmm4,xmm5 >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,edx >=20 > + psrld xmm7,10 >=20 > + add ecx,r13d >=20 > + xor r15d,r8d >=20 > + paddd xmm1,xmm4 >=20 > + ror r14d,2 >=20 > + add r10d,ecx >=20 > + psrlq xmm6,17 >=20 > + add ecx,r15d >=20 > + mov r13d,r10d >=20 > + add r14d,ecx >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,14 >=20 > + mov ecx,r14d >=20 > + mov r12d,r11d >=20 > + ror r14d,9 >=20 > + psrlq xmm6,2 >=20 > + xor r13d,r10d >=20 > + xor r12d,eax >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,5 >=20 > + xor r14d,ecx >=20 > + and r12d,r10d >=20 > + pshufd xmm7,xmm7,128 >=20 > + xor r13d,r10d >=20 > + add ebx,DWORD[24+rsp] >=20 > + mov r15d,ecx >=20 > + psrldq xmm7,8 >=20 > + xor r12d,eax >=20 > + ror r14d,11 >=20 > + xor r15d,edx >=20 > + add ebx,r12d >=20 > + ror r13d,6 >=20 > + paddd xmm1,xmm7 >=20 > + and edi,r15d >=20 > + xor r14d,ecx >=20 > + add ebx,r13d >=20 > + pshufd xmm7,xmm1,80 >=20 > + xor edi,edx >=20 > + ror r14d,2 >=20 > + add r9d,ebx >=20 > + movdqa xmm6,xmm7 >=20 > + add ebx,edi >=20 > + mov r13d,r9d >=20 > + psrld xmm7,10 >=20 > + add r14d,ebx >=20 > + ror r13d,14 >=20 > + psrlq xmm6,17 >=20 > + mov ebx,r14d >=20 > + mov r12d,r10d >=20 > + pxor xmm7,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,r9d >=20 > + xor r12d,r11d >=20 > + ror r13d,5 >=20 > + xor r14d,ebx >=20 > + psrlq xmm6,2 >=20 > + and r12d,r9d >=20 > + xor r13d,r9d >=20 > + add eax,DWORD[28+rsp] >=20 > + pxor xmm7,xmm6 >=20 > + mov edi,ebx >=20 > + xor r12d,r11d >=20 > + ror r14d,11 >=20 > + pshufd xmm7,xmm7,8 >=20 > + xor edi,ecx >=20 > + add eax,r12d >=20 > + movdqa xmm6,XMMWORD[32+rbp] >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + pslldq xmm7,8 >=20 > + xor r14d,ebx >=20 > + add eax,r13d >=20 > + xor r15d,ecx >=20 > + paddd xmm1,xmm7 >=20 > + ror r14d,2 >=20 > + add r8d,eax >=20 > + add eax,r15d >=20 > + paddd xmm6,xmm1 >=20 > + mov r13d,r8d >=20 > + add r14d,eax >=20 > + movdqa XMMWORD[16+rsp],xmm6 >=20 > + ror r13d,14 >=20 > + movdqa xmm4,xmm3 >=20 > + mov eax,r14d >=20 > + mov r12d,r9d >=20 > + movdqa xmm7,xmm1 >=20 > + ror r14d,9 >=20 > + xor r13d,r8d >=20 > + xor r12d,r10d >=20 > + ror r13d,5 >=20 > + xor r14d,eax >=20 > +DB 102,15,58,15,226,4 >=20 > + and r12d,r8d >=20 > + xor r13d,r8d >=20 > +DB 102,15,58,15,248,4 >=20 > + add r11d,DWORD[32+rsp] >=20 > + mov r15d,eax >=20 > + xor r12d,r10d >=20 > + ror r14d,11 >=20 > + movdqa xmm5,xmm4 >=20 > + xor r15d,ebx >=20 > + add r11d,r12d >=20 > + movdqa xmm6,xmm4 >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + psrld xmm4,3 >=20 > + xor r14d,eax >=20 > + add r11d,r13d >=20 > + xor edi,ebx >=20 > + paddd xmm2,xmm7 >=20 > + ror r14d,2 >=20 > + add edx,r11d >=20 > + psrld xmm6,7 >=20 > + add r11d,edi >=20 > + mov r13d,edx >=20 > + pshufd xmm7,xmm1,250 >=20 > + add r14d,r11d >=20 > + ror r13d,14 >=20 > + pslld xmm5,14 >=20 > + mov r11d,r14d >=20 > + mov r12d,r8d >=20 > + pxor xmm4,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,edx >=20 > + xor r12d,r9d >=20 > + ror r13d,5 >=20 > + psrld xmm6,11 >=20 > + xor r14d,r11d >=20 > + pxor xmm4,xmm5 >=20 > + and r12d,edx >=20 > + xor r13d,edx >=20 > + pslld xmm5,11 >=20 > + add r10d,DWORD[36+rsp] >=20 > + mov edi,r11d >=20 > + pxor xmm4,xmm6 >=20 > + xor r12d,r9d >=20 > + ror r14d,11 >=20 > + movdqa xmm6,xmm7 >=20 > + xor edi,eax >=20 > + add r10d,r12d >=20 > + pxor xmm4,xmm5 >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,r11d >=20 > + psrld xmm7,10 >=20 > + add r10d,r13d >=20 > + xor r15d,eax >=20 > + paddd xmm2,xmm4 >=20 > + ror r14d,2 >=20 > + add ecx,r10d >=20 > + psrlq xmm6,17 >=20 > + add r10d,r15d >=20 > + mov r13d,ecx >=20 > + add r14d,r10d >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,14 >=20 > + mov r10d,r14d >=20 > + mov r12d,edx >=20 > + ror r14d,9 >=20 > + psrlq xmm6,2 >=20 > + xor r13d,ecx >=20 > + xor r12d,r8d >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,5 >=20 > + xor r14d,r10d >=20 > + and r12d,ecx >=20 > + pshufd xmm7,xmm7,128 >=20 > + xor r13d,ecx >=20 > + add r9d,DWORD[40+rsp] >=20 > + mov r15d,r10d >=20 > + psrldq xmm7,8 >=20 > + xor r12d,r8d >=20 > + ror r14d,11 >=20 > + xor r15d,r11d >=20 > + add r9d,r12d >=20 > + ror r13d,6 >=20 > + paddd xmm2,xmm7 >=20 > + and edi,r15d >=20 > + xor r14d,r10d >=20 > + add r9d,r13d >=20 > + pshufd xmm7,xmm2,80 >=20 > + xor edi,r11d >=20 > + ror r14d,2 >=20 > + add ebx,r9d >=20 > + movdqa xmm6,xmm7 >=20 > + add r9d,edi >=20 > + mov r13d,ebx >=20 > + psrld xmm7,10 >=20 > + add r14d,r9d >=20 > + ror r13d,14 >=20 > + psrlq xmm6,17 >=20 > + mov r9d,r14d >=20 > + mov r12d,ecx >=20 > + pxor xmm7,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,ebx >=20 > + xor r12d,edx >=20 > + ror r13d,5 >=20 > + xor r14d,r9d >=20 > + psrlq xmm6,2 >=20 > + and r12d,ebx >=20 > + xor r13d,ebx >=20 > + add r8d,DWORD[44+rsp] >=20 > + pxor xmm7,xmm6 >=20 > + mov edi,r9d >=20 > + xor r12d,edx >=20 > + ror r14d,11 >=20 > + pshufd xmm7,xmm7,8 >=20 > + xor edi,r10d >=20 > + add r8d,r12d >=20 > + movdqa xmm6,XMMWORD[64+rbp] >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + pslldq xmm7,8 >=20 > + xor r14d,r9d >=20 > + add r8d,r13d >=20 > + xor r15d,r10d >=20 > + paddd xmm2,xmm7 >=20 > + ror r14d,2 >=20 > + add eax,r8d >=20 > + add r8d,r15d >=20 > + paddd xmm6,xmm2 >=20 > + mov r13d,eax >=20 > + add r14d,r8d >=20 > + movdqa XMMWORD[32+rsp],xmm6 >=20 > + ror r13d,14 >=20 > + movdqa xmm4,xmm0 >=20 > + mov r8d,r14d >=20 > + mov r12d,ebx >=20 > + movdqa xmm7,xmm2 >=20 > + ror r14d,9 >=20 > + xor r13d,eax >=20 > + xor r12d,ecx >=20 > + ror r13d,5 >=20 > + xor r14d,r8d >=20 > +DB 102,15,58,15,227,4 >=20 > + and r12d,eax >=20 > + xor r13d,eax >=20 > +DB 102,15,58,15,249,4 >=20 > + add edx,DWORD[48+rsp] >=20 > + mov r15d,r8d >=20 > + xor r12d,ecx >=20 > + ror r14d,11 >=20 > + movdqa xmm5,xmm4 >=20 > + xor r15d,r9d >=20 > + add edx,r12d >=20 > + movdqa xmm6,xmm4 >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + psrld xmm4,3 >=20 > + xor r14d,r8d >=20 > + add edx,r13d >=20 > + xor edi,r9d >=20 > + paddd xmm3,xmm7 >=20 > + ror r14d,2 >=20 > + add r11d,edx >=20 > + psrld xmm6,7 >=20 > + add edx,edi >=20 > + mov r13d,r11d >=20 > + pshufd xmm7,xmm2,250 >=20 > + add r14d,edx >=20 > + ror r13d,14 >=20 > + pslld xmm5,14 >=20 > + mov edx,r14d >=20 > + mov r12d,eax >=20 > + pxor xmm4,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,r11d >=20 > + xor r12d,ebx >=20 > + ror r13d,5 >=20 > + psrld xmm6,11 >=20 > + xor r14d,edx >=20 > + pxor xmm4,xmm5 >=20 > + and r12d,r11d >=20 > + xor r13d,r11d >=20 > + pslld xmm5,11 >=20 > + add ecx,DWORD[52+rsp] >=20 > + mov edi,edx >=20 > + pxor xmm4,xmm6 >=20 > + xor r12d,ebx >=20 > + ror r14d,11 >=20 > + movdqa xmm6,xmm7 >=20 > + xor edi,r8d >=20 > + add ecx,r12d >=20 > + pxor xmm4,xmm5 >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,edx >=20 > + psrld xmm7,10 >=20 > + add ecx,r13d >=20 > + xor r15d,r8d >=20 > + paddd xmm3,xmm4 >=20 > + ror r14d,2 >=20 > + add r10d,ecx >=20 > + psrlq xmm6,17 >=20 > + add ecx,r15d >=20 > + mov r13d,r10d >=20 > + add r14d,ecx >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,14 >=20 > + mov ecx,r14d >=20 > + mov r12d,r11d >=20 > + ror r14d,9 >=20 > + psrlq xmm6,2 >=20 > + xor r13d,r10d >=20 > + xor r12d,eax >=20 > + pxor xmm7,xmm6 >=20 > + ror r13d,5 >=20 > + xor r14d,ecx >=20 > + and r12d,r10d >=20 > + pshufd xmm7,xmm7,128 >=20 > + xor r13d,r10d >=20 > + add ebx,DWORD[56+rsp] >=20 > + mov r15d,ecx >=20 > + psrldq xmm7,8 >=20 > + xor r12d,eax >=20 > + ror r14d,11 >=20 > + xor r15d,edx >=20 > + add ebx,r12d >=20 > + ror r13d,6 >=20 > + paddd xmm3,xmm7 >=20 > + and edi,r15d >=20 > + xor r14d,ecx >=20 > + add ebx,r13d >=20 > + pshufd xmm7,xmm3,80 >=20 > + xor edi,edx >=20 > + ror r14d,2 >=20 > + add r9d,ebx >=20 > + movdqa xmm6,xmm7 >=20 > + add ebx,edi >=20 > + mov r13d,r9d >=20 > + psrld xmm7,10 >=20 > + add r14d,ebx >=20 > + ror r13d,14 >=20 > + psrlq xmm6,17 >=20 > + mov ebx,r14d >=20 > + mov r12d,r10d >=20 > + pxor xmm7,xmm6 >=20 > + ror r14d,9 >=20 > + xor r13d,r9d >=20 > + xor r12d,r11d >=20 > + ror r13d,5 >=20 > + xor r14d,ebx >=20 > + psrlq xmm6,2 >=20 > + and r12d,r9d >=20 > + xor r13d,r9d >=20 > + add eax,DWORD[60+rsp] >=20 > + pxor xmm7,xmm6 >=20 > + mov edi,ebx >=20 > + xor r12d,r11d >=20 > + ror r14d,11 >=20 > + pshufd xmm7,xmm7,8 >=20 > + xor edi,ecx >=20 > + add eax,r12d >=20 > + movdqa xmm6,XMMWORD[96+rbp] >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + pslldq xmm7,8 >=20 > + xor r14d,ebx >=20 > + add eax,r13d >=20 > + xor r15d,ecx >=20 > + paddd xmm3,xmm7 >=20 > + ror r14d,2 >=20 > + add r8d,eax >=20 > + add eax,r15d >=20 > + paddd xmm6,xmm3 >=20 > + mov r13d,r8d >=20 > + add r14d,eax >=20 > + movdqa XMMWORD[48+rsp],xmm6 >=20 > + cmp BYTE[131+rbp],0 >=20 > + jne NEAR $L$ssse3_00_47 >=20 > + ror r13d,14 >=20 > + mov eax,r14d >=20 > + mov r12d,r9d >=20 > + ror r14d,9 >=20 > + xor r13d,r8d >=20 > + xor r12d,r10d >=20 > + ror r13d,5 >=20 > + xor r14d,eax >=20 > + and r12d,r8d >=20 > + xor r13d,r8d >=20 > + add r11d,DWORD[rsp] >=20 > + mov r15d,eax >=20 > + xor r12d,r10d >=20 > + ror r14d,11 >=20 > + xor r15d,ebx >=20 > + add r11d,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,eax >=20 > + add r11d,r13d >=20 > + xor edi,ebx >=20 > + ror r14d,2 >=20 > + add edx,r11d >=20 > + add r11d,edi >=20 > + mov r13d,edx >=20 > + add r14d,r11d >=20 > + ror r13d,14 >=20 > + mov r11d,r14d >=20 > + mov r12d,r8d >=20 > + ror r14d,9 >=20 > + xor r13d,edx >=20 > + xor r12d,r9d >=20 > + ror r13d,5 >=20 > + xor r14d,r11d >=20 > + and r12d,edx >=20 > + xor r13d,edx >=20 > + add r10d,DWORD[4+rsp] >=20 > + mov edi,r11d >=20 > + xor r12d,r9d >=20 > + ror r14d,11 >=20 > + xor edi,eax >=20 > + add r10d,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,r11d >=20 > + add r10d,r13d >=20 > + xor r15d,eax >=20 > + ror r14d,2 >=20 > + add ecx,r10d >=20 > + add r10d,r15d >=20 > + mov r13d,ecx >=20 > + add r14d,r10d >=20 > + ror r13d,14 >=20 > + mov r10d,r14d >=20 > + mov r12d,edx >=20 > + ror r14d,9 >=20 > + xor r13d,ecx >=20 > + xor r12d,r8d >=20 > + ror r13d,5 >=20 > + xor r14d,r10d >=20 > + and r12d,ecx >=20 > + xor r13d,ecx >=20 > + add r9d,DWORD[8+rsp] >=20 > + mov r15d,r10d >=20 > + xor r12d,r8d >=20 > + ror r14d,11 >=20 > + xor r15d,r11d >=20 > + add r9d,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,r10d >=20 > + add r9d,r13d >=20 > + xor edi,r11d >=20 > + ror r14d,2 >=20 > + add ebx,r9d >=20 > + add r9d,edi >=20 > + mov r13d,ebx >=20 > + add r14d,r9d >=20 > + ror r13d,14 >=20 > + mov r9d,r14d >=20 > + mov r12d,ecx >=20 > + ror r14d,9 >=20 > + xor r13d,ebx >=20 > + xor r12d,edx >=20 > + ror r13d,5 >=20 > + xor r14d,r9d >=20 > + and r12d,ebx >=20 > + xor r13d,ebx >=20 > + add r8d,DWORD[12+rsp] >=20 > + mov edi,r9d >=20 > + xor r12d,edx >=20 > + ror r14d,11 >=20 > + xor edi,r10d >=20 > + add r8d,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,r9d >=20 > + add r8d,r13d >=20 > + xor r15d,r10d >=20 > + ror r14d,2 >=20 > + add eax,r8d >=20 > + add r8d,r15d >=20 > + mov r13d,eax >=20 > + add r14d,r8d >=20 > + ror r13d,14 >=20 > + mov r8d,r14d >=20 > + mov r12d,ebx >=20 > + ror r14d,9 >=20 > + xor r13d,eax >=20 > + xor r12d,ecx >=20 > + ror r13d,5 >=20 > + xor r14d,r8d >=20 > + and r12d,eax >=20 > + xor r13d,eax >=20 > + add edx,DWORD[16+rsp] >=20 > + mov r15d,r8d >=20 > + xor r12d,ecx >=20 > + ror r14d,11 >=20 > + xor r15d,r9d >=20 > + add edx,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,r8d >=20 > + add edx,r13d >=20 > + xor edi,r9d >=20 > + ror r14d,2 >=20 > + add r11d,edx >=20 > + add edx,edi >=20 > + mov r13d,r11d >=20 > + add r14d,edx >=20 > + ror r13d,14 >=20 > + mov edx,r14d >=20 > + mov r12d,eax >=20 > + ror r14d,9 >=20 > + xor r13d,r11d >=20 > + xor r12d,ebx >=20 > + ror r13d,5 >=20 > + xor r14d,edx >=20 > + and r12d,r11d >=20 > + xor r13d,r11d >=20 > + add ecx,DWORD[20+rsp] >=20 > + mov edi,edx >=20 > + xor r12d,ebx >=20 > + ror r14d,11 >=20 > + xor edi,r8d >=20 > + add ecx,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,edx >=20 > + add ecx,r13d >=20 > + xor r15d,r8d >=20 > + ror r14d,2 >=20 > + add r10d,ecx >=20 > + add ecx,r15d >=20 > + mov r13d,r10d >=20 > + add r14d,ecx >=20 > + ror r13d,14 >=20 > + mov ecx,r14d >=20 > + mov r12d,r11d >=20 > + ror r14d,9 >=20 > + xor r13d,r10d >=20 > + xor r12d,eax >=20 > + ror r13d,5 >=20 > + xor r14d,ecx >=20 > + and r12d,r10d >=20 > + xor r13d,r10d >=20 > + add ebx,DWORD[24+rsp] >=20 > + mov r15d,ecx >=20 > + xor r12d,eax >=20 > + ror r14d,11 >=20 > + xor r15d,edx >=20 > + add ebx,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,ecx >=20 > + add ebx,r13d >=20 > + xor edi,edx >=20 > + ror r14d,2 >=20 > + add r9d,ebx >=20 > + add ebx,edi >=20 > + mov r13d,r9d >=20 > + add r14d,ebx >=20 > + ror r13d,14 >=20 > + mov ebx,r14d >=20 > + mov r12d,r10d >=20 > + ror r14d,9 >=20 > + xor r13d,r9d >=20 > + xor r12d,r11d >=20 > + ror r13d,5 >=20 > + xor r14d,ebx >=20 > + and r12d,r9d >=20 > + xor r13d,r9d >=20 > + add eax,DWORD[28+rsp] >=20 > + mov edi,ebx >=20 > + xor r12d,r11d >=20 > + ror r14d,11 >=20 > + xor edi,ecx >=20 > + add eax,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,ebx >=20 > + add eax,r13d >=20 > + xor r15d,ecx >=20 > + ror r14d,2 >=20 > + add r8d,eax >=20 > + add eax,r15d >=20 > + mov r13d,r8d >=20 > + add r14d,eax >=20 > + ror r13d,14 >=20 > + mov eax,r14d >=20 > + mov r12d,r9d >=20 > + ror r14d,9 >=20 > + xor r13d,r8d >=20 > + xor r12d,r10d >=20 > + ror r13d,5 >=20 > + xor r14d,eax >=20 > + and r12d,r8d >=20 > + xor r13d,r8d >=20 > + add r11d,DWORD[32+rsp] >=20 > + mov r15d,eax >=20 > + xor r12d,r10d >=20 > + ror r14d,11 >=20 > + xor r15d,ebx >=20 > + add r11d,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,eax >=20 > + add r11d,r13d >=20 > + xor edi,ebx >=20 > + ror r14d,2 >=20 > + add edx,r11d >=20 > + add r11d,edi >=20 > + mov r13d,edx >=20 > + add r14d,r11d >=20 > + ror r13d,14 >=20 > + mov r11d,r14d >=20 > + mov r12d,r8d >=20 > + ror r14d,9 >=20 > + xor r13d,edx >=20 > + xor r12d,r9d >=20 > + ror r13d,5 >=20 > + xor r14d,r11d >=20 > + and r12d,edx >=20 > + xor r13d,edx >=20 > + add r10d,DWORD[36+rsp] >=20 > + mov edi,r11d >=20 > + xor r12d,r9d >=20 > + ror r14d,11 >=20 > + xor edi,eax >=20 > + add r10d,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,r11d >=20 > + add r10d,r13d >=20 > + xor r15d,eax >=20 > + ror r14d,2 >=20 > + add ecx,r10d >=20 > + add r10d,r15d >=20 > + mov r13d,ecx >=20 > + add r14d,r10d >=20 > + ror r13d,14 >=20 > + mov r10d,r14d >=20 > + mov r12d,edx >=20 > + ror r14d,9 >=20 > + xor r13d,ecx >=20 > + xor r12d,r8d >=20 > + ror r13d,5 >=20 > + xor r14d,r10d >=20 > + and r12d,ecx >=20 > + xor r13d,ecx >=20 > + add r9d,DWORD[40+rsp] >=20 > + mov r15d,r10d >=20 > + xor r12d,r8d >=20 > + ror r14d,11 >=20 > + xor r15d,r11d >=20 > + add r9d,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,r10d >=20 > + add r9d,r13d >=20 > + xor edi,r11d >=20 > + ror r14d,2 >=20 > + add ebx,r9d >=20 > + add r9d,edi >=20 > + mov r13d,ebx >=20 > + add r14d,r9d >=20 > + ror r13d,14 >=20 > + mov r9d,r14d >=20 > + mov r12d,ecx >=20 > + ror r14d,9 >=20 > + xor r13d,ebx >=20 > + xor r12d,edx >=20 > + ror r13d,5 >=20 > + xor r14d,r9d >=20 > + and r12d,ebx >=20 > + xor r13d,ebx >=20 > + add r8d,DWORD[44+rsp] >=20 > + mov edi,r9d >=20 > + xor r12d,edx >=20 > + ror r14d,11 >=20 > + xor edi,r10d >=20 > + add r8d,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,r9d >=20 > + add r8d,r13d >=20 > + xor r15d,r10d >=20 > + ror r14d,2 >=20 > + add eax,r8d >=20 > + add r8d,r15d >=20 > + mov r13d,eax >=20 > + add r14d,r8d >=20 > + ror r13d,14 >=20 > + mov r8d,r14d >=20 > + mov r12d,ebx >=20 > + ror r14d,9 >=20 > + xor r13d,eax >=20 > + xor r12d,ecx >=20 > + ror r13d,5 >=20 > + xor r14d,r8d >=20 > + and r12d,eax >=20 > + xor r13d,eax >=20 > + add edx,DWORD[48+rsp] >=20 > + mov r15d,r8d >=20 > + xor r12d,ecx >=20 > + ror r14d,11 >=20 > + xor r15d,r9d >=20 > + add edx,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,r8d >=20 > + add edx,r13d >=20 > + xor edi,r9d >=20 > + ror r14d,2 >=20 > + add r11d,edx >=20 > + add edx,edi >=20 > + mov r13d,r11d >=20 > + add r14d,edx >=20 > + ror r13d,14 >=20 > + mov edx,r14d >=20 > + mov r12d,eax >=20 > + ror r14d,9 >=20 > + xor r13d,r11d >=20 > + xor r12d,ebx >=20 > + ror r13d,5 >=20 > + xor r14d,edx >=20 > + and r12d,r11d >=20 > + xor r13d,r11d >=20 > + add ecx,DWORD[52+rsp] >=20 > + mov edi,edx >=20 > + xor r12d,ebx >=20 > + ror r14d,11 >=20 > + xor edi,r8d >=20 > + add ecx,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,edx >=20 > + add ecx,r13d >=20 > + xor r15d,r8d >=20 > + ror r14d,2 >=20 > + add r10d,ecx >=20 > + add ecx,r15d >=20 > + mov r13d,r10d >=20 > + add r14d,ecx >=20 > + ror r13d,14 >=20 > + mov ecx,r14d >=20 > + mov r12d,r11d >=20 > + ror r14d,9 >=20 > + xor r13d,r10d >=20 > + xor r12d,eax >=20 > + ror r13d,5 >=20 > + xor r14d,ecx >=20 > + and r12d,r10d >=20 > + xor r13d,r10d >=20 > + add ebx,DWORD[56+rsp] >=20 > + mov r15d,ecx >=20 > + xor r12d,eax >=20 > + ror r14d,11 >=20 > + xor r15d,edx >=20 > + add ebx,r12d >=20 > + ror r13d,6 >=20 > + and edi,r15d >=20 > + xor r14d,ecx >=20 > + add ebx,r13d >=20 > + xor edi,edx >=20 > + ror r14d,2 >=20 > + add r9d,ebx >=20 > + add ebx,edi >=20 > + mov r13d,r9d >=20 > + add r14d,ebx >=20 > + ror r13d,14 >=20 > + mov ebx,r14d >=20 > + mov r12d,r10d >=20 > + ror r14d,9 >=20 > + xor r13d,r9d >=20 > + xor r12d,r11d >=20 > + ror r13d,5 >=20 > + xor r14d,ebx >=20 > + and r12d,r9d >=20 > + xor r13d,r9d >=20 > + add eax,DWORD[60+rsp] >=20 > + mov edi,ebx >=20 > + xor r12d,r11d >=20 > + ror r14d,11 >=20 > + xor edi,ecx >=20 > + add eax,r12d >=20 > + ror r13d,6 >=20 > + and r15d,edi >=20 > + xor r14d,ebx >=20 > + add eax,r13d >=20 > + xor r15d,ecx >=20 > + ror r14d,2 >=20 > + add r8d,eax >=20 > + add eax,r15d >=20 > + mov r13d,r8d >=20 > + add r14d,eax >=20 > + mov rdi,QWORD[((64+0))+rsp] >=20 > + mov eax,r14d >=20 > + >=20 > + add eax,DWORD[rdi] >=20 > + lea rsi,[64+rsi] >=20 > + add ebx,DWORD[4+rdi] >=20 > + add ecx,DWORD[8+rdi] >=20 > + add edx,DWORD[12+rdi] >=20 > + add r8d,DWORD[16+rdi] >=20 > + add r9d,DWORD[20+rdi] >=20 > + add r10d,DWORD[24+rdi] >=20 > + add r11d,DWORD[28+rdi] >=20 > + >=20 > + cmp rsi,QWORD[((64+16))+rsp] >=20 > + >=20 > + mov DWORD[rdi],eax >=20 > + mov DWORD[4+rdi],ebx >=20 > + mov DWORD[8+rdi],ecx >=20 > + mov DWORD[12+rdi],edx >=20 > + mov DWORD[16+rdi],r8d >=20 > + mov DWORD[20+rdi],r9d >=20 > + mov DWORD[24+rdi],r10d >=20 > + mov DWORD[28+rdi],r11d >=20 > + jb NEAR $L$loop_ssse3 >=20 > + >=20 > + mov rsi,QWORD[88+rsp] >=20 > + >=20 > + movaps xmm6,XMMWORD[((64+32))+rsp] >=20 > + movaps xmm7,XMMWORD[((64+48))+rsp] >=20 > + movaps xmm8,XMMWORD[((64+64))+rsp] >=20 > + movaps xmm9,XMMWORD[((64+80))+rsp] >=20 > + mov r15,QWORD[((-48))+rsi] >=20 > + >=20 > + mov r14,QWORD[((-40))+rsi] >=20 > + >=20 > + mov r13,QWORD[((-32))+rsi] >=20 > + >=20 > + mov r12,QWORD[((-24))+rsi] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rsi] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rsi] >=20 > + >=20 > + lea rsp,[rsi] >=20 > + >=20 > +$L$epilogue_ssse3: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha256_block_data_order_ssse3: >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + mov rsi,rax >=20 > + mov rax,QWORD[((64+24))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + mov r15,QWORD[((-48))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + mov QWORD[240+r8],r15 >=20 > + >=20 > + lea r10,[$L$epilogue] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + lea rsi,[((64+32))+rsi] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,8 >=20 > + DD 0xa548f3fc >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +ALIGN 16 >=20 > +shaext_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + lea r10,[$L$prologue_shaext] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + lea r10,[$L$epilogue_shaext] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + >=20 > + lea rsi,[((-8-80))+rax] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,10 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + jmp NEAR $L$in_prologue >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_end_sha256_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_info_sha256_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_begin_sha256_block_data_order_shaext wrt ..imageb= ase >=20 > + DD $L$SEH_end_sha256_block_data_order_shaext wrt ..imagebas= e >=20 > + DD $L$SEH_info_sha256_block_data_order_shaext wrt ..imageba= se >=20 > + DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imageba= se >=20 > + DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase >=20 > + DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebas= e >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_sha256_block_data_order: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase >=20 > +$L$SEH_info_sha256_block_data_order_shaext: >=20 > +DB 9,0,0,0 >=20 > + DD shaext_handler wrt ..imagebase >=20 > +$L$SEH_info_sha256_block_data_order_ssse3: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 > wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.na= sm > b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm > new file mode 100644 > index 0000000000..c6397d4393 > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm > @@ -0,0 +1,1938 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/sha/asm/sha512-x86_64.pl >=20 > +; >=20 > +; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +EXTERN OPENSSL_ia32cap_P >=20 > +global sha512_block_data_order >=20 > + >=20 > +ALIGN 16 >=20 > +sha512_block_data_order: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_sha512_block_data_order: >=20 > + mov rdi,rcx >=20 > + mov rsi,rdx >=20 > + mov rdx,r8 >=20 > + >=20 > + >=20 > + >=20 > + mov rax,rsp >=20 > + >=20 > + push rbx >=20 > + >=20 > + push rbp >=20 > + >=20 > + push r12 >=20 > + >=20 > + push r13 >=20 > + >=20 > + push r14 >=20 > + >=20 > + push r15 >=20 > + >=20 > + shl rdx,4 >=20 > + sub rsp,16*8+4*8 >=20 > + lea rdx,[rdx*8+rsi] >=20 > + and rsp,-64 >=20 > + mov QWORD[((128+0))+rsp],rdi >=20 > + mov QWORD[((128+8))+rsp],rsi >=20 > + mov QWORD[((128+16))+rsp],rdx >=20 > + mov QWORD[152+rsp],rax >=20 > + >=20 > +$L$prologue: >=20 > + >=20 > + mov rax,QWORD[rdi] >=20 > + mov rbx,QWORD[8+rdi] >=20 > + mov rcx,QWORD[16+rdi] >=20 > + mov rdx,QWORD[24+rdi] >=20 > + mov r8,QWORD[32+rdi] >=20 > + mov r9,QWORD[40+rdi] >=20 > + mov r10,QWORD[48+rdi] >=20 > + mov r11,QWORD[56+rdi] >=20 > + jmp NEAR $L$loop >=20 > + >=20 > +ALIGN 16 >=20 > +$L$loop: >=20 > + mov rdi,rbx >=20 > + lea rbp,[K512] >=20 > + xor rdi,rcx >=20 > + mov r12,QWORD[rsi] >=20 > + mov r13,r8 >=20 > + mov r14,rax >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,r9 >=20 > + >=20 > + xor r13,r8 >=20 > + ror r14,5 >=20 > + xor r15,r10 >=20 > + >=20 > + mov QWORD[rsp],r12 >=20 > + xor r14,rax >=20 > + and r15,r8 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r11 >=20 > + xor r15,r10 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r8 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rax >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rax >=20 > + >=20 > + xor r15,rbx >=20 > + ror r13,14 >=20 > + mov r11,rbx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r11,rdi >=20 > + add rdx,r12 >=20 > + add r11,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add r11,r14 >=20 > + mov r12,QWORD[8+rsi] >=20 > + mov r13,rdx >=20 > + mov r14,r11 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,r8 >=20 > + >=20 > + xor r13,rdx >=20 > + ror r14,5 >=20 > + xor rdi,r9 >=20 > + >=20 > + mov QWORD[8+rsp],r12 >=20 > + xor r14,r11 >=20 > + and rdi,rdx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r10 >=20 > + xor rdi,r9 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rdx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r11 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r11 >=20 > + >=20 > + xor rdi,rax >=20 > + ror r13,14 >=20 > + mov r10,rax >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r10,r15 >=20 > + add rcx,r12 >=20 > + add r10,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add r10,r14 >=20 > + mov r12,QWORD[16+rsi] >=20 > + mov r13,rcx >=20 > + mov r14,r10 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,rdx >=20 > + >=20 > + xor r13,rcx >=20 > + ror r14,5 >=20 > + xor r15,r8 >=20 > + >=20 > + mov QWORD[16+rsp],r12 >=20 > + xor r14,r10 >=20 > + and r15,rcx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r9 >=20 > + xor r15,r8 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rcx >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r10 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r10 >=20 > + >=20 > + xor r15,r11 >=20 > + ror r13,14 >=20 > + mov r9,r11 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r9,rdi >=20 > + add rbx,r12 >=20 > + add r9,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add r9,r14 >=20 > + mov r12,QWORD[24+rsi] >=20 > + mov r13,rbx >=20 > + mov r14,r9 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,rcx >=20 > + >=20 > + xor r13,rbx >=20 > + ror r14,5 >=20 > + xor rdi,rdx >=20 > + >=20 > + mov QWORD[24+rsp],r12 >=20 > + xor r14,r9 >=20 > + and rdi,rbx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r8 >=20 > + xor rdi,rdx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rbx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r9 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r9 >=20 > + >=20 > + xor rdi,r10 >=20 > + ror r13,14 >=20 > + mov r8,r10 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r8,r15 >=20 > + add rax,r12 >=20 > + add r8,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add r8,r14 >=20 > + mov r12,QWORD[32+rsi] >=20 > + mov r13,rax >=20 > + mov r14,r8 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,rbx >=20 > + >=20 > + xor r13,rax >=20 > + ror r14,5 >=20 > + xor r15,rcx >=20 > + >=20 > + mov QWORD[32+rsp],r12 >=20 > + xor r14,r8 >=20 > + and r15,rax >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rdx >=20 > + xor r15,rcx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rax >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r8 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r8 >=20 > + >=20 > + xor r15,r9 >=20 > + ror r13,14 >=20 > + mov rdx,r9 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rdx,rdi >=20 > + add r11,r12 >=20 > + add rdx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add rdx,r14 >=20 > + mov r12,QWORD[40+rsi] >=20 > + mov r13,r11 >=20 > + mov r14,rdx >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,rax >=20 > + >=20 > + xor r13,r11 >=20 > + ror r14,5 >=20 > + xor rdi,rbx >=20 > + >=20 > + mov QWORD[40+rsp],r12 >=20 > + xor r14,rdx >=20 > + and rdi,r11 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rcx >=20 > + xor rdi,rbx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r11 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rdx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rdx >=20 > + >=20 > + xor rdi,r8 >=20 > + ror r13,14 >=20 > + mov rcx,r8 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rcx,r15 >=20 > + add r10,r12 >=20 > + add rcx,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add rcx,r14 >=20 > + mov r12,QWORD[48+rsi] >=20 > + mov r13,r10 >=20 > + mov r14,rcx >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,r11 >=20 > + >=20 > + xor r13,r10 >=20 > + ror r14,5 >=20 > + xor r15,rax >=20 > + >=20 > + mov QWORD[48+rsp],r12 >=20 > + xor r14,rcx >=20 > + and r15,r10 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rbx >=20 > + xor r15,rax >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r10 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rcx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rcx >=20 > + >=20 > + xor r15,rdx >=20 > + ror r13,14 >=20 > + mov rbx,rdx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rbx,rdi >=20 > + add r9,r12 >=20 > + add rbx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add rbx,r14 >=20 > + mov r12,QWORD[56+rsi] >=20 > + mov r13,r9 >=20 > + mov r14,rbx >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,r10 >=20 > + >=20 > + xor r13,r9 >=20 > + ror r14,5 >=20 > + xor rdi,r11 >=20 > + >=20 > + mov QWORD[56+rsp],r12 >=20 > + xor r14,rbx >=20 > + and rdi,r9 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rax >=20 > + xor rdi,r11 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r9 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rbx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rbx >=20 > + >=20 > + xor rdi,rcx >=20 > + ror r13,14 >=20 > + mov rax,rcx >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rax,r15 >=20 > + add r8,r12 >=20 > + add rax,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add rax,r14 >=20 > + mov r12,QWORD[64+rsi] >=20 > + mov r13,r8 >=20 > + mov r14,rax >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,r9 >=20 > + >=20 > + xor r13,r8 >=20 > + ror r14,5 >=20 > + xor r15,r10 >=20 > + >=20 > + mov QWORD[64+rsp],r12 >=20 > + xor r14,rax >=20 > + and r15,r8 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r11 >=20 > + xor r15,r10 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r8 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rax >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rax >=20 > + >=20 > + xor r15,rbx >=20 > + ror r13,14 >=20 > + mov r11,rbx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r11,rdi >=20 > + add rdx,r12 >=20 > + add r11,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add r11,r14 >=20 > + mov r12,QWORD[72+rsi] >=20 > + mov r13,rdx >=20 > + mov r14,r11 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,r8 >=20 > + >=20 > + xor r13,rdx >=20 > + ror r14,5 >=20 > + xor rdi,r9 >=20 > + >=20 > + mov QWORD[72+rsp],r12 >=20 > + xor r14,r11 >=20 > + and rdi,rdx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r10 >=20 > + xor rdi,r9 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rdx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r11 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r11 >=20 > + >=20 > + xor rdi,rax >=20 > + ror r13,14 >=20 > + mov r10,rax >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r10,r15 >=20 > + add rcx,r12 >=20 > + add r10,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add r10,r14 >=20 > + mov r12,QWORD[80+rsi] >=20 > + mov r13,rcx >=20 > + mov r14,r10 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,rdx >=20 > + >=20 > + xor r13,rcx >=20 > + ror r14,5 >=20 > + xor r15,r8 >=20 > + >=20 > + mov QWORD[80+rsp],r12 >=20 > + xor r14,r10 >=20 > + and r15,rcx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r9 >=20 > + xor r15,r8 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rcx >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r10 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r10 >=20 > + >=20 > + xor r15,r11 >=20 > + ror r13,14 >=20 > + mov r9,r11 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r9,rdi >=20 > + add rbx,r12 >=20 > + add r9,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add r9,r14 >=20 > + mov r12,QWORD[88+rsi] >=20 > + mov r13,rbx >=20 > + mov r14,r9 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,rcx >=20 > + >=20 > + xor r13,rbx >=20 > + ror r14,5 >=20 > + xor rdi,rdx >=20 > + >=20 > + mov QWORD[88+rsp],r12 >=20 > + xor r14,r9 >=20 > + and rdi,rbx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r8 >=20 > + xor rdi,rdx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rbx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r9 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r9 >=20 > + >=20 > + xor rdi,r10 >=20 > + ror r13,14 >=20 > + mov r8,r10 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r8,r15 >=20 > + add rax,r12 >=20 > + add r8,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add r8,r14 >=20 > + mov r12,QWORD[96+rsi] >=20 > + mov r13,rax >=20 > + mov r14,r8 >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,rbx >=20 > + >=20 > + xor r13,rax >=20 > + ror r14,5 >=20 > + xor r15,rcx >=20 > + >=20 > + mov QWORD[96+rsp],r12 >=20 > + xor r14,r8 >=20 > + and r15,rax >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rdx >=20 > + xor r15,rcx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rax >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r8 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r8 >=20 > + >=20 > + xor r15,r9 >=20 > + ror r13,14 >=20 > + mov rdx,r9 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rdx,rdi >=20 > + add r11,r12 >=20 > + add rdx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add rdx,r14 >=20 > + mov r12,QWORD[104+rsi] >=20 > + mov r13,r11 >=20 > + mov r14,rdx >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,rax >=20 > + >=20 > + xor r13,r11 >=20 > + ror r14,5 >=20 > + xor rdi,rbx >=20 > + >=20 > + mov QWORD[104+rsp],r12 >=20 > + xor r14,rdx >=20 > + and rdi,r11 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rcx >=20 > + xor rdi,rbx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r11 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rdx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rdx >=20 > + >=20 > + xor rdi,r8 >=20 > + ror r13,14 >=20 > + mov rcx,r8 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rcx,r15 >=20 > + add r10,r12 >=20 > + add rcx,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + add rcx,r14 >=20 > + mov r12,QWORD[112+rsi] >=20 > + mov r13,r10 >=20 > + mov r14,rcx >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov r15,r11 >=20 > + >=20 > + xor r13,r10 >=20 > + ror r14,5 >=20 > + xor r15,rax >=20 > + >=20 > + mov QWORD[112+rsp],r12 >=20 > + xor r14,rcx >=20 > + and r15,r10 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rbx >=20 > + xor r15,rax >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r10 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rcx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rcx >=20 > + >=20 > + xor r15,rdx >=20 > + ror r13,14 >=20 > + mov rbx,rdx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rbx,rdi >=20 > + add r9,r12 >=20 > + add rbx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + add rbx,r14 >=20 > + mov r12,QWORD[120+rsi] >=20 > + mov r13,r9 >=20 > + mov r14,rbx >=20 > + bswap r12 >=20 > + ror r13,23 >=20 > + mov rdi,r10 >=20 > + >=20 > + xor r13,r9 >=20 > + ror r14,5 >=20 > + xor rdi,r11 >=20 > + >=20 > + mov QWORD[120+rsp],r12 >=20 > + xor r14,rbx >=20 > + and rdi,r9 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rax >=20 > + xor rdi,r11 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r9 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rbx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rbx >=20 > + >=20 > + xor rdi,rcx >=20 > + ror r13,14 >=20 > + mov rax,rcx >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rax,r15 >=20 > + add r8,r12 >=20 > + add rax,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + jmp NEAR $L$rounds_16_xx >=20 > +ALIGN 16 >=20 > +$L$rounds_16_xx: >=20 > + mov r13,QWORD[8+rsp] >=20 > + mov r15,QWORD[112+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rax,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[72+rsp] >=20 > + >=20 > + add r12,QWORD[rsp] >=20 > + mov r13,r8 >=20 > + add r12,r15 >=20 > + mov r14,rax >=20 > + ror r13,23 >=20 > + mov r15,r9 >=20 > + >=20 > + xor r13,r8 >=20 > + ror r14,5 >=20 > + xor r15,r10 >=20 > + >=20 > + mov QWORD[rsp],r12 >=20 > + xor r14,rax >=20 > + and r15,r8 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r11 >=20 > + xor r15,r10 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r8 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rax >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rax >=20 > + >=20 > + xor r15,rbx >=20 > + ror r13,14 >=20 > + mov r11,rbx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r11,rdi >=20 > + add rdx,r12 >=20 > + add r11,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[16+rsp] >=20 > + mov rdi,QWORD[120+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r11,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[80+rsp] >=20 > + >=20 > + add r12,QWORD[8+rsp] >=20 > + mov r13,rdx >=20 > + add r12,rdi >=20 > + mov r14,r11 >=20 > + ror r13,23 >=20 > + mov rdi,r8 >=20 > + >=20 > + xor r13,rdx >=20 > + ror r14,5 >=20 > + xor rdi,r9 >=20 > + >=20 > + mov QWORD[8+rsp],r12 >=20 > + xor r14,r11 >=20 > + and rdi,rdx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r10 >=20 > + xor rdi,r9 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rdx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r11 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r11 >=20 > + >=20 > + xor rdi,rax >=20 > + ror r13,14 >=20 > + mov r10,rax >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r10,r15 >=20 > + add rcx,r12 >=20 > + add r10,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[24+rsp] >=20 > + mov r15,QWORD[rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r10,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[88+rsp] >=20 > + >=20 > + add r12,QWORD[16+rsp] >=20 > + mov r13,rcx >=20 > + add r12,r15 >=20 > + mov r14,r10 >=20 > + ror r13,23 >=20 > + mov r15,rdx >=20 > + >=20 > + xor r13,rcx >=20 > + ror r14,5 >=20 > + xor r15,r8 >=20 > + >=20 > + mov QWORD[16+rsp],r12 >=20 > + xor r14,r10 >=20 > + and r15,rcx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r9 >=20 > + xor r15,r8 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rcx >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r10 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r10 >=20 > + >=20 > + xor r15,r11 >=20 > + ror r13,14 >=20 > + mov r9,r11 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r9,rdi >=20 > + add rbx,r12 >=20 > + add r9,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[32+rsp] >=20 > + mov rdi,QWORD[8+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r9,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[96+rsp] >=20 > + >=20 > + add r12,QWORD[24+rsp] >=20 > + mov r13,rbx >=20 > + add r12,rdi >=20 > + mov r14,r9 >=20 > + ror r13,23 >=20 > + mov rdi,rcx >=20 > + >=20 > + xor r13,rbx >=20 > + ror r14,5 >=20 > + xor rdi,rdx >=20 > + >=20 > + mov QWORD[24+rsp],r12 >=20 > + xor r14,r9 >=20 > + and rdi,rbx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r8 >=20 > + xor rdi,rdx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rbx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r9 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r9 >=20 > + >=20 > + xor rdi,r10 >=20 > + ror r13,14 >=20 > + mov r8,r10 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r8,r15 >=20 > + add rax,r12 >=20 > + add r8,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[40+rsp] >=20 > + mov r15,QWORD[16+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r8,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[104+rsp] >=20 > + >=20 > + add r12,QWORD[32+rsp] >=20 > + mov r13,rax >=20 > + add r12,r15 >=20 > + mov r14,r8 >=20 > + ror r13,23 >=20 > + mov r15,rbx >=20 > + >=20 > + xor r13,rax >=20 > + ror r14,5 >=20 > + xor r15,rcx >=20 > + >=20 > + mov QWORD[32+rsp],r12 >=20 > + xor r14,r8 >=20 > + and r15,rax >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rdx >=20 > + xor r15,rcx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rax >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r8 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r8 >=20 > + >=20 > + xor r15,r9 >=20 > + ror r13,14 >=20 > + mov rdx,r9 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rdx,rdi >=20 > + add r11,r12 >=20 > + add rdx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[48+rsp] >=20 > + mov rdi,QWORD[24+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rdx,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[112+rsp] >=20 > + >=20 > + add r12,QWORD[40+rsp] >=20 > + mov r13,r11 >=20 > + add r12,rdi >=20 > + mov r14,rdx >=20 > + ror r13,23 >=20 > + mov rdi,rax >=20 > + >=20 > + xor r13,r11 >=20 > + ror r14,5 >=20 > + xor rdi,rbx >=20 > + >=20 > + mov QWORD[40+rsp],r12 >=20 > + xor r14,rdx >=20 > + and rdi,r11 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rcx >=20 > + xor rdi,rbx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r11 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rdx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rdx >=20 > + >=20 > + xor rdi,r8 >=20 > + ror r13,14 >=20 > + mov rcx,r8 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rcx,r15 >=20 > + add r10,r12 >=20 > + add rcx,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[56+rsp] >=20 > + mov r15,QWORD[32+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rcx,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[120+rsp] >=20 > + >=20 > + add r12,QWORD[48+rsp] >=20 > + mov r13,r10 >=20 > + add r12,r15 >=20 > + mov r14,rcx >=20 > + ror r13,23 >=20 > + mov r15,r11 >=20 > + >=20 > + xor r13,r10 >=20 > + ror r14,5 >=20 > + xor r15,rax >=20 > + >=20 > + mov QWORD[48+rsp],r12 >=20 > + xor r14,rcx >=20 > + and r15,r10 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rbx >=20 > + xor r15,rax >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r10 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rcx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rcx >=20 > + >=20 > + xor r15,rdx >=20 > + ror r13,14 >=20 > + mov rbx,rdx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rbx,rdi >=20 > + add r9,r12 >=20 > + add rbx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[64+rsp] >=20 > + mov rdi,QWORD[40+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rbx,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[rsp] >=20 > + >=20 > + add r12,QWORD[56+rsp] >=20 > + mov r13,r9 >=20 > + add r12,rdi >=20 > + mov r14,rbx >=20 > + ror r13,23 >=20 > + mov rdi,r10 >=20 > + >=20 > + xor r13,r9 >=20 > + ror r14,5 >=20 > + xor rdi,r11 >=20 > + >=20 > + mov QWORD[56+rsp],r12 >=20 > + xor r14,rbx >=20 > + and rdi,r9 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rax >=20 > + xor rdi,r11 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r9 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rbx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rbx >=20 > + >=20 > + xor rdi,rcx >=20 > + ror r13,14 >=20 > + mov rax,rcx >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rax,r15 >=20 > + add r8,r12 >=20 > + add rax,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[72+rsp] >=20 > + mov r15,QWORD[48+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rax,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[8+rsp] >=20 > + >=20 > + add r12,QWORD[64+rsp] >=20 > + mov r13,r8 >=20 > + add r12,r15 >=20 > + mov r14,rax >=20 > + ror r13,23 >=20 > + mov r15,r9 >=20 > + >=20 > + xor r13,r8 >=20 > + ror r14,5 >=20 > + xor r15,r10 >=20 > + >=20 > + mov QWORD[64+rsp],r12 >=20 > + xor r14,rax >=20 > + and r15,r8 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r11 >=20 > + xor r15,r10 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r8 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rax >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rax >=20 > + >=20 > + xor r15,rbx >=20 > + ror r13,14 >=20 > + mov r11,rbx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r11,rdi >=20 > + add rdx,r12 >=20 > + add r11,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[80+rsp] >=20 > + mov rdi,QWORD[56+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r11,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[16+rsp] >=20 > + >=20 > + add r12,QWORD[72+rsp] >=20 > + mov r13,rdx >=20 > + add r12,rdi >=20 > + mov r14,r11 >=20 > + ror r13,23 >=20 > + mov rdi,r8 >=20 > + >=20 > + xor r13,rdx >=20 > + ror r14,5 >=20 > + xor rdi,r9 >=20 > + >=20 > + mov QWORD[72+rsp],r12 >=20 > + xor r14,r11 >=20 > + and rdi,rdx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r10 >=20 > + xor rdi,r9 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rdx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r11 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r11 >=20 > + >=20 > + xor rdi,rax >=20 > + ror r13,14 >=20 > + mov r10,rax >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r10,r15 >=20 > + add rcx,r12 >=20 > + add r10,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[88+rsp] >=20 > + mov r15,QWORD[64+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r10,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[24+rsp] >=20 > + >=20 > + add r12,QWORD[80+rsp] >=20 > + mov r13,rcx >=20 > + add r12,r15 >=20 > + mov r14,r10 >=20 > + ror r13,23 >=20 > + mov r15,rdx >=20 > + >=20 > + xor r13,rcx >=20 > + ror r14,5 >=20 > + xor r15,r8 >=20 > + >=20 > + mov QWORD[80+rsp],r12 >=20 > + xor r14,r10 >=20 > + and r15,rcx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r9 >=20 > + xor r15,r8 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rcx >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r10 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r10 >=20 > + >=20 > + xor r15,r11 >=20 > + ror r13,14 >=20 > + mov r9,r11 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r9,rdi >=20 > + add rbx,r12 >=20 > + add r9,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[96+rsp] >=20 > + mov rdi,QWORD[72+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r9,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[32+rsp] >=20 > + >=20 > + add r12,QWORD[88+rsp] >=20 > + mov r13,rbx >=20 > + add r12,rdi >=20 > + mov r14,r9 >=20 > + ror r13,23 >=20 > + mov rdi,rcx >=20 > + >=20 > + xor r13,rbx >=20 > + ror r14,5 >=20 > + xor rdi,rdx >=20 > + >=20 > + mov QWORD[88+rsp],r12 >=20 > + xor r14,r9 >=20 > + and rdi,rbx >=20 > + >=20 > + ror r13,4 >=20 > + add r12,r8 >=20 > + xor rdi,rdx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rbx >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,r9 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r9 >=20 > + >=20 > + xor rdi,r10 >=20 > + ror r13,14 >=20 > + mov r8,r10 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor r8,r15 >=20 > + add rax,r12 >=20 > + add r8,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[104+rsp] >=20 > + mov r15,QWORD[80+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add r8,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[40+rsp] >=20 > + >=20 > + add r12,QWORD[96+rsp] >=20 > + mov r13,rax >=20 > + add r12,r15 >=20 > + mov r14,r8 >=20 > + ror r13,23 >=20 > + mov r15,rbx >=20 > + >=20 > + xor r13,rax >=20 > + ror r14,5 >=20 > + xor r15,rcx >=20 > + >=20 > + mov QWORD[96+rsp],r12 >=20 > + xor r14,r8 >=20 > + and r15,rax >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rdx >=20 > + xor r15,rcx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,rax >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,r8 >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,r8 >=20 > + >=20 > + xor r15,r9 >=20 > + ror r13,14 >=20 > + mov rdx,r9 >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rdx,rdi >=20 > + add r11,r12 >=20 > + add rdx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[112+rsp] >=20 > + mov rdi,QWORD[88+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rdx,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[48+rsp] >=20 > + >=20 > + add r12,QWORD[104+rsp] >=20 > + mov r13,r11 >=20 > + add r12,rdi >=20 > + mov r14,rdx >=20 > + ror r13,23 >=20 > + mov rdi,rax >=20 > + >=20 > + xor r13,r11 >=20 > + ror r14,5 >=20 > + xor rdi,rbx >=20 > + >=20 > + mov QWORD[104+rsp],r12 >=20 > + xor r14,rdx >=20 > + and rdi,r11 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rcx >=20 > + xor rdi,rbx >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r11 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rdx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rdx >=20 > + >=20 > + xor rdi,r8 >=20 > + ror r13,14 >=20 > + mov rcx,r8 >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rcx,r15 >=20 > + add r10,r12 >=20 > + add rcx,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + mov r13,QWORD[120+rsp] >=20 > + mov r15,QWORD[96+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rcx,r14 >=20 > + mov r14,r15 >=20 > + ror r15,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor r15,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror r15,19 >=20 > + xor r12,r13 >=20 > + xor r15,r14 >=20 > + add r12,QWORD[56+rsp] >=20 > + >=20 > + add r12,QWORD[112+rsp] >=20 > + mov r13,r10 >=20 > + add r12,r15 >=20 > + mov r14,rcx >=20 > + ror r13,23 >=20 > + mov r15,r11 >=20 > + >=20 > + xor r13,r10 >=20 > + ror r14,5 >=20 > + xor r15,rax >=20 > + >=20 > + mov QWORD[112+rsp],r12 >=20 > + xor r14,rcx >=20 > + and r15,r10 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rbx >=20 > + xor r15,rax >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r10 >=20 > + add r12,r15 >=20 > + >=20 > + mov r15,rcx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rcx >=20 > + >=20 > + xor r15,rdx >=20 > + ror r13,14 >=20 > + mov rbx,rdx >=20 > + >=20 > + and rdi,r15 >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rbx,rdi >=20 > + add r9,r12 >=20 > + add rbx,r12 >=20 > + >=20 > + lea rbp,[8+rbp] >=20 > + mov r13,QWORD[rsp] >=20 > + mov rdi,QWORD[104+rsp] >=20 > + >=20 > + mov r12,r13 >=20 > + ror r13,7 >=20 > + add rbx,r14 >=20 > + mov r14,rdi >=20 > + ror rdi,42 >=20 > + >=20 > + xor r13,r12 >=20 > + shr r12,7 >=20 > + ror r13,1 >=20 > + xor rdi,r14 >=20 > + shr r14,6 >=20 > + >=20 > + ror rdi,19 >=20 > + xor r12,r13 >=20 > + xor rdi,r14 >=20 > + add r12,QWORD[64+rsp] >=20 > + >=20 > + add r12,QWORD[120+rsp] >=20 > + mov r13,r9 >=20 > + add r12,rdi >=20 > + mov r14,rbx >=20 > + ror r13,23 >=20 > + mov rdi,r10 >=20 > + >=20 > + xor r13,r9 >=20 > + ror r14,5 >=20 > + xor rdi,r11 >=20 > + >=20 > + mov QWORD[120+rsp],r12 >=20 > + xor r14,rbx >=20 > + and rdi,r9 >=20 > + >=20 > + ror r13,4 >=20 > + add r12,rax >=20 > + xor rdi,r11 >=20 > + >=20 > + ror r14,6 >=20 > + xor r13,r9 >=20 > + add r12,rdi >=20 > + >=20 > + mov rdi,rbx >=20 > + add r12,QWORD[rbp] >=20 > + xor r14,rbx >=20 > + >=20 > + xor rdi,rcx >=20 > + ror r13,14 >=20 > + mov rax,rcx >=20 > + >=20 > + and r15,rdi >=20 > + ror r14,28 >=20 > + add r12,r13 >=20 > + >=20 > + xor rax,r15 >=20 > + add r8,r12 >=20 > + add rax,r12 >=20 > + >=20 > + lea rbp,[24+rbp] >=20 > + cmp BYTE[7+rbp],0 >=20 > + jnz NEAR $L$rounds_16_xx >=20 > + >=20 > + mov rdi,QWORD[((128+0))+rsp] >=20 > + add rax,r14 >=20 > + lea rsi,[128+rsi] >=20 > + >=20 > + add rax,QWORD[rdi] >=20 > + add rbx,QWORD[8+rdi] >=20 > + add rcx,QWORD[16+rdi] >=20 > + add rdx,QWORD[24+rdi] >=20 > + add r8,QWORD[32+rdi] >=20 > + add r9,QWORD[40+rdi] >=20 > + add r10,QWORD[48+rdi] >=20 > + add r11,QWORD[56+rdi] >=20 > + >=20 > + cmp rsi,QWORD[((128+16))+rsp] >=20 > + >=20 > + mov QWORD[rdi],rax >=20 > + mov QWORD[8+rdi],rbx >=20 > + mov QWORD[16+rdi],rcx >=20 > + mov QWORD[24+rdi],rdx >=20 > + mov QWORD[32+rdi],r8 >=20 > + mov QWORD[40+rdi],r9 >=20 > + mov QWORD[48+rdi],r10 >=20 > + mov QWORD[56+rdi],r11 >=20 > + jb NEAR $L$loop >=20 > + >=20 > + mov rsi,QWORD[152+rsp] >=20 > + >=20 > + mov r15,QWORD[((-48))+rsi] >=20 > + >=20 > + mov r14,QWORD[((-40))+rsi] >=20 > + >=20 > + mov r13,QWORD[((-32))+rsi] >=20 > + >=20 > + mov r12,QWORD[((-24))+rsi] >=20 > + >=20 > + mov rbp,QWORD[((-16))+rsi] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rsi] >=20 > + >=20 > + lea rsp,[rsi] >=20 > + >=20 > +$L$epilogue: >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_sha512_block_data_order: >=20 > +ALIGN 64 >=20 > + >=20 > +K512: >=20 > + DQ 0x428a2f98d728ae22,0x7137449123ef65cd >=20 > + DQ 0x428a2f98d728ae22,0x7137449123ef65cd >=20 > + DQ 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc >=20 > + DQ 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc >=20 > + DQ 0x3956c25bf348b538,0x59f111f1b605d019 >=20 > + DQ 0x3956c25bf348b538,0x59f111f1b605d019 >=20 > + DQ 0x923f82a4af194f9b,0xab1c5ed5da6d8118 >=20 > + DQ 0x923f82a4af194f9b,0xab1c5ed5da6d8118 >=20 > + DQ 0xd807aa98a3030242,0x12835b0145706fbe >=20 > + DQ 0xd807aa98a3030242,0x12835b0145706fbe >=20 > + DQ 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 >=20 > + DQ 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 >=20 > + DQ 0x72be5d74f27b896f,0x80deb1fe3b1696b1 >=20 > + DQ 0x72be5d74f27b896f,0x80deb1fe3b1696b1 >=20 > + DQ 0x9bdc06a725c71235,0xc19bf174cf692694 >=20 > + DQ 0x9bdc06a725c71235,0xc19bf174cf692694 >=20 > + DQ 0xe49b69c19ef14ad2,0xefbe4786384f25e3 >=20 > + DQ 0xe49b69c19ef14ad2,0xefbe4786384f25e3 >=20 > + DQ 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 >=20 > + DQ 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 >=20 > + DQ 0x2de92c6f592b0275,0x4a7484aa6ea6e483 >=20 > + DQ 0x2de92c6f592b0275,0x4a7484aa6ea6e483 >=20 > + DQ 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 >=20 > + DQ 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 >=20 > + DQ 0x983e5152ee66dfab,0xa831c66d2db43210 >=20 > + DQ 0x983e5152ee66dfab,0xa831c66d2db43210 >=20 > + DQ 0xb00327c898fb213f,0xbf597fc7beef0ee4 >=20 > + DQ 0xb00327c898fb213f,0xbf597fc7beef0ee4 >=20 > + DQ 0xc6e00bf33da88fc2,0xd5a79147930aa725 >=20 > + DQ 0xc6e00bf33da88fc2,0xd5a79147930aa725 >=20 > + DQ 0x06ca6351e003826f,0x142929670a0e6e70 >=20 > + DQ 0x06ca6351e003826f,0x142929670a0e6e70 >=20 > + DQ 0x27b70a8546d22ffc,0x2e1b21385c26c926 >=20 > + DQ 0x27b70a8546d22ffc,0x2e1b21385c26c926 >=20 > + DQ 0x4d2c6dfc5ac42aed,0x53380d139d95b3df >=20 > + DQ 0x4d2c6dfc5ac42aed,0x53380d139d95b3df >=20 > + DQ 0x650a73548baf63de,0x766a0abb3c77b2a8 >=20 > + DQ 0x650a73548baf63de,0x766a0abb3c77b2a8 >=20 > + DQ 0x81c2c92e47edaee6,0x92722c851482353b >=20 > + DQ 0x81c2c92e47edaee6,0x92722c851482353b >=20 > + DQ 0xa2bfe8a14cf10364,0xa81a664bbc423001 >=20 > + DQ 0xa2bfe8a14cf10364,0xa81a664bbc423001 >=20 > + DQ 0xc24b8b70d0f89791,0xc76c51a30654be30 >=20 > + DQ 0xc24b8b70d0f89791,0xc76c51a30654be30 >=20 > + DQ 0xd192e819d6ef5218,0xd69906245565a910 >=20 > + DQ 0xd192e819d6ef5218,0xd69906245565a910 >=20 > + DQ 0xf40e35855771202a,0x106aa07032bbd1b8 >=20 > + DQ 0xf40e35855771202a,0x106aa07032bbd1b8 >=20 > + DQ 0x19a4c116b8d2d0c8,0x1e376c085141ab53 >=20 > + DQ 0x19a4c116b8d2d0c8,0x1e376c085141ab53 >=20 > + DQ 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 >=20 > + DQ 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 >=20 > + DQ 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb >=20 > + DQ 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb >=20 > + DQ 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 >=20 > + DQ 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 >=20 > + DQ 0x748f82ee5defb2fc,0x78a5636f43172f60 >=20 > + DQ 0x748f82ee5defb2fc,0x78a5636f43172f60 >=20 > + DQ 0x84c87814a1f0ab72,0x8cc702081a6439ec >=20 > + DQ 0x84c87814a1f0ab72,0x8cc702081a6439ec >=20 > + DQ 0x90befffa23631e28,0xa4506cebde82bde9 >=20 > + DQ 0x90befffa23631e28,0xa4506cebde82bde9 >=20 > + DQ 0xbef9a3f7b2c67915,0xc67178f2e372532b >=20 > + DQ 0xbef9a3f7b2c67915,0xc67178f2e372532b >=20 > + DQ 0xca273eceea26619c,0xd186b8c721c0c207 >=20 > + DQ 0xca273eceea26619c,0xd186b8c721c0c207 >=20 > + DQ 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 >=20 > + DQ 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 >=20 > + DQ 0x06f067aa72176fba,0x0a637dc5a2c898a6 >=20 > + DQ 0x06f067aa72176fba,0x0a637dc5a2c898a6 >=20 > + DQ 0x113f9804bef90dae,0x1b710b35131c471b >=20 > + DQ 0x113f9804bef90dae,0x1b710b35131c471b >=20 > + DQ 0x28db77f523047d84,0x32caab7b40c72493 >=20 > + DQ 0x28db77f523047d84,0x32caab7b40c72493 >=20 > + DQ 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c >=20 > + DQ 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c >=20 > + DQ 0x4cc5d4becb3e42b6,0x597f299cfc657e2a >=20 > + DQ 0x4cc5d4becb3e42b6,0x597f299cfc657e2a >=20 > + DQ 0x5fcb6fab3ad6faec,0x6c44198c4a475817 >=20 > + DQ 0x5fcb6fab3ad6faec,0x6c44198c4a475817 >=20 > + >=20 > + DQ 0x0001020304050607,0x08090a0b0c0d0e0f >=20 > + DQ 0x0001020304050607,0x08090a0b0c0d0e0f >=20 > +DB 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 >=20 > +DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 >=20 > +DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 >=20 > +DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 >=20 > +DB 111,114,103,62,0 >=20 > +EXTERN __imp_RtlVirtualUnwind >=20 > + >=20 > +ALIGN 16 >=20 > +se_handler: >=20 > + push rsi >=20 > + push rdi >=20 > + push rbx >=20 > + push rbp >=20 > + push r12 >=20 > + push r13 >=20 > + push r14 >=20 > + push r15 >=20 > + pushfq >=20 > + sub rsp,64 >=20 > + >=20 > + mov rax,QWORD[120+r8] >=20 > + mov rbx,QWORD[248+r8] >=20 > + >=20 > + mov rsi,QWORD[8+r9] >=20 > + mov r11,QWORD[56+r9] >=20 > + >=20 > + mov r10d,DWORD[r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + mov rax,QWORD[152+r8] >=20 > + >=20 > + mov r10d,DWORD[4+r11] >=20 > + lea r10,[r10*1+rsi] >=20 > + cmp rbx,r10 >=20 > + jae NEAR $L$in_prologue >=20 > + mov rsi,rax >=20 > + mov rax,QWORD[((128+24))+rax] >=20 > + >=20 > + mov rbx,QWORD[((-8))+rax] >=20 > + mov rbp,QWORD[((-16))+rax] >=20 > + mov r12,QWORD[((-24))+rax] >=20 > + mov r13,QWORD[((-32))+rax] >=20 > + mov r14,QWORD[((-40))+rax] >=20 > + mov r15,QWORD[((-48))+rax] >=20 > + mov QWORD[144+r8],rbx >=20 > + mov QWORD[160+r8],rbp >=20 > + mov QWORD[216+r8],r12 >=20 > + mov QWORD[224+r8],r13 >=20 > + mov QWORD[232+r8],r14 >=20 > + mov QWORD[240+r8],r15 >=20 > + >=20 > + lea r10,[$L$epilogue] >=20 > + cmp rbx,r10 >=20 > + jb NEAR $L$in_prologue >=20 > + >=20 > + lea rsi,[((128+32))+rsi] >=20 > + lea rdi,[512+r8] >=20 > + mov ecx,12 >=20 > + DD 0xa548f3fc >=20 > + >=20 > +$L$in_prologue: >=20 > + mov rdi,QWORD[8+rax] >=20 > + mov rsi,QWORD[16+rax] >=20 > + mov QWORD[152+r8],rax >=20 > + mov QWORD[168+r8],rsi >=20 > + mov QWORD[176+r8],rdi >=20 > + >=20 > + mov rdi,QWORD[40+r9] >=20 > + mov rsi,r8 >=20 > + mov ecx,154 >=20 > + DD 0xa548f3fc >=20 > + >=20 > + mov rsi,r9 >=20 > + xor rcx,rcx >=20 > + mov rdx,QWORD[8+rsi] >=20 > + mov r8,QWORD[rsi] >=20 > + mov r9,QWORD[16+rsi] >=20 > + mov r10,QWORD[40+rsi] >=20 > + lea r11,[56+rsi] >=20 > + lea r12,[24+rsi] >=20 > + mov QWORD[32+rsp],r10 >=20 > + mov QWORD[40+rsp],r11 >=20 > + mov QWORD[48+rsp],r12 >=20 > + mov QWORD[56+rsp],rcx >=20 > + call QWORD[__imp_RtlVirtualUnwind] >=20 > + >=20 > + mov eax,1 >=20 > + add rsp,64 >=20 > + popfq >=20 > + pop r15 >=20 > + pop r14 >=20 > + pop r13 >=20 > + pop r12 >=20 > + pop rbp >=20 > + pop rbx >=20 > + pop rdi >=20 > + pop rsi >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +section .pdata rdata align=3D4 >=20 > +ALIGN 4 >=20 > + DD $L$SEH_begin_sha512_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_end_sha512_block_data_order wrt ..imagebase >=20 > + DD $L$SEH_info_sha512_block_data_order wrt ..imagebase >=20 > +section .xdata rdata align=3D8 >=20 > +ALIGN 8 >=20 > +$L$SEH_info_sha512_block_data_order: >=20 > +DB 9,0,0,0 >=20 > + DD se_handler wrt ..imagebase >=20 > + DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase >=20 > diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > b/CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > new file mode 100644 > index 0000000000..2a3d5bcf72 > --- /dev/null > +++ b/CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > @@ -0,0 +1,491 @@ > +; WARNING: do not edit! >=20 > +; Generated from openssl/crypto/x86_64cpuid.pl >=20 > +; >=20 > +; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. >=20 > +; >=20 > +; Licensed under the OpenSSL license (the "License"). You may not use >=20 > +; this file except in compliance with the License. You can obtain a cop= y >=20 > +; in the file LICENSE in the source distribution or at >=20 > +; https://www.openssl.org/source/license.html >=20 > + >=20 > +default rel >=20 > +%define XMMWORD >=20 > +%define YMMWORD >=20 > +%define ZMMWORD >=20 > +EXTERN OPENSSL_cpuid_setup >=20 > + >=20 > +section .CRT$XCU rdata align=3D8 >=20 > + DQ OPENSSL_cpuid_setup >=20 > + >=20 > + >=20 > +common OPENSSL_ia32cap_P 16 >=20 > + >=20 > +section .text code align=3D64 >=20 > + >=20 > + >=20 > +global OPENSSL_atomic_add >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_atomic_add: >=20 > + >=20 > + mov eax,DWORD[rcx] >=20 > +$L$spin: lea r8,[rax*1+rdx] >=20 > +DB 0xf0 >=20 > + cmpxchg DWORD[rcx],r8d >=20 > + jne NEAR $L$spin >=20 > + mov eax,r8d >=20 > +DB 0x48,0x98 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +global OPENSSL_rdtsc >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_rdtsc: >=20 > + >=20 > + rdtsc >=20 > + shl rdx,32 >=20 > + or rax,rdx >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +global OPENSSL_ia32_cpuid >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_ia32_cpuid: >=20 > + mov QWORD[8+rsp],rdi ;WIN64 prologue >=20 > + mov QWORD[16+rsp],rsi >=20 > + mov rax,rsp >=20 > +$L$SEH_begin_OPENSSL_ia32_cpuid: >=20 > + mov rdi,rcx >=20 > + >=20 > + >=20 > + >=20 > + mov r8,rbx >=20 > + >=20 > + >=20 > + xor eax,eax >=20 > + mov QWORD[8+rdi],rax >=20 > + cpuid >=20 > + mov r11d,eax >=20 > + >=20 > + xor eax,eax >=20 > + cmp ebx,0x756e6547 >=20 > + setne al >=20 > + mov r9d,eax >=20 > + cmp edx,0x49656e69 >=20 > + setne al >=20 > + or r9d,eax >=20 > + cmp ecx,0x6c65746e >=20 > + setne al >=20 > + or r9d,eax >=20 > + jz NEAR $L$intel >=20 > + >=20 > + cmp ebx,0x68747541 >=20 > + setne al >=20 > + mov r10d,eax >=20 > + cmp edx,0x69746E65 >=20 > + setne al >=20 > + or r10d,eax >=20 > + cmp ecx,0x444D4163 >=20 > + setne al >=20 > + or r10d,eax >=20 > + jnz NEAR $L$intel >=20 > + >=20 > + >=20 > + mov eax,0x80000000 >=20 > + cpuid >=20 > + cmp eax,0x80000001 >=20 > + jb NEAR $L$intel >=20 > + mov r10d,eax >=20 > + mov eax,0x80000001 >=20 > + cpuid >=20 > + or r9d,ecx >=20 > + and r9d,0x00000801 >=20 > + >=20 > + cmp r10d,0x80000008 >=20 > + jb NEAR $L$intel >=20 > + >=20 > + mov eax,0x80000008 >=20 > + cpuid >=20 > + movzx r10,cl >=20 > + inc r10 >=20 > + >=20 > + mov eax,1 >=20 > + cpuid >=20 > + bt edx,28 >=20 > + jnc NEAR $L$generic >=20 > + shr ebx,16 >=20 > + cmp bl,r10b >=20 > + ja NEAR $L$generic >=20 > + and edx,0xefffffff >=20 > + jmp NEAR $L$generic >=20 > + >=20 > +$L$intel: >=20 > + cmp r11d,4 >=20 > + mov r10d,-1 >=20 > + jb NEAR $L$nocacheinfo >=20 > + >=20 > + mov eax,4 >=20 > + mov ecx,0 >=20 > + cpuid >=20 > + mov r10d,eax >=20 > + shr r10d,14 >=20 > + and r10d,0xfff >=20 > + >=20 > +$L$nocacheinfo: >=20 > + mov eax,1 >=20 > + cpuid >=20 > + movd xmm0,eax >=20 > + and edx,0xbfefffff >=20 > + cmp r9d,0 >=20 > + jne NEAR $L$notintel >=20 > + or edx,0x40000000 >=20 > + and ah,15 >=20 > + cmp ah,15 >=20 > + jne NEAR $L$notP4 >=20 > + or edx,0x00100000 >=20 > +$L$notP4: >=20 > + cmp ah,6 >=20 > + jne NEAR $L$notintel >=20 > + and eax,0x0fff0ff0 >=20 > + cmp eax,0x00050670 >=20 > + je NEAR $L$knights >=20 > + cmp eax,0x00080650 >=20 > + jne NEAR $L$notintel >=20 > +$L$knights: >=20 > + and ecx,0xfbffffff >=20 > + >=20 > +$L$notintel: >=20 > + bt edx,28 >=20 > + jnc NEAR $L$generic >=20 > + and edx,0xefffffff >=20 > + cmp r10d,0 >=20 > + je NEAR $L$generic >=20 > + >=20 > + or edx,0x10000000 >=20 > + shr ebx,16 >=20 > + cmp bl,1 >=20 > + ja NEAR $L$generic >=20 > + and edx,0xefffffff >=20 > +$L$generic: >=20 > + and r9d,0x00000800 >=20 > + and ecx,0xfffff7ff >=20 > + or r9d,ecx >=20 > + >=20 > + mov r10d,edx >=20 > + >=20 > + cmp r11d,7 >=20 > + jb NEAR $L$no_extended_info >=20 > + mov eax,7 >=20 > + xor ecx,ecx >=20 > + cpuid >=20 > + bt r9d,26 >=20 > + jc NEAR $L$notknights >=20 > + and ebx,0xfff7ffff >=20 > +$L$notknights: >=20 > + movd eax,xmm0 >=20 > + and eax,0x0fff0ff0 >=20 > + cmp eax,0x00050650 >=20 > + jne NEAR $L$notskylakex >=20 > + and ebx,0xfffeffff >=20 > + >=20 > +$L$notskylakex: >=20 > + mov DWORD[8+rdi],ebx >=20 > + mov DWORD[12+rdi],ecx >=20 > +$L$no_extended_info: >=20 > + >=20 > + bt r9d,27 >=20 > + jnc NEAR $L$clear_avx >=20 > + xor ecx,ecx >=20 > +DB 0x0f,0x01,0xd0 >=20 > + and eax,0xe6 >=20 > + cmp eax,0xe6 >=20 > + je NEAR $L$done >=20 > + and DWORD[8+rdi],0x3fdeffff >=20 > + >=20 > + >=20 > + >=20 > + >=20 > + and eax,6 >=20 > + cmp eax,6 >=20 > + je NEAR $L$done >=20 > +$L$clear_avx: >=20 > + mov eax,0xefffe7ff >=20 > + and r9d,eax >=20 > + mov eax,0x3fdeffdf >=20 > + and DWORD[8+rdi],eax >=20 > +$L$done: >=20 > + shl r9,32 >=20 > + mov eax,r10d >=20 > + mov rbx,r8 >=20 > + >=20 > + or rax,r9 >=20 > + mov rdi,QWORD[8+rsp] ;WIN64 epilogue >=20 > + mov rsi,QWORD[16+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +$L$SEH_end_OPENSSL_ia32_cpuid: >=20 > + >=20 > +global OPENSSL_cleanse >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_cleanse: >=20 > + >=20 > + xor rax,rax >=20 > + cmp rdx,15 >=20 > + jae NEAR $L$ot >=20 > + cmp rdx,0 >=20 > + je NEAR $L$ret >=20 > +$L$ittle: >=20 > + mov BYTE[rcx],al >=20 > + sub rdx,1 >=20 > + lea rcx,[1+rcx] >=20 > + jnz NEAR $L$ittle >=20 > +$L$ret: >=20 > + DB 0F3h,0C3h ;repret >=20 > +ALIGN 16 >=20 > +$L$ot: >=20 > + test rcx,7 >=20 > + jz NEAR $L$aligned >=20 > + mov BYTE[rcx],al >=20 > + lea rdx,[((-1))+rdx] >=20 > + lea rcx,[1+rcx] >=20 > + jmp NEAR $L$ot >=20 > +$L$aligned: >=20 > + mov QWORD[rcx],rax >=20 > + lea rdx,[((-8))+rdx] >=20 > + test rdx,-8 >=20 > + lea rcx,[8+rcx] >=20 > + jnz NEAR $L$aligned >=20 > + cmp rdx,0 >=20 > + jne NEAR $L$ittle >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +global CRYPTO_memcmp >=20 > + >=20 > +ALIGN 16 >=20 > +CRYPTO_memcmp: >=20 > + >=20 > + xor rax,rax >=20 > + xor r10,r10 >=20 > + cmp r8,0 >=20 > + je NEAR $L$no_data >=20 > + cmp r8,16 >=20 > + jne NEAR $L$oop_cmp >=20 > + mov r10,QWORD[rcx] >=20 > + mov r11,QWORD[8+rcx] >=20 > + mov r8,1 >=20 > + xor r10,QWORD[rdx] >=20 > + xor r11,QWORD[8+rdx] >=20 > + or r10,r11 >=20 > + cmovnz rax,r8 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +ALIGN 16 >=20 > +$L$oop_cmp: >=20 > + mov r10b,BYTE[rcx] >=20 > + lea rcx,[1+rcx] >=20 > + xor r10b,BYTE[rdx] >=20 > + lea rdx,[1+rdx] >=20 > + or al,r10b >=20 > + dec r8 >=20 > + jnz NEAR $L$oop_cmp >=20 > + neg rax >=20 > + shr rax,63 >=20 > +$L$no_data: >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global OPENSSL_wipe_cpu >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_wipe_cpu: >=20 > + pxor xmm0,xmm0 >=20 > + pxor xmm1,xmm1 >=20 > + pxor xmm2,xmm2 >=20 > + pxor xmm3,xmm3 >=20 > + pxor xmm4,xmm4 >=20 > + pxor xmm5,xmm5 >=20 > + xor rcx,rcx >=20 > + xor rdx,rdx >=20 > + xor r8,r8 >=20 > + xor r9,r9 >=20 > + xor r10,r10 >=20 > + xor r11,r11 >=20 > + lea rax,[8+rsp] >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > +global OPENSSL_instrument_bus >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_instrument_bus: >=20 > + >=20 > + mov r10,rcx >=20 > + mov rcx,rdx >=20 > + mov r11,rdx >=20 > + >=20 > + rdtsc >=20 > + mov r8d,eax >=20 > + mov r9d,0 >=20 > + clflush [r10] >=20 > +DB 0xf0 >=20 > + add DWORD[r10],r9d >=20 > + jmp NEAR $L$oop >=20 > +ALIGN 16 >=20 > +$L$oop: rdtsc >=20 > + mov edx,eax >=20 > + sub eax,r8d >=20 > + mov r8d,edx >=20 > + mov r9d,eax >=20 > + clflush [r10] >=20 > +DB 0xf0 >=20 > + add DWORD[r10],eax >=20 > + lea r10,[4+r10] >=20 > + sub rcx,1 >=20 > + jnz NEAR $L$oop >=20 > + >=20 > + mov rax,r11 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > + >=20 > +global OPENSSL_instrument_bus2 >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_instrument_bus2: >=20 > + >=20 > + mov r10,rcx >=20 > + mov rcx,rdx >=20 > + mov r11,r8 >=20 > + mov QWORD[8+rsp],rcx >=20 > + >=20 > + rdtsc >=20 > + mov r8d,eax >=20 > + mov r9d,0 >=20 > + >=20 > + clflush [r10] >=20 > +DB 0xf0 >=20 > + add DWORD[r10],r9d >=20 > + >=20 > + rdtsc >=20 > + mov edx,eax >=20 > + sub eax,r8d >=20 > + mov r8d,edx >=20 > + mov r9d,eax >=20 > +$L$oop2: >=20 > + clflush [r10] >=20 > +DB 0xf0 >=20 > + add DWORD[r10],eax >=20 > + >=20 > + sub r11,1 >=20 > + jz NEAR $L$done2 >=20 > + >=20 > + rdtsc >=20 > + mov edx,eax >=20 > + sub eax,r8d >=20 > + mov r8d,edx >=20 > + cmp eax,r9d >=20 > + mov r9d,eax >=20 > + mov edx,0 >=20 > + setne dl >=20 > + sub rcx,rdx >=20 > + lea r10,[rdx*4+r10] >=20 > + jnz NEAR $L$oop2 >=20 > + >=20 > +$L$done2: >=20 > + mov rax,QWORD[8+rsp] >=20 > + sub rax,rcx >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global OPENSSL_ia32_rdrand_bytes >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_ia32_rdrand_bytes: >=20 > + >=20 > + xor rax,rax >=20 > + cmp rdx,0 >=20 > + je NEAR $L$done_rdrand_bytes >=20 > + >=20 > + mov r11,8 >=20 > +$L$oop_rdrand_bytes: >=20 > +DB 73,15,199,242 >=20 > + jc NEAR $L$break_rdrand_bytes >=20 > + dec r11 >=20 > + jnz NEAR $L$oop_rdrand_bytes >=20 > + jmp NEAR $L$done_rdrand_bytes >=20 > + >=20 > +ALIGN 16 >=20 > +$L$break_rdrand_bytes: >=20 > + cmp rdx,8 >=20 > + jb NEAR $L$tail_rdrand_bytes >=20 > + mov QWORD[rcx],r10 >=20 > + lea rcx,[8+rcx] >=20 > + add rax,8 >=20 > + sub rdx,8 >=20 > + jz NEAR $L$done_rdrand_bytes >=20 > + mov r11,8 >=20 > + jmp NEAR $L$oop_rdrand_bytes >=20 > + >=20 > +ALIGN 16 >=20 > +$L$tail_rdrand_bytes: >=20 > + mov BYTE[rcx],r10b >=20 > + lea rcx,[1+rcx] >=20 > + inc rax >=20 > + shr r10,8 >=20 > + dec rdx >=20 > + jnz NEAR $L$tail_rdrand_bytes >=20 > + >=20 > +$L$done_rdrand_bytes: >=20 > + xor r10,r10 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > +global OPENSSL_ia32_rdseed_bytes >=20 > + >=20 > +ALIGN 16 >=20 > +OPENSSL_ia32_rdseed_bytes: >=20 > + >=20 > + xor rax,rax >=20 > + cmp rdx,0 >=20 > + je NEAR $L$done_rdseed_bytes >=20 > + >=20 > + mov r11,8 >=20 > +$L$oop_rdseed_bytes: >=20 > +DB 73,15,199,250 >=20 > + jc NEAR $L$break_rdseed_bytes >=20 > + dec r11 >=20 > + jnz NEAR $L$oop_rdseed_bytes >=20 > + jmp NEAR $L$done_rdseed_bytes >=20 > + >=20 > +ALIGN 16 >=20 > +$L$break_rdseed_bytes: >=20 > + cmp rdx,8 >=20 > + jb NEAR $L$tail_rdseed_bytes >=20 > + mov QWORD[rcx],r10 >=20 > + lea rcx,[8+rcx] >=20 > + add rax,8 >=20 > + sub rdx,8 >=20 > + jz NEAR $L$done_rdseed_bytes >=20 > + mov r11,8 >=20 > + jmp NEAR $L$oop_rdseed_bytes >=20 > + >=20 > +ALIGN 16 >=20 > +$L$tail_rdseed_bytes: >=20 > + mov BYTE[rcx],r10b >=20 > + lea rcx,[1+rcx] >=20 > + inc rax >=20 > + shr r10,8 >=20 > + dec rdx >=20 > + jnz NEAR $L$tail_rdseed_bytes >=20 > + >=20 > +$L$done_rdseed_bytes: >=20 > + xor r10,r10 >=20 > + DB 0F3h,0C3h ;repret >=20 > + >=20 > + >=20 > -- > 2.28.0.windows.1