408aad:	31 fe                	xor    %edi,%esi
408aaf:	c5 c9 72 d7 0a       	vpsrld $0xa,%xmm7,%xmm6
408ab4:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408ab8:	21 ce                	and    %ecx,%esi
408aba:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
408abe:	c5 d9 ef e5          	vpxor  %xmm5,%xmm4,%xmm4
408ac2:	31 ca                	xor    %ecx,%edx
408ac4:	31 f7                	xor    %esi,%edi
408ac6:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408aca:	c5 d1 73 d7 11       	vpsrlq $0x11,%xmm7,%xmm5
408acf:	89 d9                	mov    %ebx,%ecx
408ad1:	01 fa                	add    %edi,%edx
408ad3:	8b 7c 24 10          	mov    0x10(%esp),%edi
408ad7:	c5 e1 fe dc          	vpaddd %xmm4,%xmm3,%xmm3
408adb:	89 de                	mov    %ebx,%esi
408add:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408ae1:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
408ae5:	c5 c9 ef f5          	vpxor  %xmm5,%xmm6,%xmm6
408ae9:	31 d9                	xor    %ebx,%ecx
408aeb:	31 fb                	xor    %edi,%ebx
408aed:	03 54 24 08          	add    0x8(%esp),%edx
408af1:	c5 c1 73 d7 13       	vpsrlq $0x13,%xmm7,%xmm7
408af6:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408afa:	21 d8                	and    %ebx,%eax
408afc:	31 f1                	xor    %esi,%ecx
408afe:	c5 c9 ef f7          	vpxor  %xmm7,%xmm6,%xmm6
408b02:	03 54 24 54          	add    0x54(%esp),%edx
408b06:	31 f8                	xor    %edi,%eax
408b08:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408b0c:	c5 f9 70 fe 84       	vpshufd $0x84,%xmm6,%xmm7
408b11:	01 d0                	add    %edx,%eax
408b13:	03 54 24 18          	add    0x18(%esp),%edx
408b17:	01 c8                	add    %ecx,%eax
408b19:	c5 c1 73 df 08       	vpsrldq $0x8,%xmm7,%xmm7
408b1e:	89 d1                	mov    %edx,%ecx
408b20:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408b24:	8b 74 24 1c          	mov    0x1c(%esp),%esi
408b28:	c5 e1 fe df          	vpaddd %xmm7,%xmm3,%xmm3
408b2c:	31 ca                	xor    %ecx,%edx
408b2e:	8b 3c 24             	mov    (%esp),%edi
408b31:	31 fe                	xor    %edi,%esi
408b33:	c5 f9 70 fb 50       	vpshufd $0x50,%xmm3,%xmm7
408b38:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408b3c:	21 ce                	and    %ecx,%esi
408b3e:	89 4c 24 18          	mov    %ecx,0x18(%esp)
408b42:	c5 c9 72 d7 0a       	vpsrld $0xa,%xmm7,%xmm6
408b47:	31 ca                	xor    %ecx,%edx
408b49:	31 f7                	xor    %esi,%edi
408b4b:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408b4f:	c5 d1 73 d7 11       	vpsrlq $0x11,%xmm7,%xmm5
408b54:	89 c1                	mov    %eax,%ecx
408b56:	01 fa                	add    %edi,%edx
408b58:	8b 7c 24 0c          	mov    0xc(%esp),%edi
408b5c:	c5 c9 ef f5          	vpxor  %xmm5,%xmm6,%xmm6
408b60:	89 c6                	mov    %eax,%esi
408b62:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408b66:	89 44 24 08          	mov    %eax,0x8(%esp)
408b6a:	c5 c1 73 d7 13       	vpsrlq $0x13,%xmm7,%xmm7
408b6f:	31 c1                	xor    %eax,%ecx
408b71:	31 f8                	xor    %edi,%eax
408b73:	03 54 24 04          	add    0x4(%esp),%edx
408b77:	c5 c9 ef f7          	vpxor  %xmm7,%xmm6,%xmm6
408b7b:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408b7f:	21 c3                	and    %eax,%ebx
408b81:	31 f1                	xor    %esi,%ecx
408b83:	c5 f9 70 fe e8       	vpshufd $0xe8,%xmm6,%xmm7
408b88:	03 54 24 58          	add    0x58(%esp),%edx
408b8c:	31 fb                	xor    %edi,%ebx
408b8e:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408b92:	c5 c1 73 ff 08       	vpslldq $0x8,%xmm7,%xmm7
408b97:	01 d3                	add    %edx,%ebx
408b99:	03 54 24 14          	add    0x14(%esp),%edx
408b9d:	01 cb                	add    %ecx,%ebx
408b9f:	c5 e1 fe df          	vpaddd %xmm7,%xmm3,%xmm3
408ba3:	89 d1                	mov    %edx,%ecx
408ba5:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408ba9:	8b 74 24 18          	mov    0x18(%esp),%esi
408bad:	c5 e1 fe 75 30       	vpaddd 0x30(%ebp),%xmm3,%xmm6
408bb2:	31 ca                	xor    %ecx,%edx
408bb4:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
408bb8:	31 fe                	xor    %edi,%esi
408bba:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408bbe:	21 ce                	and    %ecx,%esi
408bc0:	89 4c 24 14          	mov    %ecx,0x14(%esp)
408bc4:	31 ca                	xor    %ecx,%edx
408bc6:	31 f7                	xor    %esi,%edi
408bc8:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408bcc:	89 d9                	mov    %ebx,%ecx
408bce:	01 fa                	add    %edi,%edx
408bd0:	8b 7c 24 08          	mov    0x8(%esp),%edi
408bd4:	89 de                	mov    %ebx,%esi
408bd6:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408bda:	89 5c 24 04          	mov    %ebx,0x4(%esp)
408bde:	31 d9                	xor    %ebx,%ecx
408be0:	31 fb                	xor    %edi,%ebx
408be2:	03 14 24             	add    (%esp),%edx
408be5:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408be9:	21 d8                	and    %ebx,%eax
408beb:	31 f1                	xor    %esi,%ecx
408bed:	03 54 24 5c          	add    0x5c(%esp),%edx
408bf1:	31 f8                	xor    %edi,%eax
408bf3:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408bf7:	01 d0                	add    %edx,%eax
408bf9:	03 54 24 10          	add    0x10(%esp),%edx
408bfd:	01 c8                	add    %ecx,%eax
408bff:	c5 f9 7f 74 24 50    	vmovdqa %xmm6,0x50(%esp)
408c05:	81 7d 40 03 02 01 00 	cmpl   $0x10203,0x40(%ebp)
408c0c:	0f 85 0e f8 ff ff    	jne    0x408420
408c12:	89 d1                	mov    %edx,%ecx
408c14:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408c18:	8b 74 24 14          	mov    0x14(%esp),%esi
408c1c:	31 ca                	xor    %ecx,%edx
408c1e:	8b 7c 24 18          	mov    0x18(%esp),%edi
408c22:	31 fe                	xor    %edi,%esi
408c24:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408c28:	21 ce                	and    %ecx,%esi
408c2a:	89 4c 24 10          	mov    %ecx,0x10(%esp)
408c2e:	31 ca                	xor    %ecx,%edx
408c30:	31 f7                	xor    %esi,%edi
408c32:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408c36:	89 c1                	mov    %eax,%ecx
408c38:	01 fa                	add    %edi,%edx
408c3a:	8b 7c 24 04          	mov    0x4(%esp),%edi
408c3e:	89 c6                	mov    %eax,%esi
408c40:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408c44:	89 04 24             	mov    %eax,(%esp)
408c47:	31 c1                	xor    %eax,%ecx
408c49:	31 f8                	xor    %edi,%eax
408c4b:	03 54 24 1c          	add    0x1c(%esp),%edx
408c4f:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408c53:	21 c3                	and    %eax,%ebx
408c55:	31 f1                	xor    %esi,%ecx
408c57:	03 54 24 20          	add    0x20(%esp),%edx
408c5b:	31 fb                	xor    %edi,%ebx
408c5d:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408c61:	01 d3                	add    %edx,%ebx
408c63:	03 54 24 0c          	add    0xc(%esp),%edx
408c67:	01 cb                	add    %ecx,%ebx
408c69:	89 d1                	mov    %edx,%ecx
408c6b:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408c6f:	8b 74 24 10          	mov    0x10(%esp),%esi
408c73:	31 ca                	xor    %ecx,%edx
408c75:	8b 7c 24 14          	mov    0x14(%esp),%edi
408c79:	31 fe                	xor    %edi,%esi
408c7b:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408c7f:	21 ce                	and    %ecx,%esi
408c81:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
408c85:	31 ca                	xor    %ecx,%edx
408c87:	31 f7                	xor    %esi,%edi
408c89:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408c8d:	89 d9                	mov    %ebx,%ecx
408c8f:	01 fa                	add    %edi,%edx
408c91:	8b 3c 24             	mov    (%esp),%edi
408c94:	89 de                	mov    %ebx,%esi
408c96:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408c9a:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
408c9e:	31 d9                	xor    %ebx,%ecx
408ca0:	31 fb                	xor    %edi,%ebx
408ca2:	03 54 24 18          	add    0x18(%esp),%edx
408ca6:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408caa:	21 d8                	and    %ebx,%eax
408cac:	31 f1                	xor    %esi,%ecx
408cae:	03 54 24 24          	add    0x24(%esp),%edx
408cb2:	31 f8                	xor    %edi,%eax
408cb4:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408cb8:	01 d0                	add    %edx,%eax
408cba:	03 54 24 08          	add    0x8(%esp),%edx
408cbe:	01 c8                	add    %ecx,%eax
408cc0:	89 d1                	mov    %edx,%ecx
408cc2:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408cc6:	8b 74 24 0c          	mov    0xc(%esp),%esi
408cca:	31 ca                	xor    %ecx,%edx
408ccc:	8b 7c 24 10          	mov    0x10(%esp),%edi
408cd0:	31 fe                	xor    %edi,%esi
408cd2:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408cd6:	21 ce                	and    %ecx,%esi
408cd8:	89 4c 24 08          	mov    %ecx,0x8(%esp)
408cdc:	31 ca                	xor    %ecx,%edx
408cde:	31 f7                	xor    %esi,%edi
408ce0:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408ce4:	89 c1                	mov    %eax,%ecx
408ce6:	01 fa                	add    %edi,%edx
408ce8:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
408cec:	89 c6                	mov    %eax,%esi
408cee:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408cf2:	89 44 24 18          	mov    %eax,0x18(%esp)
408cf6:	31 c1                	xor    %eax,%ecx
408cf8:	31 f8                	xor    %edi,%eax
408cfa:	03 54 24 14          	add    0x14(%esp),%edx
408cfe:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408d02:	21 c3                	and    %eax,%ebx
408d04:	31 f1                	xor    %esi,%ecx
408d06:	03 54 24 28          	add    0x28(%esp),%edx
408d0a:	31 fb                	xor    %edi,%ebx
408d0c:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408d10:	01 d3                	add    %edx,%ebx
408d12:	03 54 24 04          	add    0x4(%esp),%edx
408d16:	01 cb                	add    %ecx,%ebx
408d18:	89 d1                	mov    %edx,%ecx
408d1a:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408d1e:	8b 74 24 08          	mov    0x8(%esp),%esi
408d22:	31 ca                	xor    %ecx,%edx
408d24:	8b 7c 24 0c          	mov    0xc(%esp),%edi
408d28:	31 fe                	xor    %edi,%esi
408d2a:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408d2e:	21 ce                	and    %ecx,%esi
408d30:	89 4c 24 04          	mov    %ecx,0x4(%esp)
408d34:	31 ca                	xor    %ecx,%edx
408d36:	31 f7                	xor    %esi,%edi
408d38:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408d3c:	89 d9                	mov    %ebx,%ecx
408d3e:	01 fa                	add    %edi,%edx
408d40:	8b 7c 24 18          	mov    0x18(%esp),%edi
408d44:	89 de                	mov    %ebx,%esi
408d46:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408d4a:	89 5c 24 14          	mov    %ebx,0x14(%esp)
408d4e:	31 d9                	xor    %ebx,%ecx
408d50:	31 fb                	xor    %edi,%ebx
408d52:	03 54 24 10          	add    0x10(%esp),%edx
408d56:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408d5a:	21 d8                	and    %ebx,%eax
408d5c:	31 f1                	xor    %esi,%ecx
408d5e:	03 54 24 2c          	add    0x2c(%esp),%edx
408d62:	31 f8                	xor    %edi,%eax
408d64:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408d68:	01 d0                	add    %edx,%eax
408d6a:	03 14 24             	add    (%esp),%edx
408d6d:	01 c8                	add    %ecx,%eax
408d6f:	89 d1                	mov    %edx,%ecx
408d71:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408d75:	8b 74 24 04          	mov    0x4(%esp),%esi
408d79:	31 ca                	xor    %ecx,%edx
408d7b:	8b 7c 24 08          	mov    0x8(%esp),%edi
408d7f:	31 fe                	xor    %edi,%esi
408d81:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408d85:	21 ce                	and    %ecx,%esi
408d87:	89 0c 24             	mov    %ecx,(%esp)
408d8a:	31 ca                	xor    %ecx,%edx
408d8c:	31 f7                	xor    %esi,%edi
408d8e:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408d92:	89 c1                	mov    %eax,%ecx
408d94:	01 fa                	add    %edi,%edx
408d96:	8b 7c 24 14          	mov    0x14(%esp),%edi
408d9a:	89 c6                	mov    %eax,%esi
408d9c:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408da0:	89 44 24 10          	mov    %eax,0x10(%esp)
408da4:	31 c1                	xor    %eax,%ecx
408da6:	31 f8                	xor    %edi,%eax
408da8:	03 54 24 0c          	add    0xc(%esp),%edx
408dac:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408db0:	21 c3                	and    %eax,%ebx
408db2:	31 f1                	xor    %esi,%ecx
408db4:	03 54 24 30          	add    0x30(%esp),%edx
408db8:	31 fb                	xor    %edi,%ebx
408dba:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408dbe:	01 d3                	add    %edx,%ebx
408dc0:	03 54 24 1c          	add    0x1c(%esp),%edx
408dc4:	01 cb                	add    %ecx,%ebx
408dc6:	89 d1                	mov    %edx,%ecx
408dc8:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408dcc:	8b 34 24             	mov    (%esp),%esi
408dcf:	31 ca                	xor    %ecx,%edx
408dd1:	8b 7c 24 04          	mov    0x4(%esp),%edi
408dd5:	31 fe                	xor    %edi,%esi
408dd7:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408ddb:	21 ce                	and    %ecx,%esi
408ddd:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
408de1:	31 ca                	xor    %ecx,%edx
408de3:	31 f7                	xor    %esi,%edi
408de5:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408de9:	89 d9                	mov    %ebx,%ecx
408deb:	01 fa                	add    %edi,%edx
408ded:	8b 7c 24 10          	mov    0x10(%esp),%edi
408df1:	89 de                	mov    %ebx,%esi
408df3:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408df7:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
408dfb:	31 d9                	xor    %ebx,%ecx
408dfd:	31 fb                	xor    %edi,%ebx
408dff:	03 54 24 08          	add    0x8(%esp),%edx
408e03:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408e07:	21 d8                	and    %ebx,%eax
408e09:	31 f1                	xor    %esi,%ecx
408e0b:	03 54 24 34          	add    0x34(%esp),%edx
408e0f:	31 f8                	xor    %edi,%eax
408e11:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408e15:	01 d0                	add    %edx,%eax
408e17:	03 54 24 18          	add    0x18(%esp),%edx
408e1b:	01 c8                	add    %ecx,%eax
408e1d:	89 d1                	mov    %edx,%ecx
408e1f:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408e23:	8b 74 24 1c          	mov    0x1c(%esp),%esi
408e27:	31 ca                	xor    %ecx,%edx
408e29:	8b 3c 24             	mov    (%esp),%edi
408e2c:	31 fe                	xor    %edi,%esi
408e2e:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408e32:	21 ce                	and    %ecx,%esi
408e34:	89 4c 24 18          	mov    %ecx,0x18(%esp)
408e38:	31 ca                	xor    %ecx,%edx
408e3a:	31 f7                	xor    %esi,%edi
408e3c:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408e40:	89 c1                	mov    %eax,%ecx
408e42:	01 fa                	add    %edi,%edx
408e44:	8b 7c 24 0c          	mov    0xc(%esp),%edi
408e48:	89 c6                	mov    %eax,%esi
408e4a:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408e4e:	89 44 24 08          	mov    %eax,0x8(%esp)
408e52:	31 c1                	xor    %eax,%ecx
408e54:	31 f8                	xor    %edi,%eax
408e56:	03 54 24 04          	add    0x4(%esp),%edx
408e5a:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408e5e:	21 c3                	and    %eax,%ebx
408e60:	31 f1                	xor    %esi,%ecx
408e62:	03 54 24 38          	add    0x38(%esp),%edx
408e66:	31 fb                	xor    %edi,%ebx
408e68:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408e6c:	01 d3                	add    %edx,%ebx
408e6e:	03 54 24 14          	add    0x14(%esp),%edx
408e72:	01 cb                	add    %ecx,%ebx
408e74:	89 d1                	mov    %edx,%ecx
408e76:	0f ac d2 0e          	shrd   $0xe,%edx,%edx
408e7a:	8b 74 24 18          	mov    0x18(%esp),%esi
408e7e:	31 ca                	xor    %ecx,%edx
408e80:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
408e84:	31 fe                	xor    %edi,%esi
408e86:	0f ac d2 05          	shrd   $0x5,%edx,%edx
408e8a:	21 ce                	and    %ecx,%esi
408e8c:	89 4c 24 14          	mov    %ecx,0x14(%esp)
408e90:	31 ca                	xor    %ecx,%edx
408e92:	31 f7                	xor    %esi,%edi
408e94:	0f ac d2 06          	shrd   $0x6,%edx,%edx
408e98:	89 d9                	mov    %ebx,%ecx
408e9a:	01 fa                	add    %edi,%edx
408e9c:	8b 7c 24 08          	mov    0x8(%esp),%edi
408ea0:	89 de                	mov    %ebx,%esi
408ea2:	0f ac c9 09          	shrd   $0x9,%ecx,%ecx
408ea6:	89 5c 24 04          	mov    %ebx,0x4(%esp)
408eaa:	31 d9                	xor    %ebx,%ecx
408eac:	31 fb                	xor    %edi,%ebx
408eae:	03 14 24             	add    (%esp),%edx
408eb1:	0f ac c9 0b          	shrd   $0xb,%ecx,%ecx
408eb5:	21 d8                	and    %ebx,%eax
408eb7:	31 f1                	xor    %esi,%ecx
408eb9:	03 54 24 3c          	add    0x3c(%esp),%edx
408ebd:	31 f8                	xor    %edi,%eax
408ebf:	0f ac c9 02          	shrd   $0x2,%ecx,%ecx
408ec3:	01 d0                	add    %edx,%eax
408ec5:	03 54 24 10          	add    0x10(%esp),%edx
408ec9:	01 c8                	add    %ecx,%eax
408ecb:	89 d1                	mov    %edx,%ecx
408ecd:	0f ac d2 0e          	shrd   $0xe,%edx,%edx