529fc2:	89 04 24             	mov    %eax,(%esp)
529fc5:	8b 43 34             	mov    0x34(%ebx),%eax
529fc8:	3b 43 30             	cmp    0x30(%ebx),%eax
529fcb:	73 08                	jae    0x529fd5
529fcd:	8b 53 30             	mov    0x30(%ebx),%edx
529fd0:	2b d0                	sub    %eax,%edx
529fd2:	4a                   	dec    %edx
529fd3:	eb 05                	jmp    0x529fda
529fd5:	8b 53 2c             	mov    0x2c(%ebx),%edx
529fd8:	2b d0                	sub    %eax,%edx
529fda:	89 54 24 18          	mov    %edx,0x18(%esp)
529fde:	3b 43 2c             	cmp    0x2c(%ebx),%eax
529fe1:	75 21                	jne    0x52a004
529fe3:	8b 4b 30             	mov    0x30(%ebx),%ecx
529fe6:	3b 4b 28             	cmp    0x28(%ebx),%ecx
529fe9:	74 19                	je     0x52a004
529feb:	8b 43 28             	mov    0x28(%ebx),%eax
529fee:	3b 43 30             	cmp    0x30(%ebx),%eax
529ff1:	73 08                	jae    0x529ffb
529ff3:	8b 53 30             	mov    0x30(%ebx),%edx
529ff6:	2b d0                	sub    %eax,%edx
529ff8:	4a                   	dec    %edx
529ff9:	eb 05                	jmp    0x52a000
529ffb:	8b 53 2c             	mov    0x2c(%ebx),%edx
529ffe:	2b d0                	sub    %eax,%edx
52a000:	89 54 24 18          	mov    %edx,0x18(%esp)
52a004:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a009:	75 2e                	jne    0x52a039
52a00b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a00f:	89 4b 20             	mov    %ecx,0x20(%ebx)
52a012:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a015:	8b 54 24 14          	mov    0x14(%esp),%edx
52a019:	8b cf                	mov    %edi,%ecx
52a01b:	89 56 04             	mov    %edx,0x4(%esi)
52a01e:	8b d6                	mov    %esi,%edx
52a020:	2b 0e                	sub    (%esi),%ecx
52a022:	01 4e 08             	add    %ecx,0x8(%esi)
52a025:	89 3e                	mov    %edi,(%esi)
52a027:	89 43 34             	mov    %eax,0x34(%ebx)
52a02a:	8b c3                	mov    %ebx,%eax
52a02c:	8b 0c 24             	mov    (%esp),%ecx
52a02f:	e8 4c 02 00 00       	call   0x52a280
52a034:	e9 32 02 00 00       	jmp    0x52a26b
52a039:	33 d2                	xor    %edx,%edx
52a03b:	89 14 24             	mov    %edx,(%esp)
52a03e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
52a042:	8a 11                	mov    (%ecx),%dl
52a044:	88 10                	mov    %dl,(%eax)
52a046:	ff 44 24 1c          	incl   0x1c(%esp)
52a04a:	40                   	inc    %eax
52a04b:	ff 4c 24 18          	decl   0x18(%esp)
52a04f:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
52a053:	3b 4b 2c             	cmp    0x2c(%ebx),%ecx
52a056:	75 07                	jne    0x52a05f
52a058:	8b 53 28             	mov    0x28(%ebx),%edx
52a05b:	89 54 24 1c          	mov    %edx,0x1c(%esp)
52a05f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a063:	ff 49 04             	decl   0x4(%ecx)
52a066:	8b 54 24 20          	mov    0x20(%esp),%edx
52a06a:	83 7a 04 00          	cmpl   $0x0,0x4(%edx)
52a06e:	0f 85 03 ff ff ff    	jne    0x529f77
52a074:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a078:	33 d2                	xor    %edx,%edx
52a07a:	89 11                	mov    %edx,(%ecx)
52a07c:	e9 98 f9 ff ff       	jmp    0x529a19
52a081:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a086:	0f 85 b7 00 00 00    	jne    0x52a143
52a08c:	3b 43 2c             	cmp    0x2c(%ebx),%eax
52a08f:	75 21                	jne    0x52a0b2
52a091:	8b 4b 30             	mov    0x30(%ebx),%ecx
52a094:	3b 4b 28             	cmp    0x28(%ebx),%ecx
52a097:	74 19                	je     0x52a0b2
52a099:	8b 43 28             	mov    0x28(%ebx),%eax
52a09c:	3b 43 30             	cmp    0x30(%ebx),%eax
52a09f:	73 08                	jae    0x52a0a9
52a0a1:	8b 53 30             	mov    0x30(%ebx),%edx
52a0a4:	2b d0                	sub    %eax,%edx
52a0a6:	4a                   	dec    %edx
52a0a7:	eb 05                	jmp    0x52a0ae
52a0a9:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a0ac:	2b d0                	sub    %eax,%edx
52a0ae:	89 54 24 18          	mov    %edx,0x18(%esp)
52a0b2:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a0b7:	0f 85 86 00 00 00    	jne    0x52a143
52a0bd:	89 43 34             	mov    %eax,0x34(%ebx)
52a0c0:	8b 0c 24             	mov    (%esp),%ecx
52a0c3:	8b d6                	mov    %esi,%edx
52a0c5:	8b c3                	mov    %ebx,%eax
52a0c7:	e8 b4 01 00 00       	call   0x52a280
52a0cc:	89 04 24             	mov    %eax,(%esp)
52a0cf:	8b 43 34             	mov    0x34(%ebx),%eax
52a0d2:	3b 43 30             	cmp    0x30(%ebx),%eax
52a0d5:	73 08                	jae    0x52a0df
52a0d7:	8b 53 30             	mov    0x30(%ebx),%edx
52a0da:	2b d0                	sub    %eax,%edx
52a0dc:	4a                   	dec    %edx
52a0dd:	eb 05                	jmp    0x52a0e4
52a0df:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a0e2:	2b d0                	sub    %eax,%edx
52a0e4:	89 54 24 18          	mov    %edx,0x18(%esp)
52a0e8:	3b 43 2c             	cmp    0x2c(%ebx),%eax
52a0eb:	75 21                	jne    0x52a10e
52a0ed:	8b 4b 30             	mov    0x30(%ebx),%ecx
52a0f0:	3b 4b 28             	cmp    0x28(%ebx),%ecx
52a0f3:	74 19                	je     0x52a10e
52a0f5:	8b 43 28             	mov    0x28(%ebx),%eax
52a0f8:	3b 43 30             	cmp    0x30(%ebx),%eax
52a0fb:	73 08                	jae    0x52a105
52a0fd:	8b 53 30             	mov    0x30(%ebx),%edx
52a100:	2b d0                	sub    %eax,%edx
52a102:	4a                   	dec    %edx
52a103:	eb 05                	jmp    0x52a10a
52a105:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a108:	2b d0                	sub    %eax,%edx
52a10a:	89 54 24 18          	mov    %edx,0x18(%esp)
52a10e:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a113:	75 2e                	jne    0x52a143
52a115:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a119:	89 4b 20             	mov    %ecx,0x20(%ebx)
52a11c:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a11f:	8b 54 24 14          	mov    0x14(%esp),%edx
52a123:	8b cf                	mov    %edi,%ecx
52a125:	89 56 04             	mov    %edx,0x4(%esi)
52a128:	8b d6                	mov    %esi,%edx
52a12a:	2b 0e                	sub    (%esi),%ecx
52a12c:	01 4e 08             	add    %ecx,0x8(%esi)
52a12f:	89 3e                	mov    %edi,(%esi)
52a131:	89 43 34             	mov    %eax,0x34(%ebx)
52a134:	8b c3                	mov    %ebx,%eax
52a136:	8b 0c 24             	mov    (%esp),%ecx
52a139:	e8 42 01 00 00       	call   0x52a280
52a13e:	e9 28 01 00 00       	jmp    0x52a26b
52a143:	33 d2                	xor    %edx,%edx
52a145:	89 14 24             	mov    %edx,(%esp)
52a148:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a14c:	8a 51 08             	mov    0x8(%ecx),%dl
52a14f:	88 10                	mov    %dl,(%eax)
52a151:	40                   	inc    %eax
52a152:	ff 4c 24 18          	decl   0x18(%esp)
52a156:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a15a:	33 d2                	xor    %edx,%edx
52a15c:	89 11                	mov    %edx,(%ecx)
52a15e:	e9 b6 f8 ff ff       	jmp    0x529a19
52a163:	83 fd 07             	cmp    $0x7,%ebp
52a166:	76 08                	jbe    0x52a170
52a168:	83 ed 08             	sub    $0x8,%ebp
52a16b:	ff 44 24 14          	incl   0x14(%esp)
52a16f:	4f                   	dec    %edi
52a170:	89 43 34             	mov    %eax,0x34(%ebx)
52a173:	8b 0c 24             	mov    (%esp),%ecx
52a176:	8b d6                	mov    %esi,%edx
52a178:	8b c3                	mov    %ebx,%eax
52a17a:	e8 01 01 00 00       	call   0x52a280
52a17f:	89 04 24             	mov    %eax,(%esp)
52a182:	8b 43 34             	mov    0x34(%ebx),%eax
52a185:	3b 43 30             	cmp    0x30(%ebx),%eax
52a188:	73 08                	jae    0x52a192
52a18a:	8b 53 30             	mov    0x30(%ebx),%edx
52a18d:	2b d0                	sub    %eax,%edx
52a18f:	4a                   	dec    %edx
52a190:	eb 05                	jmp    0x52a197
52a192:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a195:	2b d0                	sub    %eax,%edx
52a197:	8b 4b 30             	mov    0x30(%ebx),%ecx
52a19a:	3b 4b 34             	cmp    0x34(%ebx),%ecx
52a19d:	74 2e                	je     0x52a1cd
52a19f:	8b 54 24 10          	mov    0x10(%esp),%edx
52a1a3:	89 53 20             	mov    %edx,0x20(%ebx)
52a1a6:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a1a9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
52a1ad:	89 4e 04             	mov    %ecx,0x4(%esi)
52a1b0:	8b d7                	mov    %edi,%edx
52a1b2:	2b 16                	sub    (%esi),%edx
52a1b4:	01 56 08             	add    %edx,0x8(%esi)
52a1b7:	89 3e                	mov    %edi,(%esi)
52a1b9:	89 43 34             	mov    %eax,0x34(%ebx)
52a1bc:	8b 0c 24             	mov    (%esp),%ecx
52a1bf:	8b d6                	mov    %esi,%edx
52a1c1:	8b c3                	mov    %ebx,%eax
52a1c3:	e8 b8 00 00 00       	call   0x52a280
52a1c8:	e9 9e 00 00 00       	jmp    0x52a26b
52a1cd:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a1d1:	c7 01 08 00 00 00    	movl   $0x8,(%ecx)
52a1d7:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
52a1de:	8b 54 24 10          	mov    0x10(%esp),%edx
52a1e2:	89 53 20             	mov    %edx,0x20(%ebx)
52a1e5:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a1e8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
52a1ec:	89 4e 04             	mov    %ecx,0x4(%esi)
52a1ef:	8b d7                	mov    %edi,%edx
52a1f1:	2b 16                	sub    (%esi),%edx
52a1f3:	01 56 08             	add    %edx,0x8(%esi)
52a1f6:	89 3e                	mov    %edi,(%esi)
52a1f8:	89 43 34             	mov    %eax,0x34(%ebx)
52a1fb:	8b 0c 24             	mov    (%esp),%ecx
52a1fe:	8b d6                	mov    %esi,%edx
52a200:	8b c3                	mov    %ebx,%eax
52a202:	e8 79 00 00 00       	call   0x52a280
52a207:	eb 62                	jmp    0x52a26b
52a209:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
52a210:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a214:	89 4b 20             	mov    %ecx,0x20(%ebx)
52a217:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a21a:	8b 54 24 14          	mov    0x14(%esp),%edx
52a21e:	8b cf                	mov    %edi,%ecx
52a220:	89 56 04             	mov    %edx,0x4(%esi)
52a223:	8b d6                	mov    %esi,%edx
52a225:	2b 0e                	sub    (%esi),%ecx
52a227:	01 4e 08             	add    %ecx,0x8(%esi)
52a22a:	89 3e                	mov    %edi,(%esi)
52a22c:	89 43 34             	mov    %eax,0x34(%ebx)
52a22f:	8b c3                	mov    %ebx,%eax
52a231:	8b 0c 24             	mov    (%esp),%ecx
52a234:	e8 47 00 00 00       	call   0x52a280
52a239:	eb 30                	jmp    0x52a26b
52a23b:	c7 04 24 fe ff ff ff 	movl   $0xfffffffe,(%esp)
52a242:	8b 54 24 10          	mov    0x10(%esp),%edx
52a246:	89 53 20             	mov    %edx,0x20(%ebx)
52a249:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a24c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
52a250:	89 4e 04             	mov    %ecx,0x4(%esi)
52a253:	8b d7                	mov    %edi,%edx
52a255:	2b 16                	sub    (%esi),%edx
52a257:	01 56 08             	add    %edx,0x8(%esi)
52a25a:	89 3e                	mov    %edi,(%esi)
52a25c:	89 43 34             	mov    %eax,0x34(%ebx)
52a25f:	8b 0c 24             	mov    (%esp),%ecx
52a262:	8b d6                	mov    %esi,%edx
52a264:	8b c3                	mov    %ebx,%eax
52a266:	e8 15 00 00 00       	call   0x52a280
52a26b:	83 c4 24             	add    $0x24,%esp
52a26e:	5d                   	pop    %ebp
52a26f:	5f                   	pop    %edi
52a270:	5e                   	pop    %esi
52a271:	5b                   	pop    %ebx
52a272:	c3                   	ret
52a273:	90                   	nop
52a274:	53                   	push   %ebx
52a275:	8b da                	mov    %edx,%ebx
52a277:	8b 52 28             	mov    0x28(%edx),%edx
52a27a:	92                   	xchg   %eax,%edx
52a27b:	ff 53 24             	call   *0x24(%ebx)
52a27e:	5b                   	pop    %ebx
52a27f:	c3                   	ret
52a280:	53                   	push   %ebx
52a281:	56                   	push   %esi
52a282:	57                   	push   %edi
52a283:	83 c4 f4             	add    $0xfffffff4,%esp
52a286:	89 4c 24 04          	mov    %ecx,0x4(%esp)
52a28a:	89 14 24             	mov    %edx,(%esp)
52a28d:	8b f0                	mov    %eax,%esi
52a28f:	8b 04 24             	mov    (%esp),%eax
52a292:	8b 50 0c             	mov    0xc(%eax),%edx
52a295:	89 54 24 08          	mov    %edx,0x8(%esp)
52a299:	8b 7e 30             	mov    0x30(%esi),%edi
52a29c:	3b 7e 34             	cmp    0x34(%esi),%edi
52a29f:	77 05                	ja     0x52a2a6
52a2a1:	8b 5e 34             	mov    0x34(%esi),%ebx
52a2a4:	eb 03                	jmp    0x52a2a9
52a2a6:	8b 5e 2c             	mov    0x2c(%esi),%ebx
52a2a9:	2b df                	sub    %edi,%ebx
52a2ab:	8b 04 24             	mov    (%esp),%eax
52a2ae:	8b 40 10             	mov    0x10(%eax),%eax
52a2b1:	3b d8                	cmp    %eax,%ebx
52a2b3:	76 02                	jbe    0x52a2b7
52a2b5:	8b d8                	mov    %eax,%ebx
52a2b7:	85 db                	test   %ebx,%ebx
52a2b9:	74 0d                	je     0x52a2c8
52a2bb:	83 7c 24 04 fb       	cmpl   $0xfffffffb,0x4(%esp)
52a2c0:	75 06                	jne    0x52a2c8
52a2c2:	33 c0                	xor    %eax,%eax
52a2c4:	89 44 24 04          	mov    %eax,0x4(%esp)
52a2c8:	8b 14 24             	mov    (%esp),%edx
52a2cb:	29 5a 10             	sub    %ebx,0x10(%edx)
52a2ce:	8b 0c 24             	mov    (%esp),%ecx
52a2d1:	01 59 14             	add    %ebx,0x14(%ecx)
52a2d4:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
52a2d8:	74 13                	je     0x52a2ed
52a2da:	8b cb                	mov    %ebx,%ecx
52a2dc:	8b d7                	mov    %edi,%edx
52a2de:	8b 46 3c             	mov    0x3c(%esi),%eax
52a2e1:	ff 56 38             	call   *0x38(%esi)
52a2e4:	89 46 3c             	mov    %eax,0x3c(%esi)
52a2e7:	8b 14 24             	mov    (%esp),%edx
52a2ea:	89 42 30             	mov    %eax,0x30(%edx)
52a2ed:	53                   	push   %ebx
52a2ee:	57                   	push   %edi
52a2ef:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a2f3:	51                   	push   %ecx
52a2f4:	e8 e7 c0 ff ff       	call   0x5263e0
52a2f9:	83 c4 0c             	add    $0xc,%esp
52a2fc:	8b c3                	mov    %ebx,%eax
52a2fe:	01 44 24 08          	add    %eax,0x8(%esp)
52a302:	03 f8                	add    %eax,%edi
52a304:	8b 46 2c             	mov    0x2c(%esi),%eax
52a307:	3b f8                	cmp    %eax,%edi
52a309:	75 6b                	jne    0x52a376
52a30b:	8b 56 28             	mov    0x28(%esi),%edx
52a30e:	3b 46 34             	cmp    0x34(%esi),%eax
52a311:	8b fa                	mov    %edx,%edi
52a313:	75 03                	jne    0x52a318
52a315:	89 56 34             	mov    %edx,0x34(%esi)
52a318:	8b 04 24             	mov    (%esp),%eax
52a31b:	8b 5e 34             	mov    0x34(%esi),%ebx
52a31e:	2b df                	sub    %edi,%ebx
52a320:	8b 40 10             	mov    0x10(%eax),%eax
52a323:	3b d8                	cmp    %eax,%ebx
52a325:	76 02                	jbe    0x52a329
52a327:	8b d8                	mov    %eax,%ebx
52a329:	85 db                	test   %ebx,%ebx
52a32b:	74 0d                	je     0x52a33a
52a32d:	83 7c 24 04 fb       	cmpl   $0xfffffffb,0x4(%esp)
52a332:	75 06                	jne    0x52a33a
52a334:	33 c0                	xor    %eax,%eax
52a336:	89 44 24 04          	mov    %eax,0x4(%esp)
52a33a:	8b 14 24             	mov    (%esp),%edx
52a33d:	29 5a 10             	sub    %ebx,0x10(%edx)
52a340:	8b 0c 24             	mov    (%esp),%ecx
52a343:	01 59 14             	add    %ebx,0x14(%ecx)
52a346:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
52a34a:	74 13                	je     0x52a35f
52a34c:	8b cb                	mov    %ebx,%ecx
52a34e:	8b d7                	mov    %edi,%edx
52a350:	8b 46 3c             	mov    0x3c(%esi),%eax
52a353:	ff 56 38             	call   *0x38(%esi)
52a356:	89 46 3c             	mov    %eax,0x3c(%esi)
52a359:	8b 14 24             	mov    (%esp),%edx
52a35c:	89 42 30             	mov    %eax,0x30(%edx)
52a35f:	53                   	push   %ebx
52a360:	57                   	push   %edi
52a361:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a365:	51                   	push   %ecx
52a366:	e8 75 c0 ff ff       	call   0x5263e0
52a36b:	83 c4 0c             	add    $0xc,%esp
52a36e:	8b c3                	mov    %ebx,%eax
52a370:	01 44 24 08          	add    %eax,0x8(%esp)
52a374:	03 f8                	add    %eax,%edi
52a376:	8b 14 24             	mov    (%esp),%edx
52a379:	8b 4c 24 08          	mov    0x8(%esp),%ecx
52a37d:	89 4a 0c             	mov    %ecx,0xc(%edx)
52a380:	89 7e 30             	mov    %edi,0x30(%esi)
52a383:	8b 44 24 04          	mov    0x4(%esp),%eax
52a387:	83 c4 0c             	add    $0xc,%esp
52a38a:	5f                   	pop    %edi
52a38b:	5e                   	pop    %esi
52a38c:	5b                   	pop    %ebx
52a38d:	c3                   	ret
52a38e:	8b c0                	mov    %eax,%eax
52a390:	55                   	push   %ebp
52a391:	8b ec                	mov    %esp,%ebp