4077da:	89 65 f0             	mov    %esp,-0x10(%ebp)
4077dd:	6a 01                	push   $0x1
4077df:	ff b1 f0 01 00 00    	push   0x1f0(%ecx)
4077e5:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4077e8:	ff 15 20 a2 40 00    	call   *0x40a220
4077ee:	50                   	push   %eax
4077ef:	ff 15 c8 a2 40 00    	call   *0x40a2c8
4077f5:	89 45 e0             	mov    %eax,-0x20(%ebp)
4077f8:	be 04 01 00 00       	mov    $0x104,%esi
4077fd:	8d 85 cc fe ff ff    	lea    -0x134(%ebp),%eax
407803:	56                   	push   %esi
407804:	50                   	push   %eax
407805:	53                   	push   %ebx
407806:	ff 15 b8 a0 40 00    	call   *0x40a0b8
40780c:	8b f8                	mov    %eax,%edi
40780e:	8d 45 d0             	lea    -0x30(%ebp),%eax
407811:	50                   	push   %eax
407812:	8d 45 e4             	lea    -0x1c(%ebp),%eax
407815:	50                   	push   %eax
407816:	53                   	push   %ebx
407817:	68 3f 00 0f 00       	push   $0xf003f
40781c:	53                   	push   %ebx
40781d:	53                   	push   %ebx
40781e:	53                   	push   %ebx
40781f:	68 3c cd 40 00       	push   $0x40cd3c
407824:	68 02 00 00 80       	push   $0x80000002
407829:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40782c:	ff 15 2c a0 40 00    	call   *0x40a02c
407832:	3b c3                	cmp    %ebx,%eax
407834:	74 11                	je     0x407847
407836:	8d 45 eb             	lea    -0x15(%ebp),%eax
407839:	68 88 aa 40 00       	push   $0x40aa88
40783e:	50                   	push   %eax
40783f:	88 5d eb             	mov    %bl,-0x15(%ebp)
407842:	e8 ef 16 00 00       	call   0x408f36
407847:	8d 45 dc             	lea    -0x24(%ebp),%eax
40784a:	89 75 dc             	mov    %esi,-0x24(%ebp)
40784d:	50                   	push   %eax
40784e:	8d 85 c8 fd ff ff    	lea    -0x238(%ebp),%eax
407854:	50                   	push   %eax
407855:	8d 45 d8             	lea    -0x28(%ebp),%eax
407858:	50                   	push   %eax
407859:	be 6c c1 40 00       	mov    $0x40c16c,%esi
40785e:	53                   	push   %ebx
40785f:	56                   	push   %esi
407860:	ff 75 e4             	push   -0x1c(%ebp)
407863:	ff 15 30 a0 40 00    	call   *0x40a030
407869:	3b c3                	cmp    %ebx,%eax
40786b:	75 5e                	jne    0x4078cb
40786d:	8d 85 cc fe ff ff    	lea    -0x134(%ebp),%eax
407873:	50                   	push   %eax
407874:	8d 85 c8 fd ff ff    	lea    -0x238(%ebp),%eax
40787a:	50                   	push   %eax
40787b:	e8 ca 18 00 00       	call   0x40914a
407880:	59                   	pop    %ecx
407881:	85 c0                	test   %eax,%eax
407883:	59                   	pop    %ecx
407884:	75 45                	jne    0x4078cb
407886:	68 d5 04 00 00       	push   $0x4d5
40788b:	ff 75 e0             	push   -0x20(%ebp)
40788e:	e8 99 15 00 00       	call   0x408e2c
407893:	59                   	pop    %ecx
407894:	3a c3                	cmp    %bl,%al
407896:	59                   	pop    %ecx
407897:	74 20                	je     0x4078b9
407899:	38 5d 08             	cmp    %bl,0x8(%ebp)
40789c:	74 1b                	je     0x4078b9
40789e:	56                   	push   %esi
40789f:	ff 75 e4             	push   -0x1c(%ebp)
4078a2:	ff 15 20 a0 40 00    	call   *0x40a020
4078a8:	8d 45 ed             	lea    -0x13(%ebp),%eax
4078ab:	68 88 aa 40 00       	push   $0x40aa88
4078b0:	50                   	push   %eax
4078b1:	88 5d ed             	mov    %bl,-0x13(%ebp)
4078b4:	e8 7d 16 00 00       	call   0x408f36
4078b9:	8d 45 ef             	lea    -0x11(%ebp),%eax
4078bc:	68 88 aa 40 00       	push   $0x40aa88
4078c1:	50                   	push   %eax
4078c2:	c6 45 ef 01          	movb   $0x1,-0x11(%ebp)
4078c6:	e8 6b 16 00 00       	call   0x408f36
4078cb:	38 5d 08             	cmp    %bl,0x8(%ebp)
4078ce:	75 11                	jne    0x4078e1
4078d0:	8d 45 ee             	lea    -0x12(%ebp),%eax
4078d3:	68 88 aa 40 00       	push   $0x40aa88
4078d8:	50                   	push   %eax
4078d9:	88 5d ee             	mov    %bl,-0x12(%ebp)
4078dc:	e8 55 16 00 00       	call   0x408f36
4078e1:	83 ff 17             	cmp    $0x17,%edi
4078e4:	7e 26                	jle    0x40790c
4078e6:	6a 06                	push   $0x6
4078e8:	68 30 d0 40 00       	push   $0x40d030
4078ed:	68 f0 d4 40 00       	push   $0x40d4f0
4078f2:	ff 15 34 a1 40 00    	call   *0x40a134
4078f8:	83 c4 0c             	add    $0xc,%esp
4078fb:	85 c0                	test   %eax,%eax
4078fd:	75 0d                	jne    0x40790c
4078ff:	68 8c cf 40 00       	push   $0x40cf8c
407904:	53                   	push   %ebx
407905:	e8 fb 0c 00 00       	call   0x408605
40790a:	59                   	pop    %ecx
40790b:	59                   	pop    %ecx
40790c:	8d 85 cc fe ff ff    	lea    -0x134(%ebp),%eax
407912:	50                   	push   %eax
407913:	e8 36 17 00 00       	call   0x40904e
407918:	59                   	pop    %ecx
407919:	50                   	push   %eax
40791a:	8d 85 cc fe ff ff    	lea    -0x134(%ebp),%eax
407920:	50                   	push   %eax
407921:	6a 01                	push   $0x1
407923:	53                   	push   %ebx
407924:	56                   	push   %esi
407925:	ff 75 e4             	push   -0x1c(%ebp)
407928:	ff 15 08 a0 40 00    	call   *0x40a008
40792e:	3b c3                	cmp    %ebx,%eax
407930:	75 12                	jne    0x407944
407932:	8d 45 ec             	lea    -0x14(%ebp),%eax
407935:	68 88 aa 40 00       	push   $0x40aa88
40793a:	50                   	push   %eax
40793b:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
40793f:	e8 f2 15 00 00       	call   0x408f36
407944:	8d 45 ea             	lea    -0x16(%ebp),%eax
407947:	68 88 aa 40 00       	push   $0x40aa88
40794c:	50                   	push   %eax
40794d:	88 5d ea             	mov    %bl,-0x16(%ebp)
407950:	e8 e1 15 00 00       	call   0x408f36
407955:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
407959:	74 09                	je     0x407964
40795b:	ff 75 e4             	push   -0x1c(%ebp)
40795e:	ff 15 00 a0 40 00    	call   *0x40a000
407964:	ff 75 d4             	push   -0x2c(%ebp)
407967:	68 d5 04 00 00       	push   $0x4d5
40796c:	ff 75 e0             	push   -0x20(%ebp)
40796f:	e8 e7 14 00 00       	call   0x408e5b
407974:	83 c4 0c             	add    $0xc,%esp
407977:	b8 7d 79 40 00       	mov    $0x40797d,%eax
40797c:	c3                   	ret
40797d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407980:	5f                   	pop    %edi
407981:	5e                   	pop    %esi
407982:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407989:	5b                   	pop    %ebx
40798a:	c9                   	leave
40798b:	c2 04 00             	ret    $0x4
40798e:	b8 fa 94 40 00       	mov    $0x4094fa,%eax
407993:	e8 98 15 00 00       	call   0x408f30
407998:	83 ec 10             	sub    $0x10,%esp
40799b:	53                   	push   %ebx
40799c:	56                   	push   %esi
40799d:	57                   	push   %edi
40799e:	8b f1                	mov    %ecx,%esi
4079a0:	6a 02                	push   $0x2
4079a2:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
4079a8:	ff 15 20 a2 40 00    	call   *0x40a220
4079ae:	50                   	push   %eax
4079af:	ff 15 c8 a2 40 00    	call   *0x40a2c8
4079b5:	89 45 f0             	mov    %eax,-0x10(%ebp)
4079b8:	8b 45 08             	mov    0x8(%ebp),%eax
4079bb:	33 ff                	xor    %edi,%edi
4079bd:	33 db                	xor    %ebx,%ebx
4079bf:	3b c7                	cmp    %edi,%eax
4079c1:	75 41                	jne    0x407a04
4079c3:	39 7e 10             	cmp    %edi,0x10(%esi)
4079c6:	74 1f                	je     0x4079e7
4079c8:	57                   	push   %edi
4079c9:	68 d9 04 00 00       	push   $0x4d9
4079ce:	ff 75 f0             	push   -0x10(%ebp)
4079d1:	e8 85 14 00 00       	call   0x408e5b
4079d6:	8b 46 10             	mov    0x10(%esi),%eax
4079d9:	83 c4 0c             	add    $0xc,%esp
4079dc:	89 86 b8 00 00 00    	mov    %eax,0xb8(%esi)
4079e2:	89 7e 10             	mov    %edi,0x10(%esi)
4079e5:	eb 20                	jmp    0x407a07
4079e7:	8b 86 b8 00 00 00    	mov    0xb8(%esi),%eax
4079ed:	6a 01                	push   $0x1
4079ef:	68 d9 04 00 00       	push   $0x4d9
4079f4:	89 46 10             	mov    %eax,0x10(%esi)
4079f7:	ff 75 f0             	push   -0x10(%ebp)
4079fa:	e8 5c 14 00 00       	call   0x408e5b
4079ff:	83 c4 0c             	add    $0xc,%esp
407a02:	eb 03                	jmp    0x407a07
407a04:	89 46 10             	mov    %eax,0x10(%esi)
407a07:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
407a0d:	3b c7                	cmp    %edi,%eax
407a0f:	74 12                	je     0x407a23
407a11:	50                   	push   %eax
407a12:	e8 31 15 00 00       	call   0x408f48
407a17:	59                   	pop    %ecx
407a18:	89 be cc 00 00 00    	mov    %edi,0xcc(%esi)
407a1e:	bb da 04 00 00       	mov    $0x4da,%ebx
407a23:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
407a29:	3b c7                	cmp    %edi,%eax
407a2b:	74 12                	je     0x407a3f
407a2d:	50                   	push   %eax
407a2e:	e8 15 15 00 00       	call   0x408f48
407a33:	59                   	pop    %ecx
407a34:	89 be d0 00 00 00    	mov    %edi,0xd0(%esi)
407a3a:	bb db 04 00 00       	mov    $0x4db,%ebx
407a3f:	8b be d4 00 00 00    	mov    0xd4(%esi),%edi
407a45:	85 ff                	test   %edi,%edi
407a47:	74 1a                	je     0x407a63
407a49:	8b cf                	mov    %edi,%ecx
407a4b:	e8 8f 19 00 00       	call   0x4093df
407a50:	57                   	push   %edi
407a51:	e8 f2 14 00 00       	call   0x408f48
407a56:	83 a6 d4 00 00 00 00 	andl   $0x0,0xd4(%esi)
407a5d:	59                   	pop    %ecx
407a5e:	bb dc 04 00 00       	mov    $0x4dc,%ebx
407a63:	85 db                	test   %ebx,%ebx
407a65:	74 0e                	je     0x407a75
407a67:	6a 00                	push   $0x0
407a69:	53                   	push   %ebx
407a6a:	ff 75 f0             	push   -0x10(%ebp)
407a6d:	e8 e9 13 00 00       	call   0x408e5b
407a72:	83 c4 0c             	add    $0xc,%esp
407a75:	8b 86 c4 00 00 00    	mov    0xc4(%esi),%eax
407a7b:	85 c0                	test   %eax,%eax
407a7d:	74 07                	je     0x407a86
407a7f:	50                   	push   %eax
407a80:	ff 15 ec a1 40 00    	call   *0x40a1ec
407a86:	8b 46 10             	mov    0x10(%esi),%eax
407a89:	83 a6 c4 00 00 00 00 	andl   $0x0,0xc4(%esi)
407a90:	48                   	dec    %eax
407a91:	0f 84 a5 00 00 00    	je     0x407b3c
407a97:	48                   	dec    %eax
407a98:	74 56                	je     0x407af0
407a9a:	48                   	dec    %eax
407a9b:	0f 85 fc 00 00 00    	jne    0x407b9d
407aa1:	68 68 02 00 00       	push   $0x268
407aa6:	e8 a3 14 00 00       	call   0x408f4e
407aab:	59                   	pop    %ecx
407aac:	8b c8                	mov    %eax,%ecx
407aae:	89 4d 08             	mov    %ecx,0x8(%ebp)
407ab1:	85 c9                	test   %ecx,%ecx
407ab3:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
407aba:	74 08                	je     0x407ac4
407abc:	56                   	push   %esi
407abd:	e8 c5 ab ff ff       	call   0x402687
407ac2:	eb 02                	jmp    0x407ac6
407ac4:	33 c0                	xor    %eax,%eax
407ac6:	ff 76 28             	push   0x28(%esi)
407ac9:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407acd:	8b c8                	mov    %eax,%ecx
407acf:	89 86 d4 00 00 00    	mov    %eax,0xd4(%esi)
407ad5:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407adb:	e8 0f ad ff ff       	call   0x4027ef
407ae0:	89 86 c4 00 00 00    	mov    %eax,0xc4(%esi)
407ae6:	b8 dc 04 00 00       	mov    $0x4dc,%eax
407aeb:	e9 90 00 00 00       	jmp    0x407b80
407af0:	68 68 02 00 00       	push   $0x268
407af5:	e8 54 14 00 00       	call   0x408f4e
407afa:	59                   	pop    %ecx
407afb:	8b c8                	mov    %eax,%ecx
407afd:	89 4d 08             	mov    %ecx,0x8(%ebp)
407b00:	85 c9                	test   %ecx,%ecx
407b02:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
407b09:	74 08                	je     0x407b13
407b0b:	56                   	push   %esi
407b0c:	e8 97 b8 ff ff       	call   0x4033a8
407b11:	eb 02                	jmp    0x407b15
407b13:	33 c0                	xor    %eax,%eax
407b15:	ff 76 28             	push   0x28(%esi)
407b18:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407b1c:	8b c8                	mov    %eax,%ecx
407b1e:	89 86 d0 00 00 00    	mov    %eax,0xd0(%esi)
407b24:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407b2a:	e8 9b bd ff ff       	call   0x4038ca
407b2f:	89 86 c4 00 00 00    	mov    %eax,0xc4(%esi)
407b35:	b8 db 04 00 00       	mov    $0x4db,%eax
407b3a:	eb 44                	jmp    0x407b80
407b3c:	68 a8 02 00 00       	push   $0x2a8
407b41:	e8 08 14 00 00       	call   0x408f4e
407b46:	59                   	pop    %ecx
407b47:	8b c8                	mov    %eax,%ecx
407b49:	89 4d 08             	mov    %ecx,0x8(%ebp)
407b4c:	33 c0                	xor    %eax,%eax
407b4e:	3b c8                	cmp    %eax,%ecx
407b50:	89 45 fc             	mov    %eax,-0x4(%ebp)
407b53:	74 06                	je     0x407b5b
407b55:	56                   	push   %esi
407b56:	e8 ae c8 ff ff       	call   0x404409
407b5b:	ff 76 28             	push   0x28(%esi)
407b5e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407b62:	8b c8                	mov    %eax,%ecx
407b64:	89 86 cc 00 00 00    	mov    %eax,0xcc(%esi)
407b6a:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407b70:	e8 9f d1 ff ff       	call   0x404d14
407b75:	89 86 c4 00 00 00    	mov    %eax,0xc4(%esi)
407b7b:	b8 da 04 00 00       	mov    $0x4da,%eax
407b80:	6a 01                	push   $0x1
407b82:	50                   	push   %eax
407b83:	ff 75 f0             	push   -0x10(%ebp)
407b86:	e8 d0 12 00 00       	call   0x408e5b
407b8b:	6a 01                	push   $0x1
407b8d:	68 d9 04 00 00       	push   $0x4d9
407b92:	ff 75 f0             	push   -0x10(%ebp)
407b95:	e8 c1 12 00 00       	call   0x408e5b
407b9a:	83 c4 18             	add    $0x18,%esp
407b9d:	8b ce                	mov    %esi,%ecx
407b9f:	e8 5a 03 00 00       	call   0x407efe
407ba4:	8b 86 ec 01 00 00    	mov    0x1ec(%esi),%eax
407baa:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
407bae:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407bb1:	8d 45 e4             	lea    -0x1c(%ebp),%eax
407bb4:	50                   	push   %eax
407bb5:	6a 00                	push   $0x0
407bb7:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407bbd:	8b ce                	mov    %esi,%ecx
407bbf:	c7 45 ec fe ff ff ff 	movl   $0xfffffffe,-0x14(%ebp)
407bc6:	e8 1e 9e ff ff       	call   0x4019e9
407bcb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407bce:	5f                   	pop    %edi
407bcf:	5e                   	pop    %esi
407bd0:	5b                   	pop    %ebx
407bd1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407bd8:	c9                   	leave
407bd9:	c2 04 00             	ret    $0x4
407bdc:	8a 44 24 04          	mov    0x4(%esp),%al
407be0:	84 c0                	test   %al,%al
407be2:	88 41 2c             	mov    %al,0x2c(%ecx)
407be5:	74 0e                	je     0x407bf5
407be7:	ff b1 f0 01 00 00    	push   0x1f0(%ecx)
407bed:	ff 15 18 a2 40 00    	call   *0x40a218
407bf3:	eb 06                	jmp    0x407bfb
407bf5:	ff 15 1c a2 40 00    	call   *0x40a21c
407bfb:	c2 04 00             	ret    $0x4
407bfe:	55                   	push   %ebp
407bff:	8b ec                	mov    %esp,%ebp
407c01:	83 ec 1c             	sub    $0x1c,%esp
407c04:	57                   	push   %edi
407c05:	8b f9                	mov    %ecx,%edi
407c07:	80 7f 2c 00          	cmpb   $0x0,0x2c(%edi)
407c0b:	74 5f                	je     0x407c6c
407c0d:	8d 45 f4             	lea    -0xc(%ebp),%eax
407c10:	56                   	push   %esi
407c11:	50                   	push   %eax
407c12:	ff 15 cc a2 40 00    	call   *0x40a2cc
407c18:	8d 45 f4             	lea    -0xc(%ebp),%eax
407c1b:	8d b7 f0 01 00 00    	lea    0x1f0(%edi),%esi
407c21:	50                   	push   %eax
407c22:	ff 36                	push   (%esi)
407c24:	ff 15 60 a2 40 00    	call   *0x40a260
407c2a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
407c2d:	50                   	push   %eax
407c2e:	ff 36                	push   (%esi)
407c30:	ff 15 68 a2 40 00    	call   *0x40a268
407c36:	8b 45 f0             	mov    -0x10(%ebp),%eax
407c39:	5e                   	pop    %esi
407c3a:	2b 45 e8             	sub    -0x18(%ebp),%eax
407c3d:	db 45 f8             	fildl  -0x8(%ebp)
407c40:	89 45 fc             	mov    %eax,-0x4(%ebp)