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
4026d1:	56                   	push   %esi
4026d2:	ff 75 fc             	push   -0x4(%ebp)
4026d5:	57                   	push   %edi
4026d6:	e8 75 ad 01 00       	call   0x41d450
4026db:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4026de:	33 c0                	xor    %eax,%eax
4026e0:	83 c4 0c             	add    $0xc,%esp
4026e3:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
4026e7:	83 f9 08             	cmp    $0x8,%ecx
4026ea:	72 2d                	jb     0x402719
4026ec:	8b 03                	mov    (%ebx),%eax
4026ee:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4026f5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4026fb:	72 12                	jb     0x40270f
4026fd:	8b 50 fc             	mov    -0x4(%eax),%edx
402700:	83 c1 23             	add    $0x23,%ecx
402703:	2b c2                	sub    %edx,%eax
402705:	83 c0 fc             	add    $0xfffffffc,%eax
402708:	83 f8 1f             	cmp    $0x1f,%eax
40270b:	77 23                	ja     0x402730
40270d:	8b c2                	mov    %edx,%eax
40270f:	51                   	push   %ecx
402710:	50                   	push   %eax
402711:	e8 f8 91 01 00       	call   0x41b90e
402716:	83 c4 08             	add    $0x8,%esp
402719:	89 3b                	mov    %edi,(%ebx)
40271b:	8b c3                	mov    %ebx,%eax
40271d:	5f                   	pop    %edi
40271e:	5e                   	pop    %esi
40271f:	5b                   	pop    %ebx
402720:	8b e5                	mov    %ebp,%esp
402722:	5d                   	pop    %ebp
402723:	c2 0c 00             	ret    $0xc
402726:	e8 d5 ea ff ff       	call   0x401200
40272b:	e8 70 eb ff ff       	call   0x4012a0
402730:	e8 4a e3 01 00       	call   0x420a7f
402735:	cc                   	int3
402736:	cc                   	int3
402737:	cc                   	int3
402738:	cc                   	int3
402739:	cc                   	int3
40273a:	cc                   	int3
40273b:	cc                   	int3
40273c:	cc                   	int3
40273d:	cc                   	int3
40273e:	cc                   	int3
40273f:	cc                   	int3
402740:	55                   	push   %ebp
402741:	8b ec                	mov    %esp,%ebp
402743:	83 ec 14             	sub    $0x14,%esp
402746:	8b 45 10             	mov    0x10(%ebp),%eax
402749:	8b 55 08             	mov    0x8(%ebp),%edx
40274c:	53                   	push   %ebx
40274d:	8b d9                	mov    %ecx,%ebx
40274f:	89 45 f0             	mov    %eax,-0x10(%ebp)
402752:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
402757:	56                   	push   %esi
402758:	8b c1                	mov    %ecx,%eax
40275a:	8b 73 10             	mov    0x10(%ebx),%esi
40275d:	2b c6                	sub    %esi,%eax
40275f:	89 75 fc             	mov    %esi,-0x4(%ebp)
402762:	57                   	push   %edi
402763:	3b c2                	cmp    %edx,%eax
402765:	0f 82 4b 01 00 00    	jb     0x4028b6
40276b:	8d 04 16             	lea    (%esi,%edx,1),%eax
40276e:	8b 73 14             	mov    0x14(%ebx),%esi
402771:	8b f8                	mov    %eax,%edi
402773:	89 45 f8             	mov    %eax,-0x8(%ebp)
402776:	83 cf 07             	or     $0x7,%edi
402779:	89 75 f4             	mov    %esi,-0xc(%ebp)
40277c:	3b f9                	cmp    %ecx,%edi
40277e:	76 0b                	jbe    0x40278b
402780:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402785:	8b f9                	mov    %ecx,%edi
402787:	03 c0                	add    %eax,%eax
402789:	eb 36                	jmp    0x4027c1
40278b:	8b c6                	mov    %esi,%eax
40278d:	d1 e8                	shr    $1,%eax
40278f:	2b c8                	sub    %eax,%ecx
402791:	3b f1                	cmp    %ecx,%esi
402793:	76 0e                	jbe    0x4027a3
402795:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40279a:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40279f:	03 c0                	add    %eax,%eax
4027a1:	eb 1e                	jmp    0x4027c1
4027a3:	03 c6                	add    %esi,%eax
4027a5:	3b f8                	cmp    %eax,%edi
4027a7:	0f 42 f8             	cmovb  %eax,%edi
4027aa:	8d 47 01             	lea    0x1(%edi),%eax
4027ad:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
4027b2:	0f 87 f9 00 00 00    	ja     0x4028b1
4027b8:	03 c0                	add    %eax,%eax
4027ba:	3d 00 10 00 00       	cmp    $0x1000,%eax
4027bf:	72 27                	jb     0x4027e8
4027c1:	8d 48 23             	lea    0x23(%eax),%ecx
4027c4:	3b c8                	cmp    %eax,%ecx
4027c6:	0f 86 e5 00 00 00    	jbe    0x4028b1
4027cc:	51                   	push   %ecx
4027cd:	e8 0c 91 01 00       	call   0x41b8de
4027d2:	83 c4 04             	add    $0x4,%esp
4027d5:	85 c0                	test   %eax,%eax
4027d7:	0f 84 de 00 00 00    	je     0x4028bb
4027dd:	8d 70 23             	lea    0x23(%eax),%esi
4027e0:	83 e6 e0             	and    $0xffffffe0,%esi
4027e3:	89 46 fc             	mov    %eax,-0x4(%esi)
4027e6:	eb 13                	jmp    0x4027fb
4027e8:	85 c0                	test   %eax,%eax
4027ea:	74 0d                	je     0x4027f9
4027ec:	50                   	push   %eax
4027ed:	e8 ec 90 01 00       	call   0x41b8de
4027f2:	83 c4 04             	add    $0x4,%esp
4027f5:	8b f0                	mov    %eax,%esi
4027f7:	eb 02                	jmp    0x4027fb
4027f9:	33 f6                	xor    %esi,%esi
4027fb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4027fe:	89 43 10             	mov    %eax,0x10(%ebx)
402801:	8b 45 fc             	mov    -0x4(%ebp),%eax
402804:	89 7b 14             	mov    %edi,0x14(%ebx)
402807:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40280a:	8b 45 14             	mov    0x14(%ebp),%eax
40280d:	8d 14 31             	lea    (%ecx,%esi,1),%edx
402810:	89 55 f8             	mov    %edx,-0x8(%ebp)
402813:	51                   	push   %ecx
402814:	8d 3c 00             	lea    (%eax,%eax,1),%edi
402817:	03 45 fc             	add    -0x4(%ebp),%eax
40281a:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
40281e:	89 7d ec             	mov    %edi,-0x14(%ebp)
402821:	8d 04 46             	lea    (%esi,%eax,2),%eax
402824:	89 45 fc             	mov    %eax,-0x4(%ebp)
402827:	72 5d                	jb     0x402886
402829:	8b 3b                	mov    (%ebx),%edi
40282b:	57                   	push   %edi
40282c:	56                   	push   %esi
40282d:	e8 1e ac 01 00       	call   0x41d450
402832:	ff 75 ec             	push   -0x14(%ebp)
402835:	ff 75 f0             	push   -0x10(%ebp)
402838:	ff 75 f8             	push   -0x8(%ebp)
40283b:	e8 10 ac 01 00       	call   0x41d450
402840:	8b 45 fc             	mov    -0x4(%ebp),%eax
402843:	33 c9                	xor    %ecx,%ecx
402845:	83 c4 18             	add    $0x18,%esp
402848:	66 89 08             	mov    %cx,(%eax)
40284b:	8b 45 f4             	mov    -0xc(%ebp),%eax
40284e:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
402855:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40285b:	72 12                	jb     0x40286f
40285d:	8b 57 fc             	mov    -0x4(%edi),%edx
402860:	83 c1 23             	add    $0x23,%ecx
402863:	2b fa                	sub    %edx,%edi
402865:	8d 47 fc             	lea    -0x4(%edi),%eax
402868:	83 f8 1f             	cmp    $0x1f,%eax
40286b:	77 4e                	ja     0x4028bb
40286d:	8b fa                	mov    %edx,%edi
40286f:	51                   	push   %ecx
402870:	57                   	push   %edi
402871:	e8 98 90 01 00       	call   0x41b90e
402876:	83 c4 08             	add    $0x8,%esp
402879:	89 33                	mov    %esi,(%ebx)
40287b:	8b c3                	mov    %ebx,%eax
40287d:	5f                   	pop    %edi
40287e:	5e                   	pop    %esi
40287f:	5b                   	pop    %ebx
402880:	8b e5                	mov    %ebp,%esp
402882:	5d                   	pop    %ebp
402883:	c2 10 00             	ret    $0x10
402886:	53                   	push   %ebx
402887:	56                   	push   %esi
402888:	e8 c3 ab 01 00       	call   0x41d450
40288d:	57                   	push   %edi
40288e:	ff 75 f0             	push   -0x10(%ebp)
402891:	ff 75 f8             	push   -0x8(%ebp)
402894:	e8 b7 ab 01 00       	call   0x41d450
402899:	8b 45 fc             	mov    -0x4(%ebp),%eax
40289c:	83 c4 18             	add    $0x18,%esp
40289f:	33 c9                	xor    %ecx,%ecx