40ce13:	eb df                	jmp    0x40cdf4
40ce15:	33 c0                	xor    %eax,%eax
40ce17:	eb d8                	jmp    0x40cdf1
40ce19:	55                   	push   %ebp
40ce1a:	8b ec                	mov    %esp,%ebp
40ce1c:	56                   	push   %esi
40ce1d:	57                   	push   %edi
40ce1e:	ff 75 08             	push   0x8(%ebp)
40ce21:	8b f1                	mov    %ecx,%esi
40ce23:	e8 b3 3e 01 00       	call   0x420cdb
40ce28:	8d 78 01             	lea    0x1(%eax),%edi
40ce2b:	59                   	pop    %ecx
40ce2c:	89 46 04             	mov    %eax,0x4(%esi)
40ce2f:	85 ff                	test   %edi,%edi
40ce31:	74 4b                	je     0x40ce7e
40ce33:	8d 47 07             	lea    0x7(%edi),%eax
40ce36:	83 e0 f8             	and    $0xfffffff8,%eax
40ce39:	33 c9                	xor    %ecx,%ecx
40ce3b:	6a 02                	push   $0x2
40ce3d:	5a                   	pop    %edx
40ce3e:	89 46 08             	mov    %eax,0x8(%esi)
40ce41:	f7 e2                	mul    %edx
40ce43:	0f 90 c1             	seto   %cl
40ce46:	f7 d9                	neg    %ecx
40ce48:	0b c8                	or     %eax,%ecx
40ce4a:	51                   	push   %ecx
40ce4b:	e8 25 20 01 00       	call   0x41ee75
40ce50:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40ce53:	51                   	push   %ecx
40ce54:	ff 75 08             	push   0x8(%ebp)
40ce57:	89 06                	mov    %eax,(%esi)
40ce59:	50                   	push   %eax
40ce5a:	e8 21 20 01 00       	call   0x41ee80
40ce5f:	6a 04                	push   $0x4
40ce61:	e8 84 26 01 00       	call   0x41f4ea
40ce66:	83 c4 14             	add    $0x14,%esp
40ce69:	85 c0                	test   %eax,%eax
40ce6b:	74 16                	je     0x40ce83
40ce6d:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40ce73:	89 46 0c             	mov    %eax,0xc(%esi)
40ce76:	5f                   	pop    %edi
40ce77:	8b c6                	mov    %esi,%eax
40ce79:	5e                   	pop    %esi
40ce7a:	5d                   	pop    %ebp
40ce7b:	c2 04 00             	ret    $0x4
40ce7e:	6a 08                	push   $0x8
40ce80:	58                   	pop    %eax
40ce81:	eb b6                	jmp    0x40ce39
40ce83:	33 c0                	xor    %eax,%eax
40ce85:	eb ec                	jmp    0x40ce73
40ce87:	55                   	push   %ebp
40ce88:	8b ec                	mov    %esp,%ebp
40ce8a:	83 ec 28             	sub    $0x28,%esp
40ce8d:	53                   	push   %ebx
40ce8e:	56                   	push   %esi
40ce8f:	57                   	push   %edi
40ce90:	8b d9                	mov    %ecx,%ebx
40ce92:	6a 08                	push   $0x8
40ce94:	59                   	pop    %ecx
40ce95:	be 70 ec 4a 00       	mov    $0x4aec70,%esi
40ce9a:	8d 7d d8             	lea    -0x28(%ebp),%edi
40ce9d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ce9f:	8b c2                	mov    %edx,%eax
40cea1:	8b 55 0c             	mov    0xc(%ebp),%edx
40cea4:	8d 48 ff             	lea    -0x1(%eax),%ecx
40cea7:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40cea9:	8b 75 08             	mov    0x8(%ebp),%esi
40ceac:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ceaf:	85 c9                	test   %ecx,%ecx
40ceb1:	78 1b                	js     0x40cece
40ceb3:	8b c6                	mov    %esi,%eax
40ceb5:	83 e0 0f             	and    $0xf,%eax
40ceb8:	0f ac d6 04          	shrd   $0x4,%edx,%esi
40cebc:	66 8b 44 45 d8       	mov    -0x28(%ebp,%eax,2),%ax
40cec1:	66 89 04 4b          	mov    %ax,(%ebx,%ecx,2)
40cec5:	c1 ea 04             	shr    $0x4,%edx
40cec8:	49                   	dec    %ecx
40cec9:	79 e8                	jns    0x40ceb3
40cecb:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cece:	33 c9                	xor    %ecx,%ecx
40ced0:	5f                   	pop    %edi
40ced1:	0b f2                	or     %edx,%esi
40ced3:	5e                   	pop    %esi
40ced4:	66 89 0c 43          	mov    %cx,(%ebx,%eax,2)
40ced8:	5b                   	pop    %ebx
40ced9:	75 04                	jne    0x40cedf
40cedb:	b0 01                	mov    $0x1,%al
40cedd:	c9                   	leave
40cede:	c3                   	ret
40cedf:	32 c0                	xor    %al,%al
40cee1:	c9                   	leave
40cee2:	c3                   	ret
40cee3:	55                   	push   %ebp
40cee4:	8b ec                	mov    %esp,%ebp
40cee6:	83 ec 10             	sub    $0x10,%esp
40cee9:	56                   	push   %esi
40ceea:	57                   	push   %edi
40ceeb:	8b 7d 08             	mov    0x8(%ebp),%edi
40ceee:	33 f6                	xor    %esi,%esi
40cef0:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
40cef4:	0f 87 25 95 06 00    	ja     0x47641f
40cefa:	85 f6                	test   %esi,%esi
40cefc:	0f 85 42 95 06 00    	jne    0x476444
40cf02:	8b 47 04             	mov    0x4(%edi),%eax
40cf05:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cf08:	ff 30                	push   (%eax)
40cf0a:	e8 9f 0d 00 00       	call   0x40dcae
40cf0f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cf12:	e8 08 00 00 00       	call   0x40cf1f
40cf17:	5f                   	pop    %edi
40cf18:	33 c0                	xor    %eax,%eax
40cf1a:	5e                   	pop    %esi
40cf1b:	c9                   	leave
40cf1c:	c2 08 00             	ret    $0x8
40cf1f:	55                   	push   %ebp
40cf20:	8b ec                	mov    %esp,%ebp
40cf22:	51                   	push   %ecx
40cf23:	56                   	push   %esi
40cf24:	8b f1                	mov    %ecx,%esi
40cf26:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
40cf2a:	74 60                	je     0x40cf8c
40cf2c:	83 7e 0c 02          	cmpl   $0x2,0xc(%esi)
40cf30:	74 5a                	je     0x40cf8c
40cf32:	53                   	push   %ebx
40cf33:	57                   	push   %edi
40cf34:	e8 5a 00 00 00       	call   0x40cf93
40cf39:	33 db                	xor    %ebx,%ebx
40cf3b:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
40cf3f:	8b f8                	mov    %eax,%edi
40cf41:	89 55 fc             	mov    %edx,-0x4(%ebp)
40cf44:	75 0f                	jne    0x40cf55
40cf46:	8b ce                	mov    %esi,%ecx
40cf48:	e8 ba 00 00 00       	call   0x40d007
40cf4d:	84 c0                	test   %al,%al
40cf4f:	0f 85 fa 7a 06 00    	jne    0x474a4f
40cf55:	83 fa ff             	cmp    $0xffffffff,%edx
40cf58:	7c 35                	jl     0x40cf8f
40cf5a:	7f 08                	jg     0x40cf64
40cf5c:	81 ff 00 00 00 80    	cmp    $0x80000000,%edi
40cf62:	72 2b                	jb     0x40cf8f
40cf64:	3b d3                	cmp    %ebx,%edx
40cf66:	7c 0a                	jl     0x40cf72
40cf68:	7f 25                	jg     0x40cf8f
40cf6a:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40cf70:	77 1d                	ja     0x40cf8f
40cf72:	8b ce                	mov    %esi,%ecx
40cf74:	e8 a7 5c 00 00       	call   0x412c20
40cf79:	89 3e                	mov    %edi,(%esi)
40cf7b:	84 db                	test   %bl,%bl
40cf7d:	0f 85 e2 7a 06 00    	jne    0x474a65
40cf83:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
40cf8a:	5f                   	pop    %edi
40cf8b:	5b                   	pop    %ebx
40cf8c:	5e                   	pop    %esi
40cf8d:	c9                   	leave
40cf8e:	c3                   	ret
40cf8f:	b3 01                	mov    $0x1,%bl
40cf91:	eb df                	jmp    0x40cf72
40cf93:	55                   	push   %ebp
40cf94:	8b ec                	mov    %esp,%ebp
40cf96:	51                   	push   %ecx
40cf97:	51                   	push   %ecx
40cf98:	56                   	push   %esi
40cf99:	8b f1                	mov    %ecx,%esi
40cf9b:	8b 46 0c             	mov    0xc(%esi),%eax
40cf9e:	48                   	dec    %eax
40cf9f:	74 3c                	je     0x40cfdd
40cfa1:	48                   	dec    %eax
40cfa2:	74 3e                	je     0x40cfe2
40cfa4:	48                   	dec    %eax
40cfa5:	74 23                	je     0x40cfca
40cfa7:	48                   	dec    %eax
40cfa8:	0f 85 5b 7e 06 00    	jne    0x474e09
40cfae:	8b 46 08             	mov    0x8(%esi),%eax
40cfb1:	8b 10                	mov    (%eax),%edx
40cfb3:	e8 31 00 00 00       	call   0x40cfe9
40cfb8:	84 c0                	test   %al,%al
40cfba:	0f 85 a3 7e 06 00    	jne    0x474e63
40cfc0:	52                   	push   %edx
40cfc1:	e8 64 46 01 00       	call   0x42162a
40cfc6:	59                   	pop    %ecx
40cfc7:	5e                   	pop    %esi
40cfc8:	c9                   	leave
40cfc9:	c3                   	ret
40cfca:	dd 06                	fldl   (%esi)
40cfcc:	83 ec 10             	sub    $0x10,%esp
40cfcf:	dd 5c 24 08          	fstpl  0x8(%esp)
40cfd3:	e8 56 00 00 00       	call   0x40d02e
40cfd8:	83 c4 10             	add    $0x10,%esp
40cfdb:	eb ea                	jmp    0x40cfc7
40cfdd:	8b 06                	mov    (%esi),%eax
40cfdf:	99                   	cltd
40cfe0:	eb e5                	jmp    0x40cfc7
40cfe2:	8b 06                	mov    (%esi),%eax
40cfe4:	8b 56 04             	mov    0x4(%esi),%edx
40cfe7:	eb de                	jmp    0x40cfc7
40cfe9:	83 79 0c 04          	cmpl   $0x4,0xc(%ecx)
40cfed:	75 09                	jne    0x40cff8
40cfef:	e8 13 00 00 00       	call   0x40d007
40cff4:	84 c0                	test   %al,%al
40cff6:	75 03                	jne    0x40cffb
40cff8:	32 c0                	xor    %al,%al
40cffa:	c3                   	ret
40cffb:	8b 41 08             	mov    0x8(%ecx),%eax
40cffe:	83 78 04 12          	cmpl   $0x12,0x4(%eax)
40d002:	77 f4                	ja     0x40cff8
40d004:	b0 01                	mov    $0x1,%al
40d006:	c3                   	ret
40d007:	83 79 0c 04          	cmpl   $0x4,0xc(%ecx)
40d00b:	75 0b                	jne    0x40d018
40d00d:	8b 41 08             	mov    0x8(%ecx),%eax
40d010:	8b 00                	mov    (%eax),%eax
40d012:	66 83 38 30          	cmpw   $0x30,(%eax)
40d016:	74 03                	je     0x40d01b
40d018:	32 c0                	xor    %al,%al
40d01a:	c3                   	ret
40d01b:	0f b7 40 02          	movzwl 0x2(%eax),%eax
40d01f:	83 f8 78             	cmp    $0x78,%eax
40d022:	75 03                	jne    0x40d027
40d024:	b0 01                	mov    $0x1,%al
40d026:	c3                   	ret
40d027:	83 f8 58             	cmp    $0x58,%eax
40d02a:	75 ec                	jne    0x40d018
40d02c:	eb f6                	jmp    0x40d024
40d02e:	55                   	push   %ebp
40d02f:	8b ec                	mov    %esp,%ebp
40d031:	dd 45 10             	fldl   0x10(%ebp)
40d034:	83 ec 10             	sub    $0x10,%esp
40d037:	d9 ee                	fldz
40d039:	dd e1                	fucom  %st(1)
40d03b:	df e0                	fnstsw %ax
40d03d:	f6 c4 44             	test   $0x44,%ah
40d040:	7b 75                	jnp    0x40d0b7
40d042:	dd 05 28 27 4b 00    	fldl   0x4b2728
40d048:	dd ea                	fucomp %st(2)
40d04a:	df e0                	fnstsw %ax
40d04c:	f6 c4 44             	test   $0x44,%ah
40d04f:	7b 66                	jnp    0x40d0b7
40d051:	53                   	push   %ebx
40d052:	d9 c9                	fxch   %st(1)
40d054:	dd 55 f0             	fstl   -0x10(%ebp)
40d057:	56                   	push   %esi
40d058:	57                   	push   %edi
40d059:	d9 c0                	fld    %st(0)
40d05b:	e8 a6 48 06 00       	call   0x471906
40d060:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40d063:	8b f0                	mov    %eax,%esi
40d065:	89 75 10             	mov    %esi,0x10(%ebp)
40d068:	89 55 14             	mov    %edx,0x14(%ebp)
40d06b:	df 6d 10             	fildll 0x10(%ebp)
40d06e:	dd 55 10             	fstl   0x10(%ebp)
40d071:	d9 c9                	fxch   %st(1)
40d073:	d8 da                	fcomp  %st(2)
40d075:	df e0                	fnstsw %ax
40d077:	dd d9                	fstp   %st(1)
40d079:	f6 c4 05             	test   $0x5,%ah
40d07c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d07f:	0f 8b 1b 74 06 00    	jnp    0x4744a0
40d085:	dc 05 f8 26 4b 00    	faddl  0x4b26f8
40d08b:	dd 5d f8             	fstpl  -0x8(%ebp)
40d08e:	8b 7d f8             	mov    -0x8(%ebp),%edi
40d091:	2b 7d 10             	sub    0x10(%ebp),%edi
40d094:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d097:	1b 4d 14             	sbb    0x14(%ebp),%ecx
40d09a:	83 ef 0a             	sub    $0xa,%edi
40d09d:	83 d9 00             	sbb    $0x0,%ecx
40d0a0:	2b 5d 10             	sub    0x10(%ebp),%ebx
40d0a3:	1b 45 14             	sbb    0x14(%ebp),%eax
40d0a6:	3b c1                	cmp    %ecx,%eax
40d0a8:	7c 06                	jl     0x40d0b0
40d0aa:	7f 15                	jg     0x40d0c1
40d0ac:	3b df                	cmp    %edi,%ebx
40d0ae:	73 11                	jae    0x40d0c1
40d0b0:	5f                   	pop    %edi
40d0b1:	8b c6                	mov    %esi,%eax
40d0b3:	5e                   	pop    %esi
40d0b4:	5b                   	pop    %ebx
40d0b5:	c9                   	leave
40d0b6:	c3                   	ret
40d0b7:	dd d9                	fstp   %st(1)
40d0b9:	33 c0                	xor    %eax,%eax
40d0bb:	dd d8                	fstp   %st(0)
40d0bd:	33 d2                	xor    %edx,%edx
40d0bf:	c9                   	leave
40d0c0:	c3                   	ret
40d0c1:	83 c6 01             	add    $0x1,%esi
40d0c4:	83 d2 00             	adc    $0x0,%edx
40d0c7:	eb e7                	jmp    0x40d0b0
40d0c9:	55                   	push   %ebp
40d0ca:	8b ec                	mov    %esp,%ebp
40d0cc:	83 ec 44             	sub    $0x44,%esp
40d0cf:	53                   	push   %ebx
40d0d0:	56                   	push   %esi
40d0d1:	57                   	push   %edi
40d0d2:	8b f9                	mov    %ecx,%edi
40d0d4:	8b f2                	mov    %edx,%esi
40d0d6:	8b 4f 0c             	mov    0xc(%edi),%ecx
40d0d9:	8b 56 0c             	mov    0xc(%esi),%edx
40d0dc:	8b c1                	mov    %ecx,%eax
40d0de:	c1 e0 04             	shl    $0x4,%eax
40d0e1:	03 c2                	add    %edx,%eax
40d0e3:	89 75 fc             	mov    %esi,-0x4(%ebp)
40d0e6:	8b 04 85 10 b8 4b 00 	mov    0x4bb810(,%eax,4),%eax
40d0ed:	48                   	dec    %eax
40d0ee:	83 f8 0e             	cmp    $0xe,%eax
40d0f1:	0f 87 89 00 00 00    	ja     0x40d180
40d0f7:	ff 24 85 85 d1 40 00 	jmp    *0x40d185(,%eax,4)
40d0fe:	8b cf                	mov    %edi,%ecx
40d100:	e8 81 01 00 00       	call   0x40d286
40d105:	8b ce                	mov    %esi,%ecx
40d107:	8b d8                	mov    %eax,%ebx
40d109:	e8 78 01 00 00       	call   0x40d286
40d10e:	2b d8                	sub    %eax,%ebx
40d110:	f7 db                	neg    %ebx
40d112:	1b db                	sbb    %ebx,%ebx
40d114:	43                   	inc    %ebx
40d115:	8a c3                	mov    %bl,%al
40d117:	5f                   	pop    %edi
40d118:	5e                   	pop    %esi
40d119:	5b                   	pop    %ebx
40d11a:	c9                   	leave
40d11b:	c3                   	ret
40d11c:	8b cf                	mov    %edi,%ecx
40d11e:	e8 03 0c 01 00       	call   0x41dd26
40d123:	8b ce                	mov    %esi,%ecx
40d125:	8a d0                	mov    %al,%dl
40d127:	e8 fa 0b 01 00       	call   0x41dd26
40d12c:	33 c9                	xor    %ecx,%ecx
40d12e:	3a d0                	cmp    %al,%dl
40d130:	0f 94 c1             	sete   %cl
40d133:	8a c1                	mov    %cl,%al
40d135:	eb e0                	jmp    0x40d117
40d137:	8b cf                	mov    %edi,%ecx
40d139:	e8 92 5b 00 00       	call   0x412cd0
40d13e:	dd 5d f8             	fstpl  -0x8(%ebp)
40d141:	8b ce                	mov    %esi,%ecx
40d143:	e8 88 5b 00 00       	call   0x412cd0
40d148:	dd 45 f8             	fldl   -0x8(%ebp)
40d14b:	da e9                	fucompp
40d14d:	df e0                	fnstsw %ax
40d14f:	f6 c4 44             	test   $0x44,%ah
40d152:	7b 27                	jnp    0x40d17b
40d154:	33 c0                	xor    %eax,%eax
40d156:	eb bf                	jmp    0x40d117
40d158:	8b ce                	mov    %esi,%ecx
40d15a:	e8 0d c2 ff ff       	call   0x40936c
40d15f:	8b 76 08             	mov    0x8(%esi),%esi
40d162:	8b cf                	mov    %edi,%ecx
40d164:	e8 03 c2 ff ff       	call   0x40936c
40d169:	8b 4f 08             	mov    0x8(%edi),%ecx