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)
407ed8:	83 54 24 04 00       	adcl   $0x0,0x4(%esp)
407edd:	f7 5c 24 04          	negl   0x4(%esp)
407ee1:	e8 0a 00 00 00       	call   0x407ef0
407ee6:	c6 46 ff 2d          	movb   $0x2d,-0x1(%esi)
407eea:	4e                   	dec    %esi
407eeb:	41                   	inc    %ecx
407eec:	83 c4 08             	add    $0x8,%esp
407eef:	c3                   	ret
407ef0:	56                   	push   %esi
407ef1:	83 ec 04             	sub    $0x4,%esp
407ef4:	d9 7c 24 02          	fnstcw 0x2(%esp)
407ef8:	d9 3c 24             	fnstcw (%esp)
407efb:	66 81 0c 24 00 0f    	orw    $0xf00,(%esp)
407f01:	d9 2c 24             	fldcw  (%esp)
407f04:	66 89 0c 24          	mov    %cx,(%esp)
407f08:	d9 e8                	fld1
407f0a:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
407f11:	74 27                	je     0x407f3a
407f13:	ff 70 04             	push   0x4(%eax)
407f16:	ff 30                	push   (%eax)
407f18:	81 64 24 04 ff ff ff 	andl   $0x7fffffff,0x4(%esp)
407f1f:	7f
407f20:	68 ff ff ff 7f       	push   $0x7fffffff
407f25:	68 ff ff ff ff       	push   $0xffffffff
407f2a:	df 6c 24 08          	fildll 0x8(%esp)
407f2e:	df 2c 24             	fildll (%esp)
407f31:	d8 c2                	fadd   %st(2),%st
407f33:	de c1                	faddp  %st,%st(1)
407f35:	83 c4 10             	add    $0x10,%esp
407f38:	eb 02                	jmp    0x407f3c
407f3a:	df 28                	fildll (%eax)
407f3c:	df 04 24             	filds  (%esp)
407f3f:	d9 c1                	fld    %st(1)
407f41:	4e                   	dec    %esi
407f42:	d9 f8                	fprem
407f44:	df 1c 24             	fistps (%esp)
407f47:	dc f9                	fdivr  %st,%st(1)
407f49:	8a 04 24             	mov    (%esp),%al
407f4c:	04 30                	add    $0x30,%al
407f4e:	3c 3a                	cmp    $0x3a,%al
407f50:	72 02                	jb     0x407f54
407f52:	04 07                	add    $0x7,%al
407f54:	88 06                	mov    %al,(%esi)
407f56:	d9 c1                	fld    %st(1)
407f58:	d8 d3                	fcom   %st(3)
407f5a:	9b df e0             	fstsw  %ax
407f5d:	9e                   	sahf
407f5e:	73 e1                	jae    0x407f41
407f60:	d9 6c 24 02          	fldcw  0x2(%esp)
407f64:	83 c4 04             	add    $0x4,%esp
407f67:	dd c3                	ffree  %st(3)
407f69:	dd c2                	ffree  %st(2)
407f6b:	dd c1                	ffree  %st(1)
407f6d:	dd c0                	ffree  %st(0)
407f6f:	59                   	pop    %ecx
407f70:	29 f1                	sub    %esi,%ecx
407f72:	29 ca                	sub    %ecx,%edx
407f74:	76 10                	jbe    0x407f86
407f76:	29 d6                	sub    %edx,%esi
407f78:	b0 30                	mov    $0x30,%al
407f7a:	01 d1                	add    %edx,%ecx
407f7c:	eb 03                	jmp    0x407f81
407f7e:	88 04 32             	mov    %al,(%edx,%esi,1)
407f81:	4a                   	dec    %edx
407f82:	75 fa                	jne    0x407f7e
407f84:	88 06                	mov    %al,(%esi)
407f86:	c3                   	ret
407f87:	90                   	nop
407f88:	55                   	push   %ebp
407f89:	8b ec                	mov    %esp,%ebp
407f8b:	56                   	push   %esi
407f8c:	89 e6                	mov    %esp,%esi
407f8e:	83 ec 20             	sub    $0x20,%esp
407f91:	31 c9                	xor    %ecx,%ecx
407f93:	50                   	push   %eax
407f94:	31 d2                	xor    %edx,%edx
407f96:	8d 45 08             	lea    0x8(%ebp),%eax
407f99:	e8 1e ff ff ff       	call   0x407ebc
407f9e:	89 f2                	mov    %esi,%edx
407fa0:	58                   	pop    %eax
407fa1:	e8 06 c1 ff ff       	call   0x4040ac
407fa6:	83 c4 20             	add    $0x20,%esp
407fa9:	5e                   	pop    %esi
407faa:	5d                   	pop    %ebp
407fab:	c2 08 00             	ret    $0x8
407fae:	8b c0                	mov    %eax,%eax
407fb0:	83 fa 20             	cmp    $0x20,%edx
407fb3:	76 02                	jbe    0x407fb7
407fb5:	31 d2                	xor    %edx,%edx
407fb7:	56                   	push   %esi
407fb8:	89 e6                	mov    %esp,%esi
407fba:	83 ec 20             	sub    $0x20,%esp
407fbd:	51                   	push   %ecx
407fbe:	b9 10 00 00 00       	mov    $0x10,%ecx
407fc3:	e8 88 fe ff ff       	call   0x407e50
407fc8:	89 f2                	mov    %esi,%edx
407fca:	58                   	pop    %eax
407fcb:	e8 dc c0 ff ff       	call   0x4040ac
407fd0:	83 c4 20             	add    $0x20,%esp
407fd3:	5e                   	pop    %esi
407fd4:	c3                   	ret
407fd5:	8d 40 00             	lea    0x0(%eax),%eax
407fd8:	53                   	push   %ebx
407fd9:	56                   	push   %esi
407fda:	83 c4 f4             	add    $0xfffffff4,%esp
407fdd:	8b d8                	mov    %eax,%ebx
407fdf:	8b d4                	mov    %esp,%edx
407fe1:	8b c3                	mov    %ebx,%eax
407fe3:	e8 c0 ac ff ff       	call   0x402ca8
407fe8:	8b f0                	mov    %eax,%esi
407fea:	83 3c 24 00          	cmpl   $0x0,(%esp)
407fee:	74 19                	je     0x408009
407ff0:	89 5c 24 04          	mov    %ebx,0x4(%esp)
407ff4:	c6 44 24 08 0b       	movb   $0xb,0x8(%esp)
407ff9:	8d 54 24 04          	lea    0x4(%esp),%edx
407ffd:	a1 cc 7d 46 00       	mov    0x467dcc,%eax
408002:	33 c9                	xor    %ecx,%ecx
408004:	e8 cf fa ff ff       	call   0x407ad8
408009:	8b c6                	mov    %esi,%eax
40800b:	83 c4 0c             	add    $0xc,%esp
40800e:	5e                   	pop    %esi
40800f:	5b                   	pop    %ebx
408010:	c3                   	ret
408011:	8d 40 00             	lea    0x0(%eax),%eax
408014:	53                   	push   %ebx
408015:	51                   	push   %ecx
408016:	8b da                	mov    %edx,%ebx
408018:	8b d4                	mov    %esp,%edx
40801a:	e8 89 ac ff ff       	call   0x402ca8
40801f:	83 3c 24 00          	cmpl   $0x0,(%esp)
408023:	74 02                	je     0x408027
408025:	8b c3                	mov    %ebx,%eax
408027:	5a                   	pop    %edx
408028:	5b                   	pop    %ebx
408029:	c3                   	ret
40802a:	8b c0                	mov    %eax,%eax
40802c:	53                   	push   %ebx
40802d:	56                   	push   %esi
40802e:	51                   	push   %ecx
40802f:	8b f2                	mov    %edx,%esi
408031:	8b d8                	mov    %eax,%ebx
408033:	8b d4                	mov    %esp,%edx
408035:	8b c3                	mov    %ebx,%eax
408037:	e8 6c ac ff ff       	call   0x402ca8
40803c:	89 06                	mov    %eax,(%esi)
40803e:	83 3c 24 00          	cmpl   $0x0,(%esp)
408042:	0f 94 c0             	sete   %al
408045:	5a                   	pop    %edx
408046:	5e                   	pop    %esi
408047:	5b                   	pop    %ebx
408048:	c3                   	ret
408049:	8d 40 00             	lea    0x0(%eax),%eax
40804c:	a1 88 97 46 00       	mov    0x469788,%eax
408051:	e8 5e cd ff ff       	call   0x404db4
408056:	85 c0                	test   %eax,%eax
408058:	75 29                	jne    0x408083
40805a:	6a 01                	push   $0x1
40805c:	b8 88 97 46 00       	mov    $0x469788,%eax
408061:	b9 01 00 00 00       	mov    $0x1,%ecx
408066:	8b 15 00 79 40 00    	mov    0x407900,%edx
40806c:	e8 ff ce ff ff       	call   0x404f70
408071:	83 c4 04             	add    $0x4,%esp
408074:	a1 88 97 46 00       	mov    0x469788,%eax
408079:	ba c4 80 40 00       	mov    $0x4080c4,%edx
40807e:	e8 8d bf ff ff       	call   0x404010
408083:	a1 8c 97 46 00       	mov    0x46978c,%eax
408088:	e8 27 cd ff ff       	call   0x404db4
40808d:	85 c0                	test   %eax,%eax
40808f:	75 29                	jne    0x4080ba
408091:	6a 01                	push   $0x1
408093:	b8 8c 97 46 00       	mov    $0x46978c,%eax
408098:	b9 01 00 00 00       	mov    $0x1,%ecx
40809d:	8b 15 24 79 40 00    	mov    0x407924,%edx
4080a3:	e8 c8 ce ff ff       	call   0x404f70
4080a8:	83 c4 04             	add    $0x4,%esp