4089fe:	76 f4                	jbe    0x4089f4
408a00:	3b f3                	cmp    %ebx,%esi
408a02:	7d 0a                	jge    0x408a0e
408a04:	8b c5                	mov    %ebp,%eax
408a06:	e8 15 bd ff ff       	call   0x404720
408a0b:	eb 17                	jmp    0x408a24
408a0d:	4e                   	dec    %esi
408a0e:	80 7c 37 ff 20       	cmpb   $0x20,-0x1(%edi,%esi,1)
408a13:	76 f8                	jbe    0x408a0d
408a15:	55                   	push   %ebp
408a16:	8b ce                	mov    %esi,%ecx
408a18:	2b cb                	sub    %ebx,%ecx
408a1a:	41                   	inc    %ecx
408a1b:	8b d3                	mov    %ebx,%edx
408a1d:	8b c7                	mov    %edi,%eax
408a1f:	e8 20 c2 ff ff       	call   0x404c44
408a24:	5d                   	pop    %ebp
408a25:	5f                   	pop    %edi
408a26:	5e                   	pop    %esi
408a27:	5b                   	pop    %ebx
408a28:	c3                   	ret
408a29:	8d 40 00             	lea    0x0(%eax),%eax
408a2c:	56                   	push   %esi
408a2d:	57                   	push   %edi
408a2e:	8b f8                	mov    %eax,%edi
408a30:	33 c0                	xor    %eax,%eax
408a32:	8b f7                	mov    %edi,%esi
408a34:	8b ce                	mov    %esi,%ecx
408a36:	85 c9                	test   %ecx,%ecx
408a38:	74 05                	je     0x408a3f
408a3a:	83 e9 04             	sub    $0x4,%ecx
408a3d:	8b 09                	mov    (%ecx),%ecx
408a3f:	85 c9                	test   %ecx,%ecx
408a41:	75 04                	jne    0x408a47
408a43:	b1 01                	mov    $0x1,%cl
408a45:	eb 21                	jmp    0x408a68
408a47:	0f b6 0f             	movzbl (%edi),%ecx
408a4a:	80 c1 bf             	add    $0xbf,%cl
408a4d:	80 e9 1a             	sub    $0x1a,%cl
408a50:	72 11                	jb     0x408a63
408a52:	80 e9 04             	sub    $0x4,%cl
408a55:	74 0c                	je     0x408a63
408a57:	80 c1 fe             	add    $0xfe,%cl
408a5a:	80 e9 1a             	sub    $0x1a,%cl
408a5d:	72 04                	jb     0x408a63
408a5f:	33 c9                	xor    %ecx,%ecx
408a61:	eb 02                	jmp    0x408a65
408a63:	b1 01                	mov    $0x1,%cl
408a65:	80 f1 01             	xor    $0x1,%cl
408a68:	84 c9                	test   %cl,%cl
408a6a:	0f 85 85 00 00 00    	jne    0x408af5
408a70:	84 d2                	test   %dl,%dl
408a72:	74 43                	je     0x408ab7
408a74:	8b d6                	mov    %esi,%edx
408a76:	85 d2                	test   %edx,%edx
408a78:	74 05                	je     0x408a7f
408a7a:	83 ea 04             	sub    $0x4,%edx
408a7d:	8b 12                	mov    (%edx),%edx
408a7f:	83 ea 02             	sub    $0x2,%edx
408a82:	7c 6f                	jl     0x408af3
408a84:	42                   	inc    %edx
408a85:	be 02 00 00 00       	mov    $0x2,%esi
408a8a:	0f b6 4c 37 ff       	movzbl -0x1(%edi,%esi,1),%ecx
408a8f:	80 e9 2e             	sub    $0x2e,%cl
408a92:	74 1d                	je     0x408ab1
408a94:	80 c1 fe             	add    $0xfe,%cl
408a97:	80 e9 0a             	sub    $0xa,%cl
408a9a:	72 15                	jb     0x408ab1
408a9c:	80 c1 f9             	add    $0xf9,%cl
408a9f:	80 e9 1a             	sub    $0x1a,%cl
408aa2:	72 0d                	jb     0x408ab1
408aa4:	80 e9 04             	sub    $0x4,%cl
408aa7:	74 08                	je     0x408ab1
408aa9:	80 c1 fe             	add    $0xfe,%cl
408aac:	80 e9 1a             	sub    $0x1a,%cl
408aaf:	73 44                	jae    0x408af5
408ab1:	46                   	inc    %esi
408ab2:	4a                   	dec    %edx
408ab3:	75 d5                	jne    0x408a8a
408ab5:	eb 3c                	jmp    0x408af3
408ab7:	8b d6                	mov    %esi,%edx
408ab9:	85 d2                	test   %edx,%edx
408abb:	74 05                	je     0x408ac2
408abd:	83 ea 04             	sub    $0x4,%edx
408ac0:	8b 12                	mov    (%edx),%edx
408ac2:	83 ea 02             	sub    $0x2,%edx
408ac5:	7c 2c                	jl     0x408af3
408ac7:	42                   	inc    %edx
408ac8:	be 02 00 00 00       	mov    $0x2,%esi
408acd:	0f b6 4c 37 ff       	movzbl -0x1(%edi,%esi,1),%ecx
408ad2:	80 c1 d0             	add    $0xd0,%cl
408ad5:	80 e9 0a             	sub    $0xa,%cl
408ad8:	72 15                	jb     0x408aef
408ada:	80 c1 f9             	add    $0xf9,%cl
408add:	80 e9 1a             	sub    $0x1a,%cl
408ae0:	72 0d                	jb     0x408aef
408ae2:	80 e9 04             	sub    $0x4,%cl
408ae5:	74 08                	je     0x408aef
408ae7:	80 c1 fe             	add    $0xfe,%cl
408aea:	80 e9 1a             	sub    $0x1a,%cl
408aed:	73 06                	jae    0x408af5
408aef:	46                   	inc    %esi
408af0:	4a                   	dec    %edx
408af1:	75 da                	jne    0x408acd
408af3:	b0 01                	mov    $0x1,%al
408af5:	5f                   	pop    %edi
408af6:	5e                   	pop    %esi
408af7:	c3                   	ret
408af8:	08 c9                	or     %cl,%cl
408afa:	75 17                	jne    0x408b13
408afc:	09 c0                	or     %eax,%eax
408afe:	79 0e                	jns    0x408b0e
408b00:	f7 d8                	neg    %eax
408b02:	e8 07 00 00 00       	call   0x408b0e
408b07:	b0 2d                	mov    $0x2d,%al
408b09:	41                   	inc    %ecx
408b0a:	4e                   	dec    %esi
408b0b:	88 06                	mov    %al,(%esi)
408b0d:	c3                   	ret
408b0e:	b9 0a 00 00 00       	mov    $0xa,%ecx
408b13:	52                   	push   %edx
408b14:	56                   	push   %esi
408b15:	31 d2                	xor    %edx,%edx
408b17:	f7 f1                	div    %ecx
408b19:	4e                   	dec    %esi
408b1a:	80 c2 30             	add    $0x30,%dl
408b1d:	80 fa 3a             	cmp    $0x3a,%dl
408b20:	72 03                	jb     0x408b25
408b22:	80 c2 07             	add    $0x7,%dl
408b25:	88 16                	mov    %dl,(%esi)
408b27:	09 c0                	or     %eax,%eax
408b29:	75 ea                	jne    0x408b15
408b2b:	59                   	pop    %ecx
408b2c:	5a                   	pop    %edx
408b2d:	29 f1                	sub    %esi,%ecx
408b2f:	29 ca                	sub    %ecx,%edx
408b31:	76 10                	jbe    0x408b43
408b33:	01 d1                	add    %edx,%ecx
408b35:	b0 30                	mov    $0x30,%al
408b37:	29 d6                	sub    %edx,%esi
408b39:	eb 03                	jmp    0x408b3e
408b3b:	88 04 32             	mov    %al,(%edx,%esi,1)
408b3e:	4a                   	dec    %edx
408b3f:	75 fa                	jne    0x408b3b
408b41:	88 06                	mov    %al,(%esi)
408b43:	c3                   	ret
408b44:	56                   	push   %esi
408b45:	89 e6                	mov    %esp,%esi
408b47:	83 ec 10             	sub    $0x10,%esp
408b4a:	31 c9                	xor    %ecx,%ecx
408b4c:	52                   	push   %edx
408b4d:	31 d2                	xor    %edx,%edx
408b4f:	e8 a4 ff ff ff       	call   0x408af8
408b54:	89 f2                	mov    %esi,%edx
408b56:	58                   	pop    %eax
408b57:	e8 b4 bc ff ff       	call   0x404810
408b5c:	83 c4 10             	add    $0x10,%esp
408b5f:	5e                   	pop    %esi
408b60:	c3                   	ret
408b61:	8d 40 00             	lea    0x0(%eax),%eax
408b64:	08 c9                	or     %cl,%cl
408b66:	75 30                	jne    0x408b98
408b68:	b9 0a 00 00 00       	mov    $0xa,%ecx
408b6d:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
408b74:	74 22                	je     0x408b98
408b76:	ff 70 04             	push   0x4(%eax)
408b79:	ff 30                	push   (%eax)
408b7b:	89 e0                	mov    %esp,%eax
408b7d:	f7 1c 24             	negl   (%esp)
408b80:	83 54 24 04 00       	adcl   $0x0,0x4(%esp)
408b85:	f7 5c 24 04          	negl   0x4(%esp)
408b89:	e8 0a 00 00 00       	call   0x408b98
408b8e:	c6 46 ff 2d          	movb   $0x2d,-0x1(%esi)
408b92:	4e                   	dec    %esi
408b93:	41                   	inc    %ecx
408b94:	83 c4 08             	add    $0x8,%esp
408b97:	c3                   	ret
408b98:	56                   	push   %esi
408b99:	83 ec 04             	sub    $0x4,%esp
408b9c:	d9 7c 24 02          	fnstcw 0x2(%esp)
408ba0:	d9 3c 24             	fnstcw (%esp)
408ba3:	66 81 0c 24 00 0f    	orw    $0xf00,(%esp)
408ba9:	d9 2c 24             	fldcw  (%esp)
408bac:	66 89 0c 24          	mov    %cx,(%esp)
408bb0:	d9 e8                	fld1
408bb2:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
408bb9:	74 27                	je     0x408be2
408bbb:	ff 70 04             	push   0x4(%eax)
408bbe:	ff 30                	push   (%eax)
408bc0:	81 64 24 04 ff ff ff 	andl   $0x7fffffff,0x4(%esp)
408bc7:	7f
408bc8:	68 ff ff ff 7f       	push   $0x7fffffff
408bcd:	68 ff ff ff ff       	push   $0xffffffff
408bd2:	df 6c 24 08          	fildll 0x8(%esp)
408bd6:	df 2c 24             	fildll (%esp)
408bd9:	d8 c2                	fadd   %st(2),%st
408bdb:	de c1                	faddp  %st,%st(1)
408bdd:	83 c4 10             	add    $0x10,%esp
408be0:	eb 02                	jmp    0x408be4
408be2:	df 28                	fildll (%eax)
408be4:	df 04 24             	filds  (%esp)
408be7:	d9 c1                	fld    %st(1)
408be9:	4e                   	dec    %esi
408bea:	d9 f8                	fprem
408bec:	df 1c 24             	fistps (%esp)
408bef:	dc f9                	fdivr  %st,%st(1)
408bf1:	8a 04 24             	mov    (%esp),%al
408bf4:	04 30                	add    $0x30,%al
408bf6:	3c 3a                	cmp    $0x3a,%al
408bf8:	72 02                	jb     0x408bfc
408bfa:	04 07                	add    $0x7,%al
408bfc:	88 06                	mov    %al,(%esi)
408bfe:	d9 c1                	fld    %st(1)
408c00:	d8 d3                	fcom   %st(3)
408c02:	9b df e0             	fstsw  %ax
408c05:	9e                   	sahf
408c06:	73 e1                	jae    0x408be9
408c08:	d9 6c 24 02          	fldcw  0x2(%esp)
408c0c:	83 c4 04             	add    $0x4,%esp
408c0f:	dd c3                	ffree  %st(3)
408c11:	dd c2                	ffree  %st(2)
408c13:	dd c1                	ffree  %st(1)
408c15:	dd c0                	ffree  %st(0)
408c17:	59                   	pop    %ecx
408c18:	29 f1                	sub    %esi,%ecx
408c1a:	29 ca                	sub    %ecx,%edx
408c1c:	76 10                	jbe    0x408c2e
408c1e:	29 d6                	sub    %edx,%esi
408c20:	b0 30                	mov    $0x30,%al
408c22:	01 d1                	add    %edx,%ecx
408c24:	eb 03                	jmp    0x408c29
408c26:	88 04 32             	mov    %al,(%edx,%esi,1)
408c29:	4a                   	dec    %edx
408c2a:	75 fa                	jne    0x408c26
408c2c:	88 06                	mov    %al,(%esi)
408c2e:	c3                   	ret
408c2f:	90                   	nop
408c30:	55                   	push   %ebp
408c31:	8b ec                	mov    %esp,%ebp
408c33:	56                   	push   %esi
408c34:	89 e6                	mov    %esp,%esi
408c36:	83 ec 20             	sub    $0x20,%esp
408c39:	31 c9                	xor    %ecx,%ecx
408c3b:	50                   	push   %eax
408c3c:	31 d2                	xor    %edx,%edx
408c3e:	8d 45 08             	lea    0x8(%ebp),%eax
408c41:	e8 1e ff ff ff       	call   0x408b64
408c46:	89 f2                	mov    %esi,%edx
408c48:	58                   	pop    %eax
408c49:	e8 c2 bb ff ff       	call   0x404810
408c4e:	83 c4 20             	add    $0x20,%esp
408c51:	5e                   	pop    %esi
408c52:	5d                   	pop    %ebp
408c53:	c2 08 00             	ret    $0x8
408c56:	8b c0                	mov    %eax,%eax
408c58:	83 fa 20             	cmp    $0x20,%edx
408c5b:	76 02                	jbe    0x408c5f
408c5d:	31 d2                	xor    %edx,%edx
408c5f:	56                   	push   %esi
408c60:	89 e6                	mov    %esp,%esi
408c62:	83 ec 20             	sub    $0x20,%esp
408c65:	51                   	push   %ecx
408c66:	b9 10 00 00 00       	mov    $0x10,%ecx
408c6b:	e8 88 fe ff ff       	call   0x408af8
408c70:	89 f2                	mov    %esi,%edx
408c72:	58                   	pop    %eax
408c73:	e8 98 bb ff ff       	call   0x404810
408c78:	83 c4 20             	add    $0x20,%esp
408c7b:	5e                   	pop    %esi
408c7c:	c3                   	ret
408c7d:	8d 40 00             	lea    0x0(%eax),%eax
408c80:	53                   	push   %ebx
408c81:	56                   	push   %esi
408c82:	83 c4 f4             	add    $0xfffffff4,%esp
408c85:	8b d8                	mov    %eax,%ebx
408c87:	8b d4                	mov    %esp,%edx
408c89:	8b c3                	mov    %ebx,%eax
408c8b:	e8 3c a6 ff ff       	call   0x4032cc
408c90:	8b f0                	mov    %eax,%esi
408c92:	83 3c 24 00          	cmpl   $0x0,(%esp)
408c96:	74 19                	je     0x408cb1
408c98:	89 5c 24 04          	mov    %ebx,0x4(%esp)
408c9c:	c6 44 24 08 0b       	movb   $0xb,0x8(%esp)
408ca1:	8d 54 24 04          	lea    0x4(%esp),%edx
408ca5:	a1 28 d5 46 00       	mov    0x46d528,%eax
408caa:	33 c9                	xor    %ecx,%ecx
408cac:	e8 47 f9 ff ff       	call   0x4085f8
408cb1:	8b c6                	mov    %esi,%eax
408cb3:	83 c4 0c             	add    $0xc,%esp
408cb6:	5e                   	pop    %esi
408cb7:	5b                   	pop    %ebx
408cb8:	c3                   	ret
408cb9:	8d 40 00             	lea    0x0(%eax),%eax
408cbc:	53                   	push   %ebx
408cbd:	51                   	push   %ecx
408cbe:	8b da                	mov    %edx,%ebx
408cc0:	8b d4                	mov    %esp,%edx
408cc2:	e8 05 a6 ff ff       	call   0x4032cc
408cc7:	83 3c 24 00          	cmpl   $0x0,(%esp)
408ccb:	74 02                	je     0x408ccf
408ccd:	8b c3                	mov    %ebx,%eax
408ccf:	5a                   	pop    %edx
408cd0:	5b                   	pop    %ebx
408cd1:	c3                   	ret
408cd2:	8b c0                	mov    %eax,%eax
408cd4:	53                   	push   %ebx
408cd5:	56                   	push   %esi
408cd6:	51                   	push   %ecx
408cd7:	8b f2                	mov    %edx,%esi
408cd9:	8b d8                	mov    %eax,%ebx
408cdb:	8b d4                	mov    %esp,%edx
408cdd:	8b c3                	mov    %ebx,%eax
408cdf:	e8 e8 a5 ff ff       	call   0x4032cc
408ce4:	89 06                	mov    %eax,(%esi)
408ce6:	83 3c 24 00          	cmpl   $0x0,(%esp)
408cea:	0f 94 c0             	sete   %al
408ced:	5a                   	pop    %edx
408cee:	5e                   	pop    %esi
408cef:	5b                   	pop    %ebx
408cf0:	c3                   	ret
408cf1:	8d 40 00             	lea    0x0(%eax),%eax
408cf4:	53                   	push   %ebx
408cf5:	56                   	push   %esi
408cf6:	51                   	push   %ecx
408cf7:	8b f2                	mov    %edx,%esi
408cf9:	8b d8                	mov    %eax,%ebx
408cfb:	8b d4                	mov    %esp,%edx
408cfd:	8b c3                	mov    %ebx,%eax
408cff:	e8 68 c9 ff ff       	call   0x40566c
408d04:	89 06                	mov    %eax,(%esi)
408d06:	89 56 04             	mov    %edx,0x4(%esi)
408d09:	83 3c 24 00          	cmpl   $0x0,(%esp)
408d0d:	0f 94 c0             	sete   %al
408d10:	5a                   	pop    %edx
408d11:	5e                   	pop    %esi
408d12:	5b                   	pop    %ebx
408d13:	c3                   	ret
408d14:	a1 10 09 47 00       	mov    0x470910,%eax
408d19:	e8 66 cb ff ff       	call   0x405884
408d1e:	85 c0                	test   %eax,%eax
408d20:	75 29                	jne    0x408d4b
408d22:	6a 01                	push   $0x1
408d24:	b8 10 09 47 00       	mov    $0x470910,%eax
408d29:	b9 01 00 00 00       	mov    $0x1,%ecx
408d2e:	8b 15 38 84 40 00    	mov    0x408438,%edx
408d34:	e8 07 cd ff ff       	call   0x405a40
408d39:	83 c4 04             	add    $0x4,%esp
408d3c:	a1 10 09 47 00       	mov    0x470910,%eax
408d41:	ba 8c 8d 40 00       	mov    $0x408d8c,%edx
408d46:	e8 29 ba ff ff       	call   0x404774