5caaf4:	3b 45 08             	cmp    0x8(%ebp),%eax
5caaf7:	75 07                	jne    0x5cab00
5caaf9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5caafc:	89 01                	mov    %eax,(%ecx)
5caafe:	eb 03                	jmp    0x5cab03
5cab00:	8b 45 dc             	mov    -0x24(%ebp),%eax
5cab03:	89 41 04             	mov    %eax,0x4(%ecx)
5cab06:	3b fe                	cmp    %esi,%edi
5cab08:	0f 84 8f 00 00 00    	je     0x5cab9d
5cab0e:	8b ff                	mov    %edi,%edi
5cab10:	0f b6 47 08          	movzbl 0x8(%edi),%eax
5cab14:	35 c5 9d 1c 81       	xor    $0x811c9dc5,%eax
5cab19:	69 c8 93 01 00 01    	imul   $0x1000193,%eax,%ecx
5cab1f:	0f b6 47 09          	movzbl 0x9(%edi),%eax
5cab23:	33 c8                	xor    %eax,%ecx
5cab25:	0f b6 47 0a          	movzbl 0xa(%edi),%eax
5cab29:	69 c9 93 01 00 01    	imul   $0x1000193,%ecx,%ecx
5cab2f:	33 c8                	xor    %eax,%ecx
5cab31:	0f b6 47 0b          	movzbl 0xb(%edi),%eax
5cab35:	69 c9 93 01 00 01    	imul   $0x1000193,%ecx,%ecx
5cab3b:	33 c8                	xor    %eax,%ecx
5cab3d:	69 c1 93 01 00 01    	imul   $0x1000193,%ecx,%eax
5cab43:	8b 4a 18             	mov    0x18(%edx),%ecx
5cab46:	23 c8                	and    %eax,%ecx
5cab48:	8b 45 e8             	mov    -0x18(%ebp),%eax
5cab4b:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
5cab4e:	89 45 08             	mov    %eax,0x8(%ebp)
5cab51:	8b 40 04             	mov    0x4(%eax),%eax
5cab54:	89 45 0c             	mov    %eax,0xc(%ebp)
5cab57:	3b f8                	cmp    %eax,%edi
5cab59:	8b c7                	mov    %edi,%eax
5cab5b:	8b 3f                	mov    (%edi),%edi
5cab5d:	6a 10                	push   $0x10
5cab5f:	50                   	push   %eax
5cab60:	0f 94 c3             	sete   %bl
5cab63:	89 7d d4             	mov    %edi,-0x2c(%ebp)
5cab66:	e8 ea 66 00 00       	call   0x5d1255
5cab6b:	8b 45 f0             	mov    -0x10(%ebp),%eax
5cab6e:	83 c4 08             	add    $0x8,%esp
5cab71:	ff 48 08             	decl   0x8(%eax)
5cab74:	84 db                	test   %bl,%bl
5cab76:	75 09                	jne    0x5cab81
5cab78:	3b fe                	cmp    %esi,%edi
5cab7a:	74 1c                	je     0x5cab98
5cab7c:	8b 45 0c             	mov    0xc(%ebp),%eax
5cab7f:	eb d6                	jmp    0x5cab57
5cab81:	8b 45 08             	mov    0x8(%ebp),%eax
5cab84:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5cab87:	89 10                	mov    %edx,(%eax)
5cab89:	89 50 04             	mov    %edx,0x4(%eax)
5cab8c:	3b fe                	cmp    %esi,%edi
5cab8e:	74 0d                	je     0x5cab9d
5cab90:	8b 55 f0             	mov    -0x10(%ebp),%edx
5cab93:	e9 78 ff ff ff       	jmp    0x5cab10
5cab98:	8b 45 08             	mov    0x8(%ebp),%eax
5cab9b:	89 38                	mov    %edi,(%eax)
5cab9d:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5caba4:	8b 45 d8             	mov    -0x28(%ebp),%eax
5caba7:	89 38                	mov    %edi,(%eax)
5caba9:	89 47 04             	mov    %eax,0x4(%edi)
5cabac:	5f                   	pop    %edi
5cabad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5cabb0:	8b c6                	mov    %esi,%eax
5cabb2:	5e                   	pop    %esi
5cabb3:	5b                   	pop    %ebx
5cabb4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5cabbb:	8b e5                	mov    %ebp,%esp
5cabbd:	5d                   	pop    %ebp
5cabbe:	c2 08 00             	ret    $0x8
5cabc1:	cc                   	int3
5cabc2:	cc                   	int3
5cabc3:	cc                   	int3
5cabc4:	cc                   	int3
5cabc5:	cc                   	int3
5cabc6:	cc                   	int3
5cabc7:	cc                   	int3
5cabc8:	cc                   	int3
5cabc9:	cc                   	int3
5cabca:	cc                   	int3
5cabcb:	cc                   	int3
5cabcc:	cc                   	int3
5cabcd:	cc                   	int3
5cabce:	cc                   	int3
5cabcf:	cc                   	int3
5cabd0:	55                   	push   %ebp
5cabd1:	8b ec                	mov    %esp,%ebp
5cabd3:	53                   	push   %ebx
5cabd4:	8b 5d 08             	mov    0x8(%ebp),%ebx
5cabd7:	f6 c3 07             	test   $0x7,%bl
5cabda:	74 0e                	je     0x5cabea
5cabdc:	68 e0 ce 66 00       	push   $0x66cee0
5cabe1:	e8 2a 11 ff ff       	call   0x5bbd10
5cabe6:	83 c4 04             	add    $0x4,%esp
5cabe9:	cc                   	int3
5cabea:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
5cabf1:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
5cabf7:	5b                   	pop    %ebx
5cabf8:	5d                   	pop    %ebp
5cabf9:	c3                   	ret
5cabfa:	cc                   	int3
5cabfb:	cc                   	int3
5cabfc:	cc                   	int3
5cabfd:	cc                   	int3
5cabfe:	cc                   	int3
5cabff:	cc                   	int3
5cac00:	55                   	push   %ebp
5cac01:	8b ec                	mov    %esp,%ebp
5cac03:	51                   	push   %ecx
5cac04:	8b 55 08             	mov    0x8(%ebp),%edx
5cac07:	56                   	push   %esi
5cac08:	57                   	push   %edi
5cac09:	8b 32                	mov    (%edx),%esi
5cac0b:	8b 7a 04             	mov    0x4(%edx),%edi
5cac0e:	85 f6                	test   %esi,%esi
5cac10:	74 2f                	je     0x5cac41
5cac12:	8b ce                	mov    %esi,%ecx
5cac14:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5cac17:	57                   	push   %edi
5cac18:	56                   	push   %esi
5cac19:	8d 47 ff             	lea    -0x1(%edi),%eax
5cac1c:	50                   	push   %eax
5cac1d:	ff 31                	push   (%ecx)
5cac1f:	52                   	push   %edx
5cac20:	e8 8b d6 ff ff       	call   0x5c82b0
5cac25:	83 c4 14             	add    $0x14,%esp
5cac28:	3b c6                	cmp    %esi,%eax
5cac2a:	75 04                	jne    0x5cac30
5cac2c:	3b d7                	cmp    %edi,%edx
5cac2e:	74 19                	je     0x5cac49
5cac30:	8b 55 08             	mov    0x8(%ebp),%edx
5cac33:	8b 32                	mov    (%edx),%esi
5cac35:	8b ce                	mov    %esi,%ecx
5cac37:	8b 7a 04             	mov    0x4(%edx),%edi
5cac3a:	89 75 fc             	mov    %esi,-0x4(%ebp)
5cac3d:	85 c9                	test   %ecx,%ecx
5cac3f:	75 d6                	jne    0x5cac17
5cac41:	5f                   	pop    %edi
5cac42:	33 c0                	xor    %eax,%eax
5cac44:	5e                   	pop    %esi
5cac45:	8b e5                	mov    %ebp,%esp
5cac47:	5d                   	pop    %ebp
5cac48:	c3                   	ret
5cac49:	8b 45 fc             	mov    -0x4(%ebp),%eax
5cac4c:	5f                   	pop    %edi
5cac4d:	5e                   	pop    %esi
5cac4e:	8b e5                	mov    %ebp,%esp
5cac50:	5d                   	pop    %ebp
5cac51:	c3                   	ret
5cac52:	cc                   	int3
5cac53:	cc                   	int3
5cac54:	cc                   	int3
5cac55:	cc                   	int3
5cac56:	cc                   	int3
5cac57:	cc                   	int3
5cac58:	cc                   	int3
5cac59:	cc                   	int3
5cac5a:	cc                   	int3
5cac5b:	cc                   	int3
5cac5c:	cc                   	int3
5cac5d:	cc                   	int3
5cac5e:	cc                   	int3
5cac5f:	cc                   	int3
5cac60:	53                   	push   %ebx
5cac61:	8b dc                	mov    %esp,%ebx
5cac63:	83 ec 08             	sub    $0x8,%esp
5cac66:	83 e4 f8             	and    $0xfffffff8,%esp
5cac69:	83 c4 04             	add    $0x4,%esp
5cac6c:	55                   	push   %ebp
5cac6d:	8b 6b 04             	mov    0x4(%ebx),%ebp
5cac70:	89 6c 24 04          	mov    %ebp,0x4(%esp)
5cac74:	8b ec                	mov    %esp,%ebp
5cac76:	83 ec 08             	sub    $0x8,%esp
5cac79:	8b 43 0c             	mov    0xc(%ebx),%eax
5cac7c:	8b c8                	mov    %eax,%ecx
5cac7e:	56                   	push   %esi
5cac7f:	83 e1 f8             	and    $0xfffffff8,%ecx
5cac82:	57                   	push   %edi
5cac83:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5cac86:	8b 53 08             	mov    0x8(%ebx),%edx
5cac89:	8b 3a                	mov    (%edx),%edi
5cac8b:	8b 72 04             	mov    0x4(%edx),%esi
5cac8e:	89 38                	mov    %edi,(%eax)
5cac90:	90                   	nop
5cac91:	56                   	push   %esi
5cac92:	57                   	push   %edi
5cac93:	8d 86 01 00 01 00    	lea    0x10001(%esi),%eax
5cac99:	50                   	push   %eax
5cac9a:	51                   	push   %ecx
5cac9b:	52                   	push   %edx
5cac9c:	e8 0f d6 ff ff       	call   0x5c82b0
5caca1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5caca4:	83 c4 14             	add    $0x14,%esp
5caca7:	3b c7                	cmp    %edi,%eax
5caca9:	8b 43 0c             	mov    0xc(%ebx),%eax
5cacac:	75 d8                	jne    0x5cac86
5cacae:	3b d6                	cmp    %esi,%edx
5cacb0:	75 d4                	jne    0x5cac86
5cacb2:	5f                   	pop    %edi
5cacb3:	5e                   	pop    %esi
5cacb4:	8b e5                	mov    %ebp,%esp
5cacb6:	5d                   	pop    %ebp
5cacb7:	8b e3                	mov    %ebx,%esp
5cacb9:	5b                   	pop    %ebx
5cacba:	c3                   	ret
5cacbb:	cc                   	int3
5cacbc:	cc                   	int3
5cacbd:	cc                   	int3
5cacbe:	cc                   	int3
5cacbf:	cc                   	int3
5cacc0:	55                   	push   %ebp
5cacc1:	8b ec                	mov    %esp,%ebp
5cacc3:	6a ff                	push   $0xffffffff
5cacc5:	68 00 0b 60 00       	push   $0x600b00
5cacca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5cacd0:	50                   	push   %eax
5cacd1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5cacd8:	83 ec 1c             	sub    $0x1c,%esp
5cacdb:	53                   	push   %ebx
5cacdc:	56                   	push   %esi
5cacdd:	57                   	push   %edi
5cacde:	89 65 f0             	mov    %esp,-0x10(%ebp)
5cace1:	8b f9                	mov    %ecx,%edi
5cace3:	89 7d e0             	mov    %edi,-0x20(%ebp)
5cace6:	8b 75 08             	mov    0x8(%ebp),%esi
5cace9:	2b 37                	sub    (%edi),%esi
5caceb:	b8 93 24 49 92       	mov    $0x92492493,%eax
5cacf0:	f7 ee                	imul   %esi
5cacf2:	03 d6                	add    %esi,%edx
5cacf4:	c1 fa 04             	sar    $0x4,%edx
5cacf7:	8b f2                	mov    %edx,%esi
5cacf9:	c1 ee 1f             	shr    $0x1f,%esi
5cacfc:	03 f2                	add    %edx,%esi
5cacfe:	8b 4f 04             	mov    0x4(%edi),%ecx
5cad01:	2b 0f                	sub    (%edi),%ecx
5cad03:	b8 93 24 49 92       	mov    $0x92492493,%eax
5cad08:	f7 e9                	imul   %ecx
5cad0a:	03 d1                	add    %ecx,%edx
5cad0c:	c1 fa 04             	sar    $0x4,%edx
5cad0f:	8b c2                	mov    %edx,%eax
5cad11:	c1 e8 1f             	shr    $0x1f,%eax
5cad14:	03 c2                	add    %edx,%eax
5cad16:	89 45 dc             	mov    %eax,-0x24(%ebp)
5cad19:	3d 49 92 24 09       	cmp    $0x9249249,%eax
5cad1e:	0f 84 88 01 00 00    	je     0x5caeac
5cad24:	8d 58 01             	lea    0x1(%eax),%ebx
5cad27:	8b 4f 08             	mov    0x8(%edi),%ecx
5cad2a:	2b 0f                	sub    (%edi),%ecx
5cad2c:	b8 93 24 49 92       	mov    $0x92492493,%eax
5cad31:	f7 e9                	imul   %ecx
5cad33:	03 d1                	add    %ecx,%edx
5cad35:	c1 fa 04             	sar    $0x4,%edx
5cad38:	8b ca                	mov    %edx,%ecx
5cad3a:	c1 e9 1f             	shr    $0x1f,%ecx
5cad3d:	03 ca                	add    %edx,%ecx
5cad3f:	8b d1                	mov    %ecx,%edx
5cad41:	d1 ea                	shr    $1,%edx
5cad43:	b8 49 92 24 09       	mov    $0x9249249,%eax
5cad48:	2b c2                	sub    %edx,%eax
5cad4a:	3b c8                	cmp    %eax,%ecx
5cad4c:	0f 87 55 01 00 00    	ja     0x5caea7
5cad52:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
5cad55:	8b cb                	mov    %ebx,%ecx
5cad57:	3b c3                	cmp    %ebx,%eax
5cad59:	0f 43 c8             	cmovae %eax,%ecx
5cad5c:	81 f9 49 92 24 09    	cmp    $0x9249249,%ecx
5cad62:	0f 87 3f 01 00 00    	ja     0x5caea7
5cad68:	8d 04 cd 00 00 00 00 	lea    0x0(,%ecx,8),%eax
5cad6f:	2b c1                	sub    %ecx,%eax
5cad71:	c1 e0 02             	shl    $0x2,%eax
5cad74:	89 45 d8             	mov    %eax,-0x28(%ebp)
5cad77:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5cad7a:	85 c0                	test   %eax,%eax
5cad7c:	75 0a                	jne    0x5cad88
5cad7e:	33 db                	xor    %ebx,%ebx
5cad80:	89 5d ec             	mov    %ebx,-0x14(%ebp)
5cad83:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5cad86:	eb 3f                	jmp    0x5cadc7
5cad88:	3d 00 10 00 00       	cmp    $0x1000,%eax
5cad8d:	72 2a                	jb     0x5cadb9
5cad8f:	8d 48 23             	lea    0x23(%eax),%ecx
5cad92:	3b c8                	cmp    %eax,%ecx
5cad94:	0f 86 0d 01 00 00    	jbe    0x5caea7
5cad9a:	51                   	push   %ecx
5cad9b:	e8 85 64 00 00       	call   0x5d1225
5cada0:	83 c4 04             	add    $0x4,%esp
5cada3:	85 c0                	test   %eax,%eax
5cada5:	0f 84 06 01 00 00    	je     0x5caeb1
5cadab:	8d 58 23             	lea    0x23(%eax),%ebx
5cadae:	83 e3 e0             	and    $0xffffffe0,%ebx
5cadb1:	89 43 fc             	mov    %eax,-0x4(%ebx)
5cadb4:	89 5d ec             	mov    %ebx,-0x14(%ebp)
5cadb7:	eb 0e                	jmp    0x5cadc7
5cadb9:	50                   	push   %eax
5cadba:	e8 66 64 00 00       	call   0x5d1225
5cadbf:	83 c4 04             	add    $0x4,%esp
5cadc2:	8b d8                	mov    %eax,%ebx
5cadc4:	89 45 ec             	mov    %eax,-0x14(%ebp)
5cadc7:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5cadce:	8d 04 f5 00 00 00 00 	lea    0x0(,%esi,8),%eax
5cadd5:	2b c6                	sub    %esi,%eax
5cadd7:	8d 04 83             	lea    (%ebx,%eax,4),%eax
5cadda:	89 45 e8             	mov    %eax,-0x18(%ebp)
5caddd:	b9 07 00 00 00       	mov    $0x7,%ecx
5cade2:	8b 75 0c             	mov    0xc(%ebp),%esi
5cade5:	8b f8                	mov    %eax,%edi
5cade7:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5cade9:	8b 7d e0             	mov    -0x20(%ebp),%edi
5cadec:	8b 57 04             	mov    0x4(%edi),%edx
5cadef:	8b 07                	mov    (%edi),%eax
5cadf1:	8b 75 08             	mov    0x8(%ebp),%esi
5cadf4:	3b f2                	cmp    %edx,%esi
5cadf6:	75 04                	jne    0x5cadfc
5cadf8:	8b cb                	mov    %ebx,%ecx
5cadfa:	eb 17                	jmp    0x5cae13
5cadfc:	57                   	push   %edi
5cadfd:	53                   	push   %ebx
5cadfe:	56                   	push   %esi
5cadff:	50                   	push   %eax
5cae00:	e8 db 00 00 00       	call   0x5caee0
5cae05:	83 c4 10             	add    $0x10,%esp
5cae08:	8b c6                	mov    %esi,%eax
5cae0a:	8b 57 04             	mov    0x4(%edi),%edx
5cae0d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5cae10:	83 c1 1c             	add    $0x1c,%ecx
5cae13:	57                   	push   %edi
5cae14:	51                   	push   %ecx
5cae15:	52                   	push   %edx
5cae16:	50                   	push   %eax
5cae17:	e8 c4 00 00 00       	call   0x5caee0
5cae1c:	83 c4 10             	add    $0x10,%esp
5cae1f:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5cae26:	8b 37                	mov    (%edi),%esi
5cae28:	85 f6                	test   %esi,%esi
5cae2a:	74 48                	je     0x5cae74
5cae2c:	8b 4f 08             	mov    0x8(%edi),%ecx
5cae2f:	2b ce                	sub    %esi,%ecx
5cae31:	b8 93 24 49 92       	mov    $0x92492493,%eax
5cae36:	f7 e9                	imul   %ecx
5cae38:	03 d1                	add    %ecx,%edx
5cae3a:	c1 fa 04             	sar    $0x4,%edx
5cae3d:	8b c2                	mov    %edx,%eax
5cae3f:	c1 e8 1f             	shr    $0x1f,%eax
5cae42:	03 c2                	add    %edx,%eax
5cae44:	8d 0c c5 00 00 00 00 	lea    0x0(,%eax,8),%ecx
5cae4b:	2b c8                	sub    %eax,%ecx
5cae4d:	c1 e1 02             	shl    $0x2,%ecx
5cae50:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5cae56:	72 12                	jb     0x5cae6a
5cae58:	83 c1 23             	add    $0x23,%ecx
5cae5b:	8b 56 fc             	mov    -0x4(%esi),%edx