40ca10:	83 f8 24             	cmp    $0x24,%eax
40ca13:	72 05                	jb     0x40ca1a
40ca15:	89 75 b8             	mov    %esi,-0x48(%ebp)
40ca18:	eb 09                	jmp    0x40ca23
40ca1a:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ca1d:	89 45 b8             	mov    %eax,-0x48(%ebp)
40ca20:	6a 24                	push   $0x24
40ca22:	58                   	pop    %eax
40ca23:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ca27:	85 ff                	test   %edi,%edi
40ca29:	75 25                	jne    0x40ca50
40ca2b:	ff 75 bc             	push   -0x44(%ebp)
40ca2e:	ff 75 b4             	push   -0x4c(%ebp)
40ca31:	53                   	push   %ebx
40ca32:	50                   	push   %eax
40ca33:	ff 75 b8             	push   -0x48(%ebp)
40ca36:	ff 75 08             	push   0x8(%ebp)
40ca39:	52                   	push   %edx
40ca3a:	51                   	push   %ecx
40ca3b:	68 74 1a 40 00       	push   $0x401a74
40ca40:	68 08 10 40 00       	push   $0x401008
40ca45:	ff 15 14 f0 40 00    	call   *0x40f014
40ca4b:	83 c4 28             	add    $0x28,%esp
40ca4e:	eb 46                	jmp    0x40ca96
40ca50:	57                   	push   %edi
40ca51:	ff 75 bc             	push   -0x44(%ebp)
40ca54:	ff 75 b4             	push   -0x4c(%ebp)
40ca57:	53                   	push   %ebx
40ca58:	50                   	push   %eax
40ca59:	ff 75 b8             	push   -0x48(%ebp)
40ca5c:	ff 75 08             	push   0x8(%ebp)
40ca5f:	52                   	push   %edx
40ca60:	51                   	push   %ecx
40ca61:	68 0e 20 40 00       	push   $0x40200e
40ca66:	68 08 10 40 00       	push   $0x401008
40ca6b:	ff 15 14 f0 40 00    	call   *0x40f014
40ca71:	83 c4 2c             	add    $0x2c,%esp
40ca74:	eb 20                	jmp    0x40ca96
40ca76:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ca79:	8b 00                	mov    (%eax),%eax
40ca7b:	8b 00                	mov    (%eax),%eax
40ca7d:	89 45 b0             	mov    %eax,-0x50(%ebp)
40ca80:	50                   	push   %eax
40ca81:	ff 15 18 f0 40 00    	call   *0x40f018
40ca87:	c3                   	ret
40ca88:	8b 65 e8             	mov    -0x18(%ebp),%esp
40ca8b:	6a 06                	push   $0x6
40ca8d:	5a                   	pop    %edx
40ca8e:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40ca91:	e8 2a 03 00 00       	call   0x40cdc0
40ca96:	8b c8                	mov    %eax,%ecx
40ca98:	89 4d bc             	mov    %ecx,-0x44(%ebp)
40ca9b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40caa2:	85 c9                	test   %ecx,%ecx
40caa4:	74 08                	je     0x40caae
40caa6:	81 f9 ea 00 00 00    	cmp    $0xea,%ecx
40caac:	75 1b                	jne    0x40cac9
40caae:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40cab1:	8b 10                	mov    (%eax),%edx
40cab3:	85 d2                	test   %edx,%edx
40cab5:	74 12                	je     0x40cac9
40cab7:	8d 45 bc             	lea    -0x44(%ebp),%eax
40caba:	50                   	push   %eax
40cabb:	ff 75 10             	push   0x10(%ebp)
40cabe:	8b 4d b8             	mov    -0x48(%ebp),%ecx
40cac1:	e8 90 02 00 00       	call   0x40cd56
40cac6:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40cac9:	85 c9                	test   %ecx,%ecx
40cacb:	74 0b                	je     0x40cad8
40cacd:	51                   	push   %ecx
40cace:	ff 15 3c f0 40 00    	call   *0x40f03c
40cad4:	33 c0                	xor    %eax,%eax
40cad6:	eb 03                	jmp    0x40cadb
40cad8:	33 c0                	xor    %eax,%eax
40cada:	40                   	inc    %eax
40cadb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cade:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cae5:	59                   	pop    %ecx
40cae6:	5f                   	pop    %edi
40cae7:	5e                   	pop    %esi
40cae8:	5b                   	pop    %ebx
40cae9:	c9                   	leave
40caea:	c2 1c 00             	ret    $0x1c
40caed:	6a 14                	push   $0x14
40caef:	68 b8 ce 40 00       	push   $0x40ceb8
40caf4:	e8 5f 9a ff ff       	call   0x406558
40caf9:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40cafd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cb01:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40cb04:	50                   	push   %eax
40cb05:	51                   	push   %ecx
40cb06:	68 8c 17 40 00       	push   $0x40178c
40cb0b:	68 08 10 40 00       	push   $0x401008
40cb10:	ff 15 14 f0 40 00    	call   *0x40f014
40cb16:	83 c4 10             	add    $0x10,%esp
40cb19:	eb 20                	jmp    0x40cb3b
40cb1b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cb1e:	8b 00                	mov    (%eax),%eax
40cb20:	8b 00                	mov    (%eax),%eax
40cb22:	89 45 e0             	mov    %eax,-0x20(%ebp)
40cb25:	50                   	push   %eax
40cb26:	ff 15 18 f0 40 00    	call   *0x40f018
40cb2c:	c3                   	ret
40cb2d:	8b 65 e8             	mov    -0x18(%ebp),%esp
40cb30:	6a 06                	push   $0x6
40cb32:	5a                   	pop    %edx
40cb33:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40cb36:	e8 85 02 00 00       	call   0x40cdc0
40cb3b:	89 45 dc             	mov    %eax,-0x24(%ebp)
40cb3e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40cb45:	85 c0                	test   %eax,%eax
40cb47:	74 0b                	je     0x40cb54
40cb49:	50                   	push   %eax
40cb4a:	ff 15 3c f0 40 00    	call   *0x40f03c
40cb50:	33 c0                	xor    %eax,%eax
40cb52:	eb 03                	jmp    0x40cb57
40cb54:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40cb57:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cb5a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cb61:	59                   	pop    %ecx
40cb62:	5f                   	pop    %edi
40cb63:	5e                   	pop    %esi
40cb64:	5b                   	pop    %ebx
40cb65:	c9                   	leave
40cb66:	c3                   	ret
40cb67:	6a 10                	push   $0x10
40cb69:	68 98 ce 40 00       	push   $0x40ce98
40cb6e:	e8 e5 99 ff ff       	call   0x406558
40cb73:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cb77:	51                   	push   %ecx
40cb78:	6a 00                	push   $0x0
40cb7a:	68 c4 18 40 00       	push   $0x4018c4
40cb7f:	68 08 10 40 00       	push   $0x401008
40cb84:	ff 15 14 f0 40 00    	call   *0x40f014
40cb8a:	83 c4 10             	add    $0x10,%esp
40cb8d:	eb 20                	jmp    0x40cbaf
40cb8f:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cb92:	8b 00                	mov    (%eax),%eax
40cb94:	8b 00                	mov    (%eax),%eax
40cb96:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40cb99:	50                   	push   %eax
40cb9a:	ff 15 18 f0 40 00    	call   *0x40f018
40cba0:	c3                   	ret
40cba1:	8b 65 e8             	mov    -0x18(%ebp),%esp
40cba4:	6a 06                	push   $0x6
40cba6:	5a                   	pop    %edx
40cba7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40cbaa:	e8 11 02 00 00       	call   0x40cdc0
40cbaf:	89 45 e0             	mov    %eax,-0x20(%ebp)
40cbb2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40cbb9:	85 c0                	test   %eax,%eax
40cbbb:	74 0b                	je     0x40cbc8
40cbbd:	50                   	push   %eax
40cbbe:	ff 15 3c f0 40 00    	call   *0x40f03c
40cbc4:	33 c0                	xor    %eax,%eax
40cbc6:	eb 03                	jmp    0x40cbcb
40cbc8:	33 c0                	xor    %eax,%eax
40cbca:	40                   	inc    %eax
40cbcb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cbce:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cbd5:	59                   	pop    %ecx
40cbd6:	5f                   	pop    %edi
40cbd7:	5e                   	pop    %esi
40cbd8:	5b                   	pop    %ebx
40cbd9:	c9                   	leave
40cbda:	c3                   	ret
40cbdb:	6a 1c                	push   $0x1c
40cbdd:	68 f8 ce 40 00       	push   $0x40cef8
40cbe2:	e8 71 99 ff ff       	call   0x406558
40cbe7:	8b 45 08             	mov    0x8(%ebp),%eax
40cbea:	85 d2                	test   %edx,%edx
40cbec:	74 05                	je     0x40cbf3
40cbee:	83 f8 0c             	cmp    $0xc,%eax
40cbf1:	73 06                	jae    0x40cbf9
40cbf3:	8d 55 d4             	lea    -0x2c(%ebp),%edx
40cbf6:	6a 0c                	push   $0xc
40cbf8:	58                   	pop    %eax
40cbf9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cbfd:	ff 75 0c             	push   0xc(%ebp)
40cc00:	50                   	push   %eax
40cc01:	52                   	push   %edx
40cc02:	51                   	push   %ecx
40cc03:	68 7c 1b 40 00       	push   $0x401b7c
40cc08:	68 08 10 40 00       	push   $0x401008
40cc0d:	ff 15 14 f0 40 00    	call   *0x40f014
40cc13:	83 c4 18             	add    $0x18,%esp
40cc16:	eb 20                	jmp    0x40cc38
40cc18:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cc1b:	8b 00                	mov    (%eax),%eax
40cc1d:	8b 00                	mov    (%eax),%eax
40cc1f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40cc22:	50                   	push   %eax
40cc23:	ff 15 18 f0 40 00    	call   *0x40f018
40cc29:	c3                   	ret
40cc2a:	8b 65 e8             	mov    -0x18(%ebp),%esp
40cc2d:	6a 06                	push   $0x6
40cc2f:	5a                   	pop    %edx
40cc30:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40cc33:	e8 88 01 00 00       	call   0x40cdc0
40cc38:	89 45 e0             	mov    %eax,-0x20(%ebp)
40cc3b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40cc42:	85 c0                	test   %eax,%eax
40cc44:	74 0b                	je     0x40cc51
40cc46:	50                   	push   %eax
40cc47:	ff 15 3c f0 40 00    	call   *0x40f03c
40cc4d:	33 c0                	xor    %eax,%eax
40cc4f:	eb 03                	jmp    0x40cc54
40cc51:	33 c0                	xor    %eax,%eax
40cc53:	40                   	inc    %eax
40cc54:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cc57:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cc5e:	59                   	pop    %ecx
40cc5f:	5f                   	pop    %edi
40cc60:	5e                   	pop    %esi
40cc61:	5b                   	pop    %ebx
40cc62:	c9                   	leave
40cc63:	c2 08 00             	ret    $0x8
40cc66:	cc                   	int3
40cc67:	cc                   	int3
40cc68:	cc                   	int3
40cc69:	cc                   	int3
40cc6a:	cc                   	int3
40cc6b:	cc                   	int3
40cc6c:	cc                   	int3
40cc6d:	cc                   	int3
40cc6e:	cc                   	int3
40cc6f:	cc                   	int3
40cc70:	8b ff                	mov    %edi,%edi
40cc72:	55                   	push   %ebp
40cc73:	8b ec                	mov    %esp,%ebp
40cc75:	5d                   	pop    %ebp
40cc76:	ff 25 78 00 41 00    	jmp    *0x410078
40cc7c:	cc                   	int3
40cc7d:	cc                   	int3
40cc7e:	cc                   	int3
40cc7f:	cc                   	int3
40cc80:	8b ff                	mov    %edi,%edi
40cc82:	55                   	push   %ebp
40cc83:	8b ec                	mov    %esp,%ebp
40cc85:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40cc89:	74 0a                	je     0x40cc95
40cc8b:	8d 45 0c             	lea    0xc(%ebp),%eax
40cc8e:	50                   	push   %eax
40cc8f:	ff 15 10 f0 40 00    	call   *0x40f010
40cc95:	5d                   	pop    %ebp
40cc96:	c2 08 00             	ret    $0x8
40cc99:	cc                   	int3
40cc9a:	cc                   	int3
40cc9b:	cc                   	int3
40cc9c:	cc                   	int3
40cc9d:	cc                   	int3
40cc9e:	cc                   	int3
40cc9f:	cc                   	int3
40cca0:	8b ff                	mov    %edi,%edi
40cca2:	55                   	push   %ebp
40cca3:	8b ec                	mov    %esp,%ebp
40cca5:	5d                   	pop    %ebp
40cca6:	ff 25 74 00 41 00    	jmp    *0x410074
40ccac:	6a 14                	push   $0x14
40ccae:	68 d8 ce 40 00       	push   $0x40ced8
40ccb3:	e8 a0 98 ff ff       	call   0x406558
40ccb8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40ccbb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ccbf:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40ccc2:	50                   	push   %eax
40ccc3:	68 9a 18 40 00       	push   $0x40189a
40ccc8:	68 08 10 40 00       	push   $0x401008
40cccd:	ff 15 14 f0 40 00    	call   *0x40f014
40ccd3:	83 c4 0c             	add    $0xc,%esp
40ccd6:	eb 22                	jmp    0x40ccfa
40ccd8:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ccdb:	8b 00                	mov    (%eax),%eax
40ccdd:	8b 00                	mov    (%eax),%eax
40ccdf:	89 45 e0             	mov    %eax,-0x20(%ebp)
40cce2:	50                   	push   %eax
40cce3:	ff 15 18 f0 40 00    	call   *0x40f018
40cce9:	c3                   	ret
40ccea:	8b 65 e8             	mov    -0x18(%ebp),%esp
40cced:	ba 2f 04 00 00       	mov    $0x42f,%edx
40ccf2:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40ccf5:	e8 c6 00 00 00       	call   0x40cdc0
40ccfa:	89 45 dc             	mov    %eax,-0x24(%ebp)
40ccfd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40cd04:	85 c0                	test   %eax,%eax
40cd06:	74 0b                	je     0x40cd13
40cd08:	50                   	push   %eax
40cd09:	ff 15 3c f0 40 00    	call   *0x40f03c
40cd0f:	33 c0                	xor    %eax,%eax
40cd11:	eb 03                	jmp    0x40cd16
40cd13:	33 c0                	xor    %eax,%eax
40cd15:	40                   	inc    %eax
40cd16:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cd19:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cd20:	59                   	pop    %ecx
40cd21:	5f                   	pop    %edi
40cd22:	5e                   	pop    %esi
40cd23:	5b                   	pop    %ebx
40cd24:	c9                   	leave
40cd25:	c3                   	ret
40cd26:	cc                   	int3
40cd27:	cc                   	int3
40cd28:	cc                   	int3
40cd29:	cc                   	int3
40cd2a:	cc                   	int3
40cd2b:	cc                   	int3
40cd2c:	cc                   	int3
40cd2d:	cc                   	int3
40cd2e:	cc                   	int3
40cd2f:	cc                   	int3
40cd30:	8b ff                	mov    %edi,%edi
40cd32:	55                   	push   %ebp
40cd33:	8b ec                	mov    %esp,%ebp
40cd35:	ff 75 08             	push   0x8(%ebp)
40cd38:	6a 40                	push   $0x40
40cd3a:	ff 15 64 f0 40 00    	call   *0x40f064
40cd40:	5d                   	pop    %ebp
40cd41:	c2 04 00             	ret    $0x4
40cd44:	cc                   	int3
40cd45:	cc                   	int3
40cd46:	cc                   	int3
40cd47:	cc                   	int3
40cd48:	cc                   	int3
40cd49:	cc                   	int3
40cd4a:	cc                   	int3
40cd4b:	cc                   	int3
40cd4c:	cc                   	int3
40cd4d:	cc                   	int3
40cd4e:	cc                   	int3
40cd4f:	cc                   	int3
40cd50:	ff 25 68 f0 40 00    	jmp    *0x40f068
40cd56:	8b ff                	mov    %edi,%edi
40cd58:	55                   	push   %ebp
40cd59:	8b ec                	mov    %esp,%ebp
40cd5b:	51                   	push   %ecx
40cd5c:	53                   	push   %ebx
40cd5d:	8b c2                	mov    %edx,%eax
40cd5f:	33 d2                	xor    %edx,%edx
40cd61:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cd64:	56                   	push   %esi
40cd65:	57                   	push   %edi
40cd66:	85 c0                	test   %eax,%eax
40cd68:	74 3f                	je     0x40cda9
40cd6a:	8b 7d 08             	mov    0x8(%ebp),%edi
40cd6d:	8b f1                	mov    %ecx,%esi
40cd6f:	85 f6                	test   %esi,%esi
40cd71:	74 0e                	je     0x40cd81
40cd73:	8d 04 39             	lea    (%ecx,%edi,1),%eax
40cd76:	3b f0                	cmp    %eax,%esi
40cd78:	73 39                	jae    0x40cdb3
40cd7a:	8d 04 0a             	lea    (%edx,%ecx,1),%eax