40cc39:	85 f6                	test   %esi,%esi
40cc3b:	75 17                	jne    0x40cc54
40cc3d:	e8 b9 21 00 00       	call   0x40edfb
40cc42:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40cc48:	e8 34 04 00 00       	call   0x40d081
40cc4d:	d9 ee                	fldz
40cc4f:	e9 d1 00 00 00       	jmp    0x40cd25
40cc54:	53                   	push   %ebx
40cc55:	57                   	push   %edi
40cc56:	bb ff ff 00 00       	mov    $0xffff,%ebx
40cc5b:	53                   	push   %ebx
40cc5c:	68 3f 13 00 00       	push   $0x133f
40cc61:	e8 58 8d 00 00       	call   0x4159be
40cc66:	dd 45 08             	fldl   0x8(%ebp)
40cc69:	8b f8                	mov    %eax,%edi
40cc6b:	59                   	pop    %ecx
40cc6c:	59                   	pop    %ecx
40cc6d:	0f b7 4d 0e          	movzwl 0xe(%ebp),%ecx
40cc71:	b8 f0 7f 00 00       	mov    $0x7ff0,%eax
40cc76:	23 c8                	and    %eax,%ecx
40cc78:	66 3b c8             	cmp    %ax,%cx
40cc7b:	75 48                	jne    0x40ccc5
40cc7d:	83 0e ff             	orl    $0xffffffff,(%esi)
40cc80:	51                   	push   %ecx
40cc81:	51                   	push   %ecx
40cc82:	dd 1c 24             	fstpl  (%esp)
40cc85:	e8 45 8c 00 00       	call   0x4158cf
40cc8a:	59                   	pop    %ecx
40cc8b:	59                   	pop    %ecx
40cc8c:	83 e8 01             	sub    $0x1,%eax
40cc8f:	74 26                	je     0x40ccb7
40cc91:	83 e8 01             	sub    $0x1,%eax
40cc94:	74 21                	je     0x40ccb7
40cc96:	83 e8 01             	sub    $0x1,%eax
40cc99:	74 1c                	je     0x40ccb7
40cc9b:	dd 45 08             	fldl   0x8(%ebp)
40cc9e:	dd 05 d0 60 42 00    	fldl   0x4260d0
40cca4:	57                   	push   %edi
40cca5:	83 ec 10             	sub    $0x10,%esp
40cca8:	d8 c1                	fadd   %st(1),%st
40ccaa:	dd 5c 24 08          	fstpl  0x8(%esp)
40ccae:	dd 1c 24             	fstpl  (%esp)
40ccb1:	6a 17                	push   $0x17
40ccb3:	6a 08                	push   $0x8
40ccb5:	eb 44                	jmp    0x40ccfb
40ccb7:	53                   	push   %ebx
40ccb8:	57                   	push   %edi
40ccb9:	e8 00 8d 00 00       	call   0x4159be
40ccbe:	dd 45 08             	fldl   0x8(%ebp)
40ccc1:	59                   	pop    %ecx
40ccc2:	59                   	pop    %ecx
40ccc3:	eb 5e                	jmp    0x40cd23
40ccc5:	d9 ee                	fldz
40ccc7:	dd e9                	fucomp %st(1)
40ccc9:	df e0                	fnstsw %ax
40cccb:	f6 c4 44             	test   $0x44,%ah
40ccce:	7a 38                	jp     0x40cd08
40ccd0:	51                   	push   %ecx
40ccd1:	51                   	push   %ecx
40ccd2:	dd 1c 24             	fstpl  (%esp)
40ccd5:	e8 11 84 00 00       	call   0x4150eb
40ccda:	59                   	pop    %ecx
40ccdb:	59                   	pop    %ecx
40ccdc:	85 c0                	test   %eax,%eax
40ccde:	74 25                	je     0x40cd05
40cce0:	83 26 00             	andl   $0x0,(%esi)
40cce3:	dd 05 d8 60 42 00    	fldl   0x4260d8
40cce9:	57                   	push   %edi
40ccea:	83 ec 10             	sub    $0x10,%esp
40cced:	dd 5c 24 08          	fstpl  0x8(%esp)
40ccf1:	dd 45 08             	fldl   0x8(%ebp)
40ccf4:	dd 1c 24             	fstpl  (%esp)
40ccf7:	6a 17                	push   $0x17
40ccf9:	6a 00                	push   $0x0
40ccfb:	e8 2f 84 00 00       	call   0x41512f
40cd00:	83 c4 1c             	add    $0x1c,%esp
40cd03:	eb 1e                	jmp    0x40cd23
40cd05:	dd 45 08             	fldl   0x8(%ebp)
40cd08:	56                   	push   %esi
40cd09:	51                   	push   %ecx
40cd0a:	51                   	push   %ecx
40cd0b:	dd 1c 24             	fstpl  (%esp)
40cd0e:	e8 bd 8a 00 00       	call   0x4157d0
40cd13:	53                   	push   %ebx
40cd14:	57                   	push   %edi
40cd15:	dd 5d f8             	fstpl  -0x8(%ebp)
40cd18:	e8 a1 8c 00 00       	call   0x4159be
40cd1d:	dd 45 f8             	fldl   -0x8(%ebp)
40cd20:	83 c4 14             	add    $0x14,%esp
40cd23:	5f                   	pop    %edi
40cd24:	5b                   	pop    %ebx
40cd25:	5e                   	pop    %esi
40cd26:	c9                   	leave
40cd27:	c3                   	ret
40cd28:	8b ff                	mov    %edi,%edi
40cd2a:	55                   	push   %ebp
40cd2b:	8b ec                	mov    %esp,%ebp
40cd2d:	8b 4d 10             	mov    0x10(%ebp),%ecx
40cd30:	85 c9                	test   %ecx,%ecx
40cd32:	75 04                	jne    0x40cd38
40cd34:	33 c0                	xor    %eax,%eax
40cd36:	5d                   	pop    %ebp
40cd37:	c3                   	ret
40cd38:	53                   	push   %ebx
40cd39:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40cd3c:	56                   	push   %esi
40cd3d:	57                   	push   %edi
40cd3e:	8b 7d 08             	mov    0x8(%ebp),%edi
40cd41:	0f b7 17             	movzwl (%edi),%edx
40cd44:	8d 42 bf             	lea    -0x41(%edx),%eax
40cd47:	83 f8 19             	cmp    $0x19,%eax
40cd4a:	77 03                	ja     0x40cd4f
40cd4c:	83 c2 20             	add    $0x20,%edx
40cd4f:	0f b7 33             	movzwl (%ebx),%esi
40cd52:	83 c7 02             	add    $0x2,%edi
40cd55:	8d 46 bf             	lea    -0x41(%esi),%eax
40cd58:	83 f8 19             	cmp    $0x19,%eax
40cd5b:	77 03                	ja     0x40cd60
40cd5d:	83 c6 20             	add    $0x20,%esi
40cd60:	8b c2                	mov    %edx,%eax
40cd62:	83 c3 02             	add    $0x2,%ebx
40cd65:	2b c6                	sub    %esi,%eax
40cd67:	75 09                	jne    0x40cd72
40cd69:	85 d2                	test   %edx,%edx
40cd6b:	74 05                	je     0x40cd72
40cd6d:	83 e9 01             	sub    $0x1,%ecx
40cd70:	75 cf                	jne    0x40cd41
40cd72:	5f                   	pop    %edi
40cd73:	5e                   	pop    %esi
40cd74:	5b                   	pop    %ebx
40cd75:	5d                   	pop    %ebp
40cd76:	c3                   	ret
40cd77:	8b ff                	mov    %edi,%edi
40cd79:	55                   	push   %ebp
40cd7a:	8b ec                	mov    %esp,%ebp
40cd7c:	8b 45 08             	mov    0x8(%ebp),%eax
40cd7f:	b9 00 01 00 00       	mov    $0x100,%ecx
40cd84:	66 3b c1             	cmp    %cx,%ax
40cd87:	73 20                	jae    0x40cda9
40cd89:	0f b6 c8             	movzbl %al,%ecx
40cd8c:	f6 04 4d e2 66 42 00 	testb  $0x1,0x4266e2(,%ecx,2)
40cd93:	01
40cd94:	74 0e                	je     0x40cda4
40cd96:	8b 45 0c             	mov    0xc(%ebp),%eax
40cd99:	8b 00                	mov    (%eax),%eax
40cd9b:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
40cda1:	8a 04 01             	mov    (%ecx,%eax,1),%al
40cda4:	0f b6 c0             	movzbl %al,%eax
40cda7:	5d                   	pop    %ebp
40cda8:	c3                   	ret
40cda9:	ff 75 0c             	push   0xc(%ebp)
40cdac:	50                   	push   %eax
40cdad:	e8 9f 8c 00 00       	call   0x415a51
40cdb2:	59                   	pop    %ecx
40cdb3:	59                   	pop    %ecx
40cdb4:	5d                   	pop    %ebp
40cdb5:	c3                   	ret
40cdb6:	8b ff                	mov    %edi,%edi
40cdb8:	55                   	push   %ebp
40cdb9:	8b ec                	mov    %esp,%ebp
40cdbb:	83 3d bc 49 43 00 00 	cmpl   $0x0,0x4349bc
40cdc2:	75 29                	jne    0x40cded
40cdc4:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cdc8:	75 17                	jne    0x40cde1
40cdca:	e8 2c 20 00 00       	call   0x40edfb
40cdcf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40cdd5:	e8 a7 02 00 00       	call   0x40d081
40cdda:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40cddf:	5d                   	pop    %ebp
40cde0:	c3                   	ret
40cde1:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40cde5:	74 e3                	je     0x40cdca
40cde7:	5d                   	pop    %ebp
40cde8:	e9 3b ff ff ff       	jmp    0x40cd28
40cded:	6a 00                	push   $0x0
40cdef:	ff 75 10             	push   0x10(%ebp)
40cdf2:	ff 75 0c             	push   0xc(%ebp)
40cdf5:	ff 75 08             	push   0x8(%ebp)
40cdf8:	e8 05 00 00 00       	call   0x40ce02
40cdfd:	83 c4 10             	add    $0x10,%esp
40ce00:	5d                   	pop    %ebp
40ce01:	c3                   	ret
40ce02:	8b ff                	mov    %edi,%edi
40ce04:	55                   	push   %ebp
40ce05:	8b ec                	mov    %esp,%ebp
40ce07:	83 ec 14             	sub    $0x14,%esp
40ce0a:	57                   	push   %edi
40ce0b:	8b 7d 08             	mov    0x8(%ebp),%edi
40ce0e:	85 ff                	test   %edi,%edi
40ce10:	75 1a                	jne    0x40ce2c
40ce12:	e8 e4 1f 00 00       	call   0x40edfb
40ce17:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ce1d:	e8 5f 02 00 00       	call   0x40d081
40ce22:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40ce27:	e9 a6 00 00 00       	jmp    0x40ced2
40ce2c:	53                   	push   %ebx
40ce2d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ce30:	85 db                	test   %ebx,%ebx
40ce32:	75 1a                	jne    0x40ce4e
40ce34:	e8 c2 1f 00 00       	call   0x40edfb
40ce39:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ce3f:	e8 3d 02 00 00       	call   0x40d081
40ce44:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40ce49:	e9 83 00 00 00       	jmp    0x40ced1
40ce4e:	56                   	push   %esi
40ce4f:	8b 75 10             	mov    0x10(%ebp),%esi
40ce52:	85 f6                	test   %esi,%esi
40ce54:	75 04                	jne    0x40ce5a
40ce56:	33 c0                	xor    %eax,%eax
40ce58:	eb 76                	jmp    0x40ced0
40ce5a:	ff 75 14             	push   0x14(%ebp)
40ce5d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40ce60:	e8 19 ee ff ff       	call   0x40bc7e
40ce65:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ce68:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
40ce6f:	75 0f                	jne    0x40ce80
40ce71:	56                   	push   %esi
40ce72:	53                   	push   %ebx
40ce73:	57                   	push   %edi
40ce74:	e8 af fe ff ff       	call   0x40cd28
40ce79:	83 c4 0c             	add    $0xc,%esp
40ce7c:	8b c8                	mov    %eax,%ecx
40ce7e:	eb 3e                	jmp    0x40cebe
40ce80:	0f b7 07             	movzwl (%edi),%eax
40ce83:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ce86:	51                   	push   %ecx
40ce87:	50                   	push   %eax
40ce88:	e8 ea fe ff ff       	call   0x40cd77
40ce8d:	0f b7 c0             	movzwl %ax,%eax
40ce90:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ce93:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ce96:	8d 7f 02             	lea    0x2(%edi),%edi
40ce99:	0f b7 03             	movzwl (%ebx),%eax
40ce9c:	8d 5b 02             	lea    0x2(%ebx),%ebx
40ce9f:	51                   	push   %ecx
40cea0:	50                   	push   %eax
40cea1:	e8 d1 fe ff ff       	call   0x40cd77
40cea6:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cea9:	83 c4 10             	add    $0x10,%esp
40ceac:	0f b7 c0             	movzwl %ax,%eax
40ceaf:	8b ca                	mov    %edx,%ecx
40ceb1:	2b c8                	sub    %eax,%ecx
40ceb3:	75 09                	jne    0x40cebe
40ceb5:	85 d2                	test   %edx,%edx
40ceb7:	74 05                	je     0x40cebe
40ceb9:	83 ee 01             	sub    $0x1,%esi
40cebc:	75 c2                	jne    0x40ce80
40cebe:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40cec2:	74 0a                	je     0x40cece
40cec4:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cec7:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40cece:	8b c1                	mov    %ecx,%eax
40ced0:	5e                   	pop    %esi
40ced1:	5b                   	pop    %ebx
40ced2:	5f                   	pop    %edi
40ced3:	c9                   	leave
40ced4:	c3                   	ret
40ced5:	8b ff                	mov    %edi,%edi
40ced7:	55                   	push   %ebp
40ced8:	8b ec                	mov    %esp,%ebp
40ceda:	81 ec 28 03 00 00    	sub    $0x328,%esp
40cee0:	a1 14 30 43 00       	mov    0x433014,%eax
40cee5:	33 c5                	xor    %ebp,%eax
40cee7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ceea:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
40ceee:	57                   	push   %edi
40ceef:	74 09                	je     0x40cefa
40cef1:	ff 75 08             	push   0x8(%ebp)
40cef4:	e8 58 b0 ff ff       	call   0x407f51
40cef9:	59                   	pop    %ecx
40cefa:	6a 50                	push   $0x50
40cefc:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40cf02:	6a 00                	push   $0x0
40cf04:	50                   	push   %eax
40cf05:	e8 e6 bf ff ff       	call   0x408ef0
40cf0a:	68 cc 02 00 00       	push   $0x2cc
40cf0f:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40cf15:	6a 00                	push   $0x0
40cf17:	50                   	push   %eax
40cf18:	e8 d3 bf ff ff       	call   0x408ef0
40cf1d:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40cf23:	83 c4 18             	add    $0x18,%esp
40cf26:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40cf2c:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40cf32:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40cf38:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40cf3e:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40cf44:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
40cf4a:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
40cf50:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40cf56:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
40cf5c:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
40cf63:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
40cf6a:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
40cf71:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
40cf78:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
40cf7f:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
40cf86:	9c                   	pushf
40cf87:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
40cf8d:	8b 45 04             	mov    0x4(%ebp),%eax
40cf90:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40cf96:	8d 45 04             	lea    0x4(%ebp),%eax
40cf99:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40cf9f:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
40cfa6:	00 01 00
40cfa9:	8b 40 fc             	mov    -0x4(%eax),%eax
40cfac:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40cfb2:	8b 45 0c             	mov    0xc(%ebp),%eax
40cfb5:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40cfbb:	8b 45 10             	mov    0x10(%ebp),%eax
40cfbe:	89 85 e4 fc ff ff    	mov    %eax,-0x31c(%ebp)
40cfc4:	8b 45 04             	mov    0x4(%ebp),%eax
40cfc7:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40cfcd:	ff 15 88 40 42 00    	call   *0x424088
40cfd3:	6a 00                	push   $0x0
40cfd5:	8b f8                	mov    %eax,%edi
40cfd7:	ff 15 64 40 42 00    	call   *0x424064
40cfdd:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
40cfe3:	50                   	push   %eax
40cfe4:	ff 15 60 40 42 00    	call   *0x424060
40cfea:	85 c0                	test   %eax,%eax
40cfec:	75 13                	jne    0x40d001
40cfee:	85 ff                	test   %edi,%edi
40cff0:	75 0f                	jne    0x40d001
40cff2:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
40cff6:	74 09                	je     0x40d001
40cff8:	ff 75 08             	push   0x8(%ebp)
40cffb:	e8 51 af ff ff       	call   0x407f51
40d000:	59                   	pop    %ecx
40d001:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d004:	33 cd                	xor    %ebp,%ecx
40d006:	5f                   	pop    %edi
40d007:	e8 00 a4 ff ff       	call   0x40740c
40d00c:	c9                   	leave
40d00d:	c3                   	ret
40d00e:	8b ff                	mov    %edi,%edi
40d010:	55                   	push   %ebp
40d011:	8b ec                	mov    %esp,%ebp
40d013:	8b 45 08             	mov    0x8(%ebp),%eax
40d016:	a3 28 46 43 00       	mov    %eax,0x434628
40d01b:	5d                   	pop    %ebp
40d01c:	c3                   	ret
40d01d:	8b ff                	mov    %edi,%edi
40d01f:	55                   	push   %ebp
40d020:	8b ec                	mov    %esp,%ebp
40d022:	56                   	push   %esi
40d023:	e8 02 73 00 00       	call   0x41432a
40d028:	85 c0                	test   %eax,%eax
40d02a:	74 29                	je     0x40d055
40d02c:	8b b0 5c 03 00 00    	mov    0x35c(%eax),%esi