407c51:	83 ce ff             	or     $0xffffffff,%esi
407c54:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407c57:	e8 46 04 00 00       	call   0x4080a2
407c5c:	8b c6                	mov    %esi,%eax
407c5e:	eb 78                	jmp    0x407cd8
407c60:	8d 04 9e             	lea    (%esi,%ebx,4),%eax
407c63:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
407c66:	89 45 f0             	mov    %eax,-0x10(%ebp)
407c69:	8b d0                	mov    %eax,%edx
407c6b:	89 55 fc             	mov    %edx,-0x4(%ebp)
407c6e:	3b fb                	cmp    %ebx,%edi
407c70:	74 4e                	je     0x407cc0
407c72:	8b c6                	mov    %esi,%eax
407c74:	2b c7                	sub    %edi,%eax
407c76:	89 45 ec             	mov    %eax,-0x14(%ebp)
407c79:	8b 0f                	mov    (%edi),%ecx
407c7b:	8d 41 01             	lea    0x1(%ecx),%eax
407c7e:	89 45 f4             	mov    %eax,-0xc(%ebp)
407c81:	8a 01                	mov    (%ecx),%al
407c83:	41                   	inc    %ecx
407c84:	84 c0                	test   %al,%al
407c86:	75 f9                	jne    0x407c81
407c88:	2b 4d f4             	sub    -0xc(%ebp),%ecx
407c8b:	8d 41 01             	lea    0x1(%ecx),%eax
407c8e:	50                   	push   %eax
407c8f:	ff 37                	push   (%edi)
407c91:	89 45 f4             	mov    %eax,-0xc(%ebp)
407c94:	8b 45 f0             	mov    -0x10(%ebp),%eax
407c97:	2b c2                	sub    %edx,%eax
407c99:	03 45 f8             	add    -0x8(%ebp),%eax
407c9c:	50                   	push   %eax
407c9d:	52                   	push   %edx
407c9e:	e8 22 37 00 00       	call   0x40b3c5
407ca3:	83 c4 10             	add    $0x10,%esp
407ca6:	85 c0                	test   %eax,%eax
407ca8:	75 33                	jne    0x407cdd
407caa:	8b 45 ec             	mov    -0x14(%ebp),%eax
407cad:	8b 55 fc             	mov    -0x4(%ebp),%edx
407cb0:	89 14 38             	mov    %edx,(%eax,%edi,1)
407cb3:	83 c7 04             	add    $0x4,%edi
407cb6:	03 55 f4             	add    -0xc(%ebp),%edx
407cb9:	89 55 fc             	mov    %edx,-0x4(%ebp)
407cbc:	3b fb                	cmp    %ebx,%edi
407cbe:	75 b9                	jne    0x407c79
407cc0:	8b 45 0c             	mov    0xc(%ebp),%eax
407cc3:	89 30                	mov    %esi,(%eax)
407cc5:	33 c0                	xor    %eax,%eax
407cc7:	50                   	push   %eax
407cc8:	e8 ac fb ff ff       	call   0x407879
407ccd:	59                   	pop    %ecx
407cce:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407cd1:	e8 cc 03 00 00       	call   0x4080a2
407cd6:	33 c0                	xor    %eax,%eax
407cd8:	5f                   	pop    %edi
407cd9:	5b                   	pop    %ebx
407cda:	5e                   	pop    %esi
407cdb:	c9                   	leave
407cdc:	c3                   	ret
407cdd:	33 c0                	xor    %eax,%eax
407cdf:	50                   	push   %eax
407ce0:	50                   	push   %eax
407ce1:	50                   	push   %eax
407ce2:	50                   	push   %eax
407ce3:	50                   	push   %eax
407ce4:	e8 60 e0 ff ff       	call   0x405d49
407ce9:	cc                   	int3
407cea:	8b ff                	mov    %edi,%edi
407cec:	55                   	push   %ebp
407ced:	8b ec                	mov    %esp,%ebp
407cef:	51                   	push   %ecx
407cf0:	8b 4d 08             	mov    0x8(%ebp),%ecx
407cf3:	8d 51 01             	lea    0x1(%ecx),%edx
407cf6:	8a 01                	mov    (%ecx),%al
407cf8:	41                   	inc    %ecx
407cf9:	84 c0                	test   %al,%al
407cfb:	75 f9                	jne    0x407cf6
407cfd:	57                   	push   %edi
407cfe:	8b 7d 10             	mov    0x10(%ebp),%edi
407d01:	2b ca                	sub    %edx,%ecx
407d03:	8b c7                	mov    %edi,%eax
407d05:	41                   	inc    %ecx
407d06:	f7 d0                	not    %eax
407d08:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407d0b:	3b c8                	cmp    %eax,%ecx
407d0d:	76 06                	jbe    0x407d15
407d0f:	6a 0c                	push   $0xc
407d11:	58                   	pop    %eax
407d12:	5f                   	pop    %edi
407d13:	c9                   	leave
407d14:	c3                   	ret
407d15:	53                   	push   %ebx
407d16:	56                   	push   %esi
407d17:	8d 5f 01             	lea    0x1(%edi),%ebx
407d1a:	03 d9                	add    %ecx,%ebx
407d1c:	6a 01                	push   $0x1
407d1e:	53                   	push   %ebx
407d1f:	e8 3f fc ff ff       	call   0x407963
407d24:	8b f0                	mov    %eax,%esi
407d26:	59                   	pop    %ecx
407d27:	59                   	pop    %ecx
407d28:	85 ff                	test   %edi,%edi
407d2a:	74 12                	je     0x407d3e
407d2c:	57                   	push   %edi
407d2d:	ff 75 0c             	push   0xc(%ebp)
407d30:	53                   	push   %ebx
407d31:	56                   	push   %esi
407d32:	e8 8e 36 00 00       	call   0x40b3c5
407d37:	83 c4 10             	add    $0x10,%esp
407d3a:	85 c0                	test   %eax,%eax
407d3c:	75 50                	jne    0x407d8e
407d3e:	ff 75 fc             	push   -0x4(%ebp)
407d41:	2b df                	sub    %edi,%ebx
407d43:	8d 04 3e             	lea    (%esi,%edi,1),%eax
407d46:	ff 75 08             	push   0x8(%ebp)
407d49:	53                   	push   %ebx
407d4a:	50                   	push   %eax
407d4b:	e8 75 36 00 00       	call   0x40b3c5
407d50:	83 c4 10             	add    $0x10,%esp
407d53:	85 c0                	test   %eax,%eax
407d55:	75 37                	jne    0x407d8e
407d57:	8b 5d 14             	mov    0x14(%ebp),%ebx
407d5a:	8b cb                	mov    %ebx,%ecx
407d5c:	e8 7d 04 00 00       	call   0x4081de
407d61:	33 ff                	xor    %edi,%edi
407d63:	89 45 fc             	mov    %eax,-0x4(%ebp)
407d66:	85 c0                	test   %eax,%eax
407d68:	74 0c                	je     0x407d76
407d6a:	56                   	push   %esi
407d6b:	e8 09 fb ff ff       	call   0x407879
407d70:	8b 75 fc             	mov    -0x4(%ebp),%esi
407d73:	59                   	pop    %ecx
407d74:	eb 0b                	jmp    0x407d81
407d76:	8b 43 04             	mov    0x4(%ebx),%eax
407d79:	89 30                	mov    %esi,(%eax)
407d7b:	8b f7                	mov    %edi,%esi
407d7d:	83 43 04 04          	addl   $0x4,0x4(%ebx)
407d81:	57                   	push   %edi
407d82:	e8 f2 fa ff ff       	call   0x407879
407d87:	59                   	pop    %ecx
407d88:	8b c6                	mov    %esi,%eax
407d8a:	5e                   	pop    %esi
407d8b:	5b                   	pop    %ebx
407d8c:	eb 84                	jmp    0x407d12
407d8e:	33 ff                	xor    %edi,%edi
407d90:	57                   	push   %edi
407d91:	57                   	push   %edi
407d92:	57                   	push   %edi
407d93:	57                   	push   %edi
407d94:	57                   	push   %edi
407d95:	e8 af df ff ff       	call   0x405d49
407d9a:	cc                   	int3
407d9b:	8b ff                	mov    %edi,%edi
407d9d:	55                   	push   %ebp
407d9e:	8b ec                	mov    %esp,%ebp
407da0:	81 ec 98 02 00 00    	sub    $0x298,%esp
407da6:	a1 14 60 41 00       	mov    0x416014,%eax
407dab:	33 c5                	xor    %ebp,%eax
407dad:	89 45 fc             	mov    %eax,-0x4(%ebp)
407db0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407db3:	8b 55 10             	mov    0x10(%ebp),%edx
407db6:	53                   	push   %ebx
407db7:	57                   	push   %edi
407db8:	8b 7d 08             	mov    0x8(%ebp),%edi
407dbb:	89 95 a4 fd ff ff    	mov    %edx,-0x25c(%ebp)
407dc1:	3b cf                	cmp    %edi,%ecx
407dc3:	74 23                	je     0x407de8
407dc5:	8a 01                	mov    (%ecx),%al
407dc7:	3c 2f                	cmp    $0x2f,%al
407dc9:	74 17                	je     0x407de2
407dcb:	3c 5c                	cmp    $0x5c,%al
407dcd:	74 13                	je     0x407de2
407dcf:	3c 3a                	cmp    $0x3a,%al
407dd1:	74 0f                	je     0x407de2
407dd3:	51                   	push   %ecx
407dd4:	57                   	push   %edi
407dd5:	e8 36 36 00 00       	call   0x40b410
407dda:	59                   	pop    %ecx
407ddb:	59                   	pop    %ecx
407ddc:	8b c8                	mov    %eax,%ecx
407dde:	3b cf                	cmp    %edi,%ecx
407de0:	75 e3                	jne    0x407dc5
407de2:	8b 95 a4 fd ff ff    	mov    -0x25c(%ebp),%edx
407de8:	8a 01                	mov    (%ecx),%al
407dea:	88 85 ab fd ff ff    	mov    %al,-0x255(%ebp)
407df0:	3c 3a                	cmp    $0x3a,%al
407df2:	75 20                	jne    0x407e14
407df4:	8d 47 01             	lea    0x1(%edi),%eax
407df7:	3b c8                	cmp    %eax,%ecx
407df9:	74 13                	je     0x407e0e
407dfb:	52                   	push   %edx
407dfc:	33 db                	xor    %ebx,%ebx
407dfe:	53                   	push   %ebx
407dff:	53                   	push   %ebx
407e00:	57                   	push   %edi
407e01:	e8 e4 fe ff ff       	call   0x407cea
407e06:	83 c4 10             	add    $0x10,%esp
407e09:	e9 04 02 00 00       	jmp    0x408012
407e0e:	8a 85 ab fd ff ff    	mov    -0x255(%ebp),%al
407e14:	33 db                	xor    %ebx,%ebx
407e16:	3c 2f                	cmp    $0x2f,%al
407e18:	74 0a                	je     0x407e24
407e1a:	3c 5c                	cmp    $0x5c,%al
407e1c:	74 06                	je     0x407e24
407e1e:	3c 3a                	cmp    $0x3a,%al
407e20:	8a c3                	mov    %bl,%al
407e22:	75 02                	jne    0x407e26
407e24:	b0 01                	mov    $0x1,%al
407e26:	2b cf                	sub    %edi,%ecx
407e28:	0f b6 c0             	movzbl %al,%eax
407e2b:	41                   	inc    %ecx
407e2c:	89 9d 74 fd ff ff    	mov    %ebx,-0x28c(%ebp)
407e32:	f7 d8                	neg    %eax
407e34:	89 9d 78 fd ff ff    	mov    %ebx,-0x288(%ebp)
407e3a:	56                   	push   %esi
407e3b:	1b c0                	sbb    %eax,%eax
407e3d:	89 9d 7c fd ff ff    	mov    %ebx,-0x284(%ebp)
407e43:	23 c1                	and    %ecx,%eax
407e45:	89 9d 80 fd ff ff    	mov    %ebx,-0x280(%ebp)
407e4b:	89 85 70 fd ff ff    	mov    %eax,-0x290(%ebp)
407e51:	89 9d 84 fd ff ff    	mov    %ebx,-0x27c(%ebp)
407e57:	88 9d 88 fd ff ff    	mov    %bl,-0x278(%ebp)
407e5d:	e8 89 02 00 00       	call   0x4080eb
407e62:	50                   	push   %eax
407e63:	8d 85 74 fd ff ff    	lea    -0x28c(%ebp),%eax
407e69:	50                   	push   %eax
407e6a:	57                   	push   %edi
407e6b:	e8 e0 fc ff ff       	call   0x407b50
407e70:	83 c4 0c             	add    $0xc,%esp
407e73:	8d 8d ac fd ff ff    	lea    -0x254(%ebp),%ecx
407e79:	f7 d8                	neg    %eax
407e7b:	1b c0                	sbb    %eax,%eax
407e7d:	53                   	push   %ebx
407e7e:	53                   	push   %ebx
407e7f:	53                   	push   %ebx
407e80:	51                   	push   %ecx
407e81:	f7 d0                	not    %eax
407e83:	23 85 7c fd ff ff    	and    -0x284(%ebp),%eax
407e89:	53                   	push   %ebx
407e8a:	50                   	push   %eax
407e8b:	ff 15 ac f0 40 00    	call   *0x40f0ac
407e91:	8b f0                	mov    %eax,%esi
407e93:	83 fe ff             	cmp    $0xffffffff,%esi
407e96:	75 2e                	jne    0x407ec6
407e98:	ff b5 a4 fd ff ff    	push   -0x25c(%ebp)
407e9e:	53                   	push   %ebx
407e9f:	53                   	push   %ebx
407ea0:	57                   	push   %edi
407ea1:	e8 44 fe ff ff       	call   0x407cea
407ea6:	83 c4 10             	add    $0x10,%esp
407ea9:	8b f0                	mov    %eax,%esi
407eab:	38 9d 88 fd ff ff    	cmp    %bl,-0x278(%ebp)
407eb1:	74 0c                	je     0x407ebf
407eb3:	ff b5 7c fd ff ff    	push   -0x284(%ebp)
407eb9:	e8 bb f9 ff ff       	call   0x407879
407ebe:	59                   	pop    %ecx
407ebf:	8b c6                	mov    %esi,%eax
407ec1:	e9 4b 01 00 00       	jmp    0x408011
407ec6:	8b 85 a4 fd ff ff    	mov    -0x25c(%ebp),%eax
407ecc:	8b 48 04             	mov    0x4(%eax),%ecx
407ecf:	2b 08                	sub    (%eax),%ecx
407ed1:	c1 f9 02             	sar    $0x2,%ecx
407ed4:	89 8d 6c fd ff ff    	mov    %ecx,-0x294(%ebp)
407eda:	89 9d 8c fd ff ff    	mov    %ebx,-0x274(%ebp)
407ee0:	89 9d 90 fd ff ff    	mov    %ebx,-0x270(%ebp)
407ee6:	89 9d 94 fd ff ff    	mov    %ebx,-0x26c(%ebp)
407eec:	89 9d 98 fd ff ff    	mov    %ebx,-0x268(%ebp)
407ef2:	89 9d 9c fd ff ff    	mov    %ebx,-0x264(%ebp)
407ef8:	88 9d a0 fd ff ff    	mov    %bl,-0x260(%ebp)
407efe:	e8 e8 01 00 00       	call   0x4080eb
407f03:	50                   	push   %eax
407f04:	8d 85 ab fd ff ff    	lea    -0x255(%ebp),%eax
407f0a:	50                   	push   %eax
407f0b:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
407f11:	50                   	push   %eax
407f12:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
407f18:	50                   	push   %eax
407f19:	e8 6c fb ff ff       	call   0x407a8a
407f1e:	83 c4 10             	add    $0x10,%esp
407f21:	f7 d8                	neg    %eax
407f23:	1b c0                	sbb    %eax,%eax
407f25:	f7 d0                	not    %eax
407f27:	23 85 94 fd ff ff    	and    -0x26c(%ebp),%eax
407f2d:	80 38 2e             	cmpb   $0x2e,(%eax)
407f30:	75 11                	jne    0x407f43
407f32:	8a 48 01             	mov    0x1(%eax),%cl
407f35:	84 c9                	test   %cl,%cl
407f37:	74 2a                	je     0x407f63
407f39:	80 f9 2e             	cmp    $0x2e,%cl
407f3c:	75 05                	jne    0x407f43
407f3e:	38 58 02             	cmp    %bl,0x2(%eax)
407f41:	74 20                	je     0x407f63
407f43:	ff b5 a4 fd ff ff    	push   -0x25c(%ebp)
407f49:	ff b5 70 fd ff ff    	push   -0x290(%ebp)
407f4f:	57                   	push   %edi
407f50:	50                   	push   %eax
407f51:	e8 94 fd ff ff       	call   0x407cea
407f56:	83 c4 10             	add    $0x10,%esp
407f59:	89 85 68 fd ff ff    	mov    %eax,-0x298(%ebp)
407f5f:	85 c0                	test   %eax,%eax
407f61:	75 79                	jne    0x407fdc
407f63:	38 9d a0 fd ff ff    	cmp    %bl,-0x260(%ebp)
407f69:	74 0c                	je     0x407f77
407f6b:	ff b5 94 fd ff ff    	push   -0x26c(%ebp)
407f71:	e8 03 f9 ff ff       	call   0x407879
407f76:	59                   	pop    %ecx
407f77:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
407f7d:	50                   	push   %eax
407f7e:	56                   	push   %esi
407f7f:	ff 15 b0 f0 40 00    	call   *0x40f0b0
407f85:	85 c0                	test   %eax,%eax
407f87:	0f 85 4d ff ff ff    	jne    0x407eda
407f8d:	8b 85 a4 fd ff ff    	mov    -0x25c(%ebp),%eax
407f93:	8b 8d 6c fd ff ff    	mov    -0x294(%ebp),%ecx
407f99:	8b 10                	mov    (%eax),%edx
407f9b:	8b 40 04             	mov    0x4(%eax),%eax
407f9e:	2b c2                	sub    %edx,%eax
407fa0:	c1 f8 02             	sar    $0x2,%eax
407fa3:	3b c8                	cmp    %eax,%ecx
407fa5:	74 16                	je     0x407fbd
407fa7:	68 c0 79 40 00       	push   $0x4079c0
407fac:	2b c1                	sub    %ecx,%eax
407fae:	6a 04                	push   $0x4
407fb0:	50                   	push   %eax
407fb1:	8d 04 8a             	lea    (%edx,%ecx,4),%eax
407fb4:	50                   	push   %eax
407fb5:	e8 66 2e 00 00       	call   0x40ae20
407fba:	83 c4 10             	add    $0x10,%esp
407fbd:	56                   	push   %esi
407fbe:	ff 15 a8 f0 40 00    	call   *0x40f0a8
407fc4:	38 9d 88 fd ff ff    	cmp    %bl,-0x278(%ebp)
407fca:	74 0c                	je     0x407fd8
407fcc:	ff b5 7c fd ff ff    	push   -0x284(%ebp)
407fd2:	e8 a2 f8 ff ff       	call   0x407879
407fd7:	59                   	pop    %ecx
407fd8:	33 c0                	xor    %eax,%eax
407fda:	eb 35                	jmp    0x408011
407fdc:	38 9d a0 fd ff ff    	cmp    %bl,-0x260(%ebp)
407fe2:	74 0c                	je     0x407ff0
407fe4:	ff b5 94 fd ff ff    	push   -0x26c(%ebp)
407fea:	e8 8a f8 ff ff       	call   0x407879
407fef:	59                   	pop    %ecx
407ff0:	56                   	push   %esi
407ff1:	ff 15 a8 f0 40 00    	call   *0x40f0a8
407ff7:	38 9d 88 fd ff ff    	cmp    %bl,-0x278(%ebp)
407ffd:	74 0c                	je     0x40800b
407fff:	ff b5 7c fd ff ff    	push   -0x284(%ebp)
408005:	e8 6f f8 ff ff       	call   0x407879
40800a:	59                   	pop    %ecx
40800b:	8b 85 68 fd ff ff    	mov    -0x298(%ebp),%eax
408011:	5e                   	pop    %esi