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 40 42 00       	push   $0x424000
401812:	57                   	push   %edi
401813:	e8 c2 47 00 00       	call   0x405fda
401818:	56                   	push   %esi
401819:	68 00 40 42 00       	push   $0x424000
40181e:	e8 b7 47 00 00       	call   0x405fda
401823:	ff 75 e0             	push   -0x20(%ebp)
401826:	68 e8 97 40 00       	push   $0x4097e8
40182b:	e8 cc 47 00 00       	call   0x405ffc
401830:	57                   	push   %edi
401831:	68 00 40 42 00       	push   $0x424000
401836:	e8 9f 47 00 00       	call   0x405fda
40183b:	8b 45 cc             	mov    -0x34(%ebp),%eax
40183e:	c1 f8 03             	sar    $0x3,%eax
401841:	50                   	push   %eax
401842:	68 e8 97 40 00       	push   $0x4097e8
401847:	e8 aa 3e 00 00       	call   0x4056f6
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 97 38 00 00       	call   0x405101
40186a:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
40186e:	e9 3d fd ff ff       	jmp    0x4015b0
401873:	ff 05 a8 37 42 00    	incl   0x4237a8
401879:	e9 43 11 00 00       	jmp    0x4029c1
40187e:	ff 75 f8             	push   -0x8(%ebp)
401881:	6a ea                	push   $0xffffffea
401883:	e8 79 38 00 00       	call   0x405101
401888:	ff 05 d4 37 42 00    	incl   0x4237d4
40188e:	53                   	push   %ebx
40188f:	53                   	push   %ebx
401890:	ff 75 f4             	push   -0xc(%ebp)
401893:	ff 75 d4             	push   -0x2c(%ebp)
401896:	e8 60 17 00 00       	call   0x402ffb
40189b:	ff 0d d4 37 42 00    	decl   0x4237d4
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 70 40 00    	call   *0x4070f8
4018c1:	ff 75 f4             	push   -0xc(%ebp)
4018c4:	ff 15 14 71 40 00    	call   *0x407114
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 1d 47 00 00       	call   0x405ffc
4018df:	ff 75 f8             	push   -0x8(%ebp)
4018e2:	56                   	push   %esi
4018e3:	e8 0e 47 00 00       	call   0x405ff6
4018e8:	eb 08                	jmp    0x4018f2
4018ea:	6a ee                	push   $0xffffffee
4018ec:	56                   	push   %esi
4018ed:	e8 0a 47 00 00       	call   0x405ffc
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 e6 3d 00 00       	call   0x4056f6
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 60 3e 00 00       	call   0x4057a2
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 9c 46 00 00       	call   0x405ff0
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 63 46 00 00       	call   0x405ff0
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 16 46 00 00       	call   0x405fda
4019c4:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4019c7:	7d 0e                	jge    0x4019d7
4019c9:	56                   	push   %esi
4019ca:	e8 21 46 00 00       	call   0x405ff0
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 71 40 00    	call   *0x407118
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 71 40 00    	call   *0x407124
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
401a2e:	89 45 08             	mov    %eax,0x8(%ebp)
401a31:	ff 15 60 71 40 00    	call   *0x407160
401a37:	85 c0                	test   %eax,%eax
401a39:	74 13                	je     0x401a4e
401a3b:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
401a3e:	74 13                	je     0x401a53
401a40:	56                   	push   %esi
401a41:	ff 75 08             	push   0x8(%ebp)
401a44:	ff 15 24 71 40 00    	call   *0x407124
401a4a:	85 c0                	test   %eax,%eax
401a4c:	75 05                	jne    0x401a53
401a4e:	89 7d fc             	mov    %edi,-0x4(%ebp)
401a51:	88 1e                	mov    %bl,(%esi)
401a53:	88 9e ff 03 00 00    	mov    %bl,0x3ff(%esi)
401a59:	e9 5a 0f 00 00       	jmp    0x4029b8
401a5e:	8b 75 e0             	mov    -0x20(%ebp),%esi
401a61:	53                   	push   %ebx
401a62:	e8 a3 10 00 00       	call   0x402b0a
401a67:	6a 01                	push   $0x1
401a69:	8b f8                	mov    %eax,%edi
401a6b:	89 55 f0             	mov    %edx,-0x10(%ebp)
401a6e:	e8 97 10 00 00       	call   0x402b0a
401a73:	59                   	pop    %ecx
401a74:	3b f3                	cmp    %ebx,%esi
401a76:	59                   	pop    %ecx
401a77:	89 55 f0             	mov    %edx,-0x10(%ebp)
401a7a:	75 08                	jne    0x401a84
401a7c:	3b f8                	cmp    %eax,%edi
401a7e:	7c 08                	jl     0x401a88
401a80:	7e 8c                	jle    0x401a0e
401a82:	eb 12                	jmp    0x401a96
401a84:	3b f8                	cmp    %eax,%edi
401a86:	73 08                	jae    0x401a90
401a88:	8b 45 d8             	mov    -0x28(%ebp),%eax
401a8b:	e9 33 0f 00 00       	jmp    0x4029c3
401a90:	0f 86 78 ff ff ff    	jbe    0x401a0e
401a96:	8b 45 dc             	mov    -0x24(%ebp),%eax
401a99:	e9 25 0f 00 00       	jmp    0x4029c3
401a9e:	6a 01                	push   $0x1
401aa0:	e8 65 10 00 00       	call   0x402b0a
401aa5:	8b f8                	mov    %eax,%edi
401aa7:	6a 02                	push   $0x2
401aa9:	89 55 f0             	mov    %edx,-0x10(%ebp)
401aac:	89 7d 08             	mov    %edi,0x8(%ebp)
401aaf:	e8 56 10 00 00       	call   0x402b0a
401ab4:	59                   	pop    %ecx
401ab5:	89 55 f0             	mov    %edx,-0x10(%ebp)
401ab8:	59                   	pop    %ecx
401ab9:	8b c8                	mov    %eax,%ecx
401abb:	8b 45 d8             	mov    -0x28(%ebp),%eax
401abe:	83 f8 0d             	cmp    $0xd,%eax
401ac1:	77 73                	ja     0x401b36
401ac3:	ff 24 85 d2 2a 40 00 	jmp    *0x402ad2(,%eax,4)
401aca:	03 f9                	add    %ecx,%edi
401acc:	eb 6b                	jmp    0x401b39
401ace:	2b f9                	sub    %ecx,%edi
401ad0:	eb 67                	jmp    0x401b39
401ad2:	0f af cf             	imul   %edi,%ecx
401ad5:	eb 17                	jmp    0x401aee
401ad7:	3b cb                	cmp    %ebx,%ecx
401ad9:	74 44                	je     0x401b1f
401adb:	8b c7                	mov    %edi,%eax
401add:	99                   	cltd
401ade:	f7 f9                	idiv   %ecx
401ae0:	8b f8                	mov    %eax,%edi
401ae2:	eb 55                	jmp    0x401b39
401ae4:	0b cf                	or     %edi,%ecx
401ae6:	eb 06                	jmp    0x401aee
401ae8:	23 cf                	and    %edi,%ecx
401aea:	eb 02                	jmp    0x401aee
401aec:	33 cf                	xor    %edi,%ecx
401aee:	8b f9                	mov    %ecx,%edi
401af0:	eb 47                	jmp    0x401b39
401af2:	33 c0                	xor    %eax,%eax
401af4:	3b fb                	cmp    %ebx,%edi
401af6:	0f 94 c0             	sete   %al
401af9:	eb e5                	jmp    0x401ae0
401afb:	3b fb                	cmp    %ebx,%edi
401afd:	75 0e                	jne    0x401b0d
401aff:	eb 08                	jmp    0x401b09
401b01:	33 ff                	xor    %edi,%edi
401b03:	eb 34                	jmp    0x401b39
401b05:	3b fb                	cmp    %ebx,%edi
401b07:	74 f8                	je     0x401b01
401b09:	3b cb                	cmp    %ebx,%ecx
401b0b:	74 f4                	je     0x401b01
401b0d:	33 ff                	xor    %edi,%edi
401b0f:	47                   	inc    %edi
401b10:	eb 27                	jmp    0x401b39
401b12:	3b cb                	cmp    %ebx,%ecx
401b14:	74 09                	je     0x401b1f
401b16:	8b c7                	mov    %edi,%eax
401b18:	99                   	cltd
401b19:	f7 f9                	idiv   %ecx
401b1b:	8b fa                	mov    %edx,%edi
401b1d:	eb 1a                	jmp    0x401b39
401b1f:	33 ff                	xor    %edi,%edi
401b21:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401b28:	eb 0f                	jmp    0x401b39
401b2a:	d3 e7                	shl    %cl,%edi
401b2c:	eb 0b                	jmp    0x401b39
401b2e:	d3 ff                	sar    %cl,%edi
401b30:	eb 07                	jmp    0x401b39
401b32:	d3 ef                	shr    %cl,%edi
401b34:	eb 03                	jmp    0x401b39
401b36:	8b 7d 08             	mov    0x8(%ebp),%edi
401b39:	57                   	push   %edi
401b3a:	e9 2a fa ff ff       	jmp    0x401569
401b3f:	6a 01                	push   $0x1
401b41:	e8 e6 0f 00 00       	call   0x402b2c
401b46:	6a 02                	push   $0x2
401b48:	8b f8                	mov    %eax,%edi
401b4a:	e8 bb 0f 00 00       	call   0x402b0a
401b4f:	50                   	push   %eax
401b50:	57                   	push   %edi
401b51:	56                   	push   %esi
401b52:	89 55 f0             	mov    %edx,-0x10(%ebp)
401b55:	ff 15 74 72 40 00    	call   *0x407274
401b5b:	83 c4 10             	add    $0x10,%esp
401b5e:	e9 55 0e 00 00       	jmp    0x4029b8
401b63:	8b 45 d4             	mov    -0x2c(%ebp),%eax
401b66:	8b 3d 28 a8 40 00    	mov    0x40a828,%edi
401b6c:	3b c3                	cmp    %ebx,%eax
401b6e:	74 44                	je     0x401bb4
401b70:	48                   	dec    %eax
401b71:	3b fb                	cmp    %ebx,%edi
401b73:	0f 84 c2 07 00 00    	je     0x40233b
401b79:	8b 3f                	mov    (%edi),%edi
401b7b:	3b c3                	cmp    %ebx,%eax
401b7d:	75 f1                	jne    0x401b70
401b7f:	3b fb                	cmp    %ebx,%edi
401b81:	0f 84 b4 07 00 00    	je     0x40233b
401b87:	83 c7 04             	add    $0x4,%edi
401b8a:	be e8 93 40 00       	mov    $0x4093e8,%esi
401b8f:	57                   	push   %edi
401b90:	56                   	push   %esi
401b91:	e8 44 44 00 00       	call   0x405fda
401b96:	a1 28 a8 40 00       	mov    0x40a828,%eax
401b9b:	83 c0 04             	add    $0x4,%eax
401b9e:	50                   	push   %eax
401b9f:	57                   	push   %edi
401ba0:	e8 35 44 00 00       	call   0x405fda
401ba5:	a1 28 a8 40 00       	mov    0x40a828,%eax
401baa:	56                   	push   %esi
401bab:	83 c0 04             	add    $0x4,%eax
401bae:	50                   	push   %eax
401baf:	e9 22 0d 00 00       	jmp    0x4028d6
401bb4:	3b d3                	cmp    %ebx,%edx
401bb6:	74 25                	je     0x401bdd
401bb8:	3b fb                	cmp    %ebx,%edi
401bba:	0f 84 c3 0b 00 00    	je     0x402783
401bc0:	8d 47 04             	lea    0x4(%edi),%eax
401bc3:	50                   	push   %eax
401bc4:	56                   	push   %esi
401bc5:	e8 10 44 00 00       	call   0x405fda
401bca:	8b 07                	mov    (%edi),%eax
401bcc:	57                   	push   %edi
401bcd:	a3 28 a8 40 00       	mov    %eax,0x40a828
401bd2:	ff 15 5c 71 40 00    	call   *0x40715c
401bd8:	e9 db 0d 00 00       	jmp    0x4029b8
401bdd:	68 04 04 00 00       	push   $0x404
401be2:	6a 40                	push   $0x40
401be4:	ff 15 58 71 40 00    	call   *0x407158
401bea:	ff 75 cc             	push   -0x34(%ebp)
401bed:	8b f0                	mov    %eax,%esi
401bef:	8d 46 04             	lea    0x4(%esi),%eax
401bf2:	50                   	push   %eax
401bf3:	e8 04 44 00 00       	call   0x405ffc
401bf8:	a1 28 a8 40 00       	mov    0x40a828,%eax
401bfd:	89 06                	mov    %eax,(%esi)
401bff:	89 35 28 a8 40 00    	mov    %esi,0x40a828
401c05:	e9 ae 0d 00 00       	jmp    0x4029b8
401c0a:	6a 03                	push   $0x3
401c0c:	e8 f9 0e 00 00       	call   0x402b0a
401c11:	6a 04                	push   $0x4