14000578d:	89 df                	mov    %ebx,%edi
14000578f:	31 d6                	xor    %edx,%esi
140005791:	c5 21 fe ce          	vpaddd %xmm6,%xmm11,%xmm9
140005795:	c4 41 79 6f 5e 20    	vmovdqa 0x20(%r14),%xmm11
14000579b:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
14000579f:	01 f0                	add    %esi,%eax
1400057a1:	c4 c1 41 ef f8       	vpxor  %xmm8,%xmm7,%xmm7
1400057a6:	31 cf                	xor    %ecx,%edi
1400057a8:	31 d1                	xor    %edx,%ecx
1400057aa:	01 d8                	add    %ebx,%eax
1400057ac:	03 6c 24 34          	add    0x34(%rsp),%ebp
1400057b0:	c5 b9 72 d7 1e       	vpsrld $0x1e,%xmm7,%xmm8
1400057b5:	c5 79 7f 4c 24 20    	vmovdqa %xmm9,0x20(%rsp)
1400057bb:	21 cf                	and    %ecx,%edi
1400057bd:	31 d1                	xor    %edx,%ecx
1400057bf:	0f ac db 07          	shrd   $0x7,%ebx,%ebx
1400057c3:	89 c6                	mov    %eax,%esi
1400057c5:	c5 c1 72 f7 02       	vpslld $0x2,%xmm7,%xmm7
1400057ca:	31 cf                	xor    %ecx,%edi
1400057cc:	0f a4 c0 05          	shld   $0x5,%eax,%eax
1400057d0:	01 fd                	add    %edi,%ebp
1400057d2:	31 de                	xor    %ebx,%esi
1400057d4:	31 cb                	xor    %ecx,%ebx
1400057d6:	01 c5                	add    %eax,%ebp
1400057d8:	03 54 24 38          	add    0x38(%rsp),%edx
1400057dc:	21 de                	and    %ebx,%esi
1400057de:	c4 c1 41 eb f8       	vpor   %xmm8,%xmm7,%xmm7
1400057e3:	31 cb                	xor    %ecx,%ebx
1400057e5:	0f ac c0 07          	shrd   $0x7,%eax,%eax
1400057e9:	89 ef                	mov    %ebp,%edi
1400057eb:	31 de                	xor    %ebx,%esi
1400057ed:	0f a4 ed 05          	shld   $0x5,%ebp,%ebp
1400057f1:	01 f2                	add    %esi,%edx
1400057f3:	31 c7                	xor    %eax,%edi
1400057f5:	31 d8                	xor    %ebx,%eax
1400057f7:	01 ea                	add    %ebp,%edx
1400057f9:	03 4c 24 3c          	add    0x3c(%rsp),%ecx
1400057fd:	21 c7                	and    %eax,%edi
1400057ff:	31 d8                	xor    %ebx,%eax
140005801:	0f ac ed 07          	shrd   $0x7,%ebp,%ebp
140005805:	89 d6                	mov    %edx,%esi
140005807:	31 c7                	xor    %eax,%edi
140005809:	0f a4 d2 05          	shld   $0x5,%edx,%edx
14000580d:	01 f9                	add    %edi,%ecx
14000580f:	31 ee                	xor    %ebp,%esi
140005811:	31 c5                	xor    %eax,%ebp
140005813:	01 d1                	add    %edx,%ecx
140005815:	c4 63 41 0f c6 08    	vpalignr $0x8,%xmm6,%xmm7,%xmm8
14000581b:	c5 f9 ef c4          	vpxor  %xmm4,%xmm0,%xmm0
14000581f:	03 1c 24             	add    (%rsp),%ebx
140005822:	21 ee                	and    %ebp,%esi
140005824:	31 c5                	xor    %eax,%ebp
140005826:	0f ac d2 07          	shrd   $0x7,%edx,%edx
14000582a:	c5 f9 ef c1          	vpxor  %xmm1,%xmm0,%xmm0
14000582e:	89 cf                	mov    %ecx,%edi
140005830:	31 ee                	xor    %ebp,%esi
140005832:	c5 21 fe cf          	vpaddd %xmm7,%xmm11,%xmm9
140005836:	0f a4 c9 05          	shld   $0x5,%ecx,%ecx
14000583a:	01 f3                	add    %esi,%ebx
14000583c:	c4 c1 79 ef c0       	vpxor  %xmm8,%xmm0,%xmm0
140005841:	31 d7                	xor    %edx,%edi
140005843:	31 ea                	xor    %ebp,%edx
140005845:	01 cb                	add    %ecx,%ebx
140005847:	03 44 24 04          	add    0x4(%rsp),%eax
14000584b:	c5 b9 72 d0 1e       	vpsrld $0x1e,%xmm0,%xmm8
140005850:	c5 79 7f 4c 24 30    	vmovdqa %xmm9,0x30(%rsp)
140005856:	21 d7                	and    %edx,%edi
140005858:	31 ea                	xor    %ebp,%edx
14000585a:	0f ac c9 07          	shrd   $0x7,%ecx,%ecx
14000585e:	89 de                	mov    %ebx,%esi
140005860:	c5 f9 72 f0 02       	vpslld $0x2,%xmm0,%xmm0
140005865:	31 d7                	xor    %edx,%edi
140005867:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
14000586b:	01 f8                	add    %edi,%eax
14000586d:	31 ce                	xor    %ecx,%esi
14000586f:	31 d1                	xor    %edx,%ecx
140005871:	01 d8                	add    %ebx,%eax
140005873:	03 6c 24 08          	add    0x8(%rsp),%ebp
140005877:	21 ce                	and    %ecx,%esi
140005879:	c4 c1 79 eb c0       	vpor   %xmm8,%xmm0,%xmm0
14000587e:	31 d1                	xor    %edx,%ecx
140005880:	0f ac db 07          	shrd   $0x7,%ebx,%ebx
140005884:	89 c7                	mov    %eax,%edi
140005886:	31 ce                	xor    %ecx,%esi
140005888:	0f a4 c0 05          	shld   $0x5,%eax,%eax
14000588c:	01 f5                	add    %esi,%ebp
14000588e:	31 df                	xor    %ebx,%edi
140005890:	31 cb                	xor    %ecx,%ebx
140005892:	01 c5                	add    %eax,%ebp
140005894:	03 54 24 0c          	add    0xc(%rsp),%edx
140005898:	21 df                	and    %ebx,%edi
14000589a:	31 cb                	xor    %ecx,%ebx
14000589c:	0f ac c0 07          	shrd   $0x7,%eax,%eax
1400058a0:	89 ee                	mov    %ebp,%esi
1400058a2:	31 df                	xor    %ebx,%edi
1400058a4:	0f a4 ed 05          	shld   $0x5,%ebp,%ebp
1400058a8:	01 fa                	add    %edi,%edx
1400058aa:	31 c6                	xor    %eax,%esi
1400058ac:	31 d8                	xor    %ebx,%eax
1400058ae:	01 ea                	add    %ebp,%edx
1400058b0:	c4 63 79 0f c7 08    	vpalignr $0x8,%xmm7,%xmm0,%xmm8
1400058b6:	c5 f1 ef cd          	vpxor  %xmm5,%xmm1,%xmm1
1400058ba:	03 4c 24 10          	add    0x10(%rsp),%ecx
1400058be:	21 c6                	and    %eax,%esi
1400058c0:	31 d8                	xor    %ebx,%eax
1400058c2:	0f ac ed 07          	shrd   $0x7,%ebp,%ebp
1400058c6:	c5 f1 ef ca          	vpxor  %xmm2,%xmm1,%xmm1
1400058ca:	89 d7                	mov    %edx,%edi
1400058cc:	31 c6                	xor    %eax,%esi
1400058ce:	c5 21 fe c8          	vpaddd %xmm0,%xmm11,%xmm9
1400058d2:	0f a4 d2 05          	shld   $0x5,%edx,%edx
1400058d6:	01 f1                	add    %esi,%ecx
1400058d8:	c4 c1 71 ef c8       	vpxor  %xmm8,%xmm1,%xmm1
1400058dd:	31 ef                	xor    %ebp,%edi
1400058df:	31 c5                	xor    %eax,%ebp
1400058e1:	01 d1                	add    %edx,%ecx
1400058e3:	03 5c 24 14          	add    0x14(%rsp),%ebx
1400058e7:	c5 b9 72 d1 1e       	vpsrld $0x1e,%xmm1,%xmm8
1400058ec:	c5 79 7f 0c 24       	vmovdqa %xmm9,(%rsp)
1400058f1:	21 ef                	and    %ebp,%edi
1400058f3:	31 c5                	xor    %eax,%ebp
1400058f5:	0f ac d2 07          	shrd   $0x7,%edx,%edx
1400058f9:	89 ce                	mov    %ecx,%esi
1400058fb:	c5 f1 72 f1 02       	vpslld $0x2,%xmm1,%xmm1
140005900:	31 ef                	xor    %ebp,%edi
140005902:	0f a4 c9 05          	shld   $0x5,%ecx,%ecx
140005906:	01 fb                	add    %edi,%ebx
140005908:	31 d6                	xor    %edx,%esi
14000590a:	31 ea                	xor    %ebp,%edx
14000590c:	01 cb                	add    %ecx,%ebx
14000590e:	03 44 24 18          	add    0x18(%rsp),%eax
140005912:	21 d6                	and    %edx,%esi
140005914:	c4 c1 71 eb c8       	vpor   %xmm8,%xmm1,%xmm1
140005919:	31 ea                	xor    %ebp,%edx
14000591b:	0f ac c9 07          	shrd   $0x7,%ecx,%ecx
14000591f:	89 df                	mov    %ebx,%edi
140005921:	31 d6                	xor    %edx,%esi
140005923:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
140005927:	01 f0                	add    %esi,%eax
140005929:	31 cf                	xor    %ecx,%edi
14000592b:	31 d1                	xor    %edx,%ecx
14000592d:	01 d8                	add    %ebx,%eax
14000592f:	03 6c 24 1c          	add    0x1c(%rsp),%ebp
140005933:	21 cf                	and    %ecx,%edi
140005935:	31 d1                	xor    %edx,%ecx
140005937:	0f ac db 07          	shrd   $0x7,%ebx,%ebx
14000593b:	89 c6                	mov    %eax,%esi
14000593d:	31 cf                	xor    %ecx,%edi
14000593f:	0f a4 c0 05          	shld   $0x5,%eax,%eax
140005943:	01 fd                	add    %edi,%ebp
140005945:	31 de                	xor    %ebx,%esi
140005947:	31 cb                	xor    %ecx,%ebx
140005949:	01 c5                	add    %eax,%ebp
14000594b:	c4 63 71 0f c0 08    	vpalignr $0x8,%xmm0,%xmm1,%xmm8
140005951:	c5 e9 ef d6          	vpxor  %xmm6,%xmm2,%xmm2
140005955:	03 54 24 20          	add    0x20(%rsp),%edx
140005959:	21 de                	and    %ebx,%esi
14000595b:	31 cb                	xor    %ecx,%ebx
14000595d:	0f ac c0 07          	shrd   $0x7,%eax,%eax
140005961:	c5 e9 ef d3          	vpxor  %xmm3,%xmm2,%xmm2
140005965:	89 ef                	mov    %ebp,%edi
140005967:	31 de                	xor    %ebx,%esi
140005969:	c5 21 fe c9          	vpaddd %xmm1,%xmm11,%xmm9
14000596d:	0f a4 ed 05          	shld   $0x5,%ebp,%ebp
140005971:	01 f2                	add    %esi,%edx
140005973:	c4 c1 69 ef d0       	vpxor  %xmm8,%xmm2,%xmm2
140005978:	31 c7                	xor    %eax,%edi
14000597a:	31 d8                	xor    %ebx,%eax
14000597c:	01 ea                	add    %ebp,%edx
14000597e:	03 4c 24 24          	add    0x24(%rsp),%ecx
140005982:	c5 b9 72 d2 1e       	vpsrld $0x1e,%xmm2,%xmm8
140005987:	c5 79 7f 4c 24 10    	vmovdqa %xmm9,0x10(%rsp)
14000598d:	21 c7                	and    %eax,%edi
14000598f:	31 d8                	xor    %ebx,%eax
140005991:	0f ac ed 07          	shrd   $0x7,%ebp,%ebp
140005995:	89 d6                	mov    %edx,%esi
140005997:	c5 e9 72 f2 02       	vpslld $0x2,%xmm2,%xmm2
14000599c:	31 c7                	xor    %eax,%edi
14000599e:	0f a4 d2 05          	shld   $0x5,%edx,%edx
1400059a2:	01 f9                	add    %edi,%ecx
1400059a4:	31 ee                	xor    %ebp,%esi
1400059a6:	31 c5                	xor    %eax,%ebp
1400059a8:	01 d1                	add    %edx,%ecx
1400059aa:	03 5c 24 28          	add    0x28(%rsp),%ebx
1400059ae:	21 ee                	and    %ebp,%esi
1400059b0:	c4 c1 69 eb d0       	vpor   %xmm8,%xmm2,%xmm2
1400059b5:	31 c5                	xor    %eax,%ebp
1400059b7:	0f ac d2 07          	shrd   $0x7,%edx,%edx
1400059bb:	89 cf                	mov    %ecx,%edi
1400059bd:	31 ee                	xor    %ebp,%esi
1400059bf:	0f a4 c9 05          	shld   $0x5,%ecx,%ecx
1400059c3:	01 f3                	add    %esi,%ebx
1400059c5:	31 d7                	xor    %edx,%edi
1400059c7:	31 ea                	xor    %ebp,%edx
1400059c9:	01 cb                	add    %ecx,%ebx
1400059cb:	03 44 24 2c          	add    0x2c(%rsp),%eax
1400059cf:	21 d7                	and    %edx,%edi
1400059d1:	31 ea                	xor    %ebp,%edx
1400059d3:	0f ac c9 07          	shrd   $0x7,%ecx,%ecx
1400059d7:	89 de                	mov    %ebx,%esi
1400059d9:	31 d7                	xor    %edx,%edi
1400059db:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
1400059df:	01 f8                	add    %edi,%eax
1400059e1:	31 d6                	xor    %edx,%esi
1400059e3:	01 d8                	add    %ebx,%eax
1400059e5:	c4 63 69 0f c1 08    	vpalignr $0x8,%xmm1,%xmm2,%xmm8
1400059eb:	c5 e1 ef df          	vpxor  %xmm7,%xmm3,%xmm3
1400059ef:	03 6c 24 30          	add    0x30(%rsp),%ebp
1400059f3:	31 ce                	xor    %ecx,%esi
1400059f5:	89 c7                	mov    %eax,%edi
1400059f7:	0f a4 c0 05          	shld   $0x5,%eax,%eax
1400059fb:	c5 e1 ef dc          	vpxor  %xmm4,%xmm3,%xmm3
1400059ff:	01 f5                	add    %esi,%ebp
140005a01:	31 cf                	xor    %ecx,%edi
140005a03:	c5 21 fe ca          	vpaddd %xmm2,%xmm11,%xmm9
140005a07:	0f ac db 07          	shrd   $0x7,%ebx,%ebx
140005a0b:	01 c5                	add    %eax,%ebp
140005a0d:	c4 c1 61 ef d8       	vpxor  %xmm8,%xmm3,%xmm3
140005a12:	03 54 24 34          	add    0x34(%rsp),%edx
140005a16:	31 df                	xor    %ebx,%edi
140005a18:	89 ee                	mov    %ebp,%esi
140005a1a:	0f a4 ed 05          	shld   $0x5,%ebp,%ebp
140005a1e:	c5 b9 72 d3 1e       	vpsrld $0x1e,%xmm3,%xmm8
140005a23:	c5 79 7f 4c 24 20    	vmovdqa %xmm9,0x20(%rsp)
140005a29:	01 fa                	add    %edi,%edx
140005a2b:	31 de                	xor    %ebx,%esi
140005a2d:	0f ac c0 07          	shrd   $0x7,%eax,%eax
140005a31:	01 ea                	add    %ebp,%edx
140005a33:	c5 e1 72 f3 02       	vpslld $0x2,%xmm3,%xmm3
140005a38:	03 4c 24 38          	add    0x38(%rsp),%ecx
140005a3c:	31 c6                	xor    %eax,%esi
140005a3e:	89 d7                	mov    %edx,%edi
140005a40:	0f a4 d2 05          	shld   $0x5,%edx,%edx
140005a44:	01 f1                	add    %esi,%ecx
140005a46:	31 c7                	xor    %eax,%edi
140005a48:	0f ac ed 07          	shrd   $0x7,%ebp,%ebp
140005a4c:	01 d1                	add    %edx,%ecx
140005a4e:	c4 c1 61 eb d8       	vpor   %xmm8,%xmm3,%xmm3
140005a53:	03 5c 24 3c          	add    0x3c(%rsp),%ebx
140005a57:	31 ef                	xor    %ebp,%edi
140005a59:	89 ce                	mov    %ecx,%esi
140005a5b:	0f a4 c9 05          	shld   $0x5,%ecx,%ecx
140005a5f:	01 fb                	add    %edi,%ebx
140005a61:	31 ee                	xor    %ebp,%esi
140005a63:	0f ac d2 07          	shrd   $0x7,%edx,%edx
140005a67:	01 cb                	add    %ecx,%ebx
140005a69:	03 04 24             	add    (%rsp),%eax
140005a6c:	c5 21 fe cb          	vpaddd %xmm3,%xmm11,%xmm9
140005a70:	31 d6                	xor    %edx,%esi
140005a72:	89 df                	mov    %ebx,%edi
140005a74:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
140005a78:	01 f0                	add    %esi,%eax
140005a7a:	c5 79 7f 4c 24 30    	vmovdqa %xmm9,0x30(%rsp)
140005a80:	31 d7                	xor    %edx,%edi
140005a82:	0f ac c9 07          	shrd   $0x7,%ecx,%ecx
140005a86:	01 d8                	add    %ebx,%eax
140005a88:	03 6c 24 04          	add    0x4(%rsp),%ebp
140005a8c:	31 cf                	xor    %ecx,%edi
140005a8e:	89 c6                	mov    %eax,%esi
140005a90:	0f a4 c0 05          	shld   $0x5,%eax,%eax
140005a94:	01 fd                	add    %edi,%ebp
140005a96:	31 ce                	xor    %ecx,%esi
140005a98:	0f ac db 07          	shrd   $0x7,%ebx,%ebx
140005a9c:	01 c5                	add    %eax,%ebp
140005a9e:	03 54 24 08          	add    0x8(%rsp),%edx
140005aa2:	31 de                	xor    %ebx,%esi
140005aa4:	89 ef                	mov    %ebp,%edi
140005aa6:	0f a4 ed 05          	shld   $0x5,%ebp,%ebp
140005aaa:	01 f2                	add    %esi,%edx
140005aac:	31 df                	xor    %ebx,%edi
140005aae:	0f ac c0 07          	shrd   $0x7,%eax,%eax
140005ab2:	01 ea                	add    %ebp,%edx
140005ab4:	03 4c 24 0c          	add    0xc(%rsp),%ecx
140005ab8:	31 c7                	xor    %eax,%edi
140005aba:	89 d6                	mov    %edx,%esi
140005abc:	0f a4 d2 05          	shld   $0x5,%edx,%edx
140005ac0:	01 f9                	add    %edi,%ecx
140005ac2:	31 c6                	xor    %eax,%esi
140005ac4:	0f ac ed 07          	shrd   $0x7,%ebp,%ebp
140005ac8:	01 d1                	add    %edx,%ecx
140005aca:	4d 39 d1             	cmp    %r10,%r9
140005acd:	0f 84 9d 01 00 00    	je     0x140005c70
140005ad3:	c4 c1 79 6f 76 40    	vmovdqa 0x40(%r14),%xmm6
140005ad9:	c4 41 79 6f 5e c0    	vmovdqa -0x40(%r14),%xmm11
140005adf:	c4 c1 7a 6f 01       	vmovdqu (%r9),%xmm0
140005ae4:	c4 c1 7a 6f 49 10    	vmovdqu 0x10(%r9),%xmm1
140005aea:	c4 c1 7a 6f 51 20    	vmovdqu 0x20(%r9),%xmm2
140005af0:	c4 c1 7a 6f 59 30    	vmovdqu 0x30(%r9),%xmm3
140005af6:	c4 e2 79 00 c6       	vpshufb %xmm6,%xmm0,%xmm0
140005afb:	49 83 c1 40          	add    $0x40,%r9
140005aff:	03 5c 24 10          	add    0x10(%rsp),%ebx
140005b03:	31 ee                	xor    %ebp,%esi
140005b05:	c4 e2 71 00 ce       	vpshufb %xmm6,%xmm1,%xmm1
140005b0a:	89 cf                	mov    %ecx,%edi
140005b0c:	0f a4 c9 05          	shld   $0x5,%ecx,%ecx
140005b10:	c4 c1 79 fe e3       	vpaddd %xmm11,%xmm0,%xmm4
140005b15:	01 f3                	add    %esi,%ebx
140005b17:	31 ef                	xor    %ebp,%edi
140005b19:	0f ac d2 07          	shrd   $0x7,%edx,%edx
140005b1d:	01 cb                	add    %ecx,%ebx
140005b1f:	c5 f9 7f 24 24       	vmovdqa %xmm4,(%rsp)
140005b24:	03 44 24 14          	add    0x14(%rsp),%eax
140005b28:	31 d7                	xor    %edx,%edi
140005b2a:	89 de                	mov    %ebx,%esi
140005b2c:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
140005b30:	01 f8                	add    %edi,%eax
140005b32:	31 d6                	xor    %edx,%esi
140005b34:	0f ac c9 07          	shrd   $0x7,%ecx,%ecx
140005b38:	01 d8                	add    %ebx,%eax
140005b3a:	03 6c 24 18          	add    0x18(%rsp),%ebp
140005b3e:	31 ce                	xor    %ecx,%esi
140005b40:	89 c7                	mov    %eax,%edi
140005b42:	0f a4 c0 05          	shld   $0x5,%eax,%eax
140005b46:	01 f5                	add    %esi,%ebp
140005b48:	31 cf                	xor    %ecx,%edi
140005b4a:	0f ac db 07          	shrd   $0x7,%ebx,%ebx
140005b4e:	01 c5                	add    %eax,%ebp
140005b50:	03 54 24 1c          	add    0x1c(%rsp),%edx
140005b54:	31 df                	xor    %ebx,%edi
140005b56:	89 ee                	mov    %ebp,%esi
140005b58:	0f a4 ed 05          	shld   $0x5,%ebp,%ebp
140005b5c:	01 fa                	add    %edi,%edx
140005b5e:	31 de                	xor    %ebx,%esi
140005b60:	0f ac c0 07          	shrd   $0x7,%eax,%eax
140005b64:	01 ea                	add    %ebp,%edx
140005b66:	03 4c 24 20          	add    0x20(%rsp),%ecx
140005b6a:	31 c6                	xor    %eax,%esi
140005b6c:	c4 e2 69 00 d6       	vpshufb %xmm6,%xmm2,%xmm2
140005b71:	89 d7                	mov    %edx,%edi
140005b73:	0f a4 d2 05          	shld   $0x5,%edx,%edx
140005b77:	c4 c1 71 fe eb       	vpaddd %xmm11,%xmm1,%xmm5
140005b7c:	01 f1                	add    %esi,%ecx
140005b7e:	31 c7                	xor    %eax,%edi
140005b80:	0f ac ed 07          	shrd   $0x7,%ebp,%ebp
140005b84:	01 d1                	add    %edx,%ecx
140005b86:	c5 f9 7f 6c 24 10    	vmovdqa %xmm5,0x10(%rsp)
140005b8c:	03 5c 24 24          	add    0x24(%rsp),%ebx
140005b90:	31 ef                	xor    %ebp,%edi
140005b92:	89 ce                	mov    %ecx,%esi
140005b94:	0f a4 c9 05          	shld   $0x5,%ecx,%ecx
140005b98:	01 fb                	add    %edi,%ebx
140005b9a:	31 ee                	xor    %ebp,%esi
140005b9c:	0f ac d2 07          	shrd   $0x7,%edx,%edx
140005ba0:	01 cb                	add    %ecx,%ebx
140005ba2:	03 44 24 28          	add    0x28(%rsp),%eax
140005ba6:	31 d6                	xor    %edx,%esi
140005ba8:	89 df                	mov    %ebx,%edi
140005baa:	0f a4 db 05          	shld   $0x5,%ebx,%ebx
140005bae:	01 f0                	add    %esi,%eax
140005bb0:	31 d7                	xor    %edx,%edi