407bf2:	5f                   	pop    %edi
407bf3:	5e                   	pop    %esi
407bf4:	5b                   	pop    %ebx
407bf5:	c3                   	ret
407bf6:	8b c0                	mov    %eax,%eax
407bf8:	56                   	push   %esi
407bf9:	57                   	push   %edi
407bfa:	89 c6                	mov    %eax,%esi
407bfc:	89 d7                	mov    %edx,%edi
407bfe:	09 c0                	or     %eax,%eax
407c00:	74 03                	je     0x407c05
407c02:	8b 40 fc             	mov    -0x4(%eax),%eax
407c05:	09 d2                	or     %edx,%edx
407c07:	74 03                	je     0x407c0c
407c09:	8b 52 fc             	mov    -0x4(%edx),%edx
407c0c:	89 c1                	mov    %eax,%ecx
407c0e:	39 d1                	cmp    %edx,%ecx
407c10:	76 02                	jbe    0x407c14
407c12:	89 d1                	mov    %edx,%ecx
407c14:	39 c9                	cmp    %ecx,%ecx
407c16:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
407c18:	74 08                	je     0x407c22
407c1a:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
407c1e:	0f b6 57 ff          	movzbl -0x1(%edi),%edx
407c22:	29 d0                	sub    %edx,%eax
407c24:	5f                   	pop    %edi
407c25:	5e                   	pop    %esi
407c26:	c3                   	ret
407c27:	90                   	nop
407c28:	56                   	push   %esi
407c29:	57                   	push   %edi
407c2a:	89 c6                	mov    %eax,%esi
407c2c:	89 d7                	mov    %edx,%edi
407c2e:	89 ca                	mov    %ecx,%edx
407c30:	31 c0                	xor    %eax,%eax
407c32:	83 e2 03             	and    $0x3,%edx
407c35:	c1 f9 02             	sar    $0x2,%ecx
407c38:	78 0a                	js     0x407c44
407c3a:	f3 a7                	repz cmpsl %es:(%edi),%ds:(%esi)
407c3c:	75 07                	jne    0x407c45
407c3e:	89 d1                	mov    %edx,%ecx
407c40:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
407c42:	75 01                	jne    0x407c45
407c44:	40                   	inc    %eax
407c45:	5f                   	pop    %edi
407c46:	5e                   	pop    %esi
407c47:	c3                   	ret
407c48:	56                   	push   %esi
407c49:	57                   	push   %edi
407c4a:	53                   	push   %ebx
407c4b:	89 c6                	mov    %eax,%esi
407c4d:	89 d7                	mov    %edx,%edi
407c4f:	09 c0                	or     %eax,%eax
407c51:	74 03                	je     0x407c56
407c53:	8b 40 fc             	mov    -0x4(%eax),%eax
407c56:	09 d2                	or     %edx,%edx
407c58:	74 03                	je     0x407c5d
407c5a:	8b 52 fc             	mov    -0x4(%edx),%edx
407c5d:	89 c1                	mov    %eax,%ecx
407c5f:	39 d1                	cmp    %edx,%ecx
407c61:	76 02                	jbe    0x407c65
407c63:	89 d1                	mov    %edx,%ecx
407c65:	39 c9                	cmp    %ecx,%ecx
407c67:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
407c69:	74 2a                	je     0x407c95
407c6b:	8a 5e ff             	mov    -0x1(%esi),%bl
407c6e:	80 fb 61             	cmp    $0x61,%bl
407c71:	72 08                	jb     0x407c7b
407c73:	80 fb 7a             	cmp    $0x7a,%bl
407c76:	77 03                	ja     0x407c7b
407c78:	80 eb 20             	sub    $0x20,%bl
407c7b:	8a 7f ff             	mov    -0x1(%edi),%bh
407c7e:	80 ff 61             	cmp    $0x61,%bh
407c81:	72 08                	jb     0x407c8b
407c83:	80 ff 7a             	cmp    $0x7a,%bh
407c86:	77 03                	ja     0x407c8b
407c88:	80 ef 20             	sub    $0x20,%bh
407c8b:	38 fb                	cmp    %bh,%bl
407c8d:	74 d8                	je     0x407c67
407c8f:	0f b6 c3             	movzbl %bl,%eax
407c92:	0f b6 d7             	movzbl %bh,%edx
407c95:	29 d0                	sub    %edx,%eax
407c97:	5b                   	pop    %ebx
407c98:	5f                   	pop    %edi
407c99:	5e                   	pop    %esi
407c9a:	c3                   	ret
407c9b:	90                   	nop
407c9c:	39 d0                	cmp    %edx,%eax
407c9e:	74 19                	je     0x407cb9
407ca0:	09 c0                	or     %eax,%eax
407ca2:	74 17                	je     0x407cbb
407ca4:	09 d2                	or     %edx,%edx
407ca6:	74 14                	je     0x407cbc
407ca8:	8b 48 fc             	mov    -0x4(%eax),%ecx
407cab:	3b 4a fc             	cmp    -0x4(%edx),%ecx
407cae:	75 0c                	jne    0x407cbc
407cb0:	e8 93 ff ff ff       	call   0x407c48
407cb5:	85 c0                	test   %eax,%eax
407cb7:	75 03                	jne    0x407cbc
407cb9:	b0 01                	mov    $0x1,%al
407cbb:	c3                   	ret
407cbc:	31 c0                	xor    %eax,%eax
407cbe:	c3                   	ret
407cbf:	90                   	nop
407cc0:	53                   	push   %ebx
407cc1:	56                   	push   %esi
407cc2:	57                   	push   %edi
407cc3:	8b fa                	mov    %edx,%edi
407cc5:	8b f0                	mov    %eax,%esi
407cc7:	8b c6                	mov    %esi,%eax
407cc9:	e8 ae c5 ff ff       	call   0x40427c
407cce:	8b d8                	mov    %eax,%ebx
407cd0:	8b c6                	mov    %esi,%eax
407cd2:	e8 a5 c7 ff ff       	call   0x40447c
407cd7:	8b d0                	mov    %eax,%edx
407cd9:	8b c7                	mov    %edi,%eax
407cdb:	8b cb                	mov    %ebx,%ecx
407cdd:	e8 ca c3 ff ff       	call   0x4040ac
407ce2:	85 db                	test   %ebx,%ebx
407ce4:	7e 09                	jle    0x407cef
407ce6:	53                   	push   %ebx
407ce7:	8b 07                	mov    (%edi),%eax
407ce9:	50                   	push   %eax
407cea:	e8 61 e7 ff ff       	call   0x406450
407cef:	5f                   	pop    %edi
407cf0:	5e                   	pop    %esi
407cf1:	5b                   	pop    %ebx
407cf2:	c3                   	ret
407cf3:	90                   	nop
407cf4:	53                   	push   %ebx
407cf5:	56                   	push   %esi
407cf6:	8b f2                	mov    %edx,%esi
407cf8:	8b d8                	mov    %eax,%ebx
407cfa:	8b c6                	mov    %esi,%eax
407cfc:	e8 7b c5 ff ff       	call   0x40427c
407d01:	50                   	push   %eax
407d02:	8b c6                	mov    %esi,%eax
407d04:	e8 73 c7 ff ff       	call   0x40447c
407d09:	50                   	push   %eax
407d0a:	8b c3                	mov    %ebx,%eax
407d0c:	e8 6b c5 ff ff       	call   0x40427c
407d11:	50                   	push   %eax
407d12:	8b c3                	mov    %ebx,%eax
407d14:	e8 63 c7 ff ff       	call   0x40447c
407d19:	50                   	push   %eax
407d1a:	6a 00                	push   $0x0
407d1c:	68 00 04 00 00       	push   $0x400
407d21:	e8 92 e2 ff ff       	call   0x405fb8
407d26:	83 e8 02             	sub    $0x2,%eax
407d29:	5e                   	pop    %esi
407d2a:	5b                   	pop    %ebx
407d2b:	c3                   	ret
407d2c:	53                   	push   %ebx
407d2d:	56                   	push   %esi
407d2e:	8b f2                	mov    %edx,%esi
407d30:	8b d8                	mov    %eax,%ebx
407d32:	8b c6                	mov    %esi,%eax
407d34:	e8 43 c5 ff ff       	call   0x40427c
407d39:	50                   	push   %eax
407d3a:	8b c6                	mov    %esi,%eax
407d3c:	e8 3b c7 ff ff       	call   0x40447c
407d41:	50                   	push   %eax
407d42:	8b c3                	mov    %ebx,%eax
407d44:	e8 33 c5 ff ff       	call   0x40427c
407d49:	50                   	push   %eax
407d4a:	8b c3                	mov    %ebx,%eax
407d4c:	e8 2b c7 ff ff       	call   0x40447c
407d51:	50                   	push   %eax
407d52:	6a 01                	push   $0x1
407d54:	68 00 04 00 00       	push   $0x400
407d59:	e8 5a e2 ff ff       	call   0x405fb8
407d5e:	83 e8 02             	sub    $0x2,%eax
407d61:	5e                   	pop    %esi
407d62:	5b                   	pop    %ebx
407d63:	c3                   	ret
407d64:	53                   	push   %ebx
407d65:	56                   	push   %esi
407d66:	8b f2                	mov    %edx,%esi
407d68:	8b d8                	mov    %eax,%ebx
407d6a:	8b d6                	mov    %esi,%edx
407d6c:	8b c3                	mov    %ebx,%eax
407d6e:	e8 b9 ff ff ff       	call   0x407d2c
407d73:	85 c0                	test   %eax,%eax
407d75:	0f 94 c0             	sete   %al
407d78:	5e                   	pop    %esi
407d79:	5b                   	pop    %ebx
407d7a:	c3                   	ret
407d7b:	90                   	nop
407d7c:	53                   	push   %ebx
407d7d:	56                   	push   %esi
407d7e:	57                   	push   %edi
407d7f:	8b d9                	mov    %ecx,%ebx
407d81:	8b fa                	mov    %edx,%edi
407d83:	8b f0                	mov    %eax,%esi
407d85:	53                   	push   %ebx
407d86:	57                   	push   %edi
407d87:	53                   	push   %ebx
407d88:	56                   	push   %esi
407d89:	6a 01                	push   $0x1
407d8b:	68 00 04 00 00       	push   $0x400
407d90:	e8 23 e2 ff ff       	call   0x405fb8
407d95:	83 e8 02             	sub    $0x2,%eax
407d98:	5f                   	pop    %edi
407d99:	5e                   	pop    %esi
407d9a:	5b                   	pop    %ebx
407d9b:	c3                   	ret
407d9c:	53                   	push   %ebx
407d9d:	56                   	push   %esi
407d9e:	57                   	push   %edi
407d9f:	55                   	push   %ebp
407da0:	8b ea                	mov    %edx,%ebp
407da2:	8b f8                	mov    %eax,%edi
407da4:	8b c7                	mov    %edi,%eax
407da6:	e8 d1 c4 ff ff       	call   0x40427c
407dab:	8b f0                	mov    %eax,%esi
407dad:	bb 01 00 00 00       	mov    $0x1,%ebx
407db2:	eb 01                	jmp    0x407db5
407db4:	43                   	inc    %ebx
407db5:	3b f3                	cmp    %ebx,%esi
407db7:	7c 07                	jl     0x407dc0
407db9:	80 7c 1f ff 20       	cmpb   $0x20,-0x1(%edi,%ebx,1)
407dbe:	76 f4                	jbe    0x407db4
407dc0:	3b f3                	cmp    %ebx,%esi
407dc2:	7d 0a                	jge    0x407dce
407dc4:	8b c5                	mov    %ebp,%eax
407dc6:	e8 f1 c1 ff ff       	call   0x403fbc
407dcb:	eb 17                	jmp    0x407de4
407dcd:	4e                   	dec    %esi
407dce:	80 7c 37 ff 20       	cmpb   $0x20,-0x1(%edi,%esi,1)
407dd3:	76 f8                	jbe    0x407dcd
407dd5:	55                   	push   %ebp
407dd6:	8b ce                	mov    %esi,%ecx
407dd8:	2b cb                	sub    %ebx,%ecx
407dda:	41                   	inc    %ecx
407ddb:	8b d3                	mov    %ebx,%edx
407ddd:	8b c7                	mov    %edi,%eax
407ddf:	e8 f8 c6 ff ff       	call   0x4044dc
407de4:	5d                   	pop    %ebp
407de5:	5f                   	pop    %edi
407de6:	5e                   	pop    %esi
407de7:	5b                   	pop    %ebx
407de8:	c3                   	ret
407de9:	8d 40 00             	lea    0x0(%eax),%eax
407dec:	53                   	push   %ebx
407ded:	56                   	push   %esi
407dee:	57                   	push   %edi
407def:	8b f0                	mov    %eax,%esi
407df1:	33 db                	xor    %ebx,%ebx
407df3:	8b c6                	mov    %esi,%eax
407df5:	e8 82 c4 ff ff       	call   0x40427c
407dfa:	85 c0                	test   %eax,%eax
407dfc:	74 4b                	je     0x407e49
407dfe:	8a 06                	mov    (%esi),%al
407e00:	04 bf                	add    $0xbf,%al
407e02:	2c 1a                	sub    $0x1a,%al
407e04:	72 0a                	jb     0x407e10
407e06:	2c 04                	sub    $0x4,%al
407e08:	74 06                	je     0x407e10
407e0a:	04 fe                	add    $0xfe,%al
407e0c:	2c 1a                	sub    $0x1a,%al
407e0e:	73 39                	jae    0x407e49
407e10:	8b c6                	mov    %esi,%eax
407e12:	e8 65 c4 ff ff       	call   0x40427c
407e17:	83 e8 02             	sub    $0x2,%eax
407e1a:	7c 2b                	jl     0x407e47
407e1c:	40                   	inc    %eax
407e1d:	bf 02 00 00 00       	mov    $0x2,%edi
407e22:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
407e26:	80 c2 d0             	add    $0xd0,%dl
407e29:	80 ea 0a             	sub    $0xa,%dl
407e2c:	72 15                	jb     0x407e43
407e2e:	80 c2 f9             	add    $0xf9,%dl
407e31:	80 ea 1a             	sub    $0x1a,%dl
407e34:	72 0d                	jb     0x407e43
407e36:	80 ea 04             	sub    $0x4,%dl
407e39:	74 08                	je     0x407e43
407e3b:	80 c2 fe             	add    $0xfe,%dl
407e3e:	80 ea 1a             	sub    $0x1a,%dl
407e41:	73 06                	jae    0x407e49
407e43:	47                   	inc    %edi
407e44:	48                   	dec    %eax
407e45:	75 db                	jne    0x407e22
407e47:	b3 01                	mov    $0x1,%bl
407e49:	8b c3                	mov    %ebx,%eax
407e4b:	5f                   	pop    %edi
407e4c:	5e                   	pop    %esi
407e4d:	5b                   	pop    %ebx
407e4e:	c3                   	ret
407e4f:	90                   	nop
407e50:	08 c9                	or     %cl,%cl
407e52:	75 17                	jne    0x407e6b
407e54:	09 c0                	or     %eax,%eax
407e56:	79 0e                	jns    0x407e66
407e58:	f7 d8                	neg    %eax
407e5a:	e8 07 00 00 00       	call   0x407e66
407e5f:	b0 2d                	mov    $0x2d,%al
407e61:	41                   	inc    %ecx
407e62:	4e                   	dec    %esi
407e63:	88 06                	mov    %al,(%esi)
407e65:	c3                   	ret
407e66:	b9 0a 00 00 00       	mov    $0xa,%ecx
407e6b:	52                   	push   %edx
407e6c:	56                   	push   %esi
407e6d:	31 d2                	xor    %edx,%edx
407e6f:	f7 f1                	div    %ecx
407e71:	4e                   	dec    %esi
407e72:	80 c2 30             	add    $0x30,%dl
407e75:	80 fa 3a             	cmp    $0x3a,%dl
407e78:	72 03                	jb     0x407e7d
407e7a:	80 c2 07             	add    $0x7,%dl
407e7d:	88 16                	mov    %dl,(%esi)
407e7f:	09 c0                	or     %eax,%eax
407e81:	75 ea                	jne    0x407e6d
407e83:	59                   	pop    %ecx
407e84:	5a                   	pop    %edx
407e85:	29 f1                	sub    %esi,%ecx
407e87:	29 ca                	sub    %ecx,%edx
407e89:	76 10                	jbe    0x407e9b
407e8b:	01 d1                	add    %edx,%ecx
407e8d:	b0 30                	mov    $0x30,%al
407e8f:	29 d6                	sub    %edx,%esi
407e91:	eb 03                	jmp    0x407e96
407e93:	88 04 32             	mov    %al,(%edx,%esi,1)
407e96:	4a                   	dec    %edx
407e97:	75 fa                	jne    0x407e93
407e99:	88 06                	mov    %al,(%esi)
407e9b:	c3                   	ret
407e9c:	56                   	push   %esi
407e9d:	89 e6                	mov    %esp,%esi
407e9f:	83 ec 10             	sub    $0x10,%esp
407ea2:	31 c9                	xor    %ecx,%ecx
407ea4:	52                   	push   %edx
407ea5:	31 d2                	xor    %edx,%edx
407ea7:	e8 a4 ff ff ff       	call   0x407e50
407eac:	89 f2                	mov    %esi,%edx
407eae:	58                   	pop    %eax
407eaf:	e8 f8 c1 ff ff       	call   0x4040ac
407eb4:	83 c4 10             	add    $0x10,%esp
407eb7:	5e                   	pop    %esi
407eb8:	c3                   	ret
407eb9:	8d 40 00             	lea    0x0(%eax),%eax
407ebc:	08 c9                	or     %cl,%cl
407ebe:	75 30                	jne    0x407ef0
407ec0:	b9 0a 00 00 00       	mov    $0xa,%ecx
407ec5:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
407ecc:	74 22                	je     0x407ef0
407ece:	ff 70 04             	push   0x4(%eax)
407ed1:	ff 30                	push   (%eax)
407ed3:	89 e0                	mov    %esp,%eax
407ed5:	f7 1c 24             	negl   (%esp)