40254d:	59                   	pop    %ecx
40254e:	51                   	push   %ecx
40254f:	50                   	push   %eax
402550:	56                   	push   %esi
402551:	68 00 00 40 00       	push   $0x400000
402556:	e8 a5 7e 00 00       	call   0x40a400
40255b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40255e:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
402561:	75 06                	jne    0x402569
402563:	50                   	push   %eax
402564:	e8 3e 07 00 00       	call   0x402ca7
402569:	e8 65 07 00 00       	call   0x402cd3
40256e:	89 7d fc             	mov    %edi,-0x4(%ebp)
402571:	eb 35                	jmp    0x4025a8
402573:	8b 45 ec             	mov    -0x14(%ebp),%eax
402576:	8b 08                	mov    (%eax),%ecx
402578:	8b 09                	mov    (%ecx),%ecx
40257a:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40257d:	50                   	push   %eax
40257e:	51                   	push   %ecx
40257f:	e8 a0 09 00 00       	call   0x402f24
402584:	59                   	pop    %ecx
402585:	59                   	pop    %ecx
402586:	c3                   	ret
402587:	8b 65 e8             	mov    -0x18(%ebp),%esp
40258a:	8b 45 dc             	mov    -0x24(%ebp),%eax
40258d:	89 45 e0             	mov    %eax,-0x20(%ebp)
402590:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
402594:	75 06                	jne    0x40259c
402596:	50                   	push   %eax
402597:	e8 21 07 00 00       	call   0x402cbd
40259c:	e8 41 07 00 00       	call   0x402ce2
4025a1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4025a8:	8b 45 e0             	mov    -0x20(%ebp),%eax
4025ab:	eb 13                	jmp    0x4025c0
4025ad:	33 c0                	xor    %eax,%eax
4025af:	40                   	inc    %eax
4025b0:	c3                   	ret
4025b1:	8b 65 e8             	mov    -0x18(%ebp),%esp
4025b4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4025bb:	b8 ff 00 00 00       	mov    $0xff,%eax
4025c0:	e8 f4 16 00 00       	call   0x403cb9
4025c5:	c3                   	ret
4025c6:	e8 91 18 00 00       	call   0x403e5c
4025cb:	e9 79 fe ff ff       	jmp    0x402449
4025d0:	8b ff                	mov    %edi,%edi
4025d2:	55                   	push   %ebp
4025d3:	8b ec                	mov    %esp,%ebp
4025d5:	81 ec 28 03 00 00    	sub    $0x328,%esp
4025db:	a3 58 c6 45 00       	mov    %eax,0x45c658
4025e0:	89 0d 54 c6 45 00    	mov    %ecx,0x45c654
4025e6:	89 15 50 c6 45 00    	mov    %edx,0x45c650
4025ec:	89 1d 4c c6 45 00    	mov    %ebx,0x45c64c
4025f2:	89 35 48 c6 45 00    	mov    %esi,0x45c648
4025f8:	89 3d 44 c6 45 00    	mov    %edi,0x45c644
4025fe:	66 8c 15 70 c6 45 00 	data16 mov %ss,0x45c670
402605:	66 8c 0d 64 c6 45 00 	data16 mov %cs,0x45c664
40260c:	66 8c 1d 40 c6 45 00 	data16 mov %ds,0x45c640
402613:	66 8c 05 3c c6 45 00 	data16 mov %es,0x45c63c
40261a:	66 8c 25 38 c6 45 00 	data16 mov %fs,0x45c638
402621:	66 8c 2d 34 c6 45 00 	data16 mov %gs,0x45c634
402628:	9c                   	pushf
402629:	8f 05 68 c6 45 00    	pop    0x45c668
40262f:	8b 45 00             	mov    0x0(%ebp),%eax
402632:	a3 5c c6 45 00       	mov    %eax,0x45c65c
402637:	8b 45 04             	mov    0x4(%ebp),%eax
40263a:	a3 60 c6 45 00       	mov    %eax,0x45c660
40263f:	8d 45 08             	lea    0x8(%ebp),%eax
402642:	a3 6c c6 45 00       	mov    %eax,0x45c66c
402647:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40264d:	c7 05 a8 c5 45 00 01 	movl   $0x10001,0x45c5a8
402654:	00 01 00
402657:	a1 60 c6 45 00       	mov    0x45c660,%eax
40265c:	a3 5c c5 45 00       	mov    %eax,0x45c55c
402661:	c7 05 50 c5 45 00 09 	movl   $0xc0000409,0x45c550
402668:	04 00 c0
40266b:	c7 05 54 c5 45 00 01 	movl   $0x1,0x45c554
402672:	00 00 00
402675:	a1 04 b0 40 00       	mov    0x40b004,%eax
40267a:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
402680:	a1 08 b0 40 00       	mov    0x40b008,%eax
402685:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40268b:	ff 15 80 10 40 00    	call   *0x401080
402691:	a3 a0 c5 45 00       	mov    %eax,0x45c5a0
402696:	6a 01                	push   $0x1
402698:	e8 55 18 00 00       	call   0x403ef2
40269d:	59                   	pop    %ecx
40269e:	6a 00                	push   $0x0
4026a0:	ff 15 7c 10 40 00    	call   *0x40107c
4026a6:	68 8c 11 40 00       	push   $0x40118c
4026ab:	ff 15 78 10 40 00    	call   *0x401078
4026b1:	83 3d a0 c5 45 00 00 	cmpl   $0x0,0x45c5a0
4026b8:	75 08                	jne    0x4026c2
4026ba:	6a 01                	push   $0x1
4026bc:	e8 31 18 00 00       	call   0x403ef2
4026c1:	59                   	pop    %ecx
4026c2:	68 09 04 00 c0       	push   $0xc0000409
4026c7:	ff 15 74 10 40 00    	call   *0x401074
4026cd:	50                   	push   %eax
4026ce:	ff 15 70 10 40 00    	call   *0x401070
4026d4:	c9                   	leave
4026d5:	c3                   	ret
4026d6:	8b ff                	mov    %edi,%edi
4026d8:	55                   	push   %ebp
4026d9:	8b ec                	mov    %esp,%ebp
4026db:	8b 45 08             	mov    0x8(%ebp),%eax
4026de:	56                   	push   %esi
4026df:	8b f1                	mov    %ecx,%esi
4026e1:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
4026e5:	85 c0                	test   %eax,%eax
4026e7:	75 63                	jne    0x40274c
4026e9:	e8 7d 12 00 00       	call   0x40396b
4026ee:	89 46 08             	mov    %eax,0x8(%esi)
4026f1:	8b 48 6c             	mov    0x6c(%eax),%ecx
4026f4:	89 0e                	mov    %ecx,(%esi)
4026f6:	8b 48 68             	mov    0x68(%eax),%ecx
4026f9:	89 4e 04             	mov    %ecx,0x4(%esi)
4026fc:	8b 0e                	mov    (%esi),%ecx
4026fe:	3b 0d 30 b7 40 00    	cmp    0x40b730,%ecx
402704:	74 12                	je     0x402718
402706:	8b 0d 4c b6 40 00    	mov    0x40b64c,%ecx
40270c:	85 48 70             	test   %ecx,0x70(%eax)
40270f:	75 07                	jne    0x402718
402711:	e8 76 21 00 00       	call   0x40488c
402716:	89 06                	mov    %eax,(%esi)
402718:	8b 46 04             	mov    0x4(%esi),%eax
40271b:	3b 05 50 b5 40 00    	cmp    0x40b550,%eax
402721:	74 16                	je     0x402739
402723:	8b 46 08             	mov    0x8(%esi),%eax
402726:	8b 0d 4c b6 40 00    	mov    0x40b64c,%ecx
40272c:	85 48 70             	test   %ecx,0x70(%eax)
40272f:	75 08                	jne    0x402739
402731:	e8 ea 19 00 00       	call   0x404120
402736:	89 46 04             	mov    %eax,0x4(%esi)
402739:	8b 46 08             	mov    0x8(%esi),%eax
40273c:	f6 40 70 02          	testb  $0x2,0x70(%eax)
402740:	75 14                	jne    0x402756
402742:	83 48 70 02          	orl    $0x2,0x70(%eax)
402746:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
40274a:	eb 0a                	jmp    0x402756
40274c:	8b 08                	mov    (%eax),%ecx
40274e:	89 0e                	mov    %ecx,(%esi)
402750:	8b 40 04             	mov    0x4(%eax),%eax
402753:	89 46 04             	mov    %eax,0x4(%esi)
402756:	8b c6                	mov    %esi,%eax
402758:	5e                   	pop    %esi
402759:	5d                   	pop    %ebp
40275a:	c2 04 00             	ret    $0x4
40275d:	8b ff                	mov    %edi,%edi
40275f:	55                   	push   %ebp
402760:	8b ec                	mov    %esp,%ebp
402762:	83 ec 14             	sub    $0x14,%esp
402765:	56                   	push   %esi
402766:	57                   	push   %edi
402767:	ff 75 08             	push   0x8(%ebp)
40276a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40276d:	e8 64 ff ff ff       	call   0x4026d6
402772:	8b 45 10             	mov    0x10(%ebp),%eax
402775:	8b 75 0c             	mov    0xc(%ebp),%esi
402778:	33 ff                	xor    %edi,%edi
40277a:	3b c7                	cmp    %edi,%eax
40277c:	74 02                	je     0x402780
40277e:	89 30                	mov    %esi,(%eax)
402780:	3b f7                	cmp    %edi,%esi
402782:	75 2c                	jne    0x4027b0
402784:	e8 d0 23 00 00       	call   0x404b59
402789:	57                   	push   %edi
40278a:	57                   	push   %edi
40278b:	57                   	push   %edi
40278c:	57                   	push   %edi
40278d:	57                   	push   %edi
40278e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
402794:	e8 58 23 00 00       	call   0x404af1
402799:	83 c4 14             	add    $0x14,%esp
40279c:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
4027a0:	74 07                	je     0x4027a9
4027a2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4027a5:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
4027a9:	33 c0                	xor    %eax,%eax
4027ab:	e9 d8 01 00 00       	jmp    0x402988
4027b0:	39 7d 14             	cmp    %edi,0x14(%ebp)
4027b3:	74 0c                	je     0x4027c1
4027b5:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
4027b9:	7c c9                	jl     0x402784
4027bb:	83 7d 14 24          	cmpl   $0x24,0x14(%ebp)
4027bf:	7f c3                	jg     0x402784
4027c1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4027c4:	53                   	push   %ebx
4027c5:	8a 1e                	mov    (%esi),%bl
4027c7:	89 7d fc             	mov    %edi,-0x4(%ebp)
4027ca:	8d 7e 01             	lea    0x1(%esi),%edi
4027cd:	83 b9 ac 00 00 00 01 	cmpl   $0x1,0xac(%ecx)
4027d4:	7e 17                	jle    0x4027ed
4027d6:	8d 45 ec             	lea    -0x14(%ebp),%eax
4027d9:	50                   	push   %eax
4027da:	0f b6 c3             	movzbl %bl,%eax
4027dd:	6a 08                	push   $0x8
4027df:	50                   	push   %eax
4027e0:	e8 1d 21 00 00       	call   0x404902
4027e5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4027e8:	83 c4 0c             	add    $0xc,%esp
4027eb:	eb 10                	jmp    0x4027fd
4027ed:	8b 91 c8 00 00 00    	mov    0xc8(%ecx),%edx
4027f3:	0f b6 c3             	movzbl %bl,%eax
4027f6:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
4027fa:	83 e0 08             	and    $0x8,%eax
4027fd:	85 c0                	test   %eax,%eax
4027ff:	74 05                	je     0x402806
402801:	8a 1f                	mov    (%edi),%bl
402803:	47                   	inc    %edi
402804:	eb c7                	jmp    0x4027cd
402806:	80 fb 2d             	cmp    $0x2d,%bl
402809:	75 06                	jne    0x402811
40280b:	83 4d 18 02          	orl    $0x2,0x18(%ebp)
40280f:	eb 05                	jmp    0x402816
402811:	80 fb 2b             	cmp    $0x2b,%bl
402814:	75 03                	jne    0x402819
402816:	8a 1f                	mov    (%edi),%bl
402818:	47                   	inc    %edi
402819:	8b 45 14             	mov    0x14(%ebp),%eax
40281c:	85 c0                	test   %eax,%eax
40281e:	0f 8c 4b 01 00 00    	jl     0x40296f
402824:	83 f8 01             	cmp    $0x1,%eax
402827:	0f 84 42 01 00 00    	je     0x40296f
40282d:	83 f8 24             	cmp    $0x24,%eax
402830:	0f 8f 39 01 00 00    	jg     0x40296f
402836:	85 c0                	test   %eax,%eax
402838:	75 2a                	jne    0x402864
40283a:	80 fb 30             	cmp    $0x30,%bl
40283d:	74 09                	je     0x402848
40283f:	c7 45 14 0a 00 00 00 	movl   $0xa,0x14(%ebp)
402846:	eb 34                	jmp    0x40287c
402848:	8a 07                	mov    (%edi),%al
40284a:	3c 78                	cmp    $0x78,%al
40284c:	74 0d                	je     0x40285b
40284e:	3c 58                	cmp    $0x58,%al
402850:	74 09                	je     0x40285b
402852:	c7 45 14 08 00 00 00 	movl   $0x8,0x14(%ebp)
402859:	eb 21                	jmp    0x40287c
40285b:	c7 45 14 10 00 00 00 	movl   $0x10,0x14(%ebp)
402862:	eb 0a                	jmp    0x40286e
402864:	83 f8 10             	cmp    $0x10,%eax
402867:	75 13                	jne    0x40287c
402869:	80 fb 30             	cmp    $0x30,%bl
40286c:	75 0e                	jne    0x40287c
40286e:	8a 07                	mov    (%edi),%al
402870:	3c 78                	cmp    $0x78,%al
402872:	74 04                	je     0x402878
402874:	3c 58                	cmp    $0x58,%al
402876:	75 04                	jne    0x40287c
402878:	47                   	inc    %edi
402879:	8a 1f                	mov    (%edi),%bl
40287b:	47                   	inc    %edi
40287c:	8b b1 c8 00 00 00    	mov    0xc8(%ecx),%esi
402882:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
402887:	33 d2                	xor    %edx,%edx
402889:	f7 75 14             	divl   0x14(%ebp)
40288c:	0f b6 cb             	movzbl %bl,%ecx
40288f:	0f b7 0c 4e          	movzwl (%esi,%ecx,2),%ecx
402893:	f6 c1 04             	test   $0x4,%cl
402896:	74 08                	je     0x4028a0
402898:	0f be cb             	movsbl %bl,%ecx
40289b:	83 e9 30             	sub    $0x30,%ecx
40289e:	eb 1b                	jmp    0x4028bb
4028a0:	f7 c1 03 01 00 00    	test   $0x103,%ecx
4028a6:	74 31                	je     0x4028d9
4028a8:	8a cb                	mov    %bl,%cl
4028aa:	80 e9 61             	sub    $0x61,%cl
4028ad:	80 f9 19             	cmp    $0x19,%cl
4028b0:	0f be cb             	movsbl %bl,%ecx
4028b3:	77 03                	ja     0x4028b8
4028b5:	83 e9 20             	sub    $0x20,%ecx
4028b8:	83 c1 c9             	add    $0xffffffc9,%ecx
4028bb:	3b 4d 14             	cmp    0x14(%ebp),%ecx
4028be:	73 19                	jae    0x4028d9
4028c0:	83 4d 18 08          	orl    $0x8,0x18(%ebp)
4028c4:	39 45 fc             	cmp    %eax,-0x4(%ebp)
4028c7:	72 27                	jb     0x4028f0
4028c9:	75 04                	jne    0x4028cf
4028cb:	3b ca                	cmp    %edx,%ecx
4028cd:	76 21                	jbe    0x4028f0
4028cf:	83 4d 18 04          	orl    $0x4,0x18(%ebp)
4028d3:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4028d7:	75 23                	jne    0x4028fc
4028d9:	8b 45 18             	mov    0x18(%ebp),%eax
4028dc:	4f                   	dec    %edi
4028dd:	a8 08                	test   $0x8,%al
4028df:	75 20                	jne    0x402901
4028e1:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4028e5:	74 03                	je     0x4028ea
4028e7:	8b 7d 0c             	mov    0xc(%ebp),%edi
4028ea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4028ee:	eb 5b                	jmp    0x40294b
4028f0:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4028f3:	0f af 5d 14          	imul   0x14(%ebp),%ebx
4028f7:	03 d9                	add    %ecx,%ebx
4028f9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4028fc:	8a 1f                	mov    (%edi),%bl
4028fe:	47                   	inc    %edi
4028ff:	eb 8b                	jmp    0x40288c
402901:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
402906:	a8 04                	test   $0x4,%al
402908:	75 1b                	jne    0x402925
40290a:	a8 01                	test   $0x1,%al
40290c:	75 3d                	jne    0x40294b
40290e:	83 e0 02             	and    $0x2,%eax
402911:	74 09                	je     0x40291c
402913:	81 7d fc 00 00 00 80 	cmpl   $0x80000000,-0x4(%ebp)
40291a:	77 09                	ja     0x402925
40291c:	85 c0                	test   %eax,%eax
40291e:	75 2b                	jne    0x40294b
402920:	39 75 fc             	cmp    %esi,-0x4(%ebp)
402923:	76 26                	jbe    0x40294b
402925:	e8 2f 22 00 00       	call   0x404b59
40292a:	f6 45 18 01          	testb  $0x1,0x18(%ebp)
40292e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
402934:	74 06                	je     0x40293c
402936:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40293a:	eb 0f                	jmp    0x40294b
40293c:	f6 45 18 02          	testb  $0x2,0x18(%ebp)
402940:	6a 00                	push   $0x0
402942:	58                   	pop    %eax
402943:	0f 95 c0             	setne  %al
402946:	03 c6                	add    %esi,%eax
402948:	89 45 fc             	mov    %eax,-0x4(%ebp)
40294b:	8b 45 10             	mov    0x10(%ebp),%eax
40294e:	85 c0                	test   %eax,%eax
402950:	74 02                	je     0x402954
402952:	89 38                	mov    %edi,(%eax)
402954:	f6 45 18 02          	testb  $0x2,0x18(%ebp)
402958:	74 03                	je     0x40295d
40295a:	f7 5d fc             	negl   -0x4(%ebp)
40295d:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
402961:	74 07                	je     0x40296a
402963:	8b 45 f4             	mov    -0xc(%ebp),%eax
402966:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40296a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40296d:	eb 18                	jmp    0x402987
40296f:	8b 45 10             	mov    0x10(%ebp),%eax
402972:	85 c0                	test   %eax,%eax
402974:	74 02                	je     0x402978
402976:	89 30                	mov    %esi,(%eax)
402978:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40297c:	74 07                	je     0x402985
40297e:	8b 45 f4             	mov    -0xc(%ebp),%eax
402981:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
402985:	33 c0                	xor    %eax,%eax
402987:	5b                   	pop    %ebx
402988:	5f                   	pop    %edi
402989:	5e                   	pop    %esi