4a98c4:	85 c0                	test   %eax,%eax
4a98c6:	0f 8e da 08 00 00    	jle    0x4aa1a6
4a98cc:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a98cf:	c1 e0 03             	shl    $0x3,%eax
4a98d2:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a98d5:	3b 1f                	cmp    (%edi),%ebx
4a98d7:	72 0a                	jb     0x4a98e3
4a98d9:	53                   	push   %ebx
4a98da:	8b cf                	mov    %edi,%ecx
4a98dc:	e8 8f fc fa ff       	call   0x459570
4a98e1:	8b d8                	mov    %eax,%ebx
4a98e3:	ff 75 bc             	push   -0x44(%ebp)
4a98e6:	8b 0e                	mov    (%esi),%ecx
4a98e8:	e8 d3 39 fb ff       	call   0x45d2c0
4a98ed:	53                   	push   %ebx
4a98ee:	ff 75 c0             	push   -0x40(%ebp)
4a98f1:	8b 38                	mov    (%eax),%edi
4a98f3:	8b 70 04             	mov    0x4(%eax),%esi
4a98f6:	e8 c5 71 fa ff       	call   0x450ac0
4a98fb:	50                   	push   %eax
4a98fc:	56                   	push   %esi
4a98fd:	57                   	push   %edi
4a98fe:	e8 cd 82 fa ff       	call   0x451bd0
4a9903:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a9906:	83 c4 14             	add    $0x14,%esp
4a9909:	8b 7d bc             	mov    -0x44(%ebp),%edi
4a990c:	8b d8                	mov    %eax,%ebx
4a990e:	47                   	inc    %edi
4a990f:	89 7d bc             	mov    %edi,-0x44(%ebp)
4a9912:	8b 0e                	mov    (%esi),%ecx
4a9914:	e8 97 46 fb ff       	call   0x45dfb0
4a9919:	3b f8                	cmp    %eax,%edi
4a991b:	8b 7d c8             	mov    -0x38(%ebp),%edi
4a991e:	7c b5                	jl     0x4a98d5
4a9920:	e9 81 08 00 00       	jmp    0x4aa1a6
4a9925:	8b 0e                	mov    (%esi),%ecx
4a9927:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4a992e:	e8 7d 46 fb ff       	call   0x45dfb0
4a9933:	85 c0                	test   %eax,%eax
4a9935:	0f 8e 6b 08 00 00    	jle    0x4aa1a6
4a993b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a993e:	c1 e0 03             	shl    $0x3,%eax
4a9941:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9944:	3b 1f                	cmp    (%edi),%ebx
4a9946:	72 0a                	jb     0x4a9952
4a9948:	53                   	push   %ebx
4a9949:	8b cf                	mov    %edi,%ecx
4a994b:	e8 20 fc fa ff       	call   0x459570
4a9950:	8b d8                	mov    %eax,%ebx
4a9952:	ff 75 c8             	push   -0x38(%ebp)
4a9955:	8b 0e                	mov    (%esi),%ecx
4a9957:	e8 54 39 fb ff       	call   0x45d2b0
4a995c:	53                   	push   %ebx
4a995d:	ff 75 c0             	push   -0x40(%ebp)
4a9960:	8b 30                	mov    (%eax),%esi
4a9962:	e8 59 71 fa ff       	call   0x450ac0
4a9967:	50                   	push   %eax
4a9968:	8b ce                	mov    %esi,%ecx
4a996a:	8d 04 36             	lea    (%esi,%esi,1),%eax
4a996d:	c1 f9 1f             	sar    $0x1f,%ecx
4a9970:	33 c8                	xor    %eax,%ecx
4a9972:	51                   	push   %ecx
4a9973:	e8 48 71 fa ff       	call   0x450ac0
4a9978:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a997b:	83 c4 10             	add    $0x10,%esp
4a997e:	ff 45 c8             	incl   -0x38(%ebp)
4a9981:	8b d8                	mov    %eax,%ebx
4a9983:	8b 0e                	mov    (%esi),%ecx
4a9985:	e8 26 46 fb ff       	call   0x45dfb0
4a998a:	39 45 c8             	cmp    %eax,-0x38(%ebp)
4a998d:	7c b5                	jl     0x4a9944
4a998f:	e9 12 08 00 00       	jmp    0x4aa1a6
4a9994:	8b 0e                	mov    (%esi),%ecx
4a9996:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
4a999d:	e8 0e 46 fb ff       	call   0x45dfb0
4a99a2:	85 c0                	test   %eax,%eax
4a99a4:	0f 8e fc 07 00 00    	jle    0x4aa1a6
4a99aa:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a99ad:	c1 e0 03             	shl    $0x3,%eax
4a99b0:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a99b3:	3b 1f                	cmp    (%edi),%ebx
4a99b5:	72 0a                	jb     0x4a99c1
4a99b7:	53                   	push   %ebx
4a99b8:	8b cf                	mov    %edi,%ecx
4a99ba:	e8 b1 fb fa ff       	call   0x459570
4a99bf:	8b d8                	mov    %eax,%ebx
4a99c1:	ff 75 bc             	push   -0x44(%ebp)
4a99c4:	8b 0e                	mov    (%esi),%ecx
4a99c6:	e8 f5 38 fb ff       	call   0x45d2c0
4a99cb:	53                   	push   %ebx
4a99cc:	ff 75 c0             	push   -0x40(%ebp)
4a99cf:	8b 30                	mov    (%eax),%esi
4a99d1:	8b 78 04             	mov    0x4(%eax),%edi
4a99d4:	e8 e7 70 fa ff       	call   0x450ac0
4a99d9:	50                   	push   %eax
4a99da:	8b cf                	mov    %edi,%ecx
4a99dc:	8b c7                	mov    %edi,%eax
4a99de:	0f a4 f7 01          	shld   $0x1,%esi,%edi
4a99e2:	c1 f8 1f             	sar    $0x1f,%eax
4a99e5:	c1 f9 1f             	sar    $0x1f,%ecx
4a99e8:	33 c7                	xor    %edi,%eax
4a99ea:	03 f6                	add    %esi,%esi
4a99ec:	33 ce                	xor    %esi,%ecx
4a99ee:	50                   	push   %eax
4a99ef:	51                   	push   %ecx
4a99f0:	e8 db 81 fa ff       	call   0x451bd0
4a99f5:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a99f8:	83 c4 14             	add    $0x14,%esp
4a99fb:	8b 7d bc             	mov    -0x44(%ebp),%edi
4a99fe:	8b d8                	mov    %eax,%ebx
4a9a00:	47                   	inc    %edi
4a9a01:	89 7d bc             	mov    %edi,-0x44(%ebp)
4a9a04:	8b 0e                	mov    (%esi),%ecx
4a9a06:	e8 a5 45 fb ff       	call   0x45dfb0
4a9a0b:	3b f8                	cmp    %eax,%edi
4a9a0d:	8b 7d c8             	mov    -0x38(%ebp),%edi
4a9a10:	7c a1                	jl     0x4a99b3
4a9a12:	e9 8f 07 00 00       	jmp    0x4aa1a6
4a9a17:	8b 0e                	mov    (%esi),%ecx
4a9a19:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4a9a20:	e8 8b 45 fb ff       	call   0x45dfb0
4a9a25:	85 c0                	test   %eax,%eax
4a9a27:	0f 8e 79 07 00 00    	jle    0x4aa1a6
4a9a2d:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9a30:	c1 e0 03             	shl    $0x3,%eax
4a9a33:	83 c8 05             	or     $0x5,%eax
4a9a36:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9a39:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4a9a40:	3b 1f                	cmp    (%edi),%ebx
4a9a42:	72 0a                	jb     0x4a9a4e
4a9a44:	53                   	push   %ebx
4a9a45:	8b cf                	mov    %edi,%ecx
4a9a47:	e8 24 fb fa ff       	call   0x459570
4a9a4c:	8b d8                	mov    %eax,%ebx
4a9a4e:	ff 75 c8             	push   -0x38(%ebp)
4a9a51:	8b 0e                	mov    (%esi),%ecx
4a9a53:	e8 58 38 fb ff       	call   0x45d2b0
4a9a58:	53                   	push   %ebx
4a9a59:	ff 75 c0             	push   -0x40(%ebp)
4a9a5c:	8b 30                	mov    (%eax),%esi
4a9a5e:	e8 5d 70 fa ff       	call   0x450ac0
4a9a63:	ff 45 c8             	incl   -0x38(%ebp)
4a9a66:	83 c4 08             	add    $0x8,%esp
4a9a69:	89 30                	mov    %esi,(%eax)
4a9a6b:	8d 58 04             	lea    0x4(%eax),%ebx
4a9a6e:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a9a71:	8b 0e                	mov    (%esi),%ecx
4a9a73:	e8 38 45 fb ff       	call   0x45dfb0
4a9a78:	39 45 c8             	cmp    %eax,-0x38(%ebp)
4a9a7b:	7c c3                	jl     0x4a9a40
4a9a7d:	e9 24 07 00 00       	jmp    0x4aa1a6
4a9a82:	8b 0e                	mov    (%esi),%ecx
4a9a84:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
4a9a8b:	e8 20 45 fb ff       	call   0x45dfb0
4a9a90:	85 c0                	test   %eax,%eax
4a9a92:	0f 8e 0e 07 00 00    	jle    0x4aa1a6
4a9a98:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9a9b:	c1 e0 03             	shl    $0x3,%eax
4a9a9e:	83 c8 01             	or     $0x1,%eax
4a9aa1:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9aa4:	3b 1f                	cmp    (%edi),%ebx
4a9aa6:	72 0a                	jb     0x4a9ab2
4a9aa8:	53                   	push   %ebx
4a9aa9:	8b cf                	mov    %edi,%ecx
4a9aab:	e8 c0 fa fa ff       	call   0x459570
4a9ab0:	8b d8                	mov    %eax,%ebx
4a9ab2:	ff 75 bc             	push   -0x44(%ebp)
4a9ab5:	8b 0e                	mov    (%esi),%ecx
4a9ab7:	e8 04 38 fb ff       	call   0x45d2c0
4a9abc:	53                   	push   %ebx
4a9abd:	ff 75 c0             	push   -0x40(%ebp)
4a9ac0:	8b 30                	mov    (%eax),%esi
4a9ac2:	8b 78 04             	mov    0x4(%eax),%edi
4a9ac5:	e8 f6 6f fa ff       	call   0x450ac0
4a9aca:	83 c4 08             	add    $0x8,%esp
4a9acd:	89 30                	mov    %esi,(%eax)
4a9acf:	8d 58 08             	lea    0x8(%eax),%ebx
4a9ad2:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a9ad5:	89 78 04             	mov    %edi,0x4(%eax)
4a9ad8:	8b 7d bc             	mov    -0x44(%ebp),%edi
4a9adb:	47                   	inc    %edi
4a9adc:	8b 0e                	mov    (%esi),%ecx
4a9ade:	89 7d bc             	mov    %edi,-0x44(%ebp)
4a9ae1:	e8 ca 44 fb ff       	call   0x45dfb0
4a9ae6:	3b f8                	cmp    %eax,%edi
4a9ae8:	8b 7d c8             	mov    -0x38(%ebp),%edi
4a9aeb:	7c b7                	jl     0x4a9aa4
4a9aed:	e9 b4 06 00 00       	jmp    0x4aa1a6
4a9af2:	8b 0e                	mov    (%esi),%ecx
4a9af4:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4a9afb:	e8 b0 44 fb ff       	call   0x45dfb0
4a9b00:	85 c0                	test   %eax,%eax
4a9b02:	0f 8e 9e 06 00 00    	jle    0x4aa1a6
4a9b08:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9b0b:	c1 e0 03             	shl    $0x3,%eax
4a9b0e:	83 c8 05             	or     $0x5,%eax
4a9b11:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9b14:	3b 1f                	cmp    (%edi),%ebx
4a9b16:	72 0a                	jb     0x4a9b22
4a9b18:	53                   	push   %ebx
4a9b19:	8b cf                	mov    %edi,%ecx
4a9b1b:	e8 50 fa fa ff       	call   0x459570
4a9b20:	8b d8                	mov    %eax,%ebx
4a9b22:	ff 75 c8             	push   -0x38(%ebp)
4a9b25:	8b 0e                	mov    (%esi),%ecx
4a9b27:	e8 84 37 fb ff       	call   0x45d2b0
4a9b2c:	53                   	push   %ebx
4a9b2d:	ff 75 c0             	push   -0x40(%ebp)
4a9b30:	8b 30                	mov    (%eax),%esi
4a9b32:	e8 89 6f fa ff       	call   0x450ac0
4a9b37:	ff 45 c8             	incl   -0x38(%ebp)
4a9b3a:	83 c4 08             	add    $0x8,%esp
4a9b3d:	89 30                	mov    %esi,(%eax)
4a9b3f:	8d 58 04             	lea    0x4(%eax),%ebx
4a9b42:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a9b45:	8b 0e                	mov    (%esi),%ecx
4a9b47:	e8 64 44 fb ff       	call   0x45dfb0
4a9b4c:	39 45 c8             	cmp    %eax,-0x38(%ebp)
4a9b4f:	7c c3                	jl     0x4a9b14
4a9b51:	e9 50 06 00 00       	jmp    0x4aa1a6
4a9b56:	8b 0e                	mov    (%esi),%ecx
4a9b58:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
4a9b5f:	e8 4c 44 fb ff       	call   0x45dfb0
4a9b64:	85 c0                	test   %eax,%eax
4a9b66:	0f 8e 3a 06 00 00    	jle    0x4aa1a6
4a9b6c:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9b6f:	c1 e0 03             	shl    $0x3,%eax
4a9b72:	83 c8 01             	or     $0x1,%eax
4a9b75:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9b78:	3b 1f                	cmp    (%edi),%ebx
4a9b7a:	72 0a                	jb     0x4a9b86
4a9b7c:	53                   	push   %ebx
4a9b7d:	8b cf                	mov    %edi,%ecx
4a9b7f:	e8 ec f9 fa ff       	call   0x459570
4a9b84:	8b d8                	mov    %eax,%ebx
4a9b86:	ff 75 bc             	push   -0x44(%ebp)
4a9b89:	8b 0e                	mov    (%esi),%ecx
4a9b8b:	e8 30 37 fb ff       	call   0x45d2c0
4a9b90:	53                   	push   %ebx
4a9b91:	ff 75 c0             	push   -0x40(%ebp)
4a9b94:	8b 30                	mov    (%eax),%esi
4a9b96:	8b 78 04             	mov    0x4(%eax),%edi
4a9b99:	e8 22 6f fa ff       	call   0x450ac0
4a9b9e:	83 c4 08             	add    $0x8,%esp
4a9ba1:	89 30                	mov    %esi,(%eax)
4a9ba3:	8d 58 08             	lea    0x8(%eax),%ebx
4a9ba6:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4a9ba9:	89 78 04             	mov    %edi,0x4(%eax)
4a9bac:	8b 7d bc             	mov    -0x44(%ebp),%edi
4a9baf:	47                   	inc    %edi
4a9bb0:	8b 0e                	mov    (%esi),%ecx
4a9bb2:	89 7d bc             	mov    %edi,-0x44(%ebp)
4a9bb5:	e8 f6 43 fb ff       	call   0x45dfb0
4a9bba:	3b f8                	cmp    %eax,%edi
4a9bbc:	8b 7d c8             	mov    -0x38(%ebp),%edi
4a9bbf:	7c b7                	jl     0x4a9b78
4a9bc1:	e9 e0 05 00 00       	jmp    0x4aa1a6
4a9bc6:	8b 0e                	mov    (%esi),%ecx
4a9bc8:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4a9bcf:	e8 dc 43 fb ff       	call   0x45dfb0
4a9bd4:	85 c0                	test   %eax,%eax
4a9bd6:	0f 8e ca 05 00 00    	jle    0x4aa1a6
4a9bdc:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9bdf:	c1 e0 03             	shl    $0x3,%eax
4a9be2:	83 c8 05             	or     $0x5,%eax
4a9be5:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9be8:	3b 1f                	cmp    (%edi),%ebx
4a9bea:	72 0a                	jb     0x4a9bf6
4a9bec:	53                   	push   %ebx
4a9bed:	8b cf                	mov    %edi,%ecx
4a9bef:	e8 7c f9 fa ff       	call   0x459570
4a9bf4:	8b d8                	mov    %eax,%ebx
4a9bf6:	ff 75 c8             	push   -0x38(%ebp)
4a9bf9:	8b 0e                	mov    (%esi),%ecx
4a9bfb:	e8 b0 36 fb ff       	call   0x45d2b0
4a9c00:	53                   	push   %ebx
4a9c01:	ff 75 c0             	push   -0x40(%ebp)
4a9c04:	f3 0f 10 00          	movss  (%eax),%xmm0
4a9c08:	f3 0f 11 45 bc       	movss  %xmm0,-0x44(%ebp)
4a9c0d:	e8 ae 6e fa ff       	call   0x450ac0
4a9c12:	f3 0f 10 45 bc       	movss  -0x44(%ebp),%xmm0
4a9c17:	83 c4 08             	add    $0x8,%esp
4a9c1a:	ff 45 c8             	incl   -0x38(%ebp)
4a9c1d:	f3 0f 11 00          	movss  %xmm0,(%eax)
4a9c21:	8d 58 04             	lea    0x4(%eax),%ebx
4a9c24:	8b 0e                	mov    (%esi),%ecx
4a9c26:	e8 85 43 fb ff       	call   0x45dfb0
4a9c2b:	39 45 c8             	cmp    %eax,-0x38(%ebp)
4a9c2e:	7c b8                	jl     0x4a9be8
4a9c30:	e9 71 05 00 00       	jmp    0x4aa1a6
4a9c35:	8b 0e                	mov    (%esi),%ecx
4a9c37:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4a9c3e:	e8 6d 43 fb ff       	call   0x45dfb0
4a9c43:	85 c0                	test   %eax,%eax
4a9c45:	0f 8e 5b 05 00 00    	jle    0x4aa1a6
4a9c4b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9c4e:	c1 e0 03             	shl    $0x3,%eax
4a9c51:	83 c8 01             	or     $0x1,%eax
4a9c54:	89 45 c0             	mov    %eax,-0x40(%ebp)
4a9c57:	3b 1f                	cmp    (%edi),%ebx
4a9c59:	72 0a                	jb     0x4a9c65
4a9c5b:	53                   	push   %ebx
4a9c5c:	8b cf                	mov    %edi,%ecx
4a9c5e:	e8 0d f9 fa ff       	call   0x459570
4a9c63:	8b d8                	mov    %eax,%ebx
4a9c65:	ff 75 c8             	push   -0x38(%ebp)
4a9c68:	8b 0e                	mov    (%esi),%ecx
4a9c6a:	e8 51 36 fb ff       	call   0x45d2c0
4a9c6f:	53                   	push   %ebx
4a9c70:	ff 75 c0             	push   -0x40(%ebp)
4a9c73:	f2 0f 10 00          	movsd  (%eax),%xmm0
4a9c77:	f2 0f 11 45 b8       	movsd  %xmm0,-0x48(%ebp)
4a9c7c:	e8 3f 6e fa ff       	call   0x450ac0
4a9c81:	f2 0f 10 45 b8       	movsd  -0x48(%ebp),%xmm0
4a9c86:	83 c4 08             	add    $0x8,%esp
4a9c89:	ff 45 c8             	incl   -0x38(%ebp)
4a9c8c:	f2 0f 11 00          	movsd  %xmm0,(%eax)
4a9c90:	8d 58 08             	lea    0x8(%eax),%ebx
4a9c93:	8b 0e                	mov    (%esi),%ecx
4a9c95:	e8 16 43 fb ff       	call   0x45dfb0
4a9c9a:	39 45 c8             	cmp    %eax,-0x38(%ebp)
4a9c9d:	7c b8                	jl     0x4a9c57
4a9c9f:	e9 02 05 00 00       	jmp    0x4aa1a6
4a9ca4:	8b 0e                	mov    (%esi),%ecx
4a9ca6:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
4a9cad:	e8 fe 42 fb ff       	call   0x45dfb0
4a9cb2:	85 c0                	test   %eax,%eax
4a9cb4:	0f 8e ec 04 00 00    	jle    0x4aa1a6
4a9cba:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4a9cbd:	c1 e0 03             	shl    $0x3,%eax
4a9cc0:	89 45 c8             	mov    %eax,-0x38(%ebp)
4a9cc3:	3b 1f                	cmp    (%edi),%ebx
4a9cc5:	72 0c                	jb     0x4a9cd3
4a9cc7:	53                   	push   %ebx
4a9cc8:	8b cf                	mov    %edi,%ecx
4a9cca:	e8 a1 f8 fa ff       	call   0x459570
4a9ccf:	8b f0                	mov    %eax,%esi
4a9cd1:	eb 03                	jmp    0x4a9cd6
4a9cd3:	8b 75 c0             	mov    -0x40(%ebp),%esi
4a9cd6:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
4a9cd9:	ff 75 bc             	push   -0x44(%ebp)
4a9cdc:	8b 09                	mov    (%ecx),%ecx
4a9cde:	e8 ed 35 fb ff       	call   0x45d2d0
4a9ce3:	56                   	push   %esi
4a9ce4:	ff 75 c8             	push   -0x38(%ebp)
4a9ce7:	8a 18                	mov    (%eax),%bl
4a9ce9:	e8 d2 6d fa ff       	call   0x450ac0
4a9cee:	50                   	push   %eax
4a9cef:	33 c0                	xor    %eax,%eax
4a9cf1:	84 db                	test   %bl,%bl