40ec18:	c7 05 1c 25 42 00 10 	movl   $0x421510,0x42251c
40ec1f:	15 42 00
40ec22:	e8 41 d8 ff ff       	call   0x40c468
40ec27:	68 24 25 42 00       	push   $0x422524
40ec2c:	50                   	push   %eax
40ec2d:	6a 01                	push   $0x1
40ec2f:	6a fd                	push   $0xfffffffd
40ec31:	e8 d0 fd ff ff       	call   0x40ea06
40ec36:	83 c4 10             	add    $0x10,%esp
40ec39:	c6 05 2c 25 42 00 01 	movb   $0x1,0x42252c
40ec40:	b0 01                	mov    $0x1,%al
40ec42:	c3                   	ret
40ec43:	e8 65 d7 ff ff       	call   0x40c3ad
40ec48:	68 24 25 42 00       	push   $0x422524
40ec4d:	50                   	push   %eax
40ec4e:	e8 08 ff ff ff       	call   0x40eb5b
40ec53:	59                   	pop    %ecx
40ec54:	59                   	pop    %ecx
40ec55:	c3                   	ret
40ec56:	8b ff                	mov    %edi,%edi
40ec58:	55                   	push   %ebp
40ec59:	8b ec                	mov    %esp,%ebp
40ec5b:	83 ec 24             	sub    $0x24,%esp
40ec5e:	a1 c0 10 42 00       	mov    0x4210c0,%eax
40ec63:	33 c5                	xor    %ebp,%eax
40ec65:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ec68:	53                   	push   %ebx
40ec69:	56                   	push   %esi
40ec6a:	8b 75 0c             	mov    0xc(%ebp),%esi
40ec6d:	57                   	push   %edi
40ec6e:	ff 75 08             	push   0x8(%ebp)
40ec71:	e8 17 fb ff ff       	call   0x40e78d
40ec76:	8b d8                	mov    %eax,%ebx
40ec78:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40ec7b:	59                   	pop    %ecx
40ec7c:	85 db                	test   %ebx,%ebx
40ec7e:	0f 84 bf 01 00 00    	je     0x40ee43
40ec84:	33 ff                	xor    %edi,%edi
40ec86:	8b cf                	mov    %edi,%ecx
40ec88:	8b c7                	mov    %edi,%eax
40ec8a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40ec8d:	39 98 20 17 42 00    	cmp    %ebx,0x421720(%eax)
40ec93:	0f 84 f6 00 00 00    	je     0x40ed8f
40ec99:	41                   	inc    %ecx
40ec9a:	83 c0 30             	add    $0x30,%eax
40ec9d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40eca0:	3d f0 00 00 00       	cmp    $0xf0,%eax
40eca5:	72 e6                	jb     0x40ec8d
40eca7:	81 fb e8 fd 00 00    	cmp    $0xfde8,%ebx
40ecad:	0f 84 d4 00 00 00    	je     0x40ed87
40ecb3:	0f b7 c3             	movzwl %bx,%eax
40ecb6:	50                   	push   %eax
40ecb7:	ff 15 00 91 41 00    	call   *0x419100
40ecbd:	85 c0                	test   %eax,%eax
40ecbf:	0f 84 c2 00 00 00    	je     0x40ed87
40ecc5:	b8 e9 fd 00 00       	mov    $0xfde9,%eax
40ecca:	3b d8                	cmp    %eax,%ebx
40eccc:	75 20                	jne    0x40ecee
40ecce:	89 46 04             	mov    %eax,0x4(%esi)
40ecd1:	89 be 1c 02 00 00    	mov    %edi,0x21c(%esi)
40ecd7:	89 7e 18             	mov    %edi,0x18(%esi)
40ecda:	66 89 7e 1c          	mov    %di,0x1c(%esi)
40ecde:	89 7e 08             	mov    %edi,0x8(%esi)
40ece1:	33 c0                	xor    %eax,%eax
40ece3:	8d 7e 0c             	lea    0xc(%esi),%edi
40ece6:	ab                   	stos   %eax,%es:(%edi)
40ece7:	ab                   	stos   %eax,%es:(%edi)
40ece8:	ab                   	stos   %eax,%es:(%edi)
40ece9:	e9 4d 01 00 00       	jmp    0x40ee3b
40ecee:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ecf1:	50                   	push   %eax
40ecf2:	53                   	push   %ebx
40ecf3:	ff 15 0c 91 41 00    	call   *0x41910c
40ecf9:	85 c0                	test   %eax,%eax
40ecfb:	74 7e                	je     0x40ed7b
40ecfd:	68 01 01 00 00       	push   $0x101
40ed02:	8d 46 18             	lea    0x18(%esi),%eax
40ed05:	57                   	push   %edi
40ed06:	50                   	push   %eax
40ed07:	e8 64 5d ff ff       	call   0x404a70
40ed0c:	83 c4 0c             	add    $0xc,%esp
40ed0f:	89 5e 04             	mov    %ebx,0x4(%esi)
40ed12:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
40ed16:	89 be 1c 02 00 00    	mov    %edi,0x21c(%esi)
40ed1c:	75 c0                	jne    0x40ecde
40ed1e:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40ed22:	8d 45 ee             	lea    -0x12(%ebp),%eax
40ed25:	74 2a                	je     0x40ed51
40ed27:	8a 48 01             	mov    0x1(%eax),%cl
40ed2a:	84 c9                	test   %cl,%cl
40ed2c:	74 23                	je     0x40ed51
40ed2e:	0f b6 38             	movzbl (%eax),%edi
40ed31:	0f b6 c9             	movzbl %cl,%ecx
40ed34:	3b f9                	cmp    %ecx,%edi
40ed36:	77 11                	ja     0x40ed49
40ed38:	8d 56 19             	lea    0x19(%esi),%edx
40ed3b:	2b cf                	sub    %edi,%ecx
40ed3d:	03 d7                	add    %edi,%edx
40ed3f:	41                   	inc    %ecx
40ed40:	80 0a 04             	orb    $0x4,(%edx)
40ed43:	42                   	inc    %edx
40ed44:	83 e9 01             	sub    $0x1,%ecx
40ed47:	75 f7                	jne    0x40ed40
40ed49:	83 c0 02             	add    $0x2,%eax
40ed4c:	80 38 00             	cmpb   $0x0,(%eax)
40ed4f:	75 d6                	jne    0x40ed27
40ed51:	8d 46 1a             	lea    0x1a(%esi),%eax
40ed54:	b9 fe 00 00 00       	mov    $0xfe,%ecx
40ed59:	80 08 08             	orb    $0x8,(%eax)
40ed5c:	40                   	inc    %eax
40ed5d:	83 e9 01             	sub    $0x1,%ecx
40ed60:	75 f7                	jne    0x40ed59
40ed62:	ff 76 04             	push   0x4(%esi)
40ed65:	e8 e5 f9 ff ff       	call   0x40e74f
40ed6a:	33 ff                	xor    %edi,%edi
40ed6c:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
40ed72:	83 c4 04             	add    $0x4,%esp
40ed75:	47                   	inc    %edi
40ed76:	e9 63 ff ff ff       	jmp    0x40ecde
40ed7b:	39 3d 28 25 42 00    	cmp    %edi,0x422528
40ed81:	0f 85 bc 00 00 00    	jne    0x40ee43
40ed87:	83 c8 ff             	or     $0xffffffff,%eax
40ed8a:	e9 bd 00 00 00       	jmp    0x40ee4c
40ed8f:	68 01 01 00 00       	push   $0x101
40ed94:	8d 46 18             	lea    0x18(%esi),%eax
40ed97:	57                   	push   %edi
40ed98:	50                   	push   %eax
40ed99:	e8 d2 5c ff ff       	call   0x404a70
40ed9e:	83 c4 0c             	add    $0xc,%esp
40eda1:	6b 45 e4 30          	imul   $0x30,-0x1c(%ebp),%eax
40eda5:	89 45 dc             	mov    %eax,-0x24(%ebp)
40eda8:	8d 80 30 17 42 00    	lea    0x421730(%eax),%eax
40edae:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40edb1:	80 38 00             	cmpb   $0x0,(%eax)
40edb4:	8b c8                	mov    %eax,%ecx
40edb6:	74 3b                	je     0x40edf3
40edb8:	8a 41 01             	mov    0x1(%ecx),%al
40edbb:	84 c0                	test   %al,%al
40edbd:	74 31                	je     0x40edf0
40edbf:	0f b6 11             	movzbl (%ecx),%edx
40edc2:	0f b6 c0             	movzbl %al,%eax
40edc5:	3b d0                	cmp    %eax,%edx
40edc7:	77 1f                	ja     0x40ede8
40edc9:	8d 5e 19             	lea    0x19(%esi),%ebx
40edcc:	03 da                	add    %edx,%ebx
40edce:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40edd4:	73 12                	jae    0x40ede8
40edd6:	8a 87 18 17 42 00    	mov    0x421718(%edi),%al
40eddc:	08 03                	or     %al,(%ebx)
40edde:	42                   	inc    %edx
40eddf:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
40ede3:	43                   	inc    %ebx
40ede4:	3b d0                	cmp    %eax,%edx
40ede6:	76 e6                	jbe    0x40edce
40ede8:	83 c1 02             	add    $0x2,%ecx
40edeb:	80 39 00             	cmpb   $0x0,(%ecx)
40edee:	75 c8                	jne    0x40edb8
40edf0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40edf3:	47                   	inc    %edi
40edf4:	83 c0 08             	add    $0x8,%eax
40edf7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40edfa:	83 ff 04             	cmp    $0x4,%edi
40edfd:	72 b2                	jb     0x40edb1
40edff:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40ee02:	53                   	push   %ebx
40ee03:	89 5e 04             	mov    %ebx,0x4(%esi)
40ee06:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
40ee0d:	e8 3d f9 ff ff       	call   0x40e74f
40ee12:	83 c4 04             	add    $0x4,%esp
40ee15:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
40ee1b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40ee1e:	8d 4e 0c             	lea    0xc(%esi),%ecx
40ee21:	6a 06                	push   $0x6
40ee23:	8d 90 24 17 42 00    	lea    0x421724(%eax),%edx
40ee29:	5f                   	pop    %edi
40ee2a:	66 8b 02             	mov    (%edx),%ax
40ee2d:	8d 52 02             	lea    0x2(%edx),%edx
40ee30:	66 89 01             	mov    %ax,(%ecx)
40ee33:	8d 49 02             	lea    0x2(%ecx),%ecx
40ee36:	83 ef 01             	sub    $0x1,%edi
40ee39:	75 ef                	jne    0x40ee2a
40ee3b:	56                   	push   %esi
40ee3c:	e8 20 fa ff ff       	call   0x40e861
40ee41:	eb 06                	jmp    0x40ee49
40ee43:	56                   	push   %esi
40ee44:	e8 b5 f9 ff ff       	call   0x40e7fe
40ee49:	33 c0                	xor    %eax,%eax
40ee4b:	59                   	pop    %ecx
40ee4c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ee4f:	5f                   	pop    %edi
40ee50:	5e                   	pop    %esi
40ee51:	33 cd                	xor    %ebp,%ecx
40ee53:	5b                   	pop    %ebx
40ee54:	e8 6f 52 ff ff       	call   0x4040c8
40ee59:	c9                   	leave
40ee5a:	c3                   	ret
40ee5b:	8b ff                	mov    %edi,%edi
40ee5d:	55                   	push   %ebp
40ee5e:	8b ec                	mov    %esp,%ebp
40ee60:	56                   	push   %esi
40ee61:	8b 75 14             	mov    0x14(%ebp),%esi
40ee64:	85 f6                	test   %esi,%esi
40ee66:	75 04                	jne    0x40ee6c
40ee68:	33 c0                	xor    %eax,%eax
40ee6a:	eb 6d                	jmp    0x40eed9
40ee6c:	8b 45 08             	mov    0x8(%ebp),%eax
40ee6f:	85 c0                	test   %eax,%eax
40ee71:	75 13                	jne    0x40ee86
40ee73:	e8 b7 b8 ff ff       	call   0x40a72f
40ee78:	6a 16                	push   $0x16
40ee7a:	5e                   	pop    %esi
40ee7b:	89 30                	mov    %esi,(%eax)
40ee7d:	e8 47 86 ff ff       	call   0x4074c9
40ee82:	8b c6                	mov    %esi,%eax
40ee84:	eb 53                	jmp    0x40eed9
40ee86:	57                   	push   %edi
40ee87:	8b 7d 10             	mov    0x10(%ebp),%edi
40ee8a:	85 ff                	test   %edi,%edi
40ee8c:	74 14                	je     0x40eea2
40ee8e:	39 75 0c             	cmp    %esi,0xc(%ebp)
40ee91:	72 0f                	jb     0x40eea2
40ee93:	56                   	push   %esi
40ee94:	57                   	push   %edi
40ee95:	50                   	push   %eax
40ee96:	e8 95 54 ff ff       	call   0x404330
40ee9b:	83 c4 0c             	add    $0xc,%esp
40ee9e:	33 c0                	xor    %eax,%eax
40eea0:	eb 36                	jmp    0x40eed8
40eea2:	ff 75 0c             	push   0xc(%ebp)
40eea5:	6a 00                	push   $0x0
40eea7:	50                   	push   %eax
40eea8:	e8 c3 5b ff ff       	call   0x404a70
40eead:	83 c4 0c             	add    $0xc,%esp
40eeb0:	85 ff                	test   %edi,%edi
40eeb2:	75 09                	jne    0x40eebd
40eeb4:	e8 76 b8 ff ff       	call   0x40a72f
40eeb9:	6a 16                	push   $0x16
40eebb:	eb 0c                	jmp    0x40eec9
40eebd:	39 75 0c             	cmp    %esi,0xc(%ebp)
40eec0:	73 13                	jae    0x40eed5
40eec2:	e8 68 b8 ff ff       	call   0x40a72f
40eec7:	6a 22                	push   $0x22
40eec9:	5e                   	pop    %esi
40eeca:	89 30                	mov    %esi,(%eax)
40eecc:	e8 f8 85 ff ff       	call   0x4074c9
40eed1:	8b c6                	mov    %esi,%eax
40eed3:	eb 03                	jmp    0x40eed8
40eed5:	6a 16                	push   $0x16
40eed7:	58                   	pop    %eax
40eed8:	5f                   	pop    %edi
40eed9:	5e                   	pop    %esi
40eeda:	5d                   	pop    %ebp
40eedb:	c3                   	ret
40eedc:	8b ff                	mov    %edi,%edi
40eede:	55                   	push   %ebp
40eedf:	8b ec                	mov    %esp,%ebp
40eee1:	8b 45 08             	mov    0x8(%ebp),%eax
40eee4:	b9 ac de 00 00       	mov    $0xdeac,%ecx
40eee9:	3b c1                	cmp    %ecx,%eax
40eeeb:	77 46                	ja     0x40ef33
40eeed:	74 26                	je     0x40ef15
40eeef:	b9 33 c4 00 00       	mov    $0xc433,%ecx
40eef4:	3b c1                	cmp    %ecx,%eax
40eef6:	77 21                	ja     0x40ef19
40eef8:	74 1b                	je     0x40ef15
40eefa:	83 e8 2a             	sub    $0x2a,%eax
40eefd:	74 16                	je     0x40ef15
40eeff:	2d 02 c4 00 00       	sub    $0xc402,%eax
40ef04:	74 0f                	je     0x40ef15
40ef06:	83 e8 01             	sub    $0x1,%eax
40ef09:	74 0a                	je     0x40ef15
40ef0b:	83 e8 01             	sub    $0x1,%eax
40ef0e:	74 05                	je     0x40ef15
40ef10:	83 e8 03             	sub    $0x3,%eax
40ef13:	75 52                	jne    0x40ef67
40ef15:	33 c0                	xor    %eax,%eax
40ef17:	5d                   	pop    %ebp
40ef18:	c3                   	ret
40ef19:	2d 35 c4 00 00       	sub    $0xc435,%eax
40ef1e:	74 f5                	je     0x40ef15
40ef20:	2d 63 12 00 00       	sub    $0x1263,%eax
40ef25:	74 45                	je     0x40ef6c
40ef27:	2d 12 08 00 00       	sub    $0x812,%eax
40ef2c:	74 e7                	je     0x40ef15
40ef2e:	83 e8 01             	sub    $0x1,%eax
40ef31:	eb e0                	jmp    0x40ef13
40ef33:	b9 b1 de 00 00       	mov    $0xdeb1,%ecx
40ef38:	3b c1                	cmp    %ecx,%eax
40ef3a:	77 13                	ja     0x40ef4f
40ef3c:	74 d7                	je     0x40ef15
40ef3e:	2d ad de 00 00       	sub    $0xdead,%eax
40ef43:	74 d0                	je     0x40ef15
40ef45:	83 e8 01             	sub    $0x1,%eax
40ef48:	74 cb                	je     0x40ef15
40ef4a:	83 e8 01             	sub    $0x1,%eax
40ef4d:	eb dd                	jmp    0x40ef2c
40ef4f:	2d b2 de 00 00       	sub    $0xdeb2,%eax
40ef54:	74 bf                	je     0x40ef15
40ef56:	83 e8 01             	sub    $0x1,%eax
40ef59:	74 ba                	je     0x40ef15
40ef5b:	2d 35 1f 00 00       	sub    $0x1f35,%eax
40ef60:	74 b3                	je     0x40ef15
40ef62:	83 e8 01             	sub    $0x1,%eax
40ef65:	74 05                	je     0x40ef6c
40ef67:	8b 45 0c             	mov    0xc(%ebp),%eax
40ef6a:	5d                   	pop    %ebp
40ef6b:	c3                   	ret
40ef6c:	8b 45 0c             	mov    0xc(%ebp),%eax
40ef6f:	83 e0 08             	and    $0x8,%eax
40ef72:	5d                   	pop    %ebp
40ef73:	c3                   	ret
40ef74:	8b ff                	mov    %edi,%edi
40ef76:	55                   	push   %ebp
40ef77:	8b ec                	mov    %esp,%ebp
40ef79:	ff 75 1c             	push   0x1c(%ebp)
40ef7c:	ff 75 18             	push   0x18(%ebp)
40ef7f:	ff 75 14             	push   0x14(%ebp)
40ef82:	ff 75 10             	push   0x10(%ebp)
40ef85:	ff 75 0c             	push   0xc(%ebp)
40ef88:	ff 75 08             	push   0x8(%ebp)
40ef8b:	e8 4c ff ff ff       	call   0x40eedc
40ef90:	59                   	pop    %ecx
40ef91:	59                   	pop    %ecx
40ef92:	50                   	push   %eax
40ef93:	ff 75 08             	push   0x8(%ebp)
40ef96:	ff 15 10 91 41 00    	call   *0x419110
40ef9c:	5d                   	pop    %ebp
40ef9d:	c3                   	ret
40ef9e:	8b ff                	mov    %edi,%edi
40efa0:	55                   	push   %ebp
40efa1:	8b ec                	mov    %esp,%ebp
40efa3:	8b 45 08             	mov    0x8(%ebp),%eax
40efa6:	b9 ac de 00 00       	mov    $0xdeac,%ecx
40efab:	3b c1                	cmp    %ecx,%eax
40efad:	77 3d                	ja     0x40efec
40efaf:	74 79                	je     0x40f02a
40efb1:	b9 33 c4 00 00       	mov    $0xc433,%ecx
40efb6:	3b c1                	cmp    %ecx,%eax
40efb8:	77 1d                	ja     0x40efd7
40efba:	74 6e                	je     0x40f02a
40efbc:	83 e8 2a             	sub    $0x2a,%eax
40efbf:	74 69                	je     0x40f02a
40efc1:	2d 02 c4 00 00       	sub    $0xc402,%eax
40efc6:	74 62                	je     0x40f02a
40efc8:	83 e8 01             	sub    $0x1,%eax
40efcb:	74 5d                	je     0x40f02a
40efcd:	83 e8 01             	sub    $0x1,%eax
40efd0:	74 58                	je     0x40f02a
40efd2:	83 e8 03             	sub    $0x3,%eax
40efd5:	eb 47                	jmp    0x40f01e