402382:	e8 57 95 01 00       	call   0x41b8de
402387:	83 c4 04             	add    $0x4,%esp
40238a:	eb 02                	jmp    0x40238e
40238c:	33 c0                	xor    %eax,%eax
40238e:	8d 0c 7d 02 00 00 00 	lea    0x2(,%edi,2),%ecx
402395:	89 06                	mov    %eax,(%esi)
402397:	51                   	push   %ecx
402398:	ff 75 fc             	push   -0x4(%ebp)
40239b:	89 7e 10             	mov    %edi,0x10(%esi)
40239e:	50                   	push   %eax
40239f:	89 5e 14             	mov    %ebx,0x14(%esi)
4023a2:	e8 a9 b0 01 00       	call   0x41d450
4023a7:	83 c4 0c             	add    $0xc,%esp
4023aa:	8b c6                	mov    %esi,%eax
4023ac:	5b                   	pop    %ebx
4023ad:	5f                   	pop    %edi
4023ae:	5e                   	pop    %esi
4023af:	8b e5                	mov    %ebp,%esp
4023b1:	5d                   	pop    %ebp
4023b2:	c2 04 00             	ret    $0x4
4023b5:	e8 46 ee ff ff       	call   0x401200
4023ba:	e8 e1 ee ff ff       	call   0x4012a0
4023bf:	e8 bb e6 01 00       	call   0x420a7f
4023c4:	cc                   	int3
4023c5:	cc                   	int3
4023c6:	cc                   	int3
4023c7:	cc                   	int3
4023c8:	cc                   	int3
4023c9:	cc                   	int3
4023ca:	cc                   	int3
4023cb:	cc                   	int3
4023cc:	cc                   	int3
4023cd:	cc                   	int3
4023ce:	cc                   	int3
4023cf:	cc                   	int3
4023d0:	55                   	push   %ebp
4023d1:	8b ec                	mov    %esp,%ebp
4023d3:	83 ec 0c             	sub    $0xc,%esp
4023d6:	53                   	push   %ebx
4023d7:	56                   	push   %esi
4023d8:	57                   	push   %edi
4023d9:	8b f9                	mov    %ecx,%edi
4023db:	8b f2                	mov    %edx,%esi
4023dd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4023e0:	8b d1                	mov    %ecx,%edx
4023e2:	89 7d f8             	mov    %edi,-0x8(%ebp)
4023e5:	8d 5a 02             	lea    0x2(%edx),%ebx
4023e8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
4023ef:	00
4023f0:	66 8b 02             	mov    (%edx),%ax
4023f3:	83 c2 02             	add    $0x2,%edx
4023f6:	66 85 c0             	test   %ax,%ax
4023f9:	75 f5                	jne    0x4023f0
4023fb:	8b 46 14             	mov    0x14(%esi),%eax
4023fe:	2b d3                	sub    %ebx,%edx
402400:	8b 5e 10             	mov    0x10(%esi),%ebx
402403:	2b c3                	sub    %ebx,%eax
402405:	d1 fa                	sar    $1,%edx
402407:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40240a:	3b d0                	cmp    %eax,%edx
40240c:	77 32                	ja     0x402440
40240e:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
402412:	8d 04 13             	lea    (%ebx,%edx,1),%eax
402415:	89 45 f8             	mov    %eax,-0x8(%ebp)
402418:	8b de                	mov    %esi,%ebx
40241a:	89 46 10             	mov    %eax,0x10(%esi)
40241d:	72 02                	jb     0x402421
40241f:	8b 1e                	mov    (%esi),%ebx
402421:	8d 04 12             	lea    (%edx,%edx,1),%eax
402424:	50                   	push   %eax
402425:	8b 45 fc             	mov    -0x4(%ebp),%eax
402428:	51                   	push   %ecx
402429:	8d 04 43             	lea    (%ebx,%eax,2),%eax
40242c:	50                   	push   %eax
40242d:	e8 1e b0 01 00       	call   0x41d450
402432:	8b 45 f8             	mov    -0x8(%ebp),%eax
402435:	83 c4 0c             	add    $0xc,%esp
402438:	33 c9                	xor    %ecx,%ecx
40243a:	66 89 0c 43          	mov    %cx,(%ebx,%eax,2)
40243e:	eb 13                	jmp    0x402453
402440:	52                   	push   %edx
402441:	51                   	push   %ecx
402442:	c6 45 f8 00          	movb   $0x0,-0x8(%ebp)
402446:	8b ce                	mov    %esi,%ecx
402448:	ff 75 f8             	push   -0x8(%ebp)
40244b:	52                   	push   %edx
40244c:	e8 ef 02 00 00       	call   0x402740
402451:	8b f0                	mov    %eax,%esi
402453:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
402459:	33 c0                	xor    %eax,%eax
40245b:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
402462:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
402469:	0f 10 06             	movups (%esi),%xmm0
40246c:	0f 11 07             	movups %xmm0,(%edi)
40246f:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
402474:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
402479:	66 89 06             	mov    %ax,(%esi)
40247c:	8b c7                	mov    %edi,%eax
40247e:	5f                   	pop    %edi
40247f:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
402486:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40248d:	5e                   	pop    %esi
40248e:	5b                   	pop    %ebx
40248f:	8b e5                	mov    %ebp,%esp
402491:	5d                   	pop    %ebp
402492:	c3                   	ret
402493:	cc                   	int3
402494:	cc                   	int3
402495:	cc                   	int3
402496:	cc                   	int3
402497:	cc                   	int3
402498:	cc                   	int3
402499:	cc                   	int3
40249a:	cc                   	int3
40249b:	cc                   	int3
40249c:	cc                   	int3
40249d:	cc                   	int3
40249e:	cc                   	int3
40249f:	cc                   	int3
4024a0:	55                   	push   %ebp
4024a1:	8b ec                	mov    %esp,%ebp
4024a3:	51                   	push   %ecx
4024a4:	8b c2                	mov    %edx,%eax
4024a6:	8b d1                	mov    %ecx,%edx
4024a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4024ab:	3b c8                	cmp    %eax,%ecx
4024ad:	53                   	push   %ebx
4024ae:	56                   	push   %esi
4024af:	8b 75 08             	mov    0x8(%ebp),%esi
4024b2:	57                   	push   %edi
4024b3:	8b f8                	mov    %eax,%edi
4024b5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024b8:	0f 42 f9             	cmovb  %ecx,%edi
4024bb:	85 ff                	test   %edi,%edi
4024bd:	74 1e                	je     0x4024dd
4024bf:	2b d6                	sub    %esi,%edx
4024c1:	0f b7 04 32          	movzwl (%edx,%esi,1),%eax
4024c5:	0f b7 0e             	movzwl (%esi),%ecx
4024c8:	8b d8                	mov    %eax,%ebx
4024ca:	66 3b c1             	cmp    %cx,%ax
4024cd:	75 1c                	jne    0x4024eb
4024cf:	83 c6 02             	add    $0x2,%esi
4024d2:	83 ef 01             	sub    $0x1,%edi
4024d5:	75 ea                	jne    0x4024c1
4024d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4024da:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4024dd:	3b c8                	cmp    %eax,%ecx
4024df:	76 1a                	jbe    0x4024fb
4024e1:	5f                   	pop    %edi
4024e2:	5e                   	pop    %esi
4024e3:	83 c8 ff             	or     $0xffffffff,%eax
4024e6:	5b                   	pop    %ebx
4024e7:	8b e5                	mov    %ebp,%esp
4024e9:	5d                   	pop    %ebp
4024ea:	c3                   	ret
4024eb:	66 3b d9             	cmp    %cx,%bx
4024ee:	5f                   	pop    %edi
4024ef:	1b c0                	sbb    %eax,%eax
4024f1:	83 e0 fe             	and    $0xfffffffe,%eax
4024f4:	5e                   	pop    %esi
4024f5:	40                   	inc    %eax
4024f6:	5b                   	pop    %ebx
4024f7:	8b e5                	mov    %ebp,%esp
4024f9:	5d                   	pop    %ebp
4024fa:	c3                   	ret
4024fb:	5f                   	pop    %edi
4024fc:	1b c0                	sbb    %eax,%eax
4024fe:	5e                   	pop    %esi
4024ff:	f7 d8                	neg    %eax
402501:	5b                   	pop    %ebx
402502:	8b e5                	mov    %ebp,%esp
402504:	5d                   	pop    %ebp
402505:	c3                   	ret
402506:	cc                   	int3
402507:	cc                   	int3
402508:	cc                   	int3
402509:	cc                   	int3
40250a:	cc                   	int3
40250b:	cc                   	int3
40250c:	cc                   	int3
40250d:	cc                   	int3
40250e:	cc                   	int3
40250f:	cc                   	int3
402510:	55                   	push   %ebp
402511:	8b ec                	mov    %esp,%ebp
402513:	83 ec 08             	sub    $0x8,%esp
402516:	8b 45 08             	mov    0x8(%ebp),%eax
402519:	53                   	push   %ebx
40251a:	56                   	push   %esi
40251b:	8b 75 0c             	mov    0xc(%ebp),%esi
40251e:	8b d9                	mov    %ecx,%ebx
402520:	89 45 f8             	mov    %eax,-0x8(%ebp)
402523:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
402529:	0f 87 c8 00 00 00    	ja     0x4025f7
40252f:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
402536:	83 fe 08             	cmp    $0x8,%esi
402539:	73 1e                	jae    0x402559
40253b:	89 73 10             	mov    %esi,0x10(%ebx)
40253e:	03 f6                	add    %esi,%esi
402540:	56                   	push   %esi
402541:	50                   	push   %eax
402542:	53                   	push   %ebx
402543:	e8 08 af 01 00       	call   0x41d450
402548:	83 c4 0c             	add    $0xc,%esp
40254b:	33 c0                	xor    %eax,%eax
40254d:	66 89 04 1e          	mov    %ax,(%esi,%ebx,1)
402551:	5e                   	pop    %esi
402552:	5b                   	pop    %ebx
402553:	8b e5                	mov    %ebp,%esp
402555:	5d                   	pop    %ebp
402556:	c2 08 00             	ret    $0x8
402559:	57                   	push   %edi
40255a:	8b fe                	mov    %esi,%edi
40255c:	83 cf 07             	or     $0x7,%edi
40255f:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
402565:	76 10                	jbe    0x402577
402567:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40256c:	c7 45 fc fe ff ff 7f 	movl   $0x7ffffffe,-0x4(%ebp)
402573:	03 c0                	add    %eax,%eax
402575:	eb 20                	jmp    0x402597
402577:	b8 0a 00 00 00       	mov    $0xa,%eax
40257c:	3b f8                	cmp    %eax,%edi
40257e:	0f 42 f8             	cmovb  %eax,%edi
402581:	89 7d fc             	mov    %edi,-0x4(%ebp)
402584:	8d 47 01             	lea    0x1(%edi),%eax
402587:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40258c:	77 64                	ja     0x4025f2
40258e:	03 c0                	add    %eax,%eax
402590:	3d 00 10 00 00       	cmp    $0x1000,%eax
402595:	72 1f                	jb     0x4025b6
402597:	8d 48 23             	lea    0x23(%eax),%ecx
40259a:	3b c8                	cmp    %eax,%ecx
40259c:	76 54                	jbe    0x4025f2
40259e:	51                   	push   %ecx
40259f:	e8 3a 93 01 00       	call   0x41b8de
4025a4:	83 c4 04             	add    $0x4,%esp
4025a7:	85 c0                	test   %eax,%eax
4025a9:	74 51                	je     0x4025fc
4025ab:	8d 78 23             	lea    0x23(%eax),%edi
4025ae:	83 e7 e0             	and    $0xffffffe0,%edi
4025b1:	89 47 fc             	mov    %eax,-0x4(%edi)
4025b4:	eb 13                	jmp    0x4025c9
4025b6:	85 c0                	test   %eax,%eax
4025b8:	74 0d                	je     0x4025c7
4025ba:	50                   	push   %eax
4025bb:	e8 1e 93 01 00       	call   0x41b8de
4025c0:	83 c4 04             	add    $0x4,%esp
4025c3:	8b f8                	mov    %eax,%edi
4025c5:	eb 02                	jmp    0x4025c9
4025c7:	33 ff                	xor    %edi,%edi
4025c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4025cc:	89 73 10             	mov    %esi,0x10(%ebx)
4025cf:	03 f6                	add    %esi,%esi
4025d1:	56                   	push   %esi
4025d2:	ff 75 f8             	push   -0x8(%ebp)
4025d5:	89 3b                	mov    %edi,(%ebx)
4025d7:	57                   	push   %edi
4025d8:	89 43 14             	mov    %eax,0x14(%ebx)
4025db:	e8 70 ae 01 00       	call   0x41d450
4025e0:	83 c4 0c             	add    $0xc,%esp
4025e3:	33 c0                	xor    %eax,%eax
4025e5:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
4025e9:	5f                   	pop    %edi
4025ea:	5e                   	pop    %esi
4025eb:	5b                   	pop    %ebx
4025ec:	8b e5                	mov    %ebp,%esp
4025ee:	5d                   	pop    %ebp
4025ef:	c2 08 00             	ret    $0x8
4025f2:	e8 09 ec ff ff       	call   0x401200
4025f7:	e8 a4 ec ff ff       	call   0x4012a0
4025fc:	e8 7e e4 01 00       	call   0x420a7f
402601:	cc                   	int3
402602:	cc                   	int3
402603:	cc                   	int3
402604:	cc                   	int3
402605:	cc                   	int3
402606:	cc                   	int3
402607:	cc                   	int3
402608:	cc                   	int3
402609:	cc                   	int3
40260a:	cc                   	int3
40260b:	cc                   	int3
40260c:	cc                   	int3
40260d:	cc                   	int3
40260e:	cc                   	int3
40260f:	cc                   	int3
402610:	55                   	push   %ebp
402611:	8b ec                	mov    %esp,%ebp
402613:	83 ec 08             	sub    $0x8,%esp
402616:	8b 45 10             	mov    0x10(%ebp),%eax
402619:	53                   	push   %ebx
40261a:	56                   	push   %esi
40261b:	8b 75 08             	mov    0x8(%ebp),%esi
40261e:	8b d9                	mov    %ecx,%ebx
402620:	89 45 fc             	mov    %eax,-0x4(%ebp)
402623:	57                   	push   %edi
402624:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
40262a:	0f 87 fb 00 00 00    	ja     0x40272b
402630:	8b 4b 14             	mov    0x14(%ebx),%ecx
402633:	83 ce 07             	or     $0x7,%esi
402636:	89 4d f8             	mov    %ecx,-0x8(%ebp)
402639:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
40263f:	76 0e                	jbe    0x40264f
402641:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402646:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40264b:	03 c0                	add    %eax,%eax
40264d:	eb 3c                	jmp    0x40268b
40264f:	8b d1                	mov    %ecx,%edx
402651:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
402656:	d1 ea                	shr    $1,%edx
402658:	2b c2                	sub    %edx,%eax
40265a:	3b c8                	cmp    %eax,%ecx
40265c:	76 0e                	jbe    0x40266c
40265e:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402663:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
402668:	03 c0                	add    %eax,%eax
40266a:	eb 1f                	jmp    0x40268b
40266c:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
40266f:	3b f0                	cmp    %eax,%esi
402671:	0f 42 f0             	cmovb  %eax,%esi
402674:	8d 46 01             	lea    0x1(%esi),%eax
402677:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40267c:	0f 87 a4 00 00 00    	ja     0x402726
402682:	03 c0                	add    %eax,%eax
402684:	3d 00 10 00 00       	cmp    $0x1000,%eax
402689:	72 27                	jb     0x4026b2
40268b:	8d 48 23             	lea    0x23(%eax),%ecx
40268e:	3b c8                	cmp    %eax,%ecx
402690:	0f 86 90 00 00 00    	jbe    0x402726
402696:	51                   	push   %ecx
402697:	e8 42 92 01 00       	call   0x41b8de
40269c:	83 c4 04             	add    $0x4,%esp
40269f:	85 c0                	test   %eax,%eax
4026a1:	0f 84 89 00 00 00    	je     0x402730
4026a7:	8d 78 23             	lea    0x23(%eax),%edi
4026aa:	83 e7 e0             	and    $0xffffffe0,%edi
4026ad:	89 47 fc             	mov    %eax,-0x4(%edi)
4026b0:	eb 13                	jmp    0x4026c5
4026b2:	85 c0                	test   %eax,%eax
4026b4:	74 0d                	je     0x4026c3
4026b6:	50                   	push   %eax
4026b7:	e8 22 92 01 00       	call   0x41b8de
4026bc:	83 c4 04             	add    $0x4,%esp
4026bf:	8b f8                	mov    %eax,%edi
4026c1:	eb 02                	jmp    0x4026c5
4026c3:	33 ff                	xor    %edi,%edi
4026c5:	8b 45 08             	mov    0x8(%ebp),%eax
4026c8:	89 73 14             	mov    %esi,0x14(%ebx)
4026cb:	89 43 10             	mov    %eax,0x10(%ebx)
4026ce:	8d 34 00             	lea    (%eax,%eax,1),%esi