528eea:	33 c9                	xor    %ecx,%ecx
528eec:	8b d1                	mov    %ecx,%edx
528eee:	8b 4b 0c             	mov    0xc(%ebx),%ecx
528ef1:	89 14 81             	mov    %edx,(%ecx,%eax,4)
528ef4:	40                   	inc    %eax
528ef5:	ff 4c 24 28          	decl   0x28(%esp)
528ef9:	75 f3                	jne    0x528eee
528efb:	89 43 08             	mov    %eax,0x8(%ebx)
528efe:	8b 43 04             	mov    0x4(%ebx),%eax
528f01:	89 44 24 04          	mov    %eax,0x4(%esp)
528f05:	8b 44 24 04          	mov    0x4(%esp),%eax
528f09:	8b 54 24 04          	mov    0x4(%esp),%edx
528f0d:	c1 e8 05             	shr    $0x5,%eax
528f10:	83 e2 1f             	and    $0x1f,%edx
528f13:	83 e0 1f             	and    $0x1f,%eax
528f16:	03 d0                	add    %eax,%edx
528f18:	81 c2 02 01 00 00    	add    $0x102,%edx
528f1e:	3b 53 08             	cmp    0x8(%ebx),%edx
528f21:	0f 87 b4 fd ff ff    	ja     0x528cdb
528f27:	33 d2                	xor    %edx,%edx
528f29:	89 53 14             	mov    %edx,0x14(%ebx)
528f2c:	c7 44 24 2c 09 00 00 	movl   $0x9,0x2c(%esp)
528f33:	00
528f34:	c7 44 24 30 06 00 00 	movl   $0x6,0x30(%esp)
528f3b:	00
528f3c:	8b 4b 04             	mov    0x4(%ebx),%ecx
528f3f:	8d 44 24 2c          	lea    0x2c(%esp),%eax
528f43:	89 4c 24 04          	mov    %ecx,0x4(%esp)
528f47:	50                   	push   %eax
528f48:	8d 54 24 34          	lea    0x34(%esp),%edx
528f4c:	52                   	push   %edx
528f4d:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
528f51:	51                   	push   %ecx
528f52:	8d 44 24 44          	lea    0x44(%esp),%eax
528f56:	50                   	push   %eax
528f57:	8b 53 24             	mov    0x24(%ebx),%edx
528f5a:	52                   	push   %edx
528f5b:	56                   	push   %esi
528f5c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
528f60:	8b 44 24 1c          	mov    0x1c(%esp),%eax
528f64:	c1 ea 05             	shr    $0x5,%edx
528f67:	83 e0 1f             	and    $0x1f,%eax
528f6a:	83 e2 1f             	and    $0x1f,%edx
528f6d:	8b 4b 0c             	mov    0xc(%ebx),%ecx
528f70:	42                   	inc    %edx
528f71:	05 01 01 00 00       	add    $0x101,%eax
528f76:	e8 a1 08 00 00       	call   0x52981c
528f7b:	89 44 24 04          	mov    %eax,0x4(%esp)
528f7f:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
528f84:	74 55                	je     0x528fdb
528f86:	83 7c 24 04 fd       	cmpl   $0xfffffffd,0x4(%esp)
528f8b:	75 0f                	jne    0x528f9c
528f8d:	8b 53 0c             	mov    0xc(%ebx),%edx
528f90:	8b 46 28             	mov    0x28(%esi),%eax
528f93:	ff 56 24             	call   *0x24(%esi)
528f96:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
528f9c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528fa0:	89 0c 24             	mov    %ecx,(%esp)
528fa3:	8b 44 24 08          	mov    0x8(%esp),%eax
528fa7:	89 43 20             	mov    %eax,0x20(%ebx)
528faa:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528fad:	8b 54 24 10          	mov    0x10(%esp),%edx
528fb1:	89 56 04             	mov    %edx,0x4(%esi)
528fb4:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528fb8:	2b 0e                	sub    (%esi),%ecx
528fba:	01 4e 08             	add    %ecx,0x8(%esi)
528fbd:	8b 44 24 0c          	mov    0xc(%esp),%eax
528fc1:	89 06                	mov    %eax,(%esi)
528fc3:	8b c3                	mov    %ebx,%eax
528fc5:	8b 54 24 14          	mov    0x14(%esp),%edx
528fc9:	89 53 34             	mov    %edx,0x34(%ebx)
528fcc:	8b d6                	mov    %esi,%edx
528fce:	8b 0c 24             	mov    (%esp),%ecx
528fd1:	e8 aa 12 00 00       	call   0x52a280
528fd6:	e9 43 02 00 00       	jmp    0x52921e
528fdb:	8b 4c 24 38          	mov    0x38(%esp),%ecx
528fdf:	51                   	push   %ecx
528fe0:	56                   	push   %esi
528fe1:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
528fe5:	8b 54 24 38          	mov    0x38(%esp),%edx
528fe9:	8b 44 24 34          	mov    0x34(%esp),%eax
528fed:	e8 96 09 00 00       	call   0x529988
528ff2:	8b e8                	mov    %eax,%ebp
528ff4:	85 c0                	test   %eax,%eax
528ff6:	75 3f                	jne    0x529037
528ff8:	c7 04 24 fc ff ff ff 	movl   $0xfffffffc,(%esp)
528fff:	8b 54 24 08          	mov    0x8(%esp),%edx
529003:	89 53 20             	mov    %edx,0x20(%ebx)
529006:	89 7b 1c             	mov    %edi,0x1c(%ebx)
529009:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52900d:	89 4e 04             	mov    %ecx,0x4(%esi)
529010:	8b 44 24 0c          	mov    0xc(%esp),%eax
529014:	2b 06                	sub    (%esi),%eax
529016:	01 46 08             	add    %eax,0x8(%esi)
529019:	8b c3                	mov    %ebx,%eax
52901b:	8b 54 24 0c          	mov    0xc(%esp),%edx
52901f:	89 16                	mov    %edx,(%esi)
529021:	8b d6                	mov    %esi,%edx
529023:	8b 4c 24 14          	mov    0x14(%esp),%ecx
529027:	89 4b 34             	mov    %ecx,0x34(%ebx)
52902a:	8b 0c 24             	mov    (%esp),%ecx
52902d:	e8 4e 12 00 00       	call   0x52a280
529032:	e9 e7 01 00 00       	jmp    0x52921e
529037:	89 6b 04             	mov    %ebp,0x4(%ebx)
52903a:	8b 53 0c             	mov    0xc(%ebx),%edx
52903d:	8b 46 28             	mov    0x28(%esi),%eax
529040:	ff 56 24             	call   *0x24(%esi)
529043:	c7 03 06 00 00 00    	movl   $0x6,(%ebx)
529049:	8b 4c 24 08          	mov    0x8(%esp),%ecx
52904d:	89 4b 20             	mov    %ecx,0x20(%ebx)
529050:	89 7b 1c             	mov    %edi,0x1c(%ebx)
529053:	8b 44 24 10          	mov    0x10(%esp),%eax
529057:	89 46 04             	mov    %eax,0x4(%esi)
52905a:	8b 54 24 0c          	mov    0xc(%esp),%edx
52905e:	2b 16                	sub    (%esi),%edx
529060:	01 56 08             	add    %edx,0x8(%esi)
529063:	8b d6                	mov    %esi,%edx
529065:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
529069:	89 0e                	mov    %ecx,(%esi)
52906b:	8b 44 24 14          	mov    0x14(%esp),%eax
52906f:	89 43 34             	mov    %eax,0x34(%ebx)
529072:	8b c3                	mov    %ebx,%eax
529074:	8b 0c 24             	mov    (%esp),%ecx
529077:	e8 5c 09 00 00       	call   0x5299d8
52907c:	89 04 24             	mov    %eax,(%esp)
52907f:	48                   	dec    %eax
529080:	74 11                	je     0x529093
529082:	8b 0c 24             	mov    (%esp),%ecx
529085:	8b d6                	mov    %esi,%edx
529087:	8b c3                	mov    %ebx,%eax
529089:	e8 f2 11 00 00       	call   0x52a280
52908e:	e9 8b 01 00 00       	jmp    0x52921e
529093:	33 d2                	xor    %edx,%edx
529095:	89 14 24             	mov    %edx,(%esp)
529098:	8b d6                	mov    %esi,%edx
52909a:	8b 43 04             	mov    0x4(%ebx),%eax
52909d:	e8 d2 11 00 00       	call   0x52a274
5290a2:	8b 0e                	mov    (%esi),%ecx
5290a4:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5290a8:	8b 46 04             	mov    0x4(%esi),%eax
5290ab:	89 44 24 10          	mov    %eax,0x10(%esp)
5290af:	8b 53 20             	mov    0x20(%ebx),%edx
5290b2:	89 54 24 08          	mov    %edx,0x8(%esp)
5290b6:	8b 7b 1c             	mov    0x1c(%ebx),%edi
5290b9:	8b 43 34             	mov    0x34(%ebx),%eax
5290bc:	89 44 24 14          	mov    %eax,0x14(%esp)
5290c0:	8b 54 24 14          	mov    0x14(%esp),%edx
5290c4:	3b 53 30             	cmp    0x30(%ebx),%edx
5290c7:	73 0a                	jae    0x5290d3
5290c9:	8b 6b 30             	mov    0x30(%ebx),%ebp
5290cc:	2b 6c 24 14          	sub    0x14(%esp),%ebp
5290d0:	4d                   	dec    %ebp
5290d1:	eb 07                	jmp    0x5290da
5290d3:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
5290d6:	2b 6c 24 14          	sub    0x14(%esp),%ebp
5290da:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
5290de:	75 09                	jne    0x5290e9
5290e0:	33 c0                	xor    %eax,%eax
5290e2:	89 03                	mov    %eax,(%ebx)
5290e4:	e9 ad f4 ff ff       	jmp    0x528596
5290e9:	c7 03 07 00 00 00    	movl   $0x7,(%ebx)
5290ef:	8b 54 24 14          	mov    0x14(%esp),%edx
5290f3:	8b c3                	mov    %ebx,%eax
5290f5:	89 53 34             	mov    %edx,0x34(%ebx)
5290f8:	8b d6                	mov    %esi,%edx
5290fa:	8b 0c 24             	mov    (%esp),%ecx
5290fd:	e8 7e 11 00 00       	call   0x52a280
529102:	89 04 24             	mov    %eax,(%esp)
529105:	8b 4b 34             	mov    0x34(%ebx),%ecx
529108:	89 4c 24 14          	mov    %ecx,0x14(%esp)
52910c:	8b 44 24 14          	mov    0x14(%esp),%eax
529110:	3b 43 30             	cmp    0x30(%ebx),%eax
529113:	73 0a                	jae    0x52911f
529115:	8b 53 30             	mov    0x30(%ebx),%edx
529118:	2b 54 24 14          	sub    0x14(%esp),%edx
52911c:	4a                   	dec    %edx
52911d:	eb 07                	jmp    0x529126
52911f:	8b 53 2c             	mov    0x2c(%ebx),%edx
529122:	2b 54 24 14          	sub    0x14(%esp),%edx
529126:	8b 43 30             	mov    0x30(%ebx),%eax
529129:	3b 43 34             	cmp    0x34(%ebx),%eax
52912c:	74 38                	je     0x529166
52912e:	8b 4c 24 08          	mov    0x8(%esp),%ecx
529132:	89 4b 20             	mov    %ecx,0x20(%ebx)
529135:	89 7b 1c             	mov    %edi,0x1c(%ebx)
529138:	8b 44 24 10          	mov    0x10(%esp),%eax
52913c:	89 46 04             	mov    %eax,0x4(%esi)
52913f:	8b 54 24 0c          	mov    0xc(%esp),%edx
529143:	2b 16                	sub    (%esi),%edx
529145:	01 56 08             	add    %edx,0x8(%esi)
529148:	8b d6                	mov    %esi,%edx
52914a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
52914e:	89 0e                	mov    %ecx,(%esi)
529150:	8b 44 24 14          	mov    0x14(%esp),%eax
529154:	89 43 34             	mov    %eax,0x34(%ebx)
529157:	8b c3                	mov    %ebx,%eax
529159:	8b 0c 24             	mov    (%esp),%ecx
52915c:	e8 1f 11 00 00       	call   0x52a280
529161:	e9 b8 00 00 00       	jmp    0x52921e
529166:	c7 03 08 00 00 00    	movl   $0x8,(%ebx)
52916c:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
529173:	8b 54 24 08          	mov    0x8(%esp),%edx
529177:	89 53 20             	mov    %edx,0x20(%ebx)
52917a:	89 7b 1c             	mov    %edi,0x1c(%ebx)
52917d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
529181:	89 4e 04             	mov    %ecx,0x4(%esi)
529184:	8b 44 24 0c          	mov    0xc(%esp),%eax
529188:	2b 06                	sub    (%esi),%eax
52918a:	01 46 08             	add    %eax,0x8(%esi)
52918d:	8b c3                	mov    %ebx,%eax
52918f:	8b 54 24 0c          	mov    0xc(%esp),%edx
529193:	89 16                	mov    %edx,(%esi)
529195:	8b d6                	mov    %esi,%edx
529197:	8b 4c 24 14          	mov    0x14(%esp),%ecx
52919b:	89 4b 34             	mov    %ecx,0x34(%ebx)
52919e:	8b 0c 24             	mov    (%esp),%ecx
5291a1:	e8 da 10 00 00       	call   0x52a280
5291a6:	eb 76                	jmp    0x52921e
5291a8:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
5291af:	8b 44 24 08          	mov    0x8(%esp),%eax
5291b3:	89 43 20             	mov    %eax,0x20(%ebx)
5291b6:	89 7b 1c             	mov    %edi,0x1c(%ebx)
5291b9:	8b 54 24 10          	mov    0x10(%esp),%edx
5291bd:	89 56 04             	mov    %edx,0x4(%esi)
5291c0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5291c4:	2b 0e                	sub    (%esi),%ecx
5291c6:	01 4e 08             	add    %ecx,0x8(%esi)
5291c9:	8b 44 24 0c          	mov    0xc(%esp),%eax
5291cd:	89 06                	mov    %eax,(%esi)
5291cf:	8b c3                	mov    %ebx,%eax
5291d1:	8b 54 24 14          	mov    0x14(%esp),%edx
5291d5:	89 53 34             	mov    %edx,0x34(%ebx)
5291d8:	8b d6                	mov    %esi,%edx
5291da:	8b 0c 24             	mov    (%esp),%ecx
5291dd:	e8 9e 10 00 00       	call   0x52a280
5291e2:	eb 3a                	jmp    0x52921e
5291e4:	c7 04 24 fe ff ff ff 	movl   $0xfffffffe,(%esp)
5291eb:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5291ef:	89 4b 20             	mov    %ecx,0x20(%ebx)
5291f2:	89 7b 1c             	mov    %edi,0x1c(%ebx)
5291f5:	8b 44 24 10          	mov    0x10(%esp),%eax
5291f9:	89 46 04             	mov    %eax,0x4(%esi)
5291fc:	8b 54 24 0c          	mov    0xc(%esp),%edx
529200:	2b 16                	sub    (%esi),%edx
529202:	01 56 08             	add    %edx,0x8(%esi)
529205:	8b d6                	mov    %esi,%edx
529207:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
52920b:	89 0e                	mov    %ecx,(%esi)
52920d:	8b 44 24 14          	mov    0x14(%esp),%eax
529211:	89 43 34             	mov    %eax,0x34(%ebx)
529214:	8b c3                	mov    %ebx,%eax
529216:	8b 0c 24             	mov    (%esp),%ecx
529219:	e8 62 10 00 00       	call   0x52a280
52921e:	83 c4 3c             	add    $0x3c,%esp
529221:	5d                   	pop    %ebp
529222:	5f                   	pop    %edi
529223:	5e                   	pop    %esi
529224:	5b                   	pop    %ebx
529225:	c3                   	ret
529226:	90                   	nop
529227:	90                   	nop
529228:	53                   	push   %ebx
529229:	56                   	push   %esi
52922a:	8b da                	mov    %edx,%ebx
52922c:	8b f0                	mov    %eax,%esi
52922e:	33 c9                	xor    %ecx,%ecx
529230:	8b d3                	mov    %ebx,%edx
529232:	8b c6                	mov    %esi,%eax
529234:	e8 1b f2 ff ff       	call   0x528454
529239:	8b 56 28             	mov    0x28(%esi),%edx
52923c:	8b 43 28             	mov    0x28(%ebx),%eax
52923f:	ff 53 24             	call   *0x24(%ebx)
529242:	8b 56 24             	mov    0x24(%esi),%edx
529245:	8b 43 28             	mov    0x28(%ebx),%eax
529248:	ff 53 24             	call   *0x24(%ebx)
52924b:	8b d6                	mov    %esi,%edx
52924d:	8b 43 28             	mov    0x28(%ebx),%eax
529250:	ff 53 24             	call   *0x24(%ebx)
529253:	33 c0                	xor    %eax,%eax
529255:	5e                   	pop    %esi
529256:	5b                   	pop    %ebx
529257:	c3                   	ret
529258:	53                   	push   %ebx
529259:	56                   	push   %esi
52925a:	8b f1                	mov    %ecx,%esi
52925c:	8b d8                	mov    %eax,%ebx
52925e:	56                   	push   %esi
52925f:	52                   	push   %edx
529260:	8b 43 28             	mov    0x28(%ebx),%eax
529263:	50                   	push   %eax
529264:	e8 77 d1 ff ff       	call   0x5263e0
529269:	83 c4 0c             	add    $0xc,%esp
52926c:	8b 53 28             	mov    0x28(%ebx),%edx
52926f:	03 d6                	add    %esi,%edx
529271:	89 53 34             	mov    %edx,0x34(%ebx)
529274:	89 53 30             	mov    %edx,0x30(%ebx)
529277:	5e                   	pop    %esi
529278:	5b                   	pop    %ebx
529279:	c3                   	ret
52927a:	90                   	nop
52927b:	90                   	nop
52927c:	83 38 01             	cmpl   $0x1,(%eax)
52927f:	0f 94 c0             	sete   %al
529282:	83 e0 01             	and    $0x1,%eax
529285:	c3                   	ret
529286:	8b c0                	mov    %eax,%eax
529288:	55                   	push   %ebp
529289:	8b ec                	mov    %esp,%ebp
52928b:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
529291:	53                   	push   %ebx
529292:	56                   	push   %esi
529293:	89 4d f4             	mov    %ecx,-0xc(%ebp)
529296:	89 55 f8             	mov    %edx,-0x8(%ebp)
529299:	89 45 fc             	mov    %eax,-0x4(%ebp)
52929c:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
5292a2:	89 45 d8             	mov    %eax,-0x28(%ebp)
5292a5:	8b 55 d8             	mov    -0x28(%ebp),%edx
5292a8:	33 c9                	xor    %ecx,%ecx
5292aa:	89 0a                	mov    %ecx,(%edx)
5292ac:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292b0:	8b 45 d8             	mov    -0x28(%ebp),%eax
5292b3:	33 d2                	xor    %edx,%edx
5292b5:	89 10                	mov    %edx,(%eax)
5292b7:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292bb:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5292be:	33 c0                	xor    %eax,%eax
5292c0:	89 01                	mov    %eax,(%ecx)
5292c2:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292c6:	8b 55 d8             	mov    -0x28(%ebp),%edx
5292c9:	33 c9                	xor    %ecx,%ecx
5292cb:	89 0a                	mov    %ecx,(%edx)
5292cd:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292d1:	8b 45 d8             	mov    -0x28(%ebp),%eax
5292d4:	33 d2                	xor    %edx,%edx
5292d6:	89 10                	mov    %edx,(%eax)
5292d8:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292dc:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5292df:	33 c0                	xor    %eax,%eax
5292e1:	89 01                	mov    %eax,(%ecx)
5292e3:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292e7:	8b 55 d8             	mov    -0x28(%ebp),%edx
5292ea:	33 c9                	xor    %ecx,%ecx
5292ec:	89 0a                	mov    %ecx,(%edx)
5292ee:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292f2:	8b 45 d8             	mov    -0x28(%ebp),%eax
5292f5:	33 d2                	xor    %edx,%edx
5292f7:	89 10                	mov    %edx,(%eax)
5292f9:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
5292fd:	8b 4d d8             	mov    -0x28(%ebp),%ecx
529300:	33 c0                	xor    %eax,%eax