402547:	cc                   	int3
402548:	cc                   	int3
402549:	cc                   	int3
40254a:	cc                   	int3
40254b:	cc                   	int3
40254c:	cc                   	int3
40254d:	cc                   	int3
40254e:	cc                   	int3
40254f:	cc                   	int3
402550:	51                   	push   %ecx
402551:	53                   	push   %ebx
402552:	56                   	push   %esi
402553:	57                   	push   %edi
402554:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
402558:	33 f6                	xor    %esi,%esi
40255a:	8b d9                	mov    %ecx,%ebx
40255c:	89 74 24 0c          	mov    %esi,0xc(%esp)
402560:	85 ff                	test   %edi,%edi
402562:	0f 8e 89 00 00 00    	jle    0x4025f1
402568:	55                   	push   %ebp
402569:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40256d:	8d 49 00             	lea    0x0(%ecx),%ecx
402570:	8b c3                	mov    %ebx,%eax
402572:	e8 19 0d 00 00       	call   0x403290
402577:	85 c0                	test   %eax,%eax
402579:	7e 41                	jle    0x4025bc
40257b:	3b f8                	cmp    %eax,%edi
40257d:	8b f0                	mov    %eax,%esi
40257f:	7d 02                	jge    0x402583
402581:	8b f7                	mov    %edi,%esi
402583:	8b 43 20             	mov    0x20(%ebx),%eax
402586:	8b 08                	mov    (%eax),%ecx
402588:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40258c:	8d 3c 36             	lea    (%esi,%esi,1),%edi
40258f:	57                   	push   %edi
402590:	51                   	push   %ecx
402591:	8d 04 12             	lea    (%edx,%edx,1),%eax
402594:	50                   	push   %eax
402595:	55                   	push   %ebp
402596:	e8 fb 2e 00 00       	call   0x405496
40259b:	8b 43 30             	mov    0x30(%ebx),%eax
40259e:	29 30                	sub    %esi,(%eax)
4025a0:	29 74 24 30          	sub    %esi,0x30(%esp)
4025a4:	01 74 24 20          	add    %esi,0x20(%esp)
4025a8:	8b 43 20             	mov    0x20(%ebx),%eax
4025ab:	8b 74 24 20          	mov    0x20(%esp),%esi
4025af:	03 ef                	add    %edi,%ebp
4025b1:	83 c4 10             	add    $0x10,%esp
4025b4:	01 38                	add    %edi,(%eax)
4025b6:	8b 7c 24 20          	mov    0x20(%esp),%edi
4025ba:	eb 27                	jmp    0x4025e3
4025bc:	8b 13                	mov    (%ebx),%edx
4025be:	8b 42 14             	mov    0x14(%edx),%eax
4025c1:	8b cb                	mov    %ebx,%ecx
4025c3:	ff d0                	call   *%eax
4025c5:	0f b7 c0             	movzwl %ax,%eax
4025c8:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4025cd:	66 3b c8             	cmp    %ax,%cx
4025d0:	74 15                	je     0x4025e7
4025d2:	66 89 45 00          	mov    %ax,0x0(%ebp)
4025d6:	46                   	inc    %esi
4025d7:	83 c5 02             	add    $0x2,%ebp
4025da:	4f                   	dec    %edi
4025db:	89 74 24 10          	mov    %esi,0x10(%esp)
4025df:	89 7c 24 20          	mov    %edi,0x20(%esp)
4025e3:	85 ff                	test   %edi,%edi
4025e5:	7f 89                	jg     0x402570
4025e7:	5d                   	pop    %ebp
4025e8:	5f                   	pop    %edi
4025e9:	8b c6                	mov    %esi,%eax
4025eb:	5e                   	pop    %esi
4025ec:	5b                   	pop    %ebx
4025ed:	59                   	pop    %ecx
4025ee:	c2 0c 00             	ret    $0xc
4025f1:	5f                   	pop    %edi
4025f2:	8b c6                	mov    %esi,%eax
4025f4:	5e                   	pop    %esi
4025f5:	5b                   	pop    %ebx
4025f6:	59                   	pop    %ecx
4025f7:	c2 0c 00             	ret    $0xc
4025fa:	cc                   	int3
4025fb:	cc                   	int3
4025fc:	cc                   	int3
4025fd:	cc                   	int3
4025fe:	cc                   	int3
4025ff:	cc                   	int3
402600:	51                   	push   %ecx
402601:	53                   	push   %ebx
402602:	56                   	push   %esi
402603:	57                   	push   %edi
402604:	8b 7c 24 18          	mov    0x18(%esp),%edi
402608:	33 f6                	xor    %esi,%esi
40260a:	8b d9                	mov    %ecx,%ebx
40260c:	89 74 24 0c          	mov    %esi,0xc(%esp)
402610:	85 ff                	test   %edi,%edi
402612:	0f 8e 82 00 00 00    	jle    0x40269a
402618:	55                   	push   %ebp
402619:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40261d:	8d 49 00             	lea    0x0(%ecx),%ecx
402620:	8b c3                	mov    %ebx,%eax
402622:	e8 89 0c 00 00       	call   0x4032b0
402627:	85 c0                	test   %eax,%eax
402629:	7e 3c                	jle    0x402667
40262b:	3b f8                	cmp    %eax,%edi
40262d:	8b f0                	mov    %eax,%esi
40262f:	7d 02                	jge    0x402633
402631:	8b f7                	mov    %edi,%esi
402633:	8b 4b 24             	mov    0x24(%ebx),%ecx
402636:	8b 11                	mov    (%ecx),%edx
402638:	8d 3c 36             	lea    (%esi,%esi,1),%edi
40263b:	57                   	push   %edi
40263c:	55                   	push   %ebp
40263d:	03 c0                	add    %eax,%eax
40263f:	50                   	push   %eax
402640:	52                   	push   %edx
402641:	e8 50 2e 00 00       	call   0x405496
402646:	8b 43 34             	mov    0x34(%ebx),%eax
402649:	29 30                	sub    %esi,(%eax)
40264b:	29 74 24 2c          	sub    %esi,0x2c(%esp)
40264f:	01 74 24 20          	add    %esi,0x20(%esp)
402653:	8b 43 24             	mov    0x24(%ebx),%eax
402656:	8b 74 24 20          	mov    0x20(%esp),%esi
40265a:	03 ef                	add    %edi,%ebp
40265c:	83 c4 10             	add    $0x10,%esp
40265f:	01 38                	add    %edi,(%eax)
402661:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
402665:	eb 25                	jmp    0x40268c
402667:	0f b7 45 00          	movzwl 0x0(%ebp),%eax
40266b:	8b 13                	mov    (%ebx),%edx
40266d:	50                   	push   %eax
40266e:	8b 42 04             	mov    0x4(%edx),%eax
402671:	8b cb                	mov    %ebx,%ecx
402673:	ff d0                	call   *%eax
402675:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40267a:	66 3b c8             	cmp    %ax,%cx
40267d:	74 11                	je     0x402690
40267f:	46                   	inc    %esi
402680:	83 c5 02             	add    $0x2,%ebp
402683:	4f                   	dec    %edi
402684:	89 74 24 10          	mov    %esi,0x10(%esp)
402688:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40268c:	85 ff                	test   %edi,%edi
40268e:	7f 90                	jg     0x402620
402690:	5d                   	pop    %ebp
402691:	5f                   	pop    %edi
402692:	8b c6                	mov    %esi,%eax
402694:	5e                   	pop    %esi
402695:	5b                   	pop    %ebx
402696:	59                   	pop    %ecx
402697:	c2 08 00             	ret    $0x8
40269a:	5f                   	pop    %edi
40269b:	8b c6                	mov    %esi,%eax
40269d:	5e                   	pop    %esi
40269e:	5b                   	pop    %ebx
40269f:	59                   	pop    %ecx
4026a0:	c2 08 00             	ret    $0x8
4026a3:	cc                   	int3
4026a4:	cc                   	int3
4026a5:	cc                   	int3
4026a6:	cc                   	int3
4026a7:	cc                   	int3
4026a8:	cc                   	int3
4026a9:	cc                   	int3
4026aa:	cc                   	int3
4026ab:	cc                   	int3
4026ac:	cc                   	int3
4026ad:	cc                   	int3
4026ae:	cc                   	int3
4026af:	cc                   	int3
4026b0:	8b 44 24 04          	mov    0x4(%esp),%eax
4026b4:	8b 0d 00 a2 41 00    	mov    0x41a200,%ecx
4026ba:	89 08                	mov    %ecx,(%eax)
4026bc:	33 c9                	xor    %ecx,%ecx
4026be:	89 48 08             	mov    %ecx,0x8(%eax)
4026c1:	89 48 0c             	mov    %ecx,0xc(%eax)
4026c4:	89 48 10             	mov    %ecx,0x10(%eax)
4026c7:	c2 10 00             	ret    $0x10
4026ca:	cc                   	int3
4026cb:	cc                   	int3
4026cc:	cc                   	int3
4026cd:	cc                   	int3
4026ce:	cc                   	int3
4026cf:	cc                   	int3
4026d0:	8b 44 24 04          	mov    0x4(%esp),%eax
4026d4:	8b 0d 00 a2 41 00    	mov    0x41a200,%ecx
4026da:	89 08                	mov    %ecx,(%eax)
4026dc:	33 c9                	xor    %ecx,%ecx
4026de:	89 48 08             	mov    %ecx,0x8(%eax)
4026e1:	89 48 0c             	mov    %ecx,0xc(%eax)
4026e4:	89 48 10             	mov    %ecx,0x10(%eax)
4026e7:	c2 20 00             	ret    $0x20
4026ea:	cc                   	int3
4026eb:	cc                   	int3
4026ec:	cc                   	int3
4026ed:	cc                   	int3
4026ee:	cc                   	int3
4026ef:	cc                   	int3
4026f0:	8b c1                	mov    %ecx,%eax
4026f2:	c2 08 00             	ret    $0x8
4026f5:	cc                   	int3
4026f6:	cc                   	int3
4026f7:	cc                   	int3
4026f8:	cc                   	int3
4026f9:	cc                   	int3
4026fa:	cc                   	int3
4026fb:	cc                   	int3
4026fc:	cc                   	int3
4026fd:	cc                   	int3
4026fe:	cc                   	int3
4026ff:	cc                   	int3
402700:	33 c0                	xor    %eax,%eax
402702:	c3                   	ret
402703:	cc                   	int3
402704:	cc                   	int3
402705:	cc                   	int3
402706:	cc                   	int3
402707:	cc                   	int3
402708:	cc                   	int3
402709:	cc                   	int3
40270a:	cc                   	int3
40270b:	cc                   	int3
40270c:	cc                   	int3
40270d:	cc                   	int3
40270e:	cc                   	int3
40270f:	cc                   	int3
402710:	c2 04 00             	ret    $0x4
402713:	cc                   	int3
402714:	cc                   	int3
402715:	cc                   	int3
402716:	cc                   	int3
402717:	cc                   	int3
402718:	cc                   	int3
402719:	cc                   	int3
40271a:	cc                   	int3
40271b:	cc                   	int3
40271c:	cc                   	int3
40271d:	cc                   	int3
40271e:	cc                   	int3
40271f:	cc                   	int3
402720:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402726:	6a ff                	push   $0xffffffff
402728:	68 f8 97 41 00       	push   $0x4197f8
40272d:	50                   	push   %eax
40272e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
402735:	53                   	push   %ebx
402736:	56                   	push   %esi
402737:	8b 74 24 18          	mov    0x18(%esp),%esi
40273b:	57                   	push   %edi
40273c:	33 db                	xor    %ebx,%ebx
40273e:	89 5c 24 14          	mov    %ebx,0x14(%esp)
402742:	8b 46 0c             	mov    0xc(%esi),%eax
402745:	3b c3                	cmp    %ebx,%eax
402747:	74 19                	je     0x402762
402749:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40274d:	8b 7e 10             	mov    0x10(%esi),%edi
402750:	51                   	push   %ecx
402751:	e8 aa 18 00 00       	call   0x404000
402756:	8b 56 0c             	mov    0xc(%esi),%edx
402759:	52                   	push   %edx
40275a:	e8 d7 2b 00 00       	call   0x405336
40275f:	83 c4 04             	add    $0x4,%esp
402762:	8b 06                	mov    (%esi),%eax
402764:	50                   	push   %eax
402765:	89 5e 0c             	mov    %ebx,0xc(%esi)
402768:	89 5e 10             	mov    %ebx,0x10(%esi)
40276b:	89 5e 14             	mov    %ebx,0x14(%esi)
40276e:	e8 c3 2b 00 00       	call   0x405336
402773:	8b 4c 24 10          	mov    0x10(%esp),%ecx
402777:	83 c4 04             	add    $0x4,%esp
40277a:	5f                   	pop    %edi
40277b:	5e                   	pop    %esi
40277c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402783:	5b                   	pop    %ebx
402784:	83 c4 0c             	add    $0xc,%esp
402787:	c2 04 00             	ret    $0x4
40278a:	cc                   	int3
40278b:	cc                   	int3
40278c:	cc                   	int3
40278d:	cc                   	int3
40278e:	cc                   	int3
40278f:	cc                   	int3
402790:	83 ec 0c             	sub    $0xc,%esp
402793:	55                   	push   %ebp
402794:	8b 6b 0c             	mov    0xc(%ebx),%ebp
402797:	56                   	push   %esi
402798:	57                   	push   %edi
402799:	85 ed                	test   %ebp,%ebp
40279b:	75 04                	jne    0x4027a1
40279d:	33 f6                	xor    %esi,%esi
40279f:	eb 18                	jmp    0x4027b9
4027a1:	8b 4b 14             	mov    0x14(%ebx),%ecx
4027a4:	2b cd                	sub    %ebp,%ecx
4027a6:	b8 93 24 49 92       	mov    $0x92492493,%eax
4027ab:	f7 e9                	imul   %ecx
4027ad:	03 d1                	add    %ecx,%edx
4027af:	c1 fa 04             	sar    $0x4,%edx
4027b2:	8b f2                	mov    %edx,%esi
4027b4:	c1 ee 1f             	shr    $0x1f,%esi
4027b7:	03 f2                	add    %edx,%esi
4027b9:	8b 7b 10             	mov    0x10(%ebx),%edi
4027bc:	8b cf                	mov    %edi,%ecx
4027be:	2b cd                	sub    %ebp,%ecx
4027c0:	b8 93 24 49 92       	mov    $0x92492493,%eax
4027c5:	f7 e9                	imul   %ecx
4027c7:	03 d1                	add    %ecx,%edx
4027c9:	c1 fa 04             	sar    $0x4,%edx
4027cc:	8b c2                	mov    %edx,%eax
4027ce:	c1 e8 1f             	shr    $0x1f,%eax
4027d1:	03 c2                	add    %edx,%eax
4027d3:	3b c6                	cmp    %esi,%eax
4027d5:	73 2e                	jae    0x402805
4027d7:	8b 54 24 1c          	mov    0x1c(%esp),%edx
4027db:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4027df:	c6 44 24 10 00       	movb   $0x0,0x10(%esp)
4027e4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4027e8:	51                   	push   %ecx
4027e9:	52                   	push   %edx
4027ea:	50                   	push   %eax
4027eb:	57                   	push   %edi
4027ec:	b9 01 00 00 00       	mov    $0x1,%ecx
4027f1:	e8 6a 17 00 00       	call   0x403f60
4027f6:	83 c7 1c             	add    $0x1c,%edi
4027f9:	89 7b 10             	mov    %edi,0x10(%ebx)
4027fc:	5f                   	pop    %edi
4027fd:	5e                   	pop    %esi
4027fe:	5d                   	pop    %ebp
4027ff:	83 c4 0c             	add    $0xc,%esp
402802:	c2 04 00             	ret    $0x4
402805:	3b ef                	cmp    %edi,%ebp
402807:	76 05                	jbe    0x40280e
402809:	e8 3d 2a 00 00       	call   0x40524b
40280e:	8b 03                	mov    (%ebx),%eax
402810:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
402814:	57                   	push   %edi
402815:	50                   	push   %eax
402816:	51                   	push   %ecx
402817:	8d 54 24 1c          	lea    0x1c(%esp),%edx
40281b:	52                   	push   %edx
40281c:	8b c3                	mov    %ebx,%eax
40281e:	e8 ad 0a 00 00       	call   0x4032d0
402823:	5f                   	pop    %edi
402824:	5e                   	pop    %esi
402825:	5d                   	pop    %ebp
402826:	83 c4 0c             	add    $0xc,%esp
402829:	c2 04 00             	ret    $0x4
40282c:	cc                   	int3
40282d:	cc                   	int3
40282e:	cc                   	int3
40282f:	cc                   	int3
402830:	6a ff                	push   $0xffffffff