40b1d0:	f3 0f 6f 06          	movdqu (%esi),%xmm0
40b1d4:	f3 0f 6f 4e 10       	movdqu 0x10(%esi),%xmm1
40b1d9:	f3 0f 6f 56 20       	movdqu 0x20(%esi),%xmm2
40b1de:	f3 0f 6f 5e 30       	movdqu 0x30(%esi),%xmm3
40b1e3:	f3 0f 6f 66 40       	movdqu 0x40(%esi),%xmm4
40b1e8:	f3 0f 6f 6e 50       	movdqu 0x50(%esi),%xmm5
40b1ed:	f3 0f 6f 76 60       	movdqu 0x60(%esi),%xmm6
40b1f2:	f3 0f 6f 7e 70       	movdqu 0x70(%esi),%xmm7
40b1f7:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40b1fb:	f3 0f 7f 4f 10       	movdqu %xmm1,0x10(%edi)
40b200:	f3 0f 7f 57 20       	movdqu %xmm2,0x20(%edi)
40b205:	f3 0f 7f 5f 30       	movdqu %xmm3,0x30(%edi)
40b20a:	f3 0f 7f 67 40       	movdqu %xmm4,0x40(%edi)
40b20f:	f3 0f 7f 6f 50       	movdqu %xmm5,0x50(%edi)
40b214:	f3 0f 7f 77 60       	movdqu %xmm6,0x60(%edi)
40b219:	f3 0f 7f 7f 70       	movdqu %xmm7,0x70(%edi)
40b21e:	81 e9 80 00 00 00    	sub    $0x80,%ecx
40b224:	f7 c1 80 ff ff ff    	test   $0xffffff80,%ecx
40b22a:	75 90                	jne    0x40b1bc
40b22c:	83 f9 20             	cmp    $0x20,%ecx
40b22f:	72 23                	jb     0x40b254
40b231:	83 ee 20             	sub    $0x20,%esi
40b234:	83 ef 20             	sub    $0x20,%edi
40b237:	f3 0f 6f 06          	movdqu (%esi),%xmm0
40b23b:	f3 0f 6f 4e 10       	movdqu 0x10(%esi),%xmm1
40b240:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40b244:	f3 0f 7f 4f 10       	movdqu %xmm1,0x10(%edi)
40b249:	83 e9 20             	sub    $0x20,%ecx
40b24c:	f7 c1 e0 ff ff ff    	test   $0xffffffe0,%ecx
40b252:	75 dd                	jne    0x40b231
40b254:	f7 c1 fc ff ff ff    	test   $0xfffffffc,%ecx
40b25a:	74 15                	je     0x40b271
40b25c:	83 ef 04             	sub    $0x4,%edi
40b25f:	83 ee 04             	sub    $0x4,%esi
40b262:	8b 06                	mov    (%esi),%eax
40b264:	89 07                	mov    %eax,(%edi)
40b266:	83 e9 04             	sub    $0x4,%ecx
40b269:	f7 c1 fc ff ff ff    	test   $0xfffffffc,%ecx
40b26f:	75 eb                	jne    0x40b25c
40b271:	85 c9                	test   %ecx,%ecx
40b273:	74 0f                	je     0x40b284
40b275:	83 ef 01             	sub    $0x1,%edi
40b278:	83 ee 01             	sub    $0x1,%esi
40b27b:	8a 06                	mov    (%esi),%al
40b27d:	88 07                	mov    %al,(%edi)
40b27f:	83 e9 01             	sub    $0x1,%ecx
40b282:	75 f1                	jne    0x40b275
40b284:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b288:	5e                   	pop    %esi
40b289:	5f                   	pop    %edi
40b28a:	c3                   	ret
40b28b:	eb 03                	jmp    0x40b290
40b28d:	cc                   	int3
40b28e:	cc                   	int3
40b28f:	cc                   	int3
40b290:	8b c6                	mov    %esi,%eax
40b292:	83 e0 0f             	and    $0xf,%eax
40b295:	85 c0                	test   %eax,%eax
40b297:	0f 85 e3 00 00 00    	jne    0x40b380
40b29d:	8b d1                	mov    %ecx,%edx
40b29f:	83 e1 7f             	and    $0x7f,%ecx
40b2a2:	c1 ea 07             	shr    $0x7,%edx
40b2a5:	74 66                	je     0x40b30d
40b2a7:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b2ae:	8b ff                	mov    %edi,%edi
40b2b0:	66 0f 6f 06          	movdqa (%esi),%xmm0
40b2b4:	66 0f 6f 4e 10       	movdqa 0x10(%esi),%xmm1
40b2b9:	66 0f 6f 56 20       	movdqa 0x20(%esi),%xmm2
40b2be:	66 0f 6f 5e 30       	movdqa 0x30(%esi),%xmm3
40b2c3:	66 0f 7f 07          	movdqa %xmm0,(%edi)
40b2c7:	66 0f 7f 4f 10       	movdqa %xmm1,0x10(%edi)
40b2cc:	66 0f 7f 57 20       	movdqa %xmm2,0x20(%edi)
40b2d1:	66 0f 7f 5f 30       	movdqa %xmm3,0x30(%edi)
40b2d6:	66 0f 6f 66 40       	movdqa 0x40(%esi),%xmm4
40b2db:	66 0f 6f 6e 50       	movdqa 0x50(%esi),%xmm5
40b2e0:	66 0f 6f 76 60       	movdqa 0x60(%esi),%xmm6
40b2e5:	66 0f 6f 7e 70       	movdqa 0x70(%esi),%xmm7
40b2ea:	66 0f 7f 67 40       	movdqa %xmm4,0x40(%edi)
40b2ef:	66 0f 7f 6f 50       	movdqa %xmm5,0x50(%edi)
40b2f4:	66 0f 7f 77 60       	movdqa %xmm6,0x60(%edi)
40b2f9:	66 0f 7f 7f 70       	movdqa %xmm7,0x70(%edi)
40b2fe:	8d b6 80 00 00 00    	lea    0x80(%esi),%esi
40b304:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
40b30a:	4a                   	dec    %edx
40b30b:	75 a3                	jne    0x40b2b0
40b30d:	85 c9                	test   %ecx,%ecx
40b30f:	74 5f                	je     0x40b370
40b311:	8b d1                	mov    %ecx,%edx
40b313:	c1 ea 05             	shr    $0x5,%edx
40b316:	85 d2                	test   %edx,%edx
40b318:	74 21                	je     0x40b33b
40b31a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40b320:	f3 0f 6f 06          	movdqu (%esi),%xmm0
40b324:	f3 0f 6f 4e 10       	movdqu 0x10(%esi),%xmm1
40b329:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40b32d:	f3 0f 7f 4f 10       	movdqu %xmm1,0x10(%edi)
40b332:	8d 76 20             	lea    0x20(%esi),%esi
40b335:	8d 7f 20             	lea    0x20(%edi),%edi
40b338:	4a                   	dec    %edx
40b339:	75 e5                	jne    0x40b320
40b33b:	83 e1 1f             	and    $0x1f,%ecx
40b33e:	74 30                	je     0x40b370
40b340:	8b c1                	mov    %ecx,%eax
40b342:	c1 e9 02             	shr    $0x2,%ecx
40b345:	74 0f                	je     0x40b356
40b347:	8b 16                	mov    (%esi),%edx
40b349:	89 17                	mov    %edx,(%edi)
40b34b:	83 c7 04             	add    $0x4,%edi
40b34e:	83 c6 04             	add    $0x4,%esi
40b351:	83 e9 01             	sub    $0x1,%ecx
40b354:	75 f1                	jne    0x40b347
40b356:	8b c8                	mov    %eax,%ecx
40b358:	83 e1 03             	and    $0x3,%ecx
40b35b:	74 13                	je     0x40b370
40b35d:	8a 06                	mov    (%esi),%al
40b35f:	88 07                	mov    %al,(%edi)
40b361:	46                   	inc    %esi
40b362:	47                   	inc    %edi
40b363:	49                   	dec    %ecx
40b364:	75 f7                	jne    0x40b35d
40b366:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b36d:	8d 49 00             	lea    0x0(%ecx),%ecx
40b370:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b374:	5e                   	pop    %esi
40b375:	5f                   	pop    %edi
40b376:	c3                   	ret
40b377:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b37e:	8b ff                	mov    %edi,%edi
40b380:	ba 10 00 00 00       	mov    $0x10,%edx
40b385:	2b d0                	sub    %eax,%edx
40b387:	2b ca                	sub    %edx,%ecx
40b389:	51                   	push   %ecx
40b38a:	8b c2                	mov    %edx,%eax
40b38c:	8b c8                	mov    %eax,%ecx
40b38e:	83 e1 03             	and    $0x3,%ecx
40b391:	74 09                	je     0x40b39c
40b393:	8a 16                	mov    (%esi),%dl
40b395:	88 17                	mov    %dl,(%edi)
40b397:	46                   	inc    %esi
40b398:	47                   	inc    %edi
40b399:	49                   	dec    %ecx
40b39a:	75 f7                	jne    0x40b393
40b39c:	c1 e8 02             	shr    $0x2,%eax
40b39f:	74 0d                	je     0x40b3ae
40b3a1:	8b 16                	mov    (%esi),%edx
40b3a3:	89 17                	mov    %edx,(%edi)
40b3a5:	8d 76 04             	lea    0x4(%esi),%esi
40b3a8:	8d 7f 04             	lea    0x4(%edi),%edi
40b3ab:	48                   	dec    %eax
40b3ac:	75 f3                	jne    0x40b3a1
40b3ae:	59                   	pop    %ecx
40b3af:	e9 e9 fe ff ff       	jmp    0x40b29d
40b3b4:	cc                   	int3
40b3b5:	cc                   	int3
40b3b6:	cc                   	int3
40b3b7:	cc                   	int3
40b3b8:	cc                   	int3
40b3b9:	cc                   	int3
40b3ba:	cc                   	int3
40b3bb:	cc                   	int3
40b3bc:	cc                   	int3
40b3bd:	cc                   	int3
40b3be:	cc                   	int3
40b3bf:	cc                   	int3
40b3c0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40b3c4:	0f b6 44 24 08       	movzbl 0x8(%esp),%eax
40b3c9:	8b d7                	mov    %edi,%edx
40b3cb:	8b 7c 24 04          	mov    0x4(%esp),%edi
40b3cf:	85 c9                	test   %ecx,%ecx
40b3d1:	0f 84 3c 01 00 00    	je     0x40b513
40b3d7:	69 c0 01 01 01 01    	imul   $0x1010101,%eax,%eax
40b3dd:	83 f9 20             	cmp    $0x20,%ecx
40b3e0:	0f 86 df 00 00 00    	jbe    0x40b4c5
40b3e6:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
40b3ec:	0f 82 8b 00 00 00    	jb     0x40b47d
40b3f2:	0f ba 25 d4 f5 43 00 	btl    $0x1,0x43f5d4
40b3f9:	01
40b3fa:	73 09                	jae    0x40b405
40b3fc:	f3 aa                	rep stos %al,%es:(%edi)
40b3fe:	8b 44 24 04          	mov    0x4(%esp),%eax
40b402:	8b fa                	mov    %edx,%edi
40b404:	c3                   	ret
40b405:	0f ba 25 10 d1 43 00 	btl    $0x1,0x43d110
40b40c:	01
40b40d:	0f 83 b2 00 00 00    	jae    0x40b4c5
40b413:	66 0f 6e c0          	movd   %eax,%xmm0
40b417:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
40b41c:	03 cf                	add    %edi,%ecx
40b41e:	0f 11 07             	movups %xmm0,(%edi)
40b421:	83 c7 10             	add    $0x10,%edi
40b424:	83 e7 f0             	and    $0xfffffff0,%edi
40b427:	2b cf                	sub    %edi,%ecx
40b429:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
40b42f:	76 4c                	jbe    0x40b47d
40b431:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b438:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b43f:	90                   	nop
40b440:	66 0f 7f 07          	movdqa %xmm0,(%edi)
40b444:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
40b449:	66 0f 7f 47 20       	movdqa %xmm0,0x20(%edi)
40b44e:	66 0f 7f 47 30       	movdqa %xmm0,0x30(%edi)
40b453:	66 0f 7f 47 40       	movdqa %xmm0,0x40(%edi)
40b458:	66 0f 7f 47 50       	movdqa %xmm0,0x50(%edi)
40b45d:	66 0f 7f 47 60       	movdqa %xmm0,0x60(%edi)
40b462:	66 0f 7f 47 70       	movdqa %xmm0,0x70(%edi)
40b467:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
40b46d:	81 e9 80 00 00 00    	sub    $0x80,%ecx
40b473:	f7 c1 00 ff ff ff    	test   $0xffffff00,%ecx
40b479:	75 c5                	jne    0x40b440
40b47b:	eb 13                	jmp    0x40b490
40b47d:	0f ba 25 10 d1 43 00 	btl    $0x1,0x43d110
40b484:	01
40b485:	73 3e                	jae    0x40b4c5
40b487:	66 0f 6e c0          	movd   %eax,%xmm0
40b48b:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
40b490:	83 f9 20             	cmp    $0x20,%ecx
40b493:	72 1c                	jb     0x40b4b1
40b495:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40b499:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%edi)
40b49e:	83 c7 20             	add    $0x20,%edi
40b4a1:	83 e9 20             	sub    $0x20,%ecx
40b4a4:	83 f9 20             	cmp    $0x20,%ecx
40b4a7:	73 ec                	jae    0x40b495
40b4a9:	f7 c1 1f 00 00 00    	test   $0x1f,%ecx
40b4af:	74 62                	je     0x40b513
40b4b1:	8d 7c 0f e0          	lea    -0x20(%edi,%ecx,1),%edi
40b4b5:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40b4b9:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%edi)
40b4be:	8b 44 24 04          	mov    0x4(%esp),%eax
40b4c2:	8b fa                	mov    %edx,%edi
40b4c4:	c3                   	ret
40b4c5:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40b4cb:	74 0e                	je     0x40b4db
40b4cd:	88 07                	mov    %al,(%edi)
40b4cf:	47                   	inc    %edi
40b4d0:	83 e9 01             	sub    $0x1,%ecx
40b4d3:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40b4d9:	75 f2                	jne    0x40b4cd
40b4db:	f7 c1 04 00 00 00    	test   $0x4,%ecx
40b4e1:	74 08                	je     0x40b4eb
40b4e3:	89 07                	mov    %eax,(%edi)
40b4e5:	83 c7 04             	add    $0x4,%edi
40b4e8:	83 e9 04             	sub    $0x4,%ecx
40b4eb:	f7 c1 f8 ff ff ff    	test   $0xfffffff8,%ecx
40b4f1:	74 20                	je     0x40b513
40b4f3:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b4fa:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40b500:	89 07                	mov    %eax,(%edi)
40b502:	89 47 04             	mov    %eax,0x4(%edi)
40b505:	83 c7 08             	add    $0x8,%edi
40b508:	83 e9 08             	sub    $0x8,%ecx
40b50b:	f7 c1 f8 ff ff ff    	test   $0xfffffff8,%ecx
40b511:	75 ed                	jne    0x40b500
40b513:	8b 44 24 04          	mov    0x4(%esp),%eax
40b517:	8b fa                	mov    %edx,%edi
40b519:	c3                   	ret
40b51a:	cc                   	int3
40b51b:	cc                   	int3
40b51c:	cc                   	int3
40b51d:	cc                   	int3
40b51e:	cc                   	int3
40b51f:	cc                   	int3
40b520:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b524:	8b 44 24 04          	mov    0x4(%esp),%eax
40b528:	57                   	push   %edi
40b529:	53                   	push   %ebx
40b52a:	56                   	push   %esi
40b52b:	83 3d d0 f5 43 00 01 	cmpl   $0x1,0x43f5d0
40b532:	0f 82 d2 01 00 00    	jb     0x40b70a
40b538:	0f 87 01 01 00 00    	ja     0x40b63f
40b53e:	0f b6 11             	movzbl (%ecx),%edx
40b541:	8b da                	mov    %edx,%ebx
40b543:	c1 e2 08             	shl    $0x8,%edx
40b546:	0b d3                	or     %ebx,%edx
40b548:	0f 84 ed 00 00 00    	je     0x40b63b
40b54e:	66 0f 6e da          	movd   %edx,%xmm3
40b552:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
40b557:	0f 16 db             	movlhps %xmm3,%xmm3
40b55a:	66 0f ef c0          	pxor   %xmm0,%xmm0
40b55e:	8b f1                	mov    %ecx,%esi
40b560:	83 cf ff             	or     $0xffffffff,%edi
40b563:	0f b6 19             	movzbl (%ecx),%ebx
40b566:	83 c1 01             	add    $0x1,%ecx
40b569:	85 db                	test   %ebx,%ebx
40b56b:	74 1d                	je     0x40b58a
40b56d:	f7 c1 0f 00 00 00    	test   $0xf,%ecx
40b573:	75 ee                	jne    0x40b563
40b575:	66 0f 6f 11          	movdqa (%ecx),%xmm2
40b579:	66 0f 74 d0          	pcmpeqb %xmm0,%xmm2
40b57d:	66 0f d7 da          	pmovmskb %xmm2,%ebx
40b581:	85 db                	test   %ebx,%ebx
40b583:	75 05                	jne    0x40b58a
40b585:	bf 0f 00 00 00       	mov    $0xf,%edi
40b58a:	66 0f 7e da          	movd   %xmm3,%edx
40b58e:	bb ff 0f 00 00       	mov    $0xfff,%ebx
40b593:	23 d8                	and    %eax,%ebx
40b595:	81 fb f0 0f 00 00    	cmp    $0xff0,%ebx
40b59b:	77 27                	ja     0x40b5c4
40b59d:	f3 0f 6f 08          	movdqu (%eax),%xmm1
40b5a1:	66 0f ef d2          	pxor   %xmm2,%xmm2
40b5a5:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
40b5a9:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
40b5ad:	66 0f eb ca          	por    %xmm2,%xmm1
40b5b1:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
40b5b5:	83 c0 10             	add    $0x10,%eax
40b5b8:	85 db                	test   %ebx,%ebx
40b5ba:	74 d2                	je     0x40b58e
40b5bc:	0f bc db             	bsf    %ebx,%ebx
40b5bf:	83 e8 10             	sub    $0x10,%eax
40b5c2:	03 c3                	add    %ebx,%eax
40b5c4:	0f b6 18             	movzbl (%eax),%ebx
40b5c7:	85 db                	test   %ebx,%ebx
40b5c9:	0f 84 6a 00 00 00    	je     0x40b639
40b5cf:	83 c0 01             	add    $0x1,%eax
40b5d2:	3a d3                	cmp    %bl,%dl
40b5d4:	75 b8                	jne    0x40b58e
40b5d6:	8b d0                	mov    %eax,%edx
40b5d8:	8d 4e 01             	lea    0x1(%esi),%ecx
40b5db:	bb ff 0f 00 00       	mov    $0xfff,%ebx
40b5e0:	85 cf                	test   %ecx,%edi
40b5e2:	75 39                	jne    0x40b61d
40b5e4:	23 da                	and    %edx,%ebx
40b5e6:	81 fb f0 0f 00 00    	cmp    $0xff0,%ebx
40b5ec:	77 2f                	ja     0x40b61d
40b5ee:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
40b5f2:	66 0f 6f 11          	movdqa (%ecx),%xmm2
40b5f6:	66 0f 74 ca          	pcmpeqb %xmm2,%xmm1
40b5fa:	66 0f 74 d0          	pcmpeqb %xmm0,%xmm2
40b5fe:	66 0f 74 c8          	pcmpeqb %xmm0,%xmm1
40b602:	66 0f eb d1          	por    %xmm1,%xmm2
40b606:	66 0f d7 da          	pmovmskb %xmm2,%ebx
40b60a:	85 db                	test   %ebx,%ebx
40b60c:	75 08                	jne    0x40b616
40b60e:	83 c2 10             	add    $0x10,%edx
40b611:	83 c1 10             	add    $0x10,%ecx
40b614:	eb c5                	jmp    0x40b5db
40b616:	0f bc db             	bsf    %ebx,%ebx
40b619:	03 d3                	add    %ebx,%edx
40b61b:	03 cb                	add    %ebx,%ecx
40b61d:	0f b6 19             	movzbl (%ecx),%ebx
40b620:	85 db                	test   %ebx,%ebx
40b622:	74 10                	je     0x40b634
40b624:	3a 1a                	cmp    (%edx),%bl
40b626:	0f 85 5e ff ff ff    	jne    0x40b58a
40b62c:	83 c2 01             	add    $0x1,%edx
40b62f:	83 c1 01             	add    $0x1,%ecx
40b632:	eb a7                	jmp    0x40b5db
40b634:	48                   	dec    %eax
40b635:	5e                   	pop    %esi
40b636:	5b                   	pop    %ebx