528deb:	85 f6                	test   %esi,%esi
528ded:	75 f6                	jne    0x528de5
528def:	8b 0f                	mov    (%edi),%ecx
528df1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
528df4:	85 c9                	test   %ecx,%ecx
528df6:	74 18                	je     0x528e10
528df8:	8d 41 01             	lea    0x1(%ecx),%eax
528dfb:	89 45 d0             	mov    %eax,-0x30(%ebp)
528dfe:	66 90                	xchg   %ax,%ax
528e00:	8a 01                	mov    (%ecx),%al
528e02:	41                   	inc    %ecx
528e03:	84 c0                	test   %al,%al
528e05:	75 f9                	jne    0x528e00
528e07:	2b 4d d0             	sub    -0x30(%ebp),%ecx
528e0a:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
528e10:	89 4d f8             	mov    %ecx,-0x8(%ebp)
528e13:	8b 0a                	mov    (%edx),%ecx
528e15:	89 55 dc             	mov    %edx,-0x24(%ebp)
528e18:	8b d3                	mov    %ebx,%edx
528e1a:	c1 e2 04             	shl    $0x4,%edx
528e1d:	83 fb 01             	cmp    $0x1,%ebx
528e20:	89 55 d0             	mov    %edx,-0x30(%ebp)
528e23:	8b 41 10             	mov    0x10(%ecx),%eax
528e26:	8b 04 02             	mov    (%edx,%eax,1),%eax
528e29:	89 45 e8             	mov    %eax,-0x18(%ebp)
528e2c:	8b 41 10             	mov    0x10(%ecx),%eax
528e2f:	8b 44 10 0c          	mov    0xc(%eax,%edx,1),%eax
528e33:	0f 94 45 e4          	sete   -0x1c(%ebp)
528e37:	89 45 e0             	mov    %eax,-0x20(%ebp)
528e3a:	8d 45 f4             	lea    -0xc(%ebp),%eax
528e3d:	89 45 f0             	mov    %eax,-0x10(%ebp)
528e40:	8d 45 dc             	lea    -0x24(%ebp),%eax
528e43:	c7 45 ec ec b3 6b 00 	movl   $0x6bb3ec,-0x14(%ebp)
528e4a:	ff 77 1c             	push   0x1c(%edi)
528e4d:	50                   	push   %eax
528e4e:	e8 cd 04 00 00       	call   0x529320
528e53:	83 c4 08             	add    $0x8,%esp
528e56:	85 c0                	test   %eax,%eax
528e58:	0f 85 32 01 00 00    	jne    0x528f90
528e5e:	ff 77 0c             	push   0xc(%edi)
528e61:	8d 45 dc             	lea    -0x24(%ebp),%eax
528e64:	50                   	push   %eax
528e65:	e8 56 01 00 00       	call   0x528fc0
528e6a:	83 c4 08             	add    $0x8,%esp
528e6d:	85 c0                	test   %eax,%eax
528e6f:	0f 85 1b 01 00 00    	jne    0x528f90
528e75:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
528e78:	80 b9 c8 00 00 00 02 	cmpb   $0x2,0xc8(%ecx)
528e7f:	72 0d                	jb     0x528e8e
528e81:	89 b9 ec 00 00 00    	mov    %edi,0xec(%ecx)
528e87:	33 ff                	xor    %edi,%edi
528e89:	e9 a5 00 00 00       	jmp    0x528f33
528e8e:	8b 45 d8             	mov    -0x28(%ebp),%eax
528e91:	80 b8 a5 00 00 00 00 	cmpb   $0x0,0xa5(%eax)
528e98:	0f 85 95 00 00 00    	jne    0x528f33
528e9e:	51                   	push   %ecx
528e9f:	e8 2c 4a 00 00       	call   0x52d8d0
528ea4:	83 c4 04             	add    $0x4,%esp
528ea7:	89 45 c4             	mov    %eax,-0x3c(%ebp)
528eaa:	85 c0                	test   %eax,%eax
528eac:	0f 84 de 00 00 00    	je     0x528f90
528eb2:	53                   	push   %ebx
528eb3:	6a 00                	push   $0x0
528eb5:	ff 75 d4             	push   -0x2c(%ebp)
528eb8:	e8 93 13 ff ff       	call   0x51a250
528ebd:	8b 45 c8             	mov    -0x38(%ebp),%eax
528ec0:	6a 00                	push   $0x0
528ec2:	ff 70 04             	push   0x4(%eax)
528ec5:	ff 30                	push   (%eax)
528ec7:	ff 75 d8             	push   -0x28(%ebp)
528eca:	e8 41 88 ff ff       	call   0x521710
528ecf:	8b 4d d0             	mov    -0x30(%ebp),%ecx
528ed2:	50                   	push   %eax
528ed3:	ff 77 04             	push   0x4(%edi)
528ed6:	89 45 c8             	mov    %eax,-0x38(%ebp)
528ed9:	8b 45 d8             	mov    -0x28(%ebp),%eax
528edc:	ff 75 cc             	push   -0x34(%ebp)
528edf:	68 24 8a 6b 00       	push   $0x6b8a24
528ee4:	8b 40 10             	mov    0x10(%eax),%eax
528ee7:	ff 34 08             	push   (%eax,%ecx,1)
528eea:	68 d0 b4 6b 00       	push   $0x6bb4d0
528eef:	ff 75 d4             	push   -0x2c(%ebp)
528ef2:	e8 a9 87 00 00       	call   0x5316a0
528ef7:	8b 45 c8             	mov    -0x38(%ebp),%eax
528efa:	83 c4 38             	add    $0x38,%esp
528efd:	85 c0                	test   %eax,%eax
528eff:	74 0c                	je     0x528f0d
528f01:	50                   	push   %eax
528f02:	ff 75 d8             	push   -0x28(%ebp)
528f05:	e8 66 84 ff ff       	call   0x521370
528f0a:	83 c4 08             	add    $0x8,%esp
528f0d:	53                   	push   %ebx
528f0e:	ff 75 d4             	push   -0x2c(%ebp)
528f11:	e8 3a 50 ff ff       	call   0x51df50
528f16:	ff 75 cc             	push   -0x34(%ebp)
528f19:	68 10 b5 6b 00       	push   $0x6bb510
528f1e:	ff 75 d8             	push   -0x28(%ebp)
528f21:	e8 1a 80 00 00       	call   0x530f40
528f26:	50                   	push   %eax
528f27:	53                   	push   %ebx
528f28:	ff 75 c4             	push   -0x3c(%ebp)
528f2b:	e8 20 8e 01 00       	call   0x541d50
528f30:	83 c4 20             	add    $0x20,%esp
528f33:	8b 5d d8             	mov    -0x28(%ebp),%ebx
528f36:	80 bb a5 00 00 00 00 	cmpb   $0x0,0xa5(%ebx)
528f3d:	74 51                	je     0x528f90
528f3f:	8b 43 10             	mov    0x10(%ebx),%eax
528f42:	8b 4d d0             	mov    -0x30(%ebp),%ecx
528f45:	57                   	push   %edi
528f46:	ff 75 cc             	push   -0x34(%ebp)
528f49:	89 7d c4             	mov    %edi,-0x3c(%ebp)
528f4c:	8b 44 08 0c          	mov    0xc(%eax,%ecx,1),%eax
528f50:	83 c0 28             	add    $0x28,%eax
528f53:	50                   	push   %eax
528f54:	e8 47 4b 00 00       	call   0x52daa0
528f59:	8b f8                	mov    %eax,%edi
528f5b:	83 c4 0c             	add    $0xc,%esp
528f5e:	85 ff                	test   %edi,%edi
528f60:	74 0b                	je     0x528f6d
528f62:	53                   	push   %ebx
528f63:	e8 28 89 00 00       	call   0x531890
528f68:	83 c4 04             	add    $0x4,%esp
528f6b:	eb 23                	jmp    0x528f90
528f6d:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
528f70:	8b 43 18             	mov    0x18(%ebx),%eax
528f73:	39 43 14             	cmp    %eax,0x14(%ebx)
528f76:	75 18                	jne    0x528f90
528f78:	ff 73 04             	push   0x4(%ebx)
528f7b:	83 c0 08             	add    $0x8,%eax
528f7e:	50                   	push   %eax
528f7f:	e8 fc 4a 00 00       	call   0x52da80
528f84:	83 c4 08             	add    $0x8,%esp
528f87:	8b 48 44             	mov    0x44(%eax),%ecx
528f8a:	89 4b 20             	mov    %ecx,0x20(%ebx)
528f8d:	89 58 44             	mov    %ebx,0x44(%eax)
528f90:	5b                   	pop    %ebx
528f91:	57                   	push   %edi
528f92:	8b 7d d8             	mov    -0x28(%ebp),%edi
528f95:	57                   	push   %edi
528f96:	e8 55 92 ff ff       	call   0x5221f0
528f9b:	56                   	push   %esi
528f9c:	57                   	push   %edi
528f9d:	e8 be 92 ff ff       	call   0x522260
528fa2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
528fa5:	83 c4 10             	add    $0x10,%esp
528fa8:	33 cd                	xor    %ebp,%ecx
528faa:	5f                   	pop    %edi
528fab:	5e                   	pop    %esi
528fac:	e8 29 85 0b 00       	call   0x5e14da
528fb1:	8b e5                	mov    %ebp,%esp
528fb3:	5d                   	pop    %ebp
528fb4:	c3                   	ret
528fb5:	cc                   	int3
528fb6:	cc                   	int3
528fb7:	cc                   	int3
528fb8:	cc                   	int3
528fb9:	cc                   	int3
528fba:	cc                   	int3
528fbb:	cc                   	int3
528fbc:	cc                   	int3
528fbd:	cc                   	int3
528fbe:	cc                   	int3
528fbf:	cc                   	int3
528fc0:	55                   	push   %ebp
528fc1:	8b ec                	mov    %esp,%ebp
528fc3:	53                   	push   %ebx
528fc4:	56                   	push   %esi
528fc5:	8b 75 0c             	mov    0xc(%ebp),%esi
528fc8:	57                   	push   %edi
528fc9:	85 f6                	test   %esi,%esi
528fcb:	0f 84 97 00 00 00    	je     0x529068
528fd1:	8b 4d 08             	mov    0x8(%ebp),%ecx
528fd4:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
528fd8:	75 07                	jne    0x528fe1
528fda:	81 4e 04 00 00 00 40 	orl    $0x40000000,0x4(%esi)
528fe1:	80 3e 99             	cmpb   $0x99,(%esi)
528fe4:	75 10                	jne    0x528ff6
528fe6:	8b 01                	mov    (%ecx),%eax
528fe8:	8b 00                	mov    (%eax),%eax
528fea:	80 b8 a5 00 00 00 00 	cmpb   $0x0,0xa5(%eax)
528ff1:	74 7c                	je     0x52906f
528ff3:	c6 06 77             	movb   $0x77,(%esi)
528ff6:	8b 46 04             	mov    0x4(%esi),%eax
528ff9:	a9 00 40 80 00       	test   $0x804000,%eax
528ffe:	75 68                	jne    0x529068
529000:	a9 00 08 00 00       	test   $0x800,%eax
529005:	74 15                	je     0x52901c
529007:	ff 76 14             	push   0x14(%esi)
52900a:	51                   	push   %ecx
52900b:	e8 10 01 00 00       	call   0x529120
529010:	83 c4 08             	add    $0x8,%esp
529013:	85 c0                	test   %eax,%eax
529015:	75 6a                	jne    0x529081
529017:	8b 4d 08             	mov    0x8(%ebp),%ecx
52901a:	eb 31                	jmp    0x52904d
52901c:	8b 46 14             	mov    0x14(%esi),%eax
52901f:	89 45 0c             	mov    %eax,0xc(%ebp)
529022:	85 c0                	test   %eax,%eax
529024:	74 27                	je     0x52904d
529026:	33 ff                	xor    %edi,%edi
529028:	8d 58 04             	lea    0x4(%eax),%ebx
52902b:	39 38                	cmp    %edi,(%eax)
52902d:	7e 1e                	jle    0x52904d
52902f:	90                   	nop
529030:	ff 33                	push   (%ebx)
529032:	51                   	push   %ecx
529033:	e8 88 ff ff ff       	call   0x528fc0
529038:	83 c4 08             	add    $0x8,%esp
52903b:	85 c0                	test   %eax,%eax
52903d:	75 42                	jne    0x529081
52903f:	8b 45 0c             	mov    0xc(%ebp),%eax
529042:	47                   	inc    %edi
529043:	8b 4d 08             	mov    0x8(%ebp),%ecx
529046:	83 c3 14             	add    $0x14,%ebx
529049:	3b 38                	cmp    (%eax),%edi
52904b:	7c e3                	jl     0x529030
52904d:	ff 76 10             	push   0x10(%esi)
529050:	51                   	push   %ecx
529051:	e8 6a ff ff ff       	call   0x528fc0
529056:	83 c4 08             	add    $0x8,%esp
529059:	85 c0                	test   %eax,%eax
52905b:	75 24                	jne    0x529081
52905d:	8b 76 0c             	mov    0xc(%esi),%esi
529060:	85 f6                	test   %esi,%esi
529062:	0f 85 69 ff ff ff    	jne    0x528fd1
529068:	5f                   	pop    %edi
529069:	5e                   	pop    %esi
52906a:	33 c0                	xor    %eax,%eax
52906c:	5b                   	pop    %ebx
52906d:	5d                   	pop    %ebp
52906e:	c3                   	ret
52906f:	ff 71 10             	push   0x10(%ecx)
529072:	68 f4 9c 6b 00       	push   $0x6b9cf4
529077:	ff 31                	push   (%ecx)
529079:	e8 e2 a1 ff ff       	call   0x523260
52907e:	83 c4 0c             	add    $0xc,%esp
529081:	5f                   	pop    %edi
529082:	5e                   	pop    %esi
529083:	b8 01 00 00 00       	mov    $0x1,%eax
529088:	5b                   	pop    %ebx
529089:	5d                   	pop    %ebp
52908a:	c3                   	ret
52908b:	cc                   	int3
52908c:	cc                   	int3
52908d:	cc                   	int3
52908e:	cc                   	int3
52908f:	cc                   	int3
529090:	55                   	push   %ebp
529091:	8b ec                	mov    %esp,%ebp
529093:	53                   	push   %ebx
529094:	8b 5d 0c             	mov    0xc(%ebp),%ebx
529097:	85 db                	test   %ebx,%ebx
529099:	75 05                	jne    0x5290a0
52909b:	33 c0                	xor    %eax,%eax
52909d:	5b                   	pop    %ebx
52909e:	5d                   	pop    %ebp
52909f:	c3                   	ret
5290a0:	56                   	push   %esi
5290a1:	33 f6                	xor    %esi,%esi
5290a3:	57                   	push   %edi
5290a4:	8d 7b 04             	lea    0x4(%ebx),%edi
5290a7:	39 33                	cmp    %esi,(%ebx)
5290a9:	7e 1e                	jle    0x5290c9
5290ab:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5290b0:	ff 37                	push   (%edi)
5290b2:	ff 75 08             	push   0x8(%ebp)
5290b5:	e8 06 ff ff ff       	call   0x528fc0
5290ba:	83 c4 08             	add    $0x8,%esp
5290bd:	85 c0                	test   %eax,%eax
5290bf:	75 0f                	jne    0x5290d0
5290c1:	46                   	inc    %esi
5290c2:	83 c7 14             	add    $0x14,%edi
5290c5:	3b 33                	cmp    (%ebx),%esi
5290c7:	7c e7                	jl     0x5290b0
5290c9:	5f                   	pop    %edi
5290ca:	5e                   	pop    %esi
5290cb:	33 c0                	xor    %eax,%eax
5290cd:	5b                   	pop    %ebx
5290ce:	5d                   	pop    %ebp
5290cf:	c3                   	ret
5290d0:	5f                   	pop    %edi
5290d1:	5e                   	pop    %esi
5290d2:	b8 01 00 00 00       	mov    $0x1,%eax
5290d7:	5b                   	pop    %ebx
5290d8:	5d                   	pop    %ebp
5290d9:	c3                   	ret
5290da:	cc                   	int3
5290db:	cc                   	int3
5290dc:	cc                   	int3
5290dd:	cc                   	int3
5290de:	cc                   	int3
5290df:	cc                   	int3
5290e0:	55                   	push   %ebp
5290e1:	8b ec                	mov    %esp,%ebp
5290e3:	8b 45 0c             	mov    0xc(%ebp),%eax
5290e6:	8b 4d 10             	mov    0x10(%ebp),%ecx
5290e9:	57                   	push   %edi
5290ea:	8b 7d 08             	mov    0x8(%ebp),%edi
5290ed:	03 c9                	add    %ecx,%ecx
5290ef:	8b 10                	mov    (%eax),%edx
5290f1:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
5290f5:	89 07                	mov    %eax,(%edi)
5290f7:	8b 42 10             	mov    0x10(%edx),%eax
5290fa:	8b 04 c8             	mov    (%eax,%ecx,8),%eax
5290fd:	89 47 0c             	mov    %eax,0xc(%edi)
529100:	8b 42 10             	mov    0x10(%edx),%eax
529103:	8b 44 c8 0c          	mov    0xc(%eax,%ecx,8),%eax
529107:	89 47 04             	mov    %eax,0x4(%edi)
52910a:	8b 45 14             	mov    0x14(%ebp),%eax
52910d:	89 47 10             	mov    %eax,0x10(%edi)
529110:	8b 45 18             	mov    0x18(%ebp),%eax
529113:	89 47 14             	mov    %eax,0x14(%edi)
529116:	0f 94 c0             	sete   %al
529119:	88 47 08             	mov    %al,0x8(%edi)
52911c:	5f                   	pop    %edi
52911d:	5d                   	pop    %ebp
52911e:	c3                   	ret
52911f:	cc                   	int3
529120:	55                   	push   %ebp
529121:	8b ec                	mov    %esp,%ebp
529123:	53                   	push   %ebx
529124:	56                   	push   %esi
529125:	8b 75 0c             	mov    0xc(%ebp),%esi
529128:	57                   	push   %edi
529129:	85 f6                	test   %esi,%esi
52912b:	0f 84 ec 00 00 00    	je     0x52921d
529131:	8b 5d 08             	mov    0x8(%ebp),%ebx
529134:	8b 46 1c             	mov    0x1c(%esi),%eax
529137:	89 45 0c             	mov    %eax,0xc(%ebp)
52913a:	85 c0                	test   %eax,%eax
52913c:	74 35                	je     0x529173
52913e:	33 ff                	xor    %edi,%edi
529140:	8d 58 04             	lea    0x4(%eax),%ebx
529143:	39 38                	cmp    %edi,(%eax)
529145:	7e 29                	jle    0x529170
529147:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
52914e:	00 00
529150:	ff 33                	push   (%ebx)
529152:	ff 75 08             	push   0x8(%ebp)
529155:	e8 66 fe ff ff       	call   0x528fc0
52915a:	83 c4 08             	add    $0x8,%esp
52915d:	85 c0                	test   %eax,%eax
52915f:	0f 85 bf 00 00 00    	jne    0x529224
529165:	8b 45 0c             	mov    0xc(%ebp),%eax
529168:	47                   	inc    %edi
529169:	83 c3 14             	add    $0x14,%ebx
52916c:	3b 38                	cmp    (%eax),%edi
52916e:	7c e0                	jl     0x529150
529170:	8b 5d 08             	mov    0x8(%ebp),%ebx
529173:	ff 76 20             	push   0x20(%esi)