408a45:	80 fb 61             	cmp    $0x61,%bl
408a48:	7c 08                	jl     0x408a52
408a4a:	80 fb 7a             	cmp    $0x7a,%bl
408a4d:	7f 03                	jg     0x408a52
408a4f:	83 eb 20             	sub    $0x20,%ebx
408a52:	29 d8                	sub    %ebx,%eax
408a54:	75 07                	jne    0x408a5d
408a56:	83 c1 02             	add    $0x2,%ecx
408a59:	7c 9d                	jl     0x4089f8
408a5b:	89 e8                	mov    %ebp,%eax
408a5d:	5e                   	pop    %esi
408a5e:	5d                   	pop    %ebp
408a5f:	5b                   	pop    %ebx
408a60:	c3                   	ret
408a61:	8d 40 00             	lea    0x0(%eax),%eax
408a64:	39 d0                	cmp    %edx,%eax
408a66:	74 19                	je     0x408a81
408a68:	09 c0                	or     %eax,%eax
408a6a:	74 17                	je     0x408a83
408a6c:	09 d2                	or     %edx,%edx
408a6e:	74 14                	je     0x408a84
408a70:	8b 48 fc             	mov    -0x4(%eax),%ecx
408a73:	3b 4a fc             	cmp    -0x4(%edx),%ecx
408a76:	75 0c                	jne    0x408a84
408a78:	e8 4b ff ff ff       	call   0x4089c8
408a7d:	85 c0                	test   %eax,%eax
408a7f:	75 03                	jne    0x408a84
408a81:	b0 01                	mov    $0x1,%al
408a83:	c3                   	ret
408a84:	31 c0                	xor    %eax,%eax
408a86:	c3                   	ret
408a87:	90                   	nop
408a88:	53                   	push   %ebx
408a89:	56                   	push   %esi
408a8a:	57                   	push   %edi
408a8b:	8b fa                	mov    %edx,%edi
408a8d:	8b f0                	mov    %eax,%esi
408a8f:	8b c6                	mov    %esi,%eax
408a91:	85 c0                	test   %eax,%eax
408a93:	74 05                	je     0x408a9a
408a95:	83 e8 04             	sub    $0x4,%eax
408a98:	8b 00                	mov    (%eax),%eax
408a9a:	8b d8                	mov    %eax,%ebx
408a9c:	8b c6                	mov    %esi,%eax
408a9e:	e8 69 c1 ff ff       	call   0x404c0c
408aa3:	8b d0                	mov    %eax,%edx
408aa5:	8b c7                	mov    %edi,%eax
408aa7:	8b cb                	mov    %ebx,%ecx
408aa9:	e8 8a bd ff ff       	call   0x404838
408aae:	85 db                	test   %ebx,%ebx
408ab0:	7e 09                	jle    0x408abb
408ab2:	53                   	push   %ebx
408ab3:	8b 07                	mov    (%edi),%eax
408ab5:	50                   	push   %eax
408ab6:	e8 5d e3 ff ff       	call   0x406e18
408abb:	5f                   	pop    %edi
408abc:	5e                   	pop    %esi
408abd:	5b                   	pop    %ebx
408abe:	c3                   	ret
408abf:	90                   	nop
408ac0:	53                   	push   %ebx
408ac1:	56                   	push   %esi
408ac2:	57                   	push   %edi
408ac3:	8b fa                	mov    %edx,%edi
408ac5:	8b f0                	mov    %eax,%esi
408ac7:	8b c6                	mov    %esi,%eax
408ac9:	85 c0                	test   %eax,%eax
408acb:	74 05                	je     0x408ad2
408acd:	83 e8 04             	sub    $0x4,%eax
408ad0:	8b 00                	mov    (%eax),%eax
408ad2:	8b d8                	mov    %eax,%ebx
408ad4:	8b c6                	mov    %esi,%eax
408ad6:	e8 31 c1 ff ff       	call   0x404c0c
408adb:	8b d0                	mov    %eax,%edx
408add:	8b c7                	mov    %edi,%eax
408adf:	8b cb                	mov    %ebx,%ecx
408ae1:	e8 52 bd ff ff       	call   0x404838
408ae6:	85 db                	test   %ebx,%ebx
408ae8:	7e 09                	jle    0x408af3
408aea:	53                   	push   %ebx
408aeb:	8b 07                	mov    (%edi),%eax
408aed:	50                   	push   %eax
408aee:	e8 0d e3 ff ff       	call   0x406e00
408af3:	5f                   	pop    %edi
408af4:	5e                   	pop    %esi
408af5:	5b                   	pop    %ebx
408af6:	c3                   	ret
408af7:	90                   	nop
408af8:	53                   	push   %ebx
408af9:	56                   	push   %esi
408afa:	57                   	push   %edi
408afb:	55                   	push   %ebp
408afc:	8b ea                	mov    %edx,%ebp
408afe:	8b f8                	mov    %eax,%edi
408b00:	8b df                	mov    %edi,%ebx
408b02:	85 db                	test   %ebx,%ebx
408b04:	74 05                	je     0x408b0b
408b06:	83 eb 04             	sub    $0x4,%ebx
408b09:	8b 1b                	mov    (%ebx),%ebx
408b0b:	8b f5                	mov    %ebp,%esi
408b0d:	85 f6                	test   %esi,%esi
408b0f:	74 05                	je     0x408b16
408b11:	83 ee 04             	sub    $0x4,%esi
408b14:	8b 36                	mov    (%esi),%esi
408b16:	56                   	push   %esi
408b17:	8b c5                	mov    %ebp,%eax
408b19:	e8 ee c0 ff ff       	call   0x404c0c
408b1e:	50                   	push   %eax
408b1f:	53                   	push   %ebx
408b20:	8b c7                	mov    %edi,%eax
408b22:	e8 e5 c0 ff ff       	call   0x404c0c
408b27:	50                   	push   %eax
408b28:	6a 01                	push   $0x1
408b2a:	68 00 04 00 00       	push   $0x400
408b2f:	e8 54 de ff ff       	call   0x406988
408b34:	83 e8 02             	sub    $0x2,%eax
408b37:	5d                   	pop    %ebp
408b38:	5f                   	pop    %edi
408b39:	5e                   	pop    %esi
408b3a:	5b                   	pop    %ebx
408b3b:	c3                   	ret
408b3c:	53                   	push   %ebx
408b3d:	56                   	push   %esi
408b3e:	57                   	push   %edi
408b3f:	8b d9                	mov    %ecx,%ebx
408b41:	8b fa                	mov    %edx,%edi
408b43:	8b f0                	mov    %eax,%esi
408b45:	53                   	push   %ebx
408b46:	57                   	push   %edi
408b47:	53                   	push   %ebx
408b48:	56                   	push   %esi
408b49:	6a 01                	push   $0x1
408b4b:	68 00 04 00 00       	push   $0x400
408b50:	e8 33 de ff ff       	call   0x406988
408b55:	83 e8 02             	sub    $0x2,%eax
408b58:	5f                   	pop    %edi
408b59:	5e                   	pop    %esi
408b5a:	5b                   	pop    %ebx
408b5b:	c3                   	ret
408b5c:	53                   	push   %ebx
408b5d:	56                   	push   %esi
408b5e:	57                   	push   %edi
408b5f:	55                   	push   %ebp
408b60:	8b ea                	mov    %edx,%ebp
408b62:	8b f8                	mov    %eax,%edi
408b64:	8b c7                	mov    %edi,%eax
408b66:	85 c0                	test   %eax,%eax
408b68:	74 05                	je     0x408b6f
408b6a:	83 e8 04             	sub    $0x4,%eax
408b6d:	8b 00                	mov    (%eax),%eax
408b6f:	8b f0                	mov    %eax,%esi
408b71:	bb 01 00 00 00       	mov    $0x1,%ebx
408b76:	eb 01                	jmp    0x408b79
408b78:	43                   	inc    %ebx
408b79:	3b f3                	cmp    %ebx,%esi
408b7b:	7c 07                	jl     0x408b84
408b7d:	80 7c 1f ff 20       	cmpb   $0x20,-0x1(%edi,%ebx,1)
408b82:	76 f4                	jbe    0x408b78
408b84:	3b f3                	cmp    %ebx,%esi
408b86:	7d 0a                	jge    0x408b92
408b88:	8b c5                	mov    %ebp,%eax
408b8a:	e8 b9 bb ff ff       	call   0x404748
408b8f:	eb 17                	jmp    0x408ba8
408b91:	4e                   	dec    %esi
408b92:	80 7c 37 ff 20       	cmpb   $0x20,-0x1(%edi,%esi,1)
408b97:	76 f8                	jbe    0x408b91
408b99:	55                   	push   %ebp
408b9a:	8b ce                	mov    %esi,%ecx
408b9c:	2b cb                	sub    %ebx,%ecx
408b9e:	41                   	inc    %ecx
408b9f:	8b d3                	mov    %ebx,%edx
408ba1:	8b c7                	mov    %edi,%eax
408ba3:	e8 c4 c0 ff ff       	call   0x404c6c
408ba8:	5d                   	pop    %ebp
408ba9:	5f                   	pop    %edi
408baa:	5e                   	pop    %esi
408bab:	5b                   	pop    %ebx
408bac:	c3                   	ret
408bad:	8d 40 00             	lea    0x0(%eax),%eax
408bb0:	56                   	push   %esi
408bb1:	57                   	push   %edi
408bb2:	8b f8                	mov    %eax,%edi
408bb4:	33 c0                	xor    %eax,%eax
408bb6:	8b f7                	mov    %edi,%esi
408bb8:	8b ce                	mov    %esi,%ecx
408bba:	85 c9                	test   %ecx,%ecx
408bbc:	74 05                	je     0x408bc3
408bbe:	83 e9 04             	sub    $0x4,%ecx
408bc1:	8b 09                	mov    (%ecx),%ecx
408bc3:	85 c9                	test   %ecx,%ecx
408bc5:	75 04                	jne    0x408bcb
408bc7:	b1 01                	mov    $0x1,%cl
408bc9:	eb 21                	jmp    0x408bec
408bcb:	0f b6 0f             	movzbl (%edi),%ecx
408bce:	80 c1 bf             	add    $0xbf,%cl
408bd1:	80 e9 1a             	sub    $0x1a,%cl
408bd4:	72 11                	jb     0x408be7
408bd6:	80 e9 04             	sub    $0x4,%cl
408bd9:	74 0c                	je     0x408be7
408bdb:	80 c1 fe             	add    $0xfe,%cl
408bde:	80 e9 1a             	sub    $0x1a,%cl
408be1:	72 04                	jb     0x408be7
408be3:	33 c9                	xor    %ecx,%ecx
408be5:	eb 02                	jmp    0x408be9
408be7:	b1 01                	mov    $0x1,%cl
408be9:	80 f1 01             	xor    $0x1,%cl
408bec:	84 c9                	test   %cl,%cl
408bee:	0f 85 85 00 00 00    	jne    0x408c79
408bf4:	84 d2                	test   %dl,%dl
408bf6:	74 43                	je     0x408c3b
408bf8:	8b d6                	mov    %esi,%edx
408bfa:	85 d2                	test   %edx,%edx
408bfc:	74 05                	je     0x408c03
408bfe:	83 ea 04             	sub    $0x4,%edx
408c01:	8b 12                	mov    (%edx),%edx
408c03:	83 ea 02             	sub    $0x2,%edx
408c06:	7c 6f                	jl     0x408c77
408c08:	42                   	inc    %edx
408c09:	be 02 00 00 00       	mov    $0x2,%esi
408c0e:	0f b6 4c 37 ff       	movzbl -0x1(%edi,%esi,1),%ecx
408c13:	80 e9 2e             	sub    $0x2e,%cl
408c16:	74 1d                	je     0x408c35
408c18:	80 c1 fe             	add    $0xfe,%cl
408c1b:	80 e9 0a             	sub    $0xa,%cl
408c1e:	72 15                	jb     0x408c35
408c20:	80 c1 f9             	add    $0xf9,%cl
408c23:	80 e9 1a             	sub    $0x1a,%cl
408c26:	72 0d                	jb     0x408c35
408c28:	80 e9 04             	sub    $0x4,%cl
408c2b:	74 08                	je     0x408c35
408c2d:	80 c1 fe             	add    $0xfe,%cl
408c30:	80 e9 1a             	sub    $0x1a,%cl
408c33:	73 44                	jae    0x408c79
408c35:	46                   	inc    %esi
408c36:	4a                   	dec    %edx
408c37:	75 d5                	jne    0x408c0e
408c39:	eb 3c                	jmp    0x408c77
408c3b:	8b d6                	mov    %esi,%edx
408c3d:	85 d2                	test   %edx,%edx
408c3f:	74 05                	je     0x408c46
408c41:	83 ea 04             	sub    $0x4,%edx
408c44:	8b 12                	mov    (%edx),%edx
408c46:	83 ea 02             	sub    $0x2,%edx
408c49:	7c 2c                	jl     0x408c77
408c4b:	42                   	inc    %edx
408c4c:	be 02 00 00 00       	mov    $0x2,%esi
408c51:	0f b6 4c 37 ff       	movzbl -0x1(%edi,%esi,1),%ecx
408c56:	80 c1 d0             	add    $0xd0,%cl
408c59:	80 e9 0a             	sub    $0xa,%cl
408c5c:	72 15                	jb     0x408c73
408c5e:	80 c1 f9             	add    $0xf9,%cl
408c61:	80 e9 1a             	sub    $0x1a,%cl
408c64:	72 0d                	jb     0x408c73
408c66:	80 e9 04             	sub    $0x4,%cl
408c69:	74 08                	je     0x408c73
408c6b:	80 c1 fe             	add    $0xfe,%cl
408c6e:	80 e9 1a             	sub    $0x1a,%cl
408c71:	73 06                	jae    0x408c79
408c73:	46                   	inc    %esi
408c74:	4a                   	dec    %edx
408c75:	75 da                	jne    0x408c51
408c77:	b0 01                	mov    $0x1,%al
408c79:	5f                   	pop    %edi
408c7a:	5e                   	pop    %esi
408c7b:	c3                   	ret
408c7c:	08 c9                	or     %cl,%cl
408c7e:	75 17                	jne    0x408c97
408c80:	09 c0                	or     %eax,%eax
408c82:	79 0e                	jns    0x408c92
408c84:	f7 d8                	neg    %eax
408c86:	e8 07 00 00 00       	call   0x408c92
408c8b:	b0 2d                	mov    $0x2d,%al
408c8d:	41                   	inc    %ecx
408c8e:	4e                   	dec    %esi
408c8f:	88 06                	mov    %al,(%esi)
408c91:	c3                   	ret
408c92:	b9 0a 00 00 00       	mov    $0xa,%ecx
408c97:	52                   	push   %edx
408c98:	56                   	push   %esi
408c99:	31 d2                	xor    %edx,%edx
408c9b:	f7 f1                	div    %ecx
408c9d:	4e                   	dec    %esi
408c9e:	80 c2 30             	add    $0x30,%dl
408ca1:	80 fa 3a             	cmp    $0x3a,%dl
408ca4:	72 03                	jb     0x408ca9
408ca6:	80 c2 07             	add    $0x7,%dl
408ca9:	88 16                	mov    %dl,(%esi)
408cab:	09 c0                	or     %eax,%eax
408cad:	75 ea                	jne    0x408c99
408caf:	59                   	pop    %ecx
408cb0:	5a                   	pop    %edx
408cb1:	29 f1                	sub    %esi,%ecx
408cb3:	29 ca                	sub    %ecx,%edx
408cb5:	76 10                	jbe    0x408cc7
408cb7:	01 d1                	add    %edx,%ecx
408cb9:	b0 30                	mov    $0x30,%al
408cbb:	29 d6                	sub    %edx,%esi
408cbd:	eb 03                	jmp    0x408cc2
408cbf:	88 04 32             	mov    %al,(%edx,%esi,1)
408cc2:	4a                   	dec    %edx
408cc3:	75 fa                	jne    0x408cbf
408cc5:	88 06                	mov    %al,(%esi)
408cc7:	c3                   	ret
408cc8:	56                   	push   %esi
408cc9:	89 e6                	mov    %esp,%esi
408ccb:	83 ec 10             	sub    $0x10,%esp
408cce:	31 c9                	xor    %ecx,%ecx
408cd0:	52                   	push   %edx
408cd1:	31 d2                	xor    %edx,%edx
408cd3:	e8 a4 ff ff ff       	call   0x408c7c
408cd8:	89 f2                	mov    %esi,%edx
408cda:	58                   	pop    %eax
408cdb:	e8 58 bb ff ff       	call   0x404838
408ce0:	83 c4 10             	add    $0x10,%esp
408ce3:	5e                   	pop    %esi
408ce4:	c3                   	ret
408ce5:	8d 40 00             	lea    0x0(%eax),%eax
408ce8:	08 c9                	or     %cl,%cl
408cea:	75 30                	jne    0x408d1c
408cec:	b9 0a 00 00 00       	mov    $0xa,%ecx
408cf1:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
408cf8:	74 22                	je     0x408d1c
408cfa:	ff 70 04             	push   0x4(%eax)
408cfd:	ff 30                	push   (%eax)
408cff:	89 e0                	mov    %esp,%eax
408d01:	f7 1c 24             	negl   (%esp)
408d04:	83 54 24 04 00       	adcl   $0x0,0x4(%esp)
408d09:	f7 5c 24 04          	negl   0x4(%esp)
408d0d:	e8 0a 00 00 00       	call   0x408d1c
408d12:	c6 46 ff 2d          	movb   $0x2d,-0x1(%esi)
408d16:	4e                   	dec    %esi
408d17:	41                   	inc    %ecx
408d18:	83 c4 08             	add    $0x8,%esp
408d1b:	c3                   	ret
408d1c:	56                   	push   %esi
408d1d:	83 ec 04             	sub    $0x4,%esp
408d20:	d9 7c 24 02          	fnstcw 0x2(%esp)
408d24:	d9 3c 24             	fnstcw (%esp)
408d27:	66 81 0c 24 00 0f    	orw    $0xf00,(%esp)
408d2d:	d9 2c 24             	fldcw  (%esp)
408d30:	66 89 0c 24          	mov    %cx,(%esp)
408d34:	d9 e8                	fld1
408d36:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
408d3d:	74 27                	je     0x408d66
408d3f:	ff 70 04             	push   0x4(%eax)
408d42:	ff 30                	push   (%eax)
408d44:	81 64 24 04 ff ff ff 	andl   $0x7fffffff,0x4(%esp)
408d4b:	7f
408d4c:	68 ff ff ff 7f       	push   $0x7fffffff
408d51:	68 ff ff ff ff       	push   $0xffffffff