401603:	88 06                	mov    %al,(%esi)
401605:	46                   	inc    %esi
401606:	3a c3                	cmp    %bl,%al
401608:	75 be                	jne    0x4015c8
40160a:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40160d:	74 1e                	je     0x40162d
40160f:	6a e6                	push   $0xffffffe6
401611:	e8 0d fe ff ff       	call   0x401423
401616:	57                   	push   %edi
401617:	68 00 98 42 00       	push   $0x429800
40161c:	e8 45 45 00 00       	call   0x405b66
401621:	57                   	push   %edi
401622:	ff 15 74 70 40 00    	call   *0x407074
401628:	e9 5e 12 00 00       	jmp    0x40288b
40162d:	6a f5                	push   $0xfffffff5
40162f:	e9 30 0b 00 00       	jmp    0x402164
401634:	53                   	push   %ebx
401635:	e8 bc 13 00 00       	call   0x4029f6
40163a:	50                   	push   %eax
40163b:	e8 21 48 00 00       	call   0x405e61
401640:	e9 35 06 00 00       	jmp    0x401c7a
401645:	6a d0                	push   $0xffffffd0
401647:	e8 aa 13 00 00       	call   0x4029f6
40164c:	6a df                	push   $0xffffffdf
40164e:	8b f0                	mov    %eax,%esi
401650:	e8 a1 13 00 00       	call   0x4029f6
401655:	6a 13                	push   $0x13
401657:	8b f8                	mov    %eax,%edi
401659:	e8 98 13 00 00       	call   0x4029f6
40165e:	57                   	push   %edi
40165f:	56                   	push   %esi
401660:	ff 15 70 70 40 00    	call   *0x407070
401666:	85 c0                	test   %eax,%eax
401668:	74 07                	je     0x401671
40166a:	6a e3                	push   $0xffffffe3
40166c:	e9 f3 0a 00 00       	jmp    0x402164
401671:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401674:	0f 84 e2 0f 00 00    	je     0x40265c
40167a:	56                   	push   %esi
40167b:	e8 e1 47 00 00       	call   0x405e61
401680:	85 c0                	test   %eax,%eax
401682:	0f 84 d4 0f 00 00    	je     0x40265c
401688:	57                   	push   %edi
401689:	56                   	push   %esi
40168a:	e8 25 42 00 00       	call   0x4058b4
40168f:	6a e4                	push   $0xffffffe4
401691:	e9 ce 0a 00 00       	jmp    0x402164
401696:	53                   	push   %ebx
401697:	e8 5a 13 00 00       	call   0x4029f6
40169c:	8b f0                	mov    %eax,%esi
40169e:	8d 45 08             	lea    0x8(%ebp),%eax
4016a1:	50                   	push   %eax
4016a2:	57                   	push   %edi
4016a3:	68 00 04 00 00       	push   $0x400
4016a8:	56                   	push   %esi
4016a9:	ff 15 6c 70 40 00    	call   *0x40706c
4016af:	85 c0                	test   %eax,%eax
4016b1:	74 23                	je     0x4016d6
4016b3:	8b 45 08             	mov    0x8(%ebp),%eax
4016b6:	3b c6                	cmp    %esi,%eax
4016b8:	76 25                	jbe    0x4016df
4016ba:	38 18                	cmp    %bl,(%eax)
4016bc:	74 21                	je     0x4016df
4016be:	56                   	push   %esi
4016bf:	e8 9d 47 00 00       	call   0x405e61
4016c4:	3b c3                	cmp    %ebx,%eax
4016c6:	74 0e                	je     0x4016d6
4016c8:	83 c0 2c             	add    $0x2c,%eax
4016cb:	50                   	push   %eax
4016cc:	ff 75 08             	push   0x8(%ebp)
4016cf:	e8 92 44 00 00       	call   0x405b66
4016d4:	eb 09                	jmp    0x4016df
4016d6:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4016dd:	88 1f                	mov    %bl,(%edi)
4016df:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4016e2:	0f 85 a3 11 00 00    	jne    0x40288b
4016e8:	68 00 04 00 00       	push   $0x400
4016ed:	57                   	push   %edi
4016ee:	57                   	push   %edi
4016ef:	ff 15 68 70 40 00    	call   *0x407068
4016f5:	e9 91 11 00 00       	jmp    0x40288b
4016fa:	6a ff                	push   $0xffffffff
4016fc:	e8 f5 12 00 00       	call   0x4029f6
401701:	8d 4d 08             	lea    0x8(%ebp),%ecx
401704:	51                   	push   %ecx
401705:	56                   	push   %esi
401706:	68 00 04 00 00       	push   $0x400
40170b:	53                   	push   %ebx
40170c:	50                   	push   %eax
40170d:	53                   	push   %ebx
40170e:	ff 15 64 70 40 00    	call   *0x407064
401714:	85 c0                	test   %eax,%eax
401716:	0f 85 6f 11 00 00    	jne    0x40288b
40171c:	e9 0f 0f 00 00       	jmp    0x402630
401721:	6a ef                	push   $0xffffffef
401723:	e8 ce 12 00 00       	call   0x4029f6
401728:	50                   	push   %eax
401729:	56                   	push   %esi
40172a:	e8 3d 41 00 00       	call   0x40586c
40172f:	e9 72 fe ff ff       	jmp    0x4015a6
401734:	6a 31                	push   $0x31
401736:	e8 bb 12 00 00       	call   0x4029f6
40173b:	8b f0                	mov    %eax,%esi
40173d:	8b 45 dc             	mov    -0x24(%ebp),%eax
401740:	83 e0 07             	and    $0x7,%eax
401743:	56                   	push   %esi
401744:	89 75 f8             	mov    %esi,-0x8(%ebp)
401747:	89 45 08             	mov    %eax,0x8(%ebp)
40174a:	e8 77 3f 00 00       	call   0x4056c6
40174f:	56                   	push   %esi
401750:	be 70 9b 40 00       	mov    $0x409b70,%esi
401755:	85 c0                	test   %eax,%eax
401757:	74 08                	je     0x401761
401759:	56                   	push   %esi
40175a:	e8 07 44 00 00       	call   0x405b66
40175f:	eb 17                	jmp    0x401778
401761:	68 00 98 42 00       	push   $0x429800
401766:	56                   	push   %esi
401767:	e8 fa 43 00 00       	call   0x405b66
40176c:	50                   	push   %eax
40176d:	e8 e7 3e 00 00       	call   0x405659
401772:	50                   	push   %eax
401773:	e8 0a 44 00 00       	call   0x405b82
401778:	56                   	push   %esi
401779:	e8 4a 46 00 00       	call   0x405dc8
40177e:	bf 70 a3 40 00       	mov    $0x40a370,%edi
401783:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
401787:	7c 31                	jl     0x4017ba
401789:	56                   	push   %esi
40178a:	e8 d2 46 00 00       	call   0x405e61
40178f:	33 c9                	xor    %ecx,%ecx
401791:	3b c3                	cmp    %ebx,%eax
401793:	74 10                	je     0x4017a5
401795:	8d 4d e8             	lea    -0x18(%ebp),%ecx
401798:	83 c0 14             	add    $0x14,%eax
40179b:	51                   	push   %ecx
40179c:	50                   	push   %eax
40179d:	ff 15 60 70 40 00    	call   *0x407060
4017a3:	8b c8                	mov    %eax,%ecx
4017a5:	8b 45 08             	mov    0x8(%ebp),%eax
4017a8:	83 c0 fd             	add    $0xfffffffd,%eax
4017ab:	0d 00 00 00 80       	or     $0x80000000,%eax
4017b0:	23 c1                	and    %ecx,%eax
4017b2:	f7 d8                	neg    %eax
4017b4:	1b c0                	sbb    %eax,%eax
4017b6:	40                   	inc    %eax
4017b7:	89 45 08             	mov    %eax,0x8(%ebp)
4017ba:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4017bd:	75 06                	jne    0x4017c5
4017bf:	56                   	push   %esi
4017c0:	e8 59 40 00 00       	call   0x40581e
4017c5:	33 c0                	xor    %eax,%eax
4017c7:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
4017cb:	0f 95 c0             	setne  %al
4017ce:	40                   	inc    %eax
4017cf:	50                   	push   %eax
4017d0:	68 00 00 00 40       	push   $0x40000000
4017d5:	56                   	push   %esi
4017d6:	e8 62 40 00 00       	call   0x40583d
4017db:	83 f8 ff             	cmp    $0xffffffff,%eax
4017de:	89 45 cc             	mov    %eax,-0x34(%ebp)
4017e1:	75 76                	jne    0x401859
4017e3:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4017e6:	75 53                	jne    0x40183b
4017e8:	68 00 40 42 00       	push   $0x424000
4017ed:	57                   	push   %edi
4017ee:	e8 73 43 00 00       	call   0x405b66
4017f3:	56                   	push   %esi
4017f4:	68 00 40 42 00       	push   $0x424000
4017f9:	e8 68 43 00 00       	call   0x405b66
4017fe:	ff 75 f0             	push   -0x10(%ebp)
401801:	68 70 9f 40 00       	push   $0x409f70
401806:	e8 7d 43 00 00       	call   0x405b88
40180b:	57                   	push   %edi
40180c:	68 00 40 42 00       	push   $0x424000
401811:	e8 50 43 00 00       	call   0x405b66
401816:	8b 45 dc             	mov    -0x24(%ebp),%eax
401819:	c1 f8 03             	sar    $0x3,%eax
40181c:	50                   	push   %eax
40181d:	68 70 9f 40 00       	push   $0x409f70
401822:	e8 00 3c 00 00       	call   0x405427
401827:	83 e8 04             	sub    $0x4,%eax
40182a:	0f 84 53 ff ff ff    	je     0x401783
401830:	48                   	dec    %eax
401831:	74 1b                	je     0x40184e
401833:	56                   	push   %esi
401834:	6a fa                	push   $0xfffffffa
401836:	e9 57 fc ff ff       	jmp    0x401492
40183b:	ff 75 f8             	push   -0x8(%ebp)
40183e:	6a e2                	push   $0xffffffe2
401840:	e8 bf 36 00 00       	call   0x404f04
401845:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
401849:	e9 5a fd ff ff       	jmp    0x4015a8
40184e:	ff 05 28 3f 42 00    	incl   0x423f28
401854:	e9 3b 10 00 00       	jmp    0x402894
401859:	ff 75 f8             	push   -0x8(%ebp)
40185c:	6a ea                	push   $0xffffffea
40185e:	e8 a1 36 00 00       	call   0x404f04
401863:	ff 05 54 3f 42 00    	incl   0x423f54
401869:	53                   	push   %ebx
40186a:	53                   	push   %ebx
40186b:	ff 75 cc             	push   -0x34(%ebp)
40186e:	ff 75 e4             	push   -0x1c(%ebp)
401871:	e8 a2 16 00 00       	call   0x402f18
401876:	ff 0d 54 3f 42 00    	decl   0x423f54
40187c:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
401880:	8b f8                	mov    %eax,%edi
401882:	75 06                	jne    0x40188a
401884:	83 7d ec ff          	cmpl   $0xffffffff,-0x14(%ebp)
401888:	74 12                	je     0x40189c
40188a:	8d 45 e8             	lea    -0x18(%ebp),%eax
40188d:	50                   	push   %eax
40188e:	8d 45 e8             	lea    -0x18(%ebp),%eax
401891:	53                   	push   %ebx
401892:	50                   	push   %eax
401893:	ff 75 cc             	push   -0x34(%ebp)
401896:	ff 15 a8 70 40 00    	call   *0x4070a8
40189c:	ff 75 cc             	push   -0x34(%ebp)
40189f:	ff 15 ec 70 40 00    	call   *0x4070ec
4018a5:	3b fb                	cmp    %ebx,%edi
4018a7:	0f 8d de 0f 00 00    	jge    0x40288b
4018ad:	83 ff fe             	cmp    $0xfffffffe,%edi
4018b0:	75 13                	jne    0x4018c5
4018b2:	6a e9                	push   $0xffffffe9
4018b4:	56                   	push   %esi
4018b5:	e8 ce 42 00 00       	call   0x405b88
4018ba:	ff 75 f8             	push   -0x8(%ebp)
4018bd:	56                   	push   %esi
4018be:	e8 bf 42 00 00       	call   0x405b82
4018c3:	eb 08                	jmp    0x4018cd
4018c5:	6a ee                	push   $0xffffffee
4018c7:	56                   	push   %esi
4018c8:	e8 bb 42 00 00       	call   0x405b88
4018cd:	68 10 00 20 00       	push   $0x200010
4018d2:	56                   	push   %esi
4018d3:	e9 31 09 00 00       	jmp    0x402209
4018d8:	53                   	push   %ebx
4018d9:	eb 34                	jmp    0x40190f
4018db:	6a 31                	push   $0x31
4018dd:	e8 14 11 00 00       	call   0x4029f6
4018e2:	ff 75 dc             	push   -0x24(%ebp)
4018e5:	50                   	push   %eax
4018e6:	e8 3c 3b 00 00       	call   0x405427
4018eb:	3b c3                	cmp    %ebx,%eax
4018ed:	0f 84 69 0d 00 00    	je     0x40265c
4018f3:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
4018f6:	0f 84 4a 01 00 00    	je     0x401a46
4018fc:	3b 45 ec             	cmp    -0x14(%ebp),%eax
4018ff:	0f 85 86 0f 00 00    	jne    0x40288b
401905:	8b 45 f0             	mov    -0x10(%ebp),%eax
401908:	e9 89 0f 00 00       	jmp    0x402896
40190d:	6a f0                	push   $0xfffffff0
40190f:	e8 e2 10 00 00       	call   0x4029f6
401914:	ff 75 e0             	push   -0x20(%ebp)
401917:	50                   	push   %eax
401918:	e8 6e 3b 00 00       	call   0x40548b
40191d:	e9 69 0f 00 00       	jmp    0x40288b
401922:	6a 01                	push   $0x1
401924:	e8 cd 10 00 00       	call   0x4029f6
401929:	50                   	push   %eax
40192a:	e8 4d 42 00 00       	call   0x405b7c
40192f:	e9 84 0b 00 00       	jmp    0x4024b8
401934:	6a 02                	push   $0x2
401936:	e8 9e 10 00 00       	call   0x4029d9
40193b:	6a 03                	push   $0x3
40193d:	89 45 08             	mov    %eax,0x8(%ebp)
401940:	e8 94 10 00 00       	call   0x4029d9
401945:	6a 01                	push   $0x1
401947:	8b f8                	mov    %eax,%edi
401949:	e8 a8 10 00 00       	call   0x4029f6
40194e:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401951:	89 45 d4             	mov    %eax,-0x2c(%ebp)
401954:	88 1e                	mov    %bl,(%esi)
401956:	74 09                	je     0x401961
401958:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40195b:	0f 84 2a 0f 00 00    	je     0x40288b
401961:	50                   	push   %eax
401962:	e8 15 42 00 00       	call   0x405b7c
401967:	3b fb                	cmp    %ebx,%edi
401969:	7d 08                	jge    0x401973
40196b:	03 f8                	add    %eax,%edi
40196d:	0f 88 18 0f 00 00    	js     0x40288b
401973:	3b f8                	cmp    %eax,%edi
401975:	7e 02                	jle    0x401979
401977:	8b f8                	mov    %eax,%edi
401979:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40197c:	03 c7                	add    %edi,%eax
40197e:	50                   	push   %eax
40197f:	56                   	push   %esi
401980:	e8 e1 41 00 00       	call   0x405b66
401985:	8b 7d 08             	mov    0x8(%ebp),%edi
401988:	3b fb                	cmp    %ebx,%edi
40198a:	0f 84 fb 0e 00 00    	je     0x40288b
401990:	7d 0f                	jge    0x4019a1
401992:	56                   	push   %esi
401993:	e8 e4 41 00 00       	call   0x405b7c
401998:	03 f8                	add    %eax,%edi
40199a:	79 05                	jns    0x4019a1
40199c:	89 5d 08             	mov    %ebx,0x8(%ebp)
40199f:	8b fb                	mov    %ebx,%edi
4019a1:	81 ff 00 04 00 00    	cmp    $0x400,%edi
4019a7:	0f 8d de 0e 00 00    	jge    0x40288b
4019ad:	88 1c 37             	mov    %bl,(%edi,%esi,1)
4019b0:	e9 d6 0e 00 00       	jmp    0x40288b
4019b5:	6a 20                	push   $0x20
4019b7:	e8 3a 10 00 00       	call   0x4029f6
4019bc:	6a 31                	push   $0x31
4019be:	8b f0                	mov    %eax,%esi
4019c0:	e8 31 10 00 00       	call   0x4029f6
4019c5:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
4019c8:	50                   	push   %eax
4019c9:	56                   	push   %esi
4019ca:	75 12                	jne    0x4019de
4019cc:	ff 15 f0 70 40 00    	call   *0x4070f0
4019d2:	85 c0                	test   %eax,%eax
4019d4:	75 70                	jne    0x401a46
4019d6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4019d9:	e9 b8 0e 00 00       	jmp    0x402896
4019de:	ff 15 f4 70 40 00    	call   *0x4070f4
4019e4:	eb ec                	jmp    0x4019d2
4019e6:	33 ff                	xor    %edi,%edi
4019e8:	47                   	inc    %edi
4019e9:	57                   	push   %edi
4019ea:	e8 07 10 00 00       	call   0x4029f6
4019ef:	68 00 04 00 00       	push   $0x400
4019f4:	56                   	push   %esi
4019f5:	50                   	push   %eax
4019f6:	89 45 08             	mov    %eax,0x8(%ebp)
4019f9:	ff 15 f8 70 40 00    	call   *0x4070f8
4019ff:	85 c0                	test   %eax,%eax
401a01:	74 13                	je     0x401a16
401a03:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401a06:	74 13                	je     0x401a1b
401a08:	56                   	push   %esi
401a09:	ff 75 08             	push   0x8(%ebp)
401a0c:	ff 15 f4 70 40 00    	call   *0x4070f4
401a12:	85 c0                	test   %eax,%eax
401a14:	75 05                	jne    0x401a1b
401a16:	89 7d fc             	mov    %edi,-0x4(%ebp)
401a19:	88 1e                	mov    %bl,(%esi)
401a1b:	88 9e ff 03 00 00    	mov    %bl,0x3ff(%esi)
401a21:	e9 65 0e 00 00       	jmp    0x40288b
401a26:	53                   	push   %ebx
401a27:	e8 ad 0f 00 00       	call   0x4029d9
401a2c:	6a 01                	push   $0x1
401a2e:	8b f0                	mov    %eax,%esi
401a30:	e8 a4 0f 00 00       	call   0x4029d9
401a35:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
401a38:	75 08                	jne    0x401a42
401a3a:	3b f0                	cmp    %eax,%esi