423ca9:	33 c7                	xor    %edi,%eax
423cab:	8b 7c 24 0c          	mov    0xc(%esp),%edi
423caf:	0f b6 c0             	movzbl %al,%eax
423cb2:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
423cb9:	25 00 00 40 00       	and    $0x400000,%eax
423cbe:	0b c8                	or     %eax,%ecx
423cc0:	b8 01 00 00 00       	mov    $0x1,%eax
423cc5:	0b f9                	or     %ecx,%edi
423cc7:	33 f6                	xor    %esi,%esi
423cc9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
423cd0:	8b c8                	mov    %eax,%ecx
423cd2:	23 cb                	and    %ebx,%ecx
423cd4:	f7 d9                	neg    %ecx
423cd6:	1b c9                	sbb    %ecx,%ecx
423cd8:	23 ca                	and    %edx,%ecx
423cda:	81 ea ff ff 00 00    	sub    $0xffff,%edx
423ce0:	33 f1                	xor    %ecx,%esi
423ce2:	03 c0                	add    %eax,%eax
423ce4:	75 ea                	jne    0x423cd0
423ce6:	8b 45 0c             	mov    0xc(%ebp),%eax
423ce9:	8b d0                	mov    %eax,%edx
423ceb:	33 5d 10             	xor    0x10(%ebp),%ebx
423cee:	c1 e2 13             	shl    $0x13,%edx
423cf1:	4a                   	dec    %edx
423cf2:	c1 e0 13             	shl    $0x13,%eax
423cf5:	23 d7                	and    %edi,%edx
423cf7:	48                   	dec    %eax
423cf8:	33 d6                	xor    %esi,%edx
423cfa:	23 c7                	and    %edi,%eax
423cfc:	81 e2 1f 00 1f 00    	and    $0x1f001f,%edx
423d02:	33 d0                	xor    %eax,%edx
423d04:	33 c0                	xor    %eax,%eax
423d06:	5f                   	pop    %edi
423d07:	5e                   	pop    %esi
423d08:	0b c3                	or     %ebx,%eax
423d0a:	5b                   	pop    %ebx
423d0b:	8b e5                	mov    %ebp,%esp
423d0d:	5d                   	pop    %ebp
423d0e:	c2 10 00             	ret    $0x10
423d11:	cc                   	int3
423d12:	cc                   	int3
423d13:	cc                   	int3
423d14:	cc                   	int3
423d15:	cc                   	int3
423d16:	cc                   	int3
423d17:	cc                   	int3
423d18:	cc                   	int3
423d19:	cc                   	int3
423d1a:	cc                   	int3
423d1b:	cc                   	int3
423d1c:	cc                   	int3
423d1d:	cc                   	int3
423d1e:	cc                   	int3
423d1f:	cc                   	int3
423d20:	8b ff                	mov    %edi,%edi
423d22:	55                   	push   %ebp
423d23:	8b ec                	mov    %esp,%ebp
423d25:	83 e4 f8             	and    $0xfffffff8,%esp
423d28:	83 ec 2c             	sub    $0x2c,%esp
423d2b:	8b 45 0c             	mov    0xc(%ebp),%eax
423d2e:	33 d2                	xor    %edx,%edx
423d30:	53                   	push   %ebx
423d31:	c1 e8 02             	shr    $0x2,%eax
423d34:	33 c9                	xor    %ecx,%ecx
423d36:	56                   	push   %esi
423d37:	89 44 24 30          	mov    %eax,0x30(%esp)
423d3b:	33 f6                	xor    %esi,%esi
423d3d:	33 c0                	xor    %eax,%eax
423d3f:	89 54 24 1c          	mov    %edx,0x1c(%esp)
423d43:	57                   	push   %edi
423d44:	33 ff                	xor    %edi,%edi
423d46:	89 54 24 18          	mov    %edx,0x18(%esp)
423d4a:	89 7c 24 0c          	mov    %edi,0xc(%esp)
423d4e:	89 44 24 10          	mov    %eax,0x10(%esp)
423d52:	89 44 24 2c          	mov    %eax,0x2c(%esp)
423d56:	c7 44 24 14 00 00 80 	movl   $0xff800000,0x14(%esp)
423d5d:	ff
423d5e:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
423d62:	89 4c 24 24          	mov    %ecx,0x24(%esp)
423d66:	89 74 24 28          	mov    %esi,0x28(%esp)
423d6a:	38 45 14             	cmp    %al,0x14(%ebp)
423d6d:	75 14                	jne    0x423d83
423d6f:	8b 55 08             	mov    0x8(%ebp),%edx
423d72:	8b 0c ba             	mov    (%edx,%edi,4),%ecx
423d75:	8b 74 ba 04          	mov    0x4(%edx,%edi,4),%esi
423d79:	89 4c 24 24          	mov    %ecx,0x24(%esp)
423d7d:	89 74 24 28          	mov    %esi,0x28(%esp)
423d81:	eb 03                	jmp    0x423d86
423d83:	8b 55 08             	mov    0x8(%ebp),%edx
423d86:	8b 5c ba 08          	mov    0x8(%edx,%edi,4),%ebx
423d8a:	8b 44 ba 0c          	mov    0xc(%edx,%edi,4),%eax
423d8e:	33 c3                	xor    %ebx,%eax
423d90:	0f 18 84 ba 80 00 00 	prefetchnta 0x80(%edx,%edi,4)
423d97:	00
423d98:	33 c6                	xor    %esi,%eax
423d9a:	8b 74 ba 10          	mov    0x10(%edx,%edi,4),%esi
423d9e:	33 c1                	xor    %ecx,%eax
423da0:	8b 54 ba 14          	mov    0x14(%edx,%edi,4),%edx
423da4:	8b c8                	mov    %eax,%ecx
423da6:	89 74 24 30          	mov    %esi,0x30(%esp)
423daa:	c1 e9 10             	shr    $0x10,%ecx
423dad:	33 c8                	xor    %eax,%ecx
423daf:	33 74 24 24          	xor    0x24(%esp),%esi
423db3:	8b c1                	mov    %ecx,%eax
423db5:	31 74 24 20          	xor    %esi,0x20(%esp)
423db9:	c1 e8 08             	shr    $0x8,%eax
423dbc:	33 c1                	xor    %ecx,%eax
423dbe:	8b 75 08             	mov    0x8(%ebp),%esi
423dc1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
423dc5:	0f b6 c0             	movzbl %al,%eax
423dc8:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
423dcf:	23 c1                	and    %ecx,%eax
423dd1:	81 e9 80 ff 7f 00    	sub    $0x7fff80,%ecx
423dd7:	31 44 24 0c          	xor    %eax,0xc(%esp)
423ddb:	8b 45 08             	mov    0x8(%ebp),%eax
423dde:	89 4c 24 14          	mov    %ecx,0x14(%esp)
423de2:	8b 4c b8 18          	mov    0x18(%eax,%edi,4),%ecx
423de6:	8b 7c b8 1c          	mov    0x1c(%eax,%edi,4),%edi
423dea:	8b c2                	mov    %edx,%eax
423dec:	33 44 24 28          	xor    0x28(%esp),%eax
423df0:	31 44 24 18          	xor    %eax,0x18(%esp)
423df4:	8b c1                	mov    %ecx,%eax
423df6:	33 c3                	xor    %ebx,%eax
423df8:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
423dfc:	31 44 24 10          	xor    %eax,0x10(%esp)
423e00:	8b c7                	mov    %edi,%eax
423e02:	33 f9                	xor    %ecx,%edi
423e04:	33 fa                	xor    %edx,%edi
423e06:	33 44 9e 0c          	xor    0xc(%esi,%ebx,4),%eax
423e0a:	33 7c 24 30          	xor    0x30(%esp),%edi
423e0e:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
423e12:	8b cf                	mov    %edi,%ecx
423e14:	33 d8                	xor    %eax,%ebx
423e16:	c1 e9 10             	shr    $0x10,%ecx
423e19:	33 cf                	xor    %edi,%ecx
423e1b:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
423e1f:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
423e23:	8b c1                	mov    %ecx,%eax
423e25:	c1 e8 08             	shr    $0x8,%eax
423e28:	83 c7 08             	add    $0x8,%edi
423e2b:	33 c1                	xor    %ecx,%eax
423e2d:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
423e31:	8b 4c 24 14          	mov    0x14(%esp),%ecx
423e35:	0f b6 c0             	movzbl %al,%eax
423e38:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
423e3f:	23 c1                	and    %ecx,%eax
423e41:	81 e9 80 ff 7f 00    	sub    $0x7fff80,%ecx
423e47:	31 44 24 0c          	xor    %eax,0xc(%esp)
423e4b:	89 4c 24 14          	mov    %ecx,0x14(%esp)
423e4f:	3b 7c 24 34          	cmp    0x34(%esp),%edi
423e53:	0f 82 16 ff ff ff    	jb     0x423d6f
423e59:	8b 44 24 18          	mov    0x18(%esp),%eax
423e5d:	33 44 24 20          	xor    0x20(%esp),%eax
423e61:	8b 4c 24 10          	mov    0x10(%esp),%ecx
423e65:	8b f8                	mov    %eax,%edi
423e67:	c1 ef 10             	shr    $0x10,%edi
423e6a:	33 f8                	xor    %eax,%edi
423e6c:	8b c3                	mov    %ebx,%eax
423e6e:	33 c1                	xor    %ecx,%eax
423e70:	33 5c 24 18          	xor    0x18(%esp),%ebx
423e74:	33 4c 24 20          	xor    0x20(%esp),%ecx
423e78:	8b f0                	mov    %eax,%esi
423e7a:	8b d1                	mov    %ecx,%edx
423e7c:	89 4c 24 10          	mov    %ecx,0x10(%esp)
423e80:	c1 ea 10             	shr    $0x10,%edx
423e83:	33 d1                	xor    %ecx,%edx
423e85:	c1 ee 10             	shr    $0x10,%esi
423e88:	33 f0                	xor    %eax,%esi
423e8a:	8b cb                	mov    %ebx,%ecx
423e8c:	c1 e9 10             	shr    $0x10,%ecx
423e8f:	33 cb                	xor    %ebx,%ecx
423e91:	33 5c 24 10          	xor    0x10(%esp),%ebx
423e95:	8b c1                	mov    %ecx,%eax
423e97:	c1 e8 08             	shr    $0x8,%eax
423e9a:	33 c1                	xor    %ecx,%eax
423e9c:	0f b6 c0             	movzbl %al,%eax
423e9f:	0f be 88 80 06 41 00 	movsbl 0x410680(%eax),%ecx
423ea6:	8b c6                	mov    %esi,%eax
423ea8:	c1 e8 08             	shr    $0x8,%eax
423eab:	83 e1 20             	and    $0x20,%ecx
423eae:	33 c6                	xor    %esi,%eax
423eb0:	0f b6 c0             	movzbl %al,%eax
423eb3:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
423eba:	83 e0 40             	and    $0x40,%eax
423ebd:	0b c8                	or     %eax,%ecx
423ebf:	8b c2                	mov    %edx,%eax
423ec1:	c1 e8 08             	shr    $0x8,%eax
423ec4:	33 c2                	xor    %edx,%eax
423ec6:	ba 00 00 ff ff       	mov    $0xffff0000,%edx
423ecb:	0f b6 c0             	movzbl %al,%eax
423ece:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
423ed5:	25 00 00 20 00       	and    $0x200000,%eax
423eda:	0b c8                	or     %eax,%ecx
423edc:	8b c7                	mov    %edi,%eax
423ede:	c1 e8 08             	shr    $0x8,%eax
423ee1:	33 c7                	xor    %edi,%eax
423ee3:	8b 7c 24 0c          	mov    0xc(%esp),%edi
423ee7:	0f b6 c0             	movzbl %al,%eax
423eea:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
423ef1:	25 00 00 40 00       	and    $0x400000,%eax
423ef6:	0b c8                	or     %eax,%ecx
423ef8:	b8 01 00 00 00       	mov    $0x1,%eax
423efd:	0b f9                	or     %ecx,%edi
423eff:	33 f6                	xor    %esi,%esi
423f01:	8b c8                	mov    %eax,%ecx
423f03:	23 cb                	and    %ebx,%ecx
423f05:	f7 d9                	neg    %ecx
423f07:	1b c9                	sbb    %ecx,%ecx
423f09:	23 ca                	and    %edx,%ecx
423f0b:	81 ea ff ff 00 00    	sub    $0xffff,%edx
423f11:	33 f1                	xor    %ecx,%esi
423f13:	03 c0                	add    %eax,%eax
423f15:	75 ea                	jne    0x423f01
423f17:	8b 45 0c             	mov    0xc(%ebp),%eax
423f1a:	8b d0                	mov    %eax,%edx
423f1c:	33 5d 10             	xor    0x10(%ebp),%ebx
423f1f:	c1 e2 13             	shl    $0x13,%edx
423f22:	4a                   	dec    %edx
423f23:	c1 e0 13             	shl    $0x13,%eax
423f26:	23 d7                	and    %edi,%edx
423f28:	48                   	dec    %eax
423f29:	33 d6                	xor    %esi,%edx
423f2b:	23 c7                	and    %edi,%eax
423f2d:	81 e2 1f 00 1f 00    	and    $0x1f001f,%edx
423f33:	33 d0                	xor    %eax,%edx
423f35:	33 c0                	xor    %eax,%eax
423f37:	5f                   	pop    %edi
423f38:	5e                   	pop    %esi
423f39:	0b c3                	or     %ebx,%eax
423f3b:	5b                   	pop    %ebx
423f3c:	8b e5                	mov    %ebp,%esp
423f3e:	5d                   	pop    %ebp
423f3f:	c2 10 00             	ret    $0x10
423f42:	cc                   	int3
423f43:	cc                   	int3
423f44:	cc                   	int3
423f45:	cc                   	int3
423f46:	cc                   	int3
423f47:	cc                   	int3
423f48:	cc                   	int3
423f49:	cc                   	int3
423f4a:	cc                   	int3
423f4b:	cc                   	int3
423f4c:	cc                   	int3
423f4d:	cc                   	int3
423f4e:	cc                   	int3
423f4f:	cc                   	int3
423f50:	8b ff                	mov    %edi,%edi
423f52:	55                   	push   %ebp
423f53:	8b ec                	mov    %esp,%ebp
423f55:	83 e4 80             	and    $0xffffff80,%esp
423f58:	81 ec 78 01 00 00    	sub    $0x178,%esp
423f5e:	a1 e4 f8 44 00       	mov    0x44f8e4,%eax
423f63:	33 c4                	xor    %esp,%eax
423f65:	89 84 24 74 01 00 00 	mov    %eax,0x174(%esp)
423f6c:	8b 45 0c             	mov    0xc(%ebp),%eax
423f6f:	0f 57 c0             	xorps  %xmm0,%xmm0
423f72:	8b 55 08             	mov    0x8(%ebp),%edx
423f75:	c1 e8 04             	shr    $0x4,%eax
423f78:	56                   	push   %esi
423f79:	89 44 24 38          	mov    %eax,0x38(%esp)
423f7d:	33 f6                	xor    %esi,%esi
423f7f:	33 c0                	xor    %eax,%eax
423f81:	0f 29 44 24 3c       	movaps %xmm0,0x3c(%esp)
423f86:	57                   	push   %edi
423f87:	89 44 24 38          	mov    %eax,0x38(%esp)
423f8b:	0f 29 44 24 50       	movaps %xmm0,0x50(%esp)
423f90:	0f 29 44 24 60       	movaps %xmm0,0x60(%esp)
423f95:	0f 29 44 24 70       	movaps %xmm0,0x70(%esp)
423f9a:	c7 44 24 34 00 00 00 	movl   $0xfe000000,0x34(%esp)
423fa1:	fe
423fa2:	38 45 14             	cmp    %al,0x14(%ebp)
423fa5:	74 09                	je     0x423fb0
423fa7:	0f 28 f8             	movaps %xmm0,%xmm7
423faa:	66 0f 6d 3a          	punpckhqdq (%edx),%xmm7
423fae:	eb 08                	jmp    0x423fb8
423fb0:	8b c6                	mov    %esi,%eax
423fb2:	03 c0                	add    %eax,%eax
423fb4:	0f 10 3c c2          	movups (%edx,%eax,8),%xmm7
423fb8:	8d 46 20             	lea    0x20(%esi),%eax
423fbb:	03 c0                	add    %eax,%eax
423fbd:	0f 18 04 c2          	prefetchnta (%edx,%eax,8)
423fc1:	8d 46 01             	lea    0x1(%esi),%eax
423fc4:	03 c0                	add    %eax,%eax
423fc6:	0f 10 24 c2          	movups (%edx,%eax,8),%xmm4
423fca:	8d 46 02             	lea    0x2(%esi),%eax
423fcd:	03 c0                	add    %eax,%eax
423fcf:	0f 28 cc             	movaps %xmm4,%xmm1
423fd2:	66 0f ef cf          	pxor   %xmm7,%xmm1
423fd6:	66 0f ef 64 24 50    	pxor   0x50(%esp),%xmm4
423fdc:	66 0f ef 7c 24 40    	pxor   0x40(%esp),%xmm7
423fe2:	0f 10 2c c2          	movups (%edx,%eax,8),%xmm5
423fe6:	8d 46 03             	lea    0x3(%esi),%eax
423fe9:	03 c0                	add    %eax,%eax
423feb:	66 0f ef cd          	pxor   %xmm5,%xmm1
423fef:	66 0f ef 6c 24 60    	pxor   0x60(%esp),%xmm5
423ff5:	0f 10 34 c2          	movups (%edx,%eax,8),%xmm6
423ff9:	66 0f ef ce          	pxor   %xmm6,%xmm1
423ffd:	66 0f ef 74 24 70    	pxor   0x70(%esp),%xmm6
424003:	66 0f 70 c1 4e       	pshufd $0x4e,%xmm1,%xmm0
424008:	66 0f ef c8          	pxor   %xmm0,%xmm1
42400c:	66 0f 70 c1 1b       	pshufd $0x1b,%xmm1,%xmm0
424011:	66 0f ef c1          	pxor   %xmm1,%xmm0
424015:	66 0f 7e c0          	movd   %xmm0,%eax
424019:	8b c8                	mov    %eax,%ecx
42401b:	c1 e9 10             	shr    $0x10,%ecx
42401e:	33 c8                	xor    %eax,%ecx
424020:	8b c1                	mov    %ecx,%eax
424022:	c1 e8 08             	shr    $0x8,%eax
424025:	33 c1                	xor    %ecx,%eax
424027:	8b 4c 24 34          	mov    0x34(%esp),%ecx
42402b:	0f b6 c0             	movzbl %al,%eax
42402e:	0f be 80 80 06 41 00 	movsbl 0x410680(%eax),%eax
424035:	23 c1                	and    %ecx,%eax
424037:	81 e9 00 fe ff 01    	sub    $0x1fffe00,%ecx
42403d:	31 44 24 38          	xor    %eax,0x38(%esp)
424041:	8d 46 04             	lea    0x4(%esi),%eax
424044:	03 c0                	add    %eax,%eax
424046:	89 4c 24 34          	mov    %ecx,0x34(%esp)
42404a:	0f 10 14 c2          	movups (%edx,%eax,8),%xmm2
42404e:	8d 46 05             	lea    0x5(%esi),%eax
424051:	03 c0                	add    %eax,%eax
424053:	66 0f ef fa          	pxor   %xmm2,%xmm7
424057:	0f 29 7c 24 40       	movaps %xmm7,0x40(%esp)
42405c:	0f 10 1c c2          	movups (%edx,%eax,8),%xmm3
424060:	8d 46 06             	lea    0x6(%esi),%eax
424063:	03 c0                	add    %eax,%eax
424065:	66 0f ef e3          	pxor   %xmm3,%xmm4
424069:	66 0f ef da          	pxor   %xmm2,%xmm3
42406d:	0f 29 64 24 50       	movaps %xmm4,0x50(%esp)
424072:	0f 10 04 c2          	movups (%edx,%eax,8),%xmm0
424076:	8d 46 07             	lea    0x7(%esi),%eax
424079:	03 c0                	add    %eax,%eax
42407b:	66 0f ef d8          	pxor   %xmm0,%xmm3
42407f:	66 0f ef e8          	pxor   %xmm0,%xmm5
424083:	83 c6 08             	add    $0x8,%esi
424086:	0f 29 6c 24 60       	movaps %xmm5,0x60(%esp)
42408b:	66 0f ef 1c c2       	pxor   (%edx,%eax,8),%xmm3
424090:	66 0f ef 34 c2       	pxor   (%edx,%eax,8),%xmm6
424095:	66 0f 70 c3 4e       	pshufd $0x4e,%xmm3,%xmm0
42409a:	66 0f ef d8          	pxor   %xmm0,%xmm3
42409e:	0f 29 74 24 70       	movaps %xmm6,0x70(%esp)
4240a3:	66 0f 70 c3 1b       	pshufd $0x1b,%xmm3,%xmm0
4240a8:	66 0f ef c3          	pxor   %xmm3,%xmm0
4240ac:	66 0f 7e c0          	movd   %xmm0,%eax
4240b0:	8b c8                	mov    %eax,%ecx
4240b2:	c1 e9 10             	shr    $0x10,%ecx
4240b5:	33 c8                	xor    %eax,%ecx
4240b7:	8b c1                	mov    %ecx,%eax
4240b9:	c1 e8 08             	shr    $0x8,%eax