4015fb:	57                   	push   %edi
4015fc:	e8 cf 41 00 00       	call   0x4057d0
401601:	3b c3                	cmp    %ebx,%eax
401603:	74 15                	je     0x40161a
401605:	3d b7 00 00 00       	cmp    $0xb7,%eax
40160a:	75 0b                	jne    0x401617
40160c:	57                   	push   %edi
40160d:	ff 15 fc 80 40 00    	call   *0x4080fc
401613:	a8 10                	test   $0x10,%al
401615:	75 03                	jne    0x40161a
401617:	ff 45 fc             	incl   -0x4(%ebp)
40161a:	8a 45 0b             	mov    0xb(%ebp),%al
40161d:	88 06                	mov    %al,(%esi)
40161f:	46                   	inc    %esi
401620:	3a c3                	cmp    %bl,%al
401622:	75 ac                	jne    0x4015d0
401624:	39 5d d0             	cmp    %ebx,-0x30(%ebp)
401627:	74 29                	je     0x401652
401629:	6a e6                	push   $0xffffffe6
40162b:	e8 f3 fd ff ff       	call   0x401423
401630:	57                   	push   %edi
401631:	68 00 58 43 00       	push   $0x435800
401636:	e8 2b 4b 00 00       	call   0x406166
40163b:	57                   	push   %edi
40163c:	ff 15 00 81 40 00    	call   *0x408100
401642:	85 c0                	test   %eax,%eax
401644:	0f 85 6e 13 00 00    	jne    0x4029b8
40164a:	ff 45 fc             	incl   -0x4(%ebp)
40164d:	e9 66 13 00 00       	jmp    0x4029b8
401652:	6a f5                	push   $0xfffffff5
401654:	e9 4b 0c 00 00       	jmp    0x4022a4
401659:	53                   	push   %ebx
40165a:	e8 cd 14 00 00       	call   0x402b2c
40165f:	50                   	push   %eax
401660:	e8 04 4e 00 00       	call   0x406469
401665:	e9 81 06 00 00       	jmp    0x401ceb
40166a:	6a d0                	push   $0xffffffd0
40166c:	e8 bb 14 00 00       	call   0x402b2c
401671:	6a df                	push   $0xffffffdf
401673:	8b f0                	mov    %eax,%esi
401675:	e8 b2 14 00 00       	call   0x402b2c
40167a:	6a 13                	push   $0x13
40167c:	8b f8                	mov    %eax,%edi
40167e:	e8 a9 14 00 00       	call   0x402b2c
401683:	57                   	push   %edi
401684:	56                   	push   %esi
401685:	ff 15 04 81 40 00    	call   *0x408104
40168b:	85 c0                	test   %eax,%eax
40168d:	74 07                	je     0x401696
40168f:	6a e3                	push   $0xffffffe3
401691:	e9 0e 0c 00 00       	jmp    0x4022a4
401696:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
401699:	0f 84 e4 10 00 00    	je     0x402783
40169f:	56                   	push   %esi
4016a0:	e8 c4 4d 00 00       	call   0x406469
4016a5:	85 c0                	test   %eax,%eax
4016a7:	0f 84 d6 10 00 00    	je     0x402783
4016ad:	57                   	push   %edi
4016ae:	56                   	push   %esi
4016af:	e8 91 48 00 00       	call   0x405f45
4016b4:	6a e4                	push   $0xffffffe4
4016b6:	e9 e9 0b 00 00       	jmp    0x4022a4
4016bb:	53                   	push   %ebx
4016bc:	e8 6b 14 00 00       	call   0x402b2c
4016c1:	8b f0                	mov    %eax,%esi
4016c3:	8d 45 08             	lea    0x8(%ebp),%eax
4016c6:	50                   	push   %eax
4016c7:	57                   	push   %edi
4016c8:	68 00 04 00 00       	push   $0x400
4016cd:	56                   	push   %esi
4016ce:	ff 15 08 81 40 00    	call   *0x408108
4016d4:	85 c0                	test   %eax,%eax
4016d6:	74 23                	je     0x4016fb
4016d8:	8b 45 08             	mov    0x8(%ebp),%eax
4016db:	3b c6                	cmp    %esi,%eax
4016dd:	76 25                	jbe    0x401704
4016df:	38 18                	cmp    %bl,(%eax)
4016e1:	74 21                	je     0x401704
4016e3:	56                   	push   %esi
4016e4:	e8 80 4d 00 00       	call   0x406469
4016e9:	3b c3                	cmp    %ebx,%eax
4016eb:	74 0e                	je     0x4016fb
4016ed:	83 c0 2c             	add    $0x2c,%eax
4016f0:	50                   	push   %eax
4016f1:	ff 75 08             	push   0x8(%ebp)
4016f4:	e8 6d 4a 00 00       	call   0x406166
4016f9:	eb 09                	jmp    0x401704
4016fb:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401702:	88 1f                	mov    %bl,(%edi)
401704:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
401707:	0f 85 ab 12 00 00    	jne    0x4029b8
40170d:	68 00 04 00 00       	push   $0x400
401712:	57                   	push   %edi
401713:	57                   	push   %edi
401714:	ff 15 0c 81 40 00    	call   *0x40810c
40171a:	e9 99 12 00 00       	jmp    0x4029b8
40171f:	6a ff                	push   $0xffffffff
401721:	e8 06 14 00 00       	call   0x402b2c
401726:	8d 4d 08             	lea    0x8(%ebp),%ecx
401729:	51                   	push   %ecx
40172a:	56                   	push   %esi
40172b:	68 00 04 00 00       	push   $0x400
401730:	53                   	push   %ebx
401731:	50                   	push   %eax
401732:	53                   	push   %ebx
401733:	ff 15 10 81 40 00    	call   *0x408110
401739:	85 c0                	test   %eax,%eax
40173b:	0f 85 77 12 00 00    	jne    0x4029b8
401741:	e9 11 10 00 00       	jmp    0x402757
401746:	6a ef                	push   $0xffffffef
401748:	e8 df 13 00 00       	call   0x402b2c
40174d:	50                   	push   %eax
40174e:	56                   	push   %esi
40174f:	e8 da 45 00 00       	call   0x405d2e
401754:	e9 55 fe ff ff       	jmp    0x4015ae
401759:	6a 31                	push   $0x31
40175b:	e8 cc 13 00 00       	call   0x402b2c
401760:	8b f0                	mov    %eax,%esi
401762:	8b 45 cc             	mov    -0x34(%ebp),%eax
401765:	83 e0 07             	and    $0x7,%eax
401768:	56                   	push   %esi
401769:	89 75 f8             	mov    %esi,-0x8(%ebp)
40176c:	89 45 08             	mov    %eax,0x8(%ebp)
40176f:	e8 f7 43 00 00       	call   0x405b6b
401774:	56                   	push   %esi
401775:	be 30 a4 40 00       	mov    $0x40a430,%esi
40177a:	85 c0                	test   %eax,%eax
40177c:	74 08                	je     0x401786
40177e:	56                   	push   %esi
40177f:	e8 e2 49 00 00       	call   0x406166
401784:	eb 17                	jmp    0x40179d
401786:	68 00 58 43 00       	push   $0x435800
40178b:	56                   	push   %esi
40178c:	e8 d5 49 00 00       	call   0x406166
401791:	50                   	push   %eax
401792:	e8 67 43 00 00       	call   0x405afe
401797:	50                   	push   %eax
401798:	e8 e5 49 00 00       	call   0x406182
40179d:	56                   	push   %esi
40179e:	e8 2d 4c 00 00       	call   0x4063d0
4017a3:	bf 30 ac 40 00       	mov    $0x40ac30,%edi
4017a8:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
4017ac:	7c 31                	jl     0x4017df
4017ae:	56                   	push   %esi
4017af:	e8 b5 4c 00 00       	call   0x406469
4017b4:	33 c9                	xor    %ecx,%ecx
4017b6:	3b c3                	cmp    %ebx,%eax
4017b8:	74 10                	je     0x4017ca
4017ba:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4017bd:	83 c0 14             	add    $0x14,%eax
4017c0:	51                   	push   %ecx
4017c1:	50                   	push   %eax
4017c2:	ff 15 f4 80 40 00    	call   *0x4080f4
4017c8:	8b c8                	mov    %eax,%ecx
4017ca:	8b 45 08             	mov    0x8(%ebp),%eax
4017cd:	83 c0 fd             	add    $0xfffffffd,%eax
4017d0:	0d 00 00 00 80       	or     $0x80000000,%eax
4017d5:	23 c1                	and    %ecx,%eax
4017d7:	f7 d8                	neg    %eax
4017d9:	1b c0                	sbb    %eax,%eax
4017db:	40                   	inc    %eax
4017dc:	89 45 08             	mov    %eax,0x8(%ebp)
4017df:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4017e2:	75 06                	jne    0x4017ea
4017e4:	56                   	push   %esi
4017e5:	e8 f0 44 00 00       	call   0x405cda
4017ea:	33 c0                	xor    %eax,%eax
4017ec:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
4017f0:	0f 95 c0             	setne  %al
4017f3:	40                   	inc    %eax
4017f4:	50                   	push   %eax
4017f5:	68 00 00 00 40       	push   $0x40000000
4017fa:	56                   	push   %esi
4017fb:	e8 ff 44 00 00       	call   0x405cff
401800:	83 f8 ff             	cmp    $0xffffffff,%eax
401803:	89 45 f4             	mov    %eax,-0xc(%ebp)
401806:	75 76                	jne    0x40187e
401808:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40180b:	75 53                	jne    0x401860
40180d:	68 00 00 43 00       	push   $0x430000
401812:	57                   	push   %edi
401813:	e8 4e 49 00 00       	call   0x406166
401818:	56                   	push   %esi
401819:	68 00 00 43 00       	push   $0x430000
40181e:	e8 43 49 00 00       	call   0x406166
401823:	ff 75 e0             	push   -0x20(%ebp)
401826:	68 30 a8 40 00       	push   $0x40a830
40182b:	e8 58 49 00 00       	call   0x406188
401830:	57                   	push   %edi
401831:	68 00 00 43 00       	push   $0x430000
401836:	e8 2b 49 00 00       	call   0x406166
40183b:	8b 45 cc             	mov    -0x34(%ebp),%eax
40183e:	c1 f8 03             	sar    $0x3,%eax
401841:	50                   	push   %eax
401842:	68 30 a8 40 00       	push   $0x40a830
401847:	e8 36 40 00 00       	call   0x405882
40184c:	83 e8 04             	sub    $0x4,%eax
40184f:	0f 84 53 ff ff ff    	je     0x4017a8
401855:	48                   	dec    %eax
401856:	74 1b                	je     0x401873
401858:	56                   	push   %esi
401859:	6a fa                	push   $0xfffffffa
40185b:	e9 32 fc ff ff       	jmp    0x401492
401860:	ff 75 f8             	push   -0x8(%ebp)
401863:	6a e2                	push   $0xffffffe2
401865:	e8 23 3a 00 00       	call   0x40528d
40186a:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
40186e:	e9 3d fd ff ff       	jmp    0x4015b0
401873:	ff 05 c8 f4 42 00    	incl   0x42f4c8
401879:	e9 43 11 00 00       	jmp    0x4029c1
40187e:	ff 75 f8             	push   -0x8(%ebp)
401881:	6a ea                	push   $0xffffffea
401883:	e8 05 3a 00 00       	call   0x40528d
401888:	ff 05 f4 f4 42 00    	incl   0x42f4f4
40188e:	53                   	push   %ebx
40188f:	53                   	push   %ebx
401890:	ff 75 f4             	push   -0xc(%ebp)
401893:	ff 75 d4             	push   -0x2c(%ebp)
401896:	e8 3f 18 00 00       	call   0x4030da
40189b:	ff 0d f4 f4 42 00    	decl   0x42f4f4
4018a1:	83 7d d8 ff          	cmpl   $0xffffffff,-0x28(%ebp)
4018a5:	8b f8                	mov    %eax,%edi
4018a7:	75 06                	jne    0x4018af
4018a9:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
4018ad:	74 12                	je     0x4018c1
4018af:	8d 45 d8             	lea    -0x28(%ebp),%eax
4018b2:	50                   	push   %eax
4018b3:	8d 45 d8             	lea    -0x28(%ebp),%eax
4018b6:	53                   	push   %ebx
4018b7:	50                   	push   %eax
4018b8:	ff 75 f4             	push   -0xc(%ebp)
4018bb:	ff 15 f8 80 40 00    	call   *0x4080f8
4018c1:	ff 75 f4             	push   -0xc(%ebp)
4018c4:	ff 15 14 81 40 00    	call   *0x408114
4018ca:	3b fb                	cmp    %ebx,%edi
4018cc:	0f 8d e6 10 00 00    	jge    0x4029b8
4018d2:	83 ff fe             	cmp    $0xfffffffe,%edi
4018d5:	75 13                	jne    0x4018ea
4018d7:	6a e9                	push   $0xffffffe9
4018d9:	56                   	push   %esi
4018da:	e8 a9 48 00 00       	call   0x406188
4018df:	ff 75 f8             	push   -0x8(%ebp)
4018e2:	56                   	push   %esi
4018e3:	e8 9a 48 00 00       	call   0x406182
4018e8:	eb 08                	jmp    0x4018f2
4018ea:	6a ee                	push   $0xffffffee
4018ec:	56                   	push   %esi
4018ed:	e8 96 48 00 00       	call   0x406188
4018f2:	68 10 00 20 00       	push   $0x200010
4018f7:	56                   	push   %esi
4018f8:	e9 4c 0a 00 00       	jmp    0x402349
4018fd:	53                   	push   %ebx
4018fe:	eb 34                	jmp    0x401934
401900:	6a 31                	push   $0x31
401902:	e8 25 12 00 00       	call   0x402b2c
401907:	ff 75 cc             	push   -0x34(%ebp)
40190a:	50                   	push   %eax
40190b:	e8 72 3f 00 00       	call   0x405882
401910:	3b c3                	cmp    %ebx,%eax
401912:	0f 84 6b 0e 00 00    	je     0x402783
401918:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
40191b:	0f 84 67 01 00 00    	je     0x401a88
401921:	3b 45 dc             	cmp    -0x24(%ebp),%eax
401924:	0f 85 8e 10 00 00    	jne    0x4029b8
40192a:	8b 45 e0             	mov    -0x20(%ebp),%eax
40192d:	e9 91 10 00 00       	jmp    0x4029c3
401932:	6a f0                	push   $0xfffffff0
401934:	e8 f3 11 00 00       	call   0x402b2c
401939:	ff 75 d0             	push   -0x30(%ebp)
40193c:	50                   	push   %eax
40193d:	e8 ec 3f 00 00       	call   0x40592e
401942:	e9 71 10 00 00       	jmp    0x4029b8
401947:	6a 01                	push   $0x1
401949:	e8 de 11 00 00       	call   0x402b2c
40194e:	50                   	push   %eax
40194f:	e8 28 48 00 00       	call   0x40617c
401954:	e9 8b 0c 00 00       	jmp    0x4025e4
401959:	6a 02                	push   $0x2
40195b:	e8 aa 11 00 00       	call   0x402b0a
401960:	6a 03                	push   $0x3
401962:	89 45 ec             	mov    %eax,-0x14(%ebp)
401965:	89 55 f0             	mov    %edx,-0x10(%ebp)
401968:	e8 9d 11 00 00       	call   0x402b0a
40196d:	59                   	pop    %ecx
40196e:	8b f8                	mov    %eax,%edi
401970:	8b 45 ec             	mov    -0x14(%ebp),%eax
401973:	59                   	pop    %ecx
401974:	6a 01                	push   $0x1
401976:	89 7d b0             	mov    %edi,-0x50(%ebp)
401979:	89 55 b4             	mov    %edx,-0x4c(%ebp)
40197c:	89 45 08             	mov    %eax,0x8(%ebp)
40197f:	e8 a8 11 00 00       	call   0x402b2c
401984:	50                   	push   %eax
401985:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401988:	e8 ef 47 00 00       	call   0x40617c
40198d:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
401990:	88 1e                	mov    %bl,(%esi)
401992:	75 03                	jne    0x401997
401994:	89 45 08             	mov    %eax,0x8(%ebp)
401997:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40199a:	0f 84 18 10 00 00    	je     0x4029b8
4019a0:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4019a3:	3b cb                	cmp    %ebx,%ecx
4019a5:	7d 0b                	jge    0x4019b2
4019a7:	8d 3c 08             	lea    (%eax,%ecx,1),%edi
4019aa:	3b fb                	cmp    %ebx,%edi
4019ac:	0f 8c 06 10 00 00    	jl     0x4029b8
4019b2:	3b f8                	cmp    %eax,%edi
4019b4:	7e 02                	jle    0x4019b8
4019b6:	8b f8                	mov    %eax,%edi
4019b8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4019bb:	03 c7                	add    %edi,%eax
4019bd:	50                   	push   %eax
4019be:	56                   	push   %esi
4019bf:	e8 a2 47 00 00       	call   0x406166
4019c4:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4019c7:	7d 0e                	jge    0x4019d7
4019c9:	56                   	push   %esi
4019ca:	e8 ad 47 00 00       	call   0x40617c
4019cf:	01 45 08             	add    %eax,0x8(%ebp)
4019d2:	79 03                	jns    0x4019d7
4019d4:	89 5d 08             	mov    %ebx,0x8(%ebp)
4019d7:	8b 45 08             	mov    0x8(%ebp),%eax
4019da:	3d 00 04 00 00       	cmp    $0x400,%eax
4019df:	0f 8d d3 0f 00 00    	jge    0x4029b8
4019e5:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4019e8:	e9 cb 0f 00 00       	jmp    0x4029b8
4019ed:	6a 20                	push   $0x20
4019ef:	e8 38 11 00 00       	call   0x402b2c
4019f4:	6a 31                	push   $0x31
4019f6:	8b f0                	mov    %eax,%esi
4019f8:	e8 2f 11 00 00       	call   0x402b2c
4019fd:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
401a00:	50                   	push   %eax
401a01:	56                   	push   %esi
401a02:	75 12                	jne    0x401a16
401a04:	ff 15 18 81 40 00    	call   *0x408118
401a0a:	85 c0                	test   %eax,%eax
401a0c:	75 7a                	jne    0x401a88
401a0e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
401a11:	e9 ad 0f 00 00       	jmp    0x4029c3
401a16:	ff 15 24 81 40 00    	call   *0x408124
401a1c:	eb ec                	jmp    0x401a0a
401a1e:	33 ff                	xor    %edi,%edi
401a20:	47                   	inc    %edi
401a21:	57                   	push   %edi
401a22:	e8 05 11 00 00       	call   0x402b2c
401a27:	68 00 04 00 00       	push   $0x400
401a2c:	56                   	push   %esi
401a2d:	50                   	push   %eax