4ee865:	8d 70 03             	lea    0x3(%eax),%esi
4ee868:	e9 8c 03 00 00       	jmp    0x4eebf9
4ee86d:	f2 0f 10 25 08 4d 69 	movsd  0x694d08,%xmm4
4ee874:	00
4ee875:	8a 55 ae             	mov    -0x52(%ebp),%dl
4ee878:	8d 75 b0             	lea    -0x50(%ebp),%esi
4ee87b:	80 fa 01             	cmp    $0x1,%dl
4ee87e:	74 20                	je     0x4ee8a0
4ee880:	f2 0f 58 cb          	addsd  %xmm3,%xmm1
4ee884:	66 0f 2f cc          	comisd %xmm4,%xmm1
4ee888:	f2 0f 11 4d 80       	movsd  %xmm1,-0x80(%ebp)
4ee88d:	72 11                	jb     0x4ee8a0
4ee88f:	f2 0f 59 0d 60 c5 6b 	mulsd  0x6bc560,%xmm1
4ee896:	00
4ee897:	40                   	inc    %eax
4ee898:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4ee89b:	f2 0f 11 4d 80       	movsd  %xmm1,-0x80(%ebp)
4ee8a0:	80 fa 03             	cmp    $0x3,%dl
4ee8a3:	0f 85 df 00 00 00    	jne    0x4ee988
4ee8a9:	80 7d a2 00          	cmpb   $0x0,-0x5e(%ebp)
4ee8ad:	0f 94 45 a3          	sete   -0x5d(%ebp)
4ee8b1:	83 f8 fc             	cmp    $0xfffffffc,%eax
4ee8b4:	0f 8c bd 00 00 00    	jl     0x4ee977
4ee8ba:	3b c7                	cmp    %edi,%eax
4ee8bc:	0f 8f b5 00 00 00    	jg     0x4ee977
4ee8c2:	2b f8                	sub    %eax,%edi
4ee8c4:	c6 45 ae 01          	movb   $0x1,-0x52(%ebp)
4ee8c8:	89 7d 88             	mov    %edi,-0x78(%ebp)
4ee8cb:	8b c8                	mov    %eax,%ecx
4ee8cd:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
4ee8d3:	33 c0                	xor    %eax,%eax
4ee8d5:	85 c9                	test   %ecx,%ecx
4ee8d7:	0f 4f c1             	cmovg  %ecx,%eax
4ee8da:	99                   	cltd
4ee8db:	8b c8                	mov    %eax,%ecx
4ee8dd:	89 95 78 ff ff ff    	mov    %edx,-0x88(%ebp)
4ee8e3:	8b c7                	mov    %edi,%eax
4ee8e5:	99                   	cltd
4ee8e6:	03 c8                	add    %eax,%ecx
4ee8e8:	8b 45 90             	mov    -0x70(%ebp),%eax
4ee8eb:	11 95 78 ff ff ff    	adc    %edx,-0x88(%ebp)
4ee8f1:	99                   	cltd
4ee8f2:	03 c8                	add    %eax,%ecx
4ee8f4:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
4ee8fa:	13 c2                	adc    %edx,%eax
4ee8fc:	83 c1 0f             	add    $0xf,%ecx
4ee8ff:	83 d0 00             	adc    $0x0,%eax
4ee902:	78 27                	js     0x4ee92b
4ee904:	7f 05                	jg     0x4ee90b
4ee906:	83 f9 46             	cmp    $0x46,%ecx
4ee909:	76 20                	jbe    0x4ee92b
4ee90b:	8b 55 9c             	mov    -0x64(%ebp),%edx
4ee90e:	50                   	push   %eax
4ee90f:	51                   	push   %ecx
4ee910:	52                   	push   %edx
4ee911:	e8 fa 1c 02 00       	call   0x510610
4ee916:	8b c8                	mov    %eax,%ecx
4ee918:	83 c4 0c             	add    $0xc,%esp
4ee91b:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
4ee921:	8b f1                	mov    %ecx,%esi
4ee923:	85 c9                	test   %ecx,%ecx
4ee925:	0f 84 7e 0a 00 00    	je     0x4ef3a9
4ee92b:	0f b6 45 97          	movzbl -0x69(%ebp),%eax
4ee92f:	85 ff                	test   %edi,%edi
4ee931:	8a 55 ad             	mov    -0x53(%ebp),%dl
4ee934:	89 75 a8             	mov    %esi,-0x58(%ebp)
4ee937:	8d 04 80             	lea    (%eax,%eax,4),%eax
4ee93a:	8d 0c 45 10 00 00 00 	lea    0x10(,%eax,2),%ecx
4ee941:	0f 9f c0             	setg   %al
4ee944:	0a 45 97             	or     -0x69(%ebp),%al
4ee947:	0a 45 a2             	or     -0x5e(%ebp),%al
4ee94a:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
4ee950:	88 45 a2             	mov    %al,-0x5e(%ebp)
4ee953:	84 d2                	test   %dl,%dl
4ee955:	74 03                	je     0x4ee95a
4ee957:	88 16                	mov    %dl,(%esi)
4ee959:	46                   	inc    %esi
4ee95a:	8b 95 4c ff ff ff    	mov    -0xb4(%ebp),%edx
4ee960:	f2 0f 10 4d 80       	movsd  -0x80(%ebp),%xmm1
4ee965:	f2 0f 10 2d 08 4d 69 	movsd  0x694d08,%xmm5
4ee96c:	00
4ee96d:	85 d2                	test   %edx,%edx
4ee96f:	79 33                	jns    0x4ee9a4
4ee971:	c6 06 30             	movb   $0x30,(%esi)
4ee974:	46                   	inc    %esi
4ee975:	eb 5d                	jmp    0x4ee9d4
4ee977:	33 c9                	xor    %ecx,%ecx
4ee979:	c6 45 ae 02          	movb   $0x2,-0x52(%ebp)
4ee97d:	89 8d 4c ff ff ff    	mov    %ecx,-0xb4(%ebp)
4ee983:	e9 4b ff ff ff       	jmp    0x4ee8d3
4ee988:	8a 75 97             	mov    -0x69(%ebp),%dh
4ee98b:	88 75 a3             	mov    %dh,-0x5d(%ebp)
4ee98e:	80 fa 02             	cmp    $0x2,%dl
4ee991:	0f 85 34 ff ff ff    	jne    0x4ee8cb
4ee997:	33 c9                	xor    %ecx,%ecx
4ee999:	89 8d 4c ff ff ff    	mov    %ecx,-0xb4(%ebp)
4ee99f:	e9 2f ff ff ff       	jmp    0x4ee8d3
4ee9a4:	85 c9                	test   %ecx,%ecx
4ee9a6:	7f 04                	jg     0x4ee9ac
4ee9a8:	b0 30                	mov    $0x30,%al
4ee9aa:	eb 17                	jmp    0x4ee9c3
4ee9ac:	f2 0f 2c c1          	cvttsd2si %xmm1,%eax
4ee9b0:	49                   	dec    %ecx
4ee9b1:	66 0f 6e c0          	movd   %eax,%xmm0
4ee9b5:	04 30                	add    $0x30,%al
4ee9b7:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
4ee9bb:	f2 0f 5c c8          	subsd  %xmm0,%xmm1
4ee9bf:	f2 0f 59 cd          	mulsd  %xmm5,%xmm1
4ee9c3:	88 06                	mov    %al,(%esi)
4ee9c5:	46                   	inc    %esi
4ee9c6:	83 ea 01             	sub    $0x1,%edx
4ee9c9:	79 d9                	jns    0x4ee9a4
4ee9cb:	8a 45 a2             	mov    -0x5e(%ebp),%al
4ee9ce:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
4ee9d4:	84 c0                	test   %al,%al
4ee9d6:	74 04                	je     0x4ee9dc
4ee9d8:	c6 06 2e             	movb   $0x2e,(%esi)
4ee9db:	46                   	inc    %esi
4ee9dc:	42                   	inc    %edx
4ee9dd:	8b c2                	mov    %edx,%eax
4ee9df:	f7 d8                	neg    %eax
4ee9e1:	85 d2                	test   %edx,%edx
4ee9e3:	0f 89 ad 00 00 00    	jns    0x4eea96
4ee9e9:	83 f8 08             	cmp    $0x8,%eax
4ee9ec:	72 7b                	jb     0x4eea69
4ee9ee:	25 07 00 00 80       	and    $0x80000007,%eax
4ee9f3:	79 05                	jns    0x4ee9fa
4ee9f5:	48                   	dec    %eax
4ee9f6:	83 c8 f8             	or     $0xfffffff8,%eax
4ee9f9:	40                   	inc    %eax
4ee9fa:	0f 28 05 90 c6 6b 00 	movaps 0x6bc690,%xmm0
4eea01:	f7 d8                	neg    %eax
4eea03:	0f 28 25 50 0f 6b 00 	movaps 0x6b0f50,%xmm4
4eea0a:	0f 57 d2             	xorps  %xmm2,%xmm2
4eea0d:	89 45 84             	mov    %eax,-0x7c(%ebp)
4eea10:	0f 28 da             	movaps %xmm2,%xmm3
4eea13:	0f 29 85 40 ff ff ff 	movaps %xmm0,-0xc0(%ebp)
4eea1a:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
4eea20:	66 0f 6e c0          	movd   %eax,%xmm0
4eea24:	83 c2 08             	add    $0x8,%edx
4eea27:	66 0f 7e 06          	movd   %xmm0,(%esi)
4eea2b:	66 0f fa d4          	psubd  %xmm4,%xmm2
4eea2f:	66 0f 6e c0          	movd   %eax,%xmm0
4eea33:	66 0f fa dc          	psubd  %xmm4,%xmm3
4eea37:	66 0f 7e 46 04       	movd   %xmm0,0x4(%esi)
4eea3c:	83 c6 08             	add    $0x8,%esi
4eea3f:	3b 55 84             	cmp    -0x7c(%ebp),%edx
4eea42:	7c dc                	jl     0x4eea20
4eea44:	66 0f fe d3          	paddd  %xmm3,%xmm2
4eea48:	0f 28 c2             	movaps %xmm2,%xmm0
4eea4b:	66 0f 73 d8 08       	psrldq $0x8,%xmm0
4eea50:	66 0f fe d0          	paddd  %xmm0,%xmm2
4eea54:	0f 28 c2             	movaps %xmm2,%xmm0
4eea57:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
4eea5c:	66 0f fe d0          	paddd  %xmm0,%xmm2
4eea60:	66 0f 7e d0          	movd   %xmm2,%eax
4eea64:	03 f8                	add    %eax,%edi
4eea66:	89 7d 88             	mov    %edi,-0x78(%ebp)
4eea69:	85 d2                	test   %edx,%edx
4eea6b:	79 29                	jns    0x4eea96
4eea6d:	f7 da                	neg    %edx
4eea6f:	8b fe                	mov    %esi,%edi
4eea71:	8b ca                	mov    %edx,%ecx
4eea73:	89 55 84             	mov    %edx,-0x7c(%ebp)
4eea76:	c1 e9 02             	shr    $0x2,%ecx
4eea79:	b8 30 30 30 30       	mov    $0x30303030,%eax
4eea7e:	f3 ab                	rep stos %eax,%es:(%edi)
4eea80:	8b ca                	mov    %edx,%ecx
4eea82:	83 e1 03             	and    $0x3,%ecx
4eea85:	f3 aa                	rep stos %al,%es:(%edi)
4eea87:	8b 7d 88             	mov    -0x78(%ebp),%edi
4eea8a:	8b c2                	mov    %edx,%eax
4eea8c:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
4eea92:	03 f0                	add    %eax,%esi
4eea94:	2b f8                	sub    %eax,%edi
4eea96:	85 ff                	test   %edi,%edi
4eea98:	7e 2d                	jle    0x4eeac7
4eea9a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4eeaa0:	4f                   	dec    %edi
4eeaa1:	85 c9                	test   %ecx,%ecx
4eeaa3:	7f 04                	jg     0x4eeaa9
4eeaa5:	b0 30                	mov    $0x30,%al
4eeaa7:	eb 17                	jmp    0x4eeac0
4eeaa9:	f2 0f 2c c1          	cvttsd2si %xmm1,%eax
4eeaad:	49                   	dec    %ecx
4eeaae:	66 0f 6e c0          	movd   %eax,%xmm0
4eeab2:	04 30                	add    $0x30,%al
4eeab4:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
4eeab8:	f2 0f 5c c8          	subsd  %xmm0,%xmm1
4eeabc:	f2 0f 59 cd          	mulsd  %xmm5,%xmm1
4eeac0:	88 06                	mov    %al,(%esi)
4eeac2:	46                   	inc    %esi
4eeac3:	85 ff                	test   %edi,%edi
4eeac5:	7f d9                	jg     0x4eeaa0
4eeac7:	80 7d a3 00          	cmpb   $0x0,-0x5d(%ebp)
4eeacb:	74 37                	je     0x4eeb04
4eeacd:	80 7d a2 00          	cmpb   $0x0,-0x5e(%ebp)
4eead1:	74 31                	je     0x4eeb04
4eead3:	80 7e ff 30          	cmpb   $0x30,-0x1(%esi)
4eead7:	8d 46 ff             	lea    -0x1(%esi),%eax
4eeada:	75 11                	jne    0x4eeaed
4eeadc:	0f 1f 40 00          	nopl   0x0(%eax)
4eeae0:	8b f0                	mov    %eax,%esi
4eeae2:	8d 46 ff             	lea    -0x1(%esi),%eax
4eeae5:	c6 06 00             	movb   $0x0,(%esi)
4eeae8:	80 38 30             	cmpb   $0x30,(%eax)
4eeaeb:	74 f3                	je     0x4eeae0
4eeaed:	80 7e ff 2e          	cmpb   $0x2e,-0x1(%esi)
4eeaf1:	75 11                	jne    0x4eeb04
4eeaf3:	8a 75 97             	mov    -0x69(%ebp),%dh
4eeaf6:	84 f6                	test   %dh,%dh
4eeaf8:	74 06                	je     0x4eeb00
4eeafa:	c6 06 30             	movb   $0x30,(%esi)
4eeafd:	46                   	inc    %esi
4eeafe:	eb 04                	jmp    0x4eeb04
4eeb00:	4e                   	dec    %esi
4eeb01:	c6 06 00             	movb   $0x0,(%esi)
4eeb04:	80 7d ae 02          	cmpb   $0x2,-0x52(%ebp)
4eeb08:	0f 85 7f 00 00 00    	jne    0x4eeb8d
4eeb0e:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
4eeb14:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4eeb17:	0f b6 40 04          	movzbl 0x4(%eax),%eax
4eeb1b:	8a 80 5c 28 6b 00    	mov    0x6b285c(%eax),%al
4eeb21:	88 06                	mov    %al,(%esi)
4eeb23:	85 c9                	test   %ecx,%ecx
4eeb25:	79 0b                	jns    0x4eeb32
4eeb27:	f7 d9                	neg    %ecx
4eeb29:	c6 46 01 2d          	movb   $0x2d,0x1(%esi)
4eeb2d:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
4eeb30:	eb 04                	jmp    0x4eeb36
4eeb32:	c6 46 01 2b          	movb   $0x2b,0x1(%esi)
4eeb36:	83 c6 02             	add    $0x2,%esi
4eeb39:	83 f9 64             	cmp    $0x64,%ecx
4eeb3c:	7c 22                	jl     0x4eeb60
4eeb3e:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
4eeb43:	f7 e9                	imul   %ecx
4eeb45:	c1 fa 05             	sar    $0x5,%edx
4eeb48:	8b ca                	mov    %edx,%ecx
4eeb4a:	c1 e9 1f             	shr    $0x1f,%ecx
4eeb4d:	03 ca                	add    %edx,%ecx
4eeb4f:	8d 41 30             	lea    0x30(%ecx),%eax
4eeb52:	88 06                	mov    %al,(%esi)
4eeb54:	46                   	inc    %esi
4eeb55:	6b c1 9c             	imul   $0xffffff9c,%ecx,%eax
4eeb58:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4eeb5b:	03 c8                	add    %eax,%ecx
4eeb5d:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
4eeb60:	b8 67 66 66 66       	mov    $0x66666667,%eax
4eeb65:	f7 e9                	imul   %ecx
4eeb67:	c1 fa 02             	sar    $0x2,%edx
4eeb6a:	8b ca                	mov    %edx,%ecx
4eeb6c:	c1 e9 1f             	shr    $0x1f,%ecx
4eeb6f:	03 ca                	add    %edx,%ecx
4eeb71:	8d 41 30             	lea    0x30(%ecx),%eax
4eeb74:	88 06                	mov    %al,(%esi)
4eeb76:	8a c1                	mov    %cl,%al
4eeb78:	c0 e1 02             	shl    $0x2,%cl
4eeb7b:	02 c1                	add    %cl,%al
4eeb7d:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4eeb80:	02 c0                	add    %al,%al
4eeb82:	2a c8                	sub    %al,%cl
4eeb84:	80 c1 30             	add    $0x30,%cl
4eeb87:	88 4e 01             	mov    %cl,0x1(%esi)
4eeb8a:	83 c6 02             	add    $0x2,%esi
4eeb8d:	8b 55 a8             	mov    -0x58(%ebp),%edx
4eeb90:	c6 06 00             	movb   $0x0,(%esi)
4eeb93:	2b f2                	sub    %edx,%esi
4eeb95:	80 7d 8e 00          	cmpb   $0x0,-0x72(%ebp)
4eeb99:	74 5e                	je     0x4eebf9
4eeb9b:	8a 4d af             	mov    -0x51(%ebp),%cl
4eeb9e:	84 c9                	test   %cl,%cl
4eeba0:	0f 85 3d 06 00 00    	jne    0x4ef1e3
4eeba6:	8b 7d 90             	mov    -0x70(%ebp),%edi
4eeba9:	3b f7                	cmp    %edi,%esi
4eebab:	0f 8d 32 06 00 00    	jge    0x4ef1e3
4eebb1:	2b fe                	sub    %esi,%edi
4eebb3:	8b 75 90             	mov    -0x70(%ebp),%esi
4eebb6:	89 7d 84             	mov    %edi,-0x7c(%ebp)
4eebb9:	8b ce                	mov    %esi,%ecx
4eebbb:	3b f7                	cmp    %edi,%esi
4eebbd:	7c 12                	jl     0x4eebd1
4eebbf:	8b f2                	mov    %edx,%esi
4eebc1:	2b f7                	sub    %edi,%esi
4eebc3:	8a 04 0e             	mov    (%esi,%ecx,1),%al
4eebc6:	88 04 11             	mov    %al,(%ecx,%edx,1)
4eebc9:	49                   	dec    %ecx
4eebca:	3b cf                	cmp    %edi,%ecx
4eebcc:	7d f5                	jge    0x4eebc3
4eebce:	8b 75 90             	mov    -0x70(%ebp),%esi
4eebd1:	33 c0                	xor    %eax,%eax
4eebd3:	38 45 ad             	cmp    %al,-0x53(%ebp)
4eebd6:	0f 95 c0             	setne  %al
4eebd9:	85 ff                	test   %edi,%edi
4eebdb:	74 1c                	je     0x4eebf9
4eebdd:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
4eebe0:	8d 3c 10             	lea    (%eax,%edx,1),%edi
4eebe3:	8b d1                	mov    %ecx,%edx
4eebe5:	b8 30 30 30 30       	mov    $0x30303030,%eax
4eebea:	c1 e9 02             	shr    $0x2,%ecx
4eebed:	f3 ab                	rep stos %eax,%es:(%edi)
4eebef:	8b ca                	mov    %edx,%ecx
4eebf1:	83 e1 03             	and    $0x3,%ecx
4eebf4:	f3 aa                	rep stos %al,%es:(%edi)
4eebf6:	8b 55 a8             	mov    -0x58(%ebp),%edx
4eebf9:	8b 7d 9c             	mov    -0x64(%ebp),%edi
4eebfc:	8a 4d af             	mov    -0x51(%ebp),%cl
4eebff:	8b 45 90             	mov    -0x70(%ebp),%eax
4eec02:	2b c6                	sub    %esi,%eax
4eec04:	89 45 90             	mov    %eax,-0x70(%ebp)
4eec07:	85 c0                	test   %eax,%eax
4eec09:	0f 8e 45 06 00 00    	jle    0x4ef254
4eec0f:	84 c9                	test   %cl,%cl
4eec11:	75 57                	jne    0x4eec6a
4eec13:	8b 55 9c             	mov    -0x64(%ebp),%edx
4eec16:	8b f8                	mov    %eax,%edi
4eec18:	33 c9                	xor    %ecx,%ecx
4eec1a:	8b 42 10             	mov    0x10(%edx),%eax
4eec1d:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
4eec23:	8b c7                	mov    %edi,%eax
4eec25:	99                   	cltd
4eec26:	01 85 78 ff ff ff    	add    %eax,-0x88(%ebp)
4eec2c:	13 ca                	adc    %edx,%ecx
4eec2e:	8b 55 9c             	mov    -0x64(%ebp),%edx
4eec31:	8b 42 08             	mov    0x8(%edx),%eax
4eec34:	78 1f                	js     0x4eec55
4eec36:	7f 08                	jg     0x4eec40
4eec38:	39 85 78 ff ff ff    	cmp    %eax,-0x88(%ebp)
4eec3e:	72 15                	jb     0x4eec55
4eec40:	ff 75 90             	push   -0x70(%ebp)
4eec43:	52                   	push   %edx
4eec44:	e8 87 ee 04 00       	call   0x53dad0
4eec49:	8b f8                	mov    %eax,%edi
4eec4b:	83 c4 08             	add    $0x8,%esp
4eec4e:	85 ff                	test   %edi,%edi
4eec50:	7e 15                	jle    0x4eec67
4eec52:	8b 55 9c             	mov    -0x64(%ebp),%edx
4eec55:	8b 42 10             	mov    0x10(%edx),%eax
4eec58:	4f                   	dec    %edi
4eec59:	8b 4a 04             	mov    0x4(%edx),%ecx
4eec5c:	c6 04 01 20          	movb   $0x20,(%ecx,%eax,1)
4eec60:	ff 42 10             	incl   0x10(%edx)
4eec63:	85 ff                	test   %edi,%edi
4eec65:	7f ee                	jg     0x4eec55
4eec67:	8b 7d 9c             	mov    -0x64(%ebp),%edi
4eec6a:	8b 47 10             	mov    0x10(%edi),%eax
4eec6d:	03 c6                	add    %esi,%eax
4eec6f:	3b 47 08             	cmp    0x8(%edi),%eax
4eec72:	0f 82 73 05 00 00    	jb     0x4ef1eb
4eec78:	56                   	push   %esi
4eec79:	ff 75 a8             	push   -0x58(%ebp)