40251b:	89 44 24 04          	mov    %eax,0x4(%esp)
40251f:	3b 1d 1c 56 47 00    	cmp    0x47561c,%ebx
402525:	75 67                	jne    0x40258e
402527:	a1 18 56 47 00       	mov    0x475618,%eax
40252c:	3b 44 24 04          	cmp    0x4(%esp),%eax
402530:	7c 53                	jl     0x402585
402532:	8b 44 24 04          	mov    0x4(%esp),%eax
402536:	29 05 18 56 47 00    	sub    %eax,0x475618
40253c:	8b 44 24 04          	mov    0x4(%esp),%eax
402540:	01 05 1c 56 47 00    	add    %eax,0x47561c
402546:	83 3d 18 56 47 00 0c 	cmpl   $0xc,0x475618
40254d:	7d 18                	jge    0x402567
40254f:	a1 18 56 47 00       	mov    0x475618,%eax
402554:	01 05 1c 56 47 00    	add    %eax,0x47561c
40255a:	03 35 18 56 47 00    	add    0x475618,%esi
402560:	33 c0                	xor    %eax,%eax
402562:	a3 18 56 47 00       	mov    %eax,0x475618
402567:	8b c6                	mov    %esi,%eax
402569:	2b c7                	sub    %edi,%eax
40256b:	01 05 b4 55 47 00    	add    %eax,0x4755b4
402571:	8b 45 00             	mov    0x0(%ebp),%eax
402574:	25 03 00 00 80       	and    $0x80000003,%eax
402579:	0b f0                	or     %eax,%esi
40257b:	89 75 00             	mov    %esi,0x0(%ebp)
40257e:	b0 01                	mov    $0x1,%al
402580:	e9 a2 00 00 00       	jmp    0x402627
402585:	e8 3e f9 ff ff       	call   0x401ec8
40258a:	8b dd                	mov    %ebp,%ebx
40258c:	03 df                	add    %edi,%ebx
40258e:	f6 03 02             	testb  $0x2,(%ebx)
402591:	75 4d                	jne    0x4025e0
402593:	8b d3                	mov    %ebx,%edx
402595:	8b c2                	mov    %edx,%eax
402597:	8b 48 08             	mov    0x8(%eax),%ecx
40259a:	89 0c 24             	mov    %ecx,(%esp)
40259d:	8b 0c 24             	mov    (%esp),%ecx
4025a0:	3b 4c 24 04          	cmp    0x4(%esp),%ecx
4025a4:	7d 0e                	jge    0x4025b4
4025a6:	03 14 24             	add    (%esp),%edx
4025a9:	8b da                	mov    %edx,%ebx
4025ab:	8b 04 24             	mov    (%esp),%eax
4025ae:	29 44 24 04          	sub    %eax,0x4(%esp)
4025b2:	eb 2c                	jmp    0x4025e0
4025b4:	e8 1f f6 ff ff       	call   0x401bd8
4025b9:	8b 44 24 04          	mov    0x4(%esp),%eax
4025bd:	29 04 24             	sub    %eax,(%esp)
4025c0:	83 3c 24 0c          	cmpl   $0xc,(%esp)
4025c4:	7c 0e                	jl     0x4025d4
4025c6:	8b c5                	mov    %ebp,%eax
4025c8:	03 c6                	add    %esi,%eax
4025ca:	8b 14 24             	mov    (%esp),%edx
4025cd:	e8 6e f8 ff ff       	call   0x401e40
4025d2:	eb 3a                	jmp    0x40260e
4025d4:	03 34 24             	add    (%esp),%esi
4025d7:	8b dd                	mov    %ebp,%ebx
4025d9:	03 de                	add    %esi,%ebx
4025db:	83 23 fe             	andl   $0xfffffffe,(%ebx)
4025de:	eb 2e                	jmp    0x40260e
4025e0:	8b 03                	mov    (%ebx),%eax
4025e2:	a9 00 00 00 80       	test   $0x80000000,%eax
4025e7:	74 21                	je     0x40260a
4025e9:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
4025ee:	03 c3                	add    %ebx,%eax
4025f0:	8b d8                	mov    %eax,%ebx
4025f2:	8b 54 24 04          	mov    0x4(%esp),%edx
4025f6:	8b c3                	mov    %ebx,%eax
4025f8:	e8 cf f9 ff ff       	call   0x401fcc
4025fd:	84 c0                	test   %al,%al
4025ff:	74 09                	je     0x40260a
402601:	8b dd                	mov    %ebp,%ebx
402603:	03 df                	add    %edi,%ebx
402605:	e9 0d ff ff ff       	jmp    0x402517
40260a:	33 c0                	xor    %eax,%eax
40260c:	eb 19                	jmp    0x402627
40260e:	8b c6                	mov    %esi,%eax
402610:	2b c7                	sub    %edi,%eax
402612:	01 05 b4 55 47 00    	add    %eax,0x4755b4
402618:	8b 45 00             	mov    0x0(%ebp),%eax
40261b:	25 03 00 00 80       	and    $0x80000003,%eax
402620:	0b f0                	or     %eax,%esi
402622:	89 75 00             	mov    %esi,0x0(%ebp)
402625:	b0 01                	mov    $0x1,%al
402627:	59                   	pop    %ecx
402628:	5a                   	pop    %edx
402629:	5d                   	pop    %ebp
40262a:	5f                   	pop    %edi
40262b:	5e                   	pop    %esi
40262c:	5b                   	pop    %ebx
40262d:	c3                   	ret
40262e:	8b c0                	mov    %eax,%eax
402630:	55                   	push   %ebp
402631:	8b ec                	mov    %esp,%ebp
402633:	51                   	push   %ecx
402634:	53                   	push   %ebx
402635:	56                   	push   %esi
402636:	57                   	push   %edi
402637:	8b f2                	mov    %edx,%esi
402639:	8b d8                	mov    %eax,%ebx
40263b:	80 3d c0 55 47 00 00 	cmpb   $0x0,0x4755c0
402642:	75 13                	jne    0x402657
402644:	e8 eb f3 ff ff       	call   0x401a34
402649:	84 c0                	test   %al,%al
40264b:	75 0a                	jne    0x402657
40264d:	33 c0                	xor    %eax,%eax
40264f:	89 45 fc             	mov    %eax,-0x4(%ebp)
402652:	e9 91 00 00 00       	jmp    0x4026e8
402657:	33 d2                	xor    %edx,%edx
402659:	55                   	push   %ebp
40265a:	68 e1 26 40 00       	push   $0x4026e1
40265f:	64 ff 32             	push   %fs:(%edx)
402662:	64 89 22             	mov    %esp,%fs:(%edx)
402665:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
40266c:	74 0a                	je     0x402678
40266e:	68 c8 55 47 00       	push   $0x4755c8
402673:	e8 18 ed ff ff       	call   0x401390
402678:	8b d6                	mov    %esi,%edx
40267a:	8b c3                	mov    %ebx,%eax
40267c:	e8 d3 fd ff ff       	call   0x402454
402681:	84 c0                	test   %al,%al
402683:	74 05                	je     0x40268a
402685:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402688:	eb 36                	jmp    0x4026c0
40268a:	8b c6                	mov    %esi,%eax
40268c:	e8 8f fa ff ff       	call   0x402120
402691:	8b f8                	mov    %eax,%edi
402693:	8b c3                	mov    %ebx,%eax
402695:	83 e8 04             	sub    $0x4,%eax
402698:	8b 00                	mov    (%eax),%eax
40269a:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
40269f:	83 e8 04             	sub    $0x4,%eax
4026a2:	3b f0                	cmp    %eax,%esi
4026a4:	7d 02                	jge    0x4026a8
4026a6:	8b c6                	mov    %esi,%eax
4026a8:	85 ff                	test   %edi,%edi
4026aa:	74 11                	je     0x4026bd
4026ac:	8b d7                	mov    %edi,%edx
4026ae:	8b cb                	mov    %ebx,%ecx
4026b0:	91                   	xchg   %eax,%ecx
4026b1:	e8 3a 02 00 00       	call   0x4028f0
4026b6:	8b c3                	mov    %ebx,%eax
4026b8:	e8 f3 fb ff ff       	call   0x4022b0
4026bd:	89 7d fc             	mov    %edi,-0x4(%ebp)
4026c0:	33 c0                	xor    %eax,%eax
4026c2:	5a                   	pop    %edx
4026c3:	59                   	pop    %ecx
4026c4:	59                   	pop    %ecx
4026c5:	64 89 10             	mov    %edx,%fs:(%eax)
4026c8:	68 e8 26 40 00       	push   $0x4026e8
4026cd:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
4026d4:	74 0a                	je     0x4026e0
4026d6:	68 c8 55 47 00       	push   $0x4755c8
4026db:	e8 b8 ec ff ff       	call   0x401398
4026e0:	c3                   	ret
4026e1:	e9 6e 13 00 00       	jmp    0x403a54
4026e6:	eb e5                	jmp    0x4026cd
4026e8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4026eb:	5f                   	pop    %edi
4026ec:	5e                   	pop    %esi
4026ed:	5b                   	pop    %ebx
4026ee:	59                   	pop    %ecx
4026ef:	5d                   	pop    %ebp
4026f0:	c3                   	ret
4026f1:	8d 40 00             	lea    0x0(%eax),%eax
4026f4:	53                   	push   %ebx
4026f5:	85 c0                	test   %eax,%eax
4026f7:	7e 15                	jle    0x40270e
4026f9:	ff 15 3c 90 46 00    	call   *0x46903c
4026ff:	8b d8                	mov    %eax,%ebx
402701:	85 db                	test   %ebx,%ebx
402703:	75 0b                	jne    0x402710
402705:	b0 01                	mov    $0x1,%al
402707:	e8 44 01 00 00       	call   0x402850
40270c:	eb 02                	jmp    0x402710
40270e:	33 db                	xor    %ebx,%ebx
402710:	8b c3                	mov    %ebx,%eax
402712:	5b                   	pop    %ebx
402713:	c3                   	ret
402714:	53                   	push   %ebx
402715:	85 c0                	test   %eax,%eax
402717:	74 15                	je     0x40272e
402719:	ff 15 40 90 46 00    	call   *0x469040
40271f:	8b d8                	mov    %eax,%ebx
402721:	85 db                	test   %ebx,%ebx
402723:	74 0b                	je     0x402730
402725:	b0 02                	mov    $0x2,%al
402727:	e8 24 01 00 00       	call   0x402850
40272c:	eb 02                	jmp    0x402730
40272e:	33 db                	xor    %ebx,%ebx
402730:	8b c3                	mov    %ebx,%eax
402732:	5b                   	pop    %ebx
402733:	c3                   	ret
402734:	8b 08                	mov    (%eax),%ecx
402736:	85 c9                	test   %ecx,%ecx
402738:	74 32                	je     0x40276c
40273a:	85 d2                	test   %edx,%edx
40273c:	74 18                	je     0x402756
40273e:	50                   	push   %eax
40273f:	89 c8                	mov    %ecx,%eax
402741:	ff 15 44 90 46 00    	call   *0x469044
402747:	59                   	pop    %ecx
402748:	09 c0                	or     %eax,%eax
40274a:	74 19                	je     0x402765
40274c:	89 01                	mov    %eax,(%ecx)
40274e:	c3                   	ret
40274f:	b0 02                	mov    $0x2,%al
402751:	e9 fa 00 00 00       	jmp    0x402850
402756:	89 10                	mov    %edx,(%eax)
402758:	89 c8                	mov    %ecx,%eax
40275a:	ff 15 40 90 46 00    	call   *0x469040
402760:	09 c0                	or     %eax,%eax
402762:	75 eb                	jne    0x40274f
402764:	c3                   	ret
402765:	b0 01                	mov    $0x1,%al
402767:	e9 e4 00 00 00       	jmp    0x402850
40276c:	85 d2                	test   %edx,%edx
40276e:	74 10                	je     0x402780
402770:	50                   	push   %eax
402771:	89 d0                	mov    %edx,%eax
402773:	ff 15 3c 90 46 00    	call   *0x46903c
402779:	59                   	pop    %ecx
40277a:	09 c0                	or     %eax,%eax
40277c:	74 e7                	je     0x402765
40277e:	89 01                	mov    %eax,(%ecx)
402780:	c3                   	ret
402781:	8d 40 00             	lea    0x0(%eax),%eax
402784:	e8 c7 38 00 00       	call   0x406050
402789:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
402790:	74 0f                	je     0x4027a1
402792:	e8 b9 38 00 00       	call   0x406050
402797:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
40279d:	8b 40 08             	mov    0x8(%eax),%eax
4027a0:	c3                   	ret
4027a1:	33 c0                	xor    %eax,%eax
4027a3:	c3                   	ret
4027a4:	e8 a7 38 00 00       	call   0x406050
4027a9:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
4027b0:	74 0f                	je     0x4027c1
4027b2:	e8 99 38 00 00       	call   0x406050
4027b7:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
4027bd:	8b 40 04             	mov    0x4(%eax),%eax
4027c0:	c3                   	ret
4027c1:	33 c0                	xor    %eax,%eax
4027c3:	c3                   	ret
4027c4:	53                   	push   %ebx
4027c5:	56                   	push   %esi
4027c6:	e8 85 38 00 00       	call   0x406050
4027cb:	83 b8 00 00 00 00 00 	cmpl   $0x0,0x0(%eax)
4027d2:	74 1a                	je     0x4027ee
4027d4:	e8 77 38 00 00       	call   0x406050
4027d9:	8b b0 00 00 00 00    	mov    0x0(%eax),%esi
4027df:	8b 5e 08             	mov    0x8(%esi),%ebx
4027e2:	e8 69 38 00 00       	call   0x406050
4027e7:	33 c0                	xor    %eax,%eax
4027e9:	89 46 08             	mov    %eax,0x8(%esi)
4027ec:	eb 02                	jmp    0x4027f0
4027ee:	33 db                	xor    %ebx,%ebx
4027f0:	8b c3                	mov    %ebx,%eax
4027f2:	5e                   	pop    %esi
4027f3:	5b                   	pop    %ebx
4027f4:	c3                   	ret
4027f5:	8d 40 00             	lea    0x0(%eax),%eax
4027f8:	89 15 04 90 46 00    	mov    %edx,0x469004
4027fe:	e8 35 18 00 00       	call   0x404038
402803:	c3                   	ret
402804:	53                   	push   %ebx
402805:	56                   	push   %esi
402806:	8b f2                	mov    %edx,%esi
402808:	8b d8                	mov    %eax,%ebx
40280a:	80 e3 7f             	and    $0x7f,%bl
40280d:	83 3d 08 50 47 00 00 	cmpl   $0x0,0x475008
402814:	74 0a                	je     0x402820
402816:	8b d6                	mov    %esi,%edx
402818:	8b c3                	mov    %ebx,%eax
40281a:	ff 15 08 50 47 00    	call   *0x475008
402820:	84 db                	test   %bl,%bl
402822:	75 0d                	jne    0x402831
402824:	e8 27 38 00 00       	call   0x406050
402829:	8b 98 04 00 00 00    	mov    0x4(%eax),%ebx
40282f:	eb 0f                	jmp    0x402840
402831:	80 fb 18             	cmp    $0x18,%bl
402834:	77 0a                	ja     0x402840
402836:	33 c0                	xor    %eax,%eax
402838:	8a c3                	mov    %bl,%al
40283a:	8a 98 48 90 46 00    	mov    0x469048(%eax),%bl
402840:	33 c0                	xor    %eax,%eax
402842:	8a c3                	mov    %bl,%al
402844:	8b d6                	mov    %esi,%edx
402846:	e8 ad ff ff ff       	call   0x4027f8
40284b:	5e                   	pop    %esi
40284c:	5b                   	pop    %ebx
40284d:	c3                   	ret
40284e:	8b c0                	mov    %eax,%eax
402850:	83 e0 7f             	and    $0x7f,%eax
402853:	8b 14 24             	mov    (%esp),%edx
402856:	e9 a9 ff ff ff       	jmp    0x402804
40285b:	c3                   	ret
40285c:	50                   	push   %eax
40285d:	52                   	push   %edx
40285e:	51                   	push   %ecx
40285f:	e8 ec 37 00 00       	call   0x406050
402864:	83 b8 04 00 00 00 00 	cmpl   $0x0,0x4(%eax)
40286b:	59                   	pop    %ecx
40286c:	5a                   	pop    %edx
40286d:	58                   	pop    %eax
40286e:	75 01                	jne    0x402871
402870:	c3                   	ret
402871:	31 c0                	xor    %eax,%eax
402873:	e9 d8 ff ff ff       	jmp    0x402850
402878:	c3                   	ret
402879:	8d 40 00             	lea    0x0(%eax),%eax
40287c:	53                   	push   %ebx
40287d:	8b d8                	mov    %eax,%ebx
40287f:	e8 cc 37 00 00       	call   0x406050
402884:	89 98 04 00 00 00    	mov    %ebx,0x4(%eax)
40288a:	5b                   	pop    %ebx
40288b:	c3                   	ret
40288c:	56                   	push   %esi
40288d:	57                   	push   %edi
40288e:	89 c6                	mov    %eax,%esi
402890:	8b 7c 24 0c          	mov    0xc(%esp),%edi
402894:	31 c0                	xor    %eax,%eax
402896:	0a 06                	or     (%esi),%al
402898:	74 2b                	je     0x4028c5
40289a:	85 d2                	test   %edx,%edx
40289c:	7e 18                	jle    0x4028b6
40289e:	39 c2                	cmp    %eax,%edx
4028a0:	7f 1b                	jg     0x4028bd
4028a2:	29 d0                	sub    %edx,%eax
4028a4:	40                   	inc    %eax
4028a5:	85 c9                	test   %ecx,%ecx
4028a7:	7c 14                	jl     0x4028bd
4028a9:	39 c1                	cmp    %eax,%ecx
4028ab:	7f 14                	jg     0x4028c1
4028ad:	01 d6                	add    %edx,%esi
4028af:	88 0f                	mov    %cl,(%edi)
4028b1:	47                   	inc    %edi
4028b2:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4028b4:	eb 11                	jmp    0x4028c7
4028b6:	ba 01 00 00 00       	mov    $0x1,%edx
4028bb:	eb e5                	jmp    0x4028a2
4028bd:	31 c9                	xor    %ecx,%ecx
4028bf:	eb ec                	jmp    0x4028ad
4028c1:	89 c1                	mov    %eax,%ecx
4028c3:	eb e8                	jmp    0x4028ad
4028c5:	88 07                	mov    %al,(%edi)
4028c7:	5f                   	pop    %edi
4028c8:	5e                   	pop    %esi
4028c9:	c2 04 00             	ret    $0x4
4028cc:	c3                   	ret
4028cd:	8d 40 00             	lea    0x0(%eax),%eax