407ab6:	66 39 1e             	cmp    %bx,(%esi)
407ab9:	75 1c                	jne    0x407ad7
407abb:	8b 75 0c             	mov    0xc(%ebp),%esi
407abe:	39 5e 0c             	cmp    %ebx,0xc(%esi)
407ac1:	75 0d                	jne    0x407ad0
407ac3:	6a 01                	push   $0x1
407ac5:	8b ce                	mov    %esi,%ecx
407ac7:	e8 78 06 00 00       	call   0x408144
407acc:	85 c0                	test   %eax,%eax
407ace:	75 7c                	jne    0x407b4c
407ad0:	8b 46 08             	mov    0x8(%esi),%eax
407ad3:	88 18                	mov    %bl,(%eax)
407ad5:	eb d3                	jmp    0x407aaa
407ad7:	53                   	push   %ebx
407ad8:	53                   	push   %ebx
407ad9:	53                   	push   %ebx
407ada:	53                   	push   %ebx
407adb:	6a ff                	push   $0xffffffff
407add:	56                   	push   %esi
407ade:	53                   	push   %ebx
407adf:	ff 75 14             	push   0x14(%ebp)
407ae2:	e8 57 13 00 00       	call   0x408e3e
407ae7:	83 c4 20             	add    $0x20,%esp
407aea:	85 c0                	test   %eax,%eax
407aec:	75 16                	jne    0x407b04
407aee:	ff 15 58 f0 40 00    	call   *0x40f058
407af4:	50                   	push   %eax
407af5:	e8 fc fd ff ff       	call   0x4078f6
407afa:	59                   	pop    %ecx
407afb:	e8 50 fe ff ff       	call   0x407950
407b00:	8b 00                	mov    (%eax),%eax
407b02:	eb 48                	jmp    0x407b4c
407b04:	57                   	push   %edi
407b05:	8b 7d 0c             	mov    0xc(%ebp),%edi
407b08:	3b 47 0c             	cmp    0xc(%edi),%eax
407b0b:	76 0c                	jbe    0x407b19
407b0d:	50                   	push   %eax
407b0e:	8b cf                	mov    %edi,%ecx
407b10:	e8 2f 06 00 00       	call   0x408144
407b15:	85 c0                	test   %eax,%eax
407b17:	75 32                	jne    0x407b4b
407b19:	ff 77 0c             	push   0xc(%edi)
407b1c:	8b 4d 10             	mov    0x10(%ebp),%ecx
407b1f:	ff 77 08             	push   0x8(%edi)
407b22:	56                   	push   %esi
407b23:	ff 75 14             	push   0x14(%ebp)
407b26:	e8 9c 05 00 00       	call   0x4080c7
407b2b:	85 c0                	test   %eax,%eax
407b2d:	75 16                	jne    0x407b45
407b2f:	ff 15 58 f0 40 00    	call   *0x40f058
407b35:	50                   	push   %eax
407b36:	e8 bb fd ff ff       	call   0x4078f6
407b3b:	59                   	pop    %ecx
407b3c:	e8 0f fe ff ff       	call   0x407950
407b41:	8b 00                	mov    (%eax),%eax
407b43:	eb 06                	jmp    0x407b4b
407b45:	48                   	dec    %eax
407b46:	89 47 10             	mov    %eax,0x10(%edi)
407b49:	33 c0                	xor    %eax,%eax
407b4b:	5f                   	pop    %edi
407b4c:	5e                   	pop    %esi
407b4d:	5b                   	pop    %ebx
407b4e:	5d                   	pop    %ebp
407b4f:	c3                   	ret
407b50:	8b ff                	mov    %edi,%edi
407b52:	55                   	push   %ebp
407b53:	8b ec                	mov    %esp,%ebp
407b55:	51                   	push   %ecx
407b56:	ff 75 10             	push   0x10(%ebp)
407b59:	8d 45 ff             	lea    -0x1(%ebp),%eax
407b5c:	50                   	push   %eax
407b5d:	ff 75 0c             	push   0xc(%ebp)
407b60:	ff 75 08             	push   0x8(%ebp)
407b63:	e8 70 fe ff ff       	call   0x4079d8
407b68:	83 c4 10             	add    $0x10,%esp
407b6b:	c9                   	leave
407b6c:	c3                   	ret
407b6d:	8b ff                	mov    %edi,%edi
407b6f:	55                   	push   %ebp
407b70:	8b ec                	mov    %esp,%ebp
407b72:	8b 45 0c             	mov    0xc(%ebp),%eax
407b75:	83 ec 20             	sub    $0x20,%esp
407b78:	56                   	push   %esi
407b79:	85 c0                	test   %eax,%eax
407b7b:	75 16                	jne    0x407b93
407b7d:	e8 ce fd ff ff       	call   0x407950
407b82:	6a 16                	push   $0x16
407b84:	5e                   	pop    %esi
407b85:	89 30                	mov    %esi,(%eax)
407b87:	e8 90 e1 ff ff       	call   0x405d1c
407b8c:	8b c6                	mov    %esi,%eax
407b8e:	e9 47 01 00 00       	jmp    0x407cda
407b93:	83 20 00             	andl   $0x0,(%eax)
407b96:	33 c9                	xor    %ecx,%ecx
407b98:	21 4d e8             	and    %ecx,-0x18(%ebp)
407b9b:	53                   	push   %ebx
407b9c:	8b 5d 08             	mov    0x8(%ebp),%ebx
407b9f:	57                   	push   %edi
407ba0:	33 ff                	xor    %edi,%edi
407ba2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407ba5:	89 7d e0             	mov    %edi,-0x20(%ebp)
407ba8:	8b 03                	mov    (%ebx),%eax
407baa:	85 c0                	test   %eax,%eax
407bac:	74 56                	je     0x407c04
407bae:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407bb1:	66 c7 45 fc 2a 3f    	movw   $0x3f2a,-0x4(%ebp)
407bb7:	51                   	push   %ecx
407bb8:	50                   	push   %eax
407bb9:	c6 45 fe 00          	movb   $0x0,-0x2(%ebp)
407bbd:	e8 0e 38 00 00       	call   0x40b3d0
407bc2:	59                   	pop    %ecx
407bc3:	59                   	pop    %ecx
407bc4:	85 c0                	test   %eax,%eax
407bc6:	75 1a                	jne    0x407be2
407bc8:	8d 45 e0             	lea    -0x20(%ebp),%eax
407bcb:	50                   	push   %eax
407bcc:	33 c0                	xor    %eax,%eax
407bce:	50                   	push   %eax
407bcf:	50                   	push   %eax
407bd0:	ff 33                	push   (%ebx)
407bd2:	e8 13 01 00 00       	call   0x407cea
407bd7:	8b f0                	mov    %eax,%esi
407bd9:	83 c4 10             	add    $0x10,%esp
407bdc:	85 f6                	test   %esi,%esi
407bde:	75 74                	jne    0x407c54
407be0:	eb 13                	jmp    0x407bf5
407be2:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407be5:	51                   	push   %ecx
407be6:	50                   	push   %eax
407be7:	ff 33                	push   (%ebx)
407be9:	e8 ad 01 00 00       	call   0x407d9b
407bee:	83 c4 0c             	add    $0xc,%esp
407bf1:	85 c0                	test   %eax,%eax
407bf3:	75 1d                	jne    0x407c12
407bf5:	83 c3 04             	add    $0x4,%ebx
407bf8:	8b 03                	mov    (%ebx),%eax
407bfa:	85 c0                	test   %eax,%eax
407bfc:	75 b0                	jne    0x407bae
407bfe:	8b 7d e0             	mov    -0x20(%ebp),%edi
407c01:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407c04:	8b d9                	mov    %ecx,%ebx
407c06:	8b f7                	mov    %edi,%esi
407c08:	2b df                	sub    %edi,%ebx
407c0a:	c1 fb 02             	sar    $0x2,%ebx
407c0d:	43                   	inc    %ebx
407c0e:	33 c0                	xor    %eax,%eax
407c10:	eb 1f                	jmp    0x407c31
407c12:	8b f0                	mov    %eax,%esi
407c14:	eb 3e                	jmp    0x407c54
407c16:	8b 16                	mov    (%esi),%edx
407c18:	8d 42 01             	lea    0x1(%edx),%eax
407c1b:	89 45 f4             	mov    %eax,-0xc(%ebp)
407c1e:	8a 02                	mov    (%edx),%al
407c20:	42                   	inc    %edx
407c21:	84 c0                	test   %al,%al
407c23:	75 f9                	jne    0x407c1e
407c25:	8b 45 f8             	mov    -0x8(%ebp),%eax
407c28:	2b 55 f4             	sub    -0xc(%ebp),%edx
407c2b:	40                   	inc    %eax
407c2c:	03 c2                	add    %edx,%eax
407c2e:	83 c6 04             	add    $0x4,%esi
407c31:	89 45 f8             	mov    %eax,-0x8(%ebp)
407c34:	3b f1                	cmp    %ecx,%esi
407c36:	75 de                	jne    0x407c16
407c38:	6a 01                	push   $0x1
407c3a:	50                   	push   %eax
407c3b:	53                   	push   %ebx
407c3c:	e8 b4 e6 ff ff       	call   0x4062f5
407c41:	8b f0                	mov    %eax,%esi
407c43:	83 c4 0c             	add    $0xc,%esp
407c46:	85 f6                	test   %esi,%esi
407c48:	75 16                	jne    0x407c60
407c4a:	50                   	push   %eax
407c4b:	e8 29 fc ff ff       	call   0x407879
407c50:	59                   	pop    %ecx
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