409d84:	84 c0                	test   %al,%al
409d86:	74 01                	je     0x409d89
409d88:	aa                   	stos   %al,%es:(%edi)
409d89:	e3 09                	jecxz  0x409d94
409d8b:	b0 30                	mov    $0x30,%al
409d8d:	aa                   	stos   %al,%es:(%edi)
409d8e:	4a                   	dec    %edx
409d8f:	74 0c                	je     0x409d9d
409d91:	41                   	inc    %ecx
409d92:	75 f9                	jne    0x409d8d
409d94:	e8 f5 fe ff ff       	call   0x409c8e
409d99:	aa                   	stos   %al,%es:(%edi)
409d9a:	4a                   	dec    %edx
409d9b:	75 f7                	jne    0x409d94
409d9d:	c3                   	ret
409d9e:	31 db                	xor    %ebx,%ebx
409da0:	8a 5d f3             	mov    -0xd(%ebp),%bl
409da3:	b9 03 00 00 00       	mov    $0x3,%ecx
409da8:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409dac:	74 08                	je     0x409db6
409dae:	8a 5d f2             	mov    -0xe(%ebp),%bl
409db1:	b9 0f 04 00 00       	mov    $0x40f,%ecx
409db6:	38 cb                	cmp    %cl,%bl
409db8:	76 02                	jbe    0x409dbc
409dba:	88 cb                	mov    %cl,%bl
409dbc:	00 eb                	add    %ch,%bl
409dbe:	8d 9c 9b 01 9e 40 00 	lea    0x409e01(%ebx,%ebx,4),%ebx
409dc5:	03 5d ec             	add    -0x14(%ebp),%ebx
409dc8:	b9 05 00 00 00       	mov    $0x5,%ecx
409dcd:	8a 03                	mov    (%ebx),%al
409dcf:	3c 40                	cmp    $0x40,%al
409dd1:	74 1e                	je     0x409df1
409dd3:	51                   	push   %ecx
409dd4:	53                   	push   %ebx
409dd5:	3c 24                	cmp    $0x24,%al
409dd7:	74 07                	je     0x409de0
409dd9:	3c 2a                	cmp    $0x2a,%al
409ddb:	74 0a                	je     0x409de7
409ddd:	aa                   	stos   %al,%es:(%edi)
409dde:	eb 0c                	jmp    0x409dec
409de0:	e8 0d 00 00 00       	call   0x409df2
409de5:	eb 05                	jmp    0x409dec
409de7:	e8 4d ff ff ff       	call   0x409d39
409dec:	5b                   	pop    %ebx
409ded:	59                   	pop    %ecx
409dee:	43                   	inc    %ebx
409def:	e2 dc                	loop   0x409dcd
409df1:	c3                   	ret
409df2:	56                   	push   %esi
409df3:	8b 75 f4             	mov    -0xc(%ebp),%esi
409df6:	85 f6                	test   %esi,%esi
409df8:	74 05                	je     0x409dff
409dfa:	8b 4e fc             	mov    -0x4(%esi),%ecx
409dfd:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409dff:	5e                   	pop    %esi
409e00:	c3                   	ret
409e01:	24 2a                	and    $0x2a,%al
409e03:	40                   	inc    %eax
409e04:	40                   	inc    %eax
409e05:	40                   	inc    %eax
409e06:	2a 24 40             	sub    (%eax,%eax,2),%ah
409e09:	40                   	inc    %eax
409e0a:	40                   	inc    %eax
409e0b:	24 20                	and    $0x20,%al
409e0d:	2a 40 40             	sub    0x40(%eax),%al
409e10:	2a 20                	sub    (%eax),%ah
409e12:	24 40                	and    $0x40,%al
409e14:	40                   	inc    %eax
409e15:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
409e18:	29 40 2d             	sub    %eax,0x2d(%eax)
409e1b:	24 2a                	and    $0x2a,%al
409e1d:	40                   	inc    %eax
409e1e:	40                   	inc    %eax
409e1f:	24 2d                	and    $0x2d,%al
409e21:	2a 40 40             	sub    0x40(%eax),%al
409e24:	24 2a                	and    $0x2a,%al
409e26:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
409e2b:	24 29                	and    $0x29,%al
409e2d:	40                   	inc    %eax
409e2e:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
409e33:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
409e39:	24 2d                	and    $0x2d,%al
409e3b:	40                   	inc    %eax
409e3c:	40                   	inc    %eax
409e3d:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
409e42:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
409e47:	2a 20                	sub    (%eax),%ah
409e49:	24 2d                	and    $0x2d,%al
409e4b:	40                   	inc    %eax
409e4c:	24 20                	and    $0x20,%al
409e4e:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
409e54:	2a 40 2a             	sub    0x2a(%eax),%al
409e57:	2d 20 24 40 28       	sub    $0x28402420,%eax
409e5c:	24 20                	and    $0x20,%al
409e5e:	2a 29                	sub    (%ecx),%ch
409e60:	28 2a                	sub    %ch,(%edx)
409e62:	20 24 29             	and    %ah,(%ecx,%ebp,1)
409e65:	8b e5                	mov    %ebp,%esp
409e67:	5d                   	pop    %ebp
409e68:	c2 0c 00             	ret    $0xc
409e6b:	90                   	nop
409e6c:	55                   	push   %ebp
409e6d:	8b ec                	mov    %esp,%ebp
409e6f:	83 c4 e0             	add    $0xffffffe0,%esp
409e72:	57                   	push   %edi
409e73:	56                   	push   %esi
409e74:	53                   	push   %ebx
409e75:	89 c3                	mov    %eax,%ebx
409e77:	89 d6                	mov    %edx,%esi
409e79:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409e80:	80 f9 00             	cmp    $0x0,%cl
409e83:	74 0a                	je     0x409e8f
409e85:	e8 31 01 00 00       	call   0x409fbb
409e8a:	e9 00 02 00 00       	jmp    0x40a08f
409e8f:	e8 05 00 00 00       	call   0x409e99
409e94:	e9 f6 01 00 00       	jmp    0x40a08f
409e99:	66 8b 46 08          	mov    0x8(%esi),%ax
409e9d:	89 c2                	mov    %eax,%edx
409e9f:	25 ff 7f 00 00       	and    $0x7fff,%eax
409ea4:	74 1e                	je     0x409ec4
409ea6:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
409eab:	75 22                	jne    0x409ecf
409ead:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
409eb3:	74 11                	je     0x409ec6
409eb5:	83 3e 00             	cmpl   $0x0,(%esi)
409eb8:	75 09                	jne    0x409ec3
409eba:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
409ec1:	74 03                	je     0x409ec6
409ec3:	40                   	inc    %eax
409ec4:	31 d2                	xor    %edx,%edx
409ec6:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
409eca:	e9 cd 00 00 00       	jmp    0x409f9c
409ecf:	db 2e                	fldt   (%esi)
409ed1:	2d ff 3f 00 00       	sub    $0x3fff,%eax
409ed6:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
409edc:	c1 f8 10             	sar    $0x10,%eax
409edf:	40                   	inc    %eax
409ee0:	89 45 f8             	mov    %eax,-0x8(%ebp)
409ee3:	b8 12 00 00 00       	mov    $0x12,%eax
409ee8:	2b 45 f8             	sub    -0x8(%ebp),%eax
409eeb:	d9 e1                	fabs
409eed:	53                   	push   %ebx
409eee:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409ef1:	e8 02 95 ff ff       	call   0x4033f8
409ef6:	5b                   	pop    %ebx
409ef7:	d9 fc                	frndint
409ef9:	8b 7d fc             	mov    -0x4(%ebp),%edi
409efc:	db af 64 b8 49 00    	fldt   0x49b864(%edi)
409f02:	d8 d9                	fcomp  %st(1)
409f04:	9b dd 7d f6          	fstsw  -0xa(%ebp)
409f08:	9b                   	fwait
409f09:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
409f0f:	74 09                	je     0x409f1a
409f11:	da b7 70 b8 49 00    	fidivl 0x49b870(%edi)
409f17:	ff 45 f8             	incl   -0x8(%ebp)
409f1a:	df 75 e8             	fbstp  -0x18(%ebp)
409f1d:	8d 7b 03             	lea    0x3(%ebx),%edi
409f20:	ba 09 00 00 00       	mov    $0x9,%edx
409f25:	9b                   	fwait
409f26:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
409f2a:	88 c4                	mov    %al,%ah
409f2c:	c0 e8 04             	shr    $0x4,%al
409f2f:	80 e4 0f             	and    $0xf,%ah
409f32:	66 05 30 30          	add    $0x3030,%ax
409f36:	66 ab                	stos   %ax,%es:(%edi)
409f38:	4a                   	dec    %edx
409f39:	75 eb                	jne    0x409f26
409f3b:	32 c0                	xor    %al,%al
409f3d:	aa                   	stos   %al,%es:(%edi)
409f3e:	8b 7d f8             	mov    -0x8(%ebp),%edi
409f41:	03 7d 08             	add    0x8(%ebp),%edi
409f44:	79 07                	jns    0x409f4d
409f46:	31 c0                	xor    %eax,%eax
409f48:	e9 77 ff ff ff       	jmp    0x409ec4
409f4d:	3b 7d 0c             	cmp    0xc(%ebp),%edi
409f50:	72 03                	jb     0x409f55
409f52:	8b 7d 0c             	mov    0xc(%ebp),%edi
409f55:	83 ff 12             	cmp    $0x12,%edi
409f58:	73 27                	jae    0x409f81
409f5a:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
409f5f:	72 25                	jb     0x409f86
409f61:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409f66:	4f                   	dec    %edi
409f67:	78 0d                	js     0x409f76
409f69:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
409f6d:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
409f72:	77 ed                	ja     0x409f61
409f74:	eb 1f                	jmp    0x409f95
409f76:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
409f7c:	ff 45 f8             	incl   -0x8(%ebp)
409f7f:	eb 14                	jmp    0x409f95
409f81:	bf 12 00 00 00       	mov    $0x12,%edi
409f86:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409f8b:	4f                   	dec    %edi
409f8c:	78 19                	js     0x409fa7
409f8e:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
409f93:	74 f1                	je     0x409f86
409f95:	66 8b 56 08          	mov    0x8(%esi),%dx
409f99:	8b 45 f8             	mov    -0x8(%ebp),%eax
409f9c:	66 c1 ea 0f          	shr    $0xf,%dx
409fa0:	66 89 03             	mov    %ax,(%ebx)
409fa3:	88 53 02             	mov    %dl,0x2(%ebx)
409fa6:	c3                   	ret
409fa7:	31 d2                	xor    %edx,%edx
409fa9:	eb ee                	jmp    0x409f99
409fab:	0a 00                	or     (%eax),%al
409fad:	00 00                	add    %al,(%eax)
409faf:	64 00 00             	add    %al,%fs:(%eax)
409fb2:	00 e8                	add    %ch,%al
409fb4:	03 00                	add    (%eax),%eax
409fb6:	00 10                	add    %dl,(%eax)
409fb8:	27                   	daa
409fb9:	00 00                	add    %al,(%eax)
409fbb:	8b 06                	mov    (%esi),%eax
409fbd:	8b 56 04             	mov    0x4(%esi),%edx
409fc0:	89 c1                	mov    %eax,%ecx
409fc2:	09 d1                	or     %edx,%ecx
409fc4:	0f 84 b7 00 00 00    	je     0x40a081
409fca:	09 d2                	or     %edx,%edx
409fcc:	79 07                	jns    0x409fd5
409fce:	f7 da                	neg    %edx
409fd0:	f7 d8                	neg    %eax
409fd2:	83 da 00             	sbb    $0x0,%edx
409fd5:	31 c9                	xor    %ecx,%ecx
409fd7:	8b 7d 08             	mov    0x8(%ebp),%edi
409fda:	09 ff                	or     %edi,%edi
409fdc:	7d 02                	jge    0x409fe0
409fde:	31 ff                	xor    %edi,%edi
409fe0:	83 ff 04             	cmp    $0x4,%edi
409fe3:	7c 1f                	jl     0x40a004
409fe5:	bf 04 00 00 00       	mov    $0x4,%edi
409fea:	41                   	inc    %ecx
409feb:	2d 00 00 64 a7       	sub    $0xa7640000,%eax
409ff0:	81 da b3 b6 e0 0d    	sbb    $0xde0b6b3,%edx
409ff6:	73 f2                	jae    0x409fea
409ff8:	49                   	dec    %ecx
409ff9:	05 00 00 64 a7       	add    $0xa7640000,%eax
409ffe:	81 d2 b3 b6 e0 0d    	adc    $0xde0b6b3,%edx
40a004:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a007:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40a00a:	df 6d e0             	fildll -0x20(%ebp)
40a00d:	89 fa                	mov    %edi,%edx
40a00f:	b8 04 00 00 00       	mov    $0x4,%eax
40a014:	29 d0                	sub    %edx,%eax
40a016:	74 0a                	je     0x40a022
40a018:	8b 7d fc             	mov    -0x4(%ebp),%edi
40a01b:	da b4 87 a7 9f 40 00 	fidivl 0x409fa7(%edi,%eax,4)
40a022:	df 75 e8             	fbstp  -0x18(%ebp)
40a025:	8d 7b 03             	lea    0x3(%ebx),%edi
40a028:	9b                   	fwait
40a029:	09 c9                	or     %ecx,%ecx
40a02b:	75 1b                	jne    0x40a048
40a02d:	b9 09 00 00 00       	mov    $0x9,%ecx
40a032:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
40a036:	88 c4                	mov    %al,%ah
40a038:	c0 e8 04             	shr    $0x4,%al
40a03b:	75 1e                	jne    0x40a05b
40a03d:	88 e0                	mov    %ah,%al
40a03f:	24 0f                	and    $0xf,%al
40a041:	75 1f                	jne    0x40a062
40a043:	49                   	dec    %ecx
40a044:	75 ec                	jne    0x40a032
40a046:	eb 39                	jmp    0x40a081
40a048:	88 c8                	mov    %cl,%al
40a04a:	04 30                	add    $0x30,%al
40a04c:	aa                   	stos   %al,%es:(%edi)
40a04d:	b9 09 00 00 00       	mov    $0x9,%ecx
40a052:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
40a056:	88 c4                	mov    %al,%ah
40a058:	c0 e8 04             	shr    $0x4,%al
40a05b:	04 30                	add    $0x30,%al
40a05d:	aa                   	stos   %al,%es:(%edi)
40a05e:	88 e0                	mov    %ah,%al
40a060:	24 0f                	and    $0xf,%al
40a062:	04 30                	add    $0x30,%al
40a064:	aa                   	stos   %al,%es:(%edi)
40a065:	49                   	dec    %ecx
40a066:	75 ea                	jne    0x40a052
40a068:	89 f8                	mov    %edi,%eax
40a06a:	8d 4c 13 03          	lea    0x3(%ebx,%edx,1),%ecx
40a06e:	29 c8                	sub    %ecx,%eax
40a070:	c6 07 00             	movb   $0x0,(%edi)
40a073:	4f                   	dec    %edi
40a074:	80 3f 30             	cmpb   $0x30,(%edi)
40a077:	74 f7                	je     0x40a070
40a079:	8b 56 04             	mov    0x4(%esi),%edx
40a07c:	c1 ea 1f             	shr    $0x1f,%edx
40a07f:	eb 07                	jmp    0x40a088
40a081:	31 c0                	xor    %eax,%eax
40a083:	31 d2                	xor    %edx,%edx
40a085:	88 43 03             	mov    %al,0x3(%ebx)
40a088:	66 89 03             	mov    %ax,(%ebx)
40a08b:	88 53 02             	mov    %dl,0x2(%ebx)
40a08e:	c3                   	ret
40a08f:	5b                   	pop    %ebx
40a090:	5e                   	pop    %esi
40a091:	5f                   	pop    %edi
40a092:	8b e5                	mov    %ebp,%esp
40a094:	5d                   	pop    %ebp
40a095:	c2 08 00             	ret    $0x8
40a098:	55                   	push   %ebp
40a099:	8b ec                	mov    %esp,%ebp
40a09b:	83 c4 f4             	add    $0xfffffff4,%esp
40a09e:	57                   	push   %edi
40a09f:	56                   	push   %esi
40a0a0:	53                   	push   %ebx
40a0a1:	89 c6                	mov    %eax,%esi
40a0a3:	89 d7                	mov    %edx,%edi
40a0a5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a0ac:	a0 0f a8 4a 00       	mov    0x4aa80f,%al
40a0b1:	88 45 fb             	mov    %al,-0x5(%ebp)
40a0b4:	89 cb                	mov    %ecx,%ebx
40a0b6:	9b d9 7d f8          	fstcw  -0x8(%ebp)
40a0ba:	9b db e2             	fclex
40a0bd:	d9 2d 74 b8 49 00    	fldcw  0x49b874
40a0c3:	d9 ee                	fldz
40a0c5:	e8 85 00 00 00       	call   0x40a14f
40a0ca:	8a 3e                	mov    (%esi),%bh
40a0cc:	80 ff 2b             	cmp    $0x2b,%bh
40a0cf:	74 05                	je     0x40a0d6
40a0d1:	80 ff 2d             	cmp    $0x2d,%bh
40a0d4:	75 01                	jne    0x40a0d7
40a0d6:	46                   	inc    %esi
40a0d7:	89 f1                	mov    %esi,%ecx
40a0d9:	e8 7c 00 00 00       	call   0x40a15a
40a0de:	31 d2                	xor    %edx,%edx
40a0e0:	8a 06                	mov    (%esi),%al
40a0e2:	3a 45 fb             	cmp    -0x5(%ebp),%al
40a0e5:	75 08                	jne    0x40a0ef
40a0e7:	46                   	inc    %esi
40a0e8:	e8 6d 00 00 00       	call   0x40a15a
40a0ed:	f7 da                	neg    %edx
40a0ef:	39 f1                	cmp    %esi,%ecx
40a0f1:	74 4f                	je     0x40a142
40a0f3:	8a 06                	mov    (%esi),%al
40a0f5:	24 df                	and    $0xdf,%al
40a0f7:	3c 45                	cmp    $0x45,%al
40a0f9:	75 0a                	jne    0x40a105
40a0fb:	46                   	inc    %esi
40a0fc:	52                   	push   %edx
40a0fd:	e8 74 00 00 00       	call   0x40a176
40a102:	58                   	pop    %eax
40a103:	01 c2                	add    %eax,%edx
40a105:	e8 45 00 00 00       	call   0x40a14f
40a10a:	80 3e 00             	cmpb   $0x0,(%esi)
40a10d:	75 33                	jne    0x40a142
40a10f:	89 d0                	mov    %edx,%eax
40a111:	80 fb 01             	cmp    $0x1,%bl
40a114:	75 03                	jne    0x40a119
40a116:	83 c0 04             	add    $0x4,%eax