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
52a393:	83 c4 d8             	add    $0xffffffd8,%esp
52a396:	53                   	push   %ebx
52a397:	56                   	push   %esi
52a398:	57                   	push   %edi
52a399:	89 4d f8             	mov    %ecx,-0x8(%ebp)
52a39c:	89 55 fc             	mov    %edx,-0x4(%ebp)
52a39f:	8b 55 08             	mov    0x8(%ebp),%edx
52a3a2:	8b 32                	mov    (%edx),%esi
52a3a4:	8b 55 08             	mov    0x8(%ebp),%edx
52a3a7:	8b 4a 04             	mov    0x4(%edx),%ecx
52a3aa:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52a3ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a3b0:	8b 55 0c             	mov    0xc(%ebp),%edx
52a3b3:	8b 59 1c             	mov    0x1c(%ecx),%ebx
52a3b6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a3b9:	8b 52 20             	mov    0x20(%edx),%edx
52a3bc:	8b 49 34             	mov    0x34(%ecx),%ecx
52a3bf:	89 4d e8             	mov    %ecx,-0x18(%ebp)
52a3c2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a3c5:	8b 49 30             	mov    0x30(%ecx),%ecx
52a3c8:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
52a3cb:	76 0c                	jbe    0x52a3d9
52a3cd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a3d0:	8b 49 30             	mov    0x30(%ecx),%ecx
52a3d3:	2b 4d e8             	sub    -0x18(%ebp),%ecx
52a3d6:	49                   	dec    %ecx
52a3d7:	eb 09                	jmp    0x52a3e2
52a3d9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a3dc:	8b 49 2c             	mov    0x2c(%ecx),%ecx
52a3df:	2b 4d e8             	sub    -0x18(%ebp),%ecx
52a3e2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
52a3e5:	8b 04 85 c4 91 69 00 	mov    0x6991c4(,%eax,4),%eax
52a3ec:	89 45 e0             	mov    %eax,-0x20(%ebp)
52a3ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
52a3f2:	8b 0c 85 c4 91 69 00 	mov    0x6991c4(,%eax,4),%ecx
52a3f9:	89 4d dc             	mov    %ecx,-0x24(%ebp)
52a3fc:	83 fb 14             	cmp    $0x14,%ebx
52a3ff:	73 19                	jae    0x52a41a
52a401:	ff 4d ec             	decl   -0x14(%ebp)
52a404:	8b cb                	mov    %ebx,%ecx
52a406:	8a 06                	mov    (%esi),%al
52a408:	46                   	inc    %esi
52a409:	25 ff 00 00 00       	and    $0xff,%eax
52a40e:	83 c3 08             	add    $0x8,%ebx
52a411:	d3 e0                	shl    %cl,%eax
52a413:	0b d0                	or     %eax,%edx
52a415:	83 fb 14             	cmp    $0x14,%ebx
52a418:	72 e7                	jb     0x52a401
52a41a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
52a41d:	23 ca                	and    %edx,%ecx
52a41f:	c1 e1 03             	shl    $0x3,%ecx
52a422:	03 4d f8             	add    -0x8(%ebp),%ecx
52a425:	89 4d f4             	mov    %ecx,-0xc(%ebp)
52a428:	33 c0                	xor    %eax,%eax
52a42a:	8a 01                	mov    (%ecx),%al
52a42c:	89 45 f0             	mov    %eax,-0x10(%ebp)
52a42f:	85 c0                	test   %eax,%eax
52a431:	75 27                	jne    0x52a45a
52a433:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a436:	8a 41 01             	mov    0x1(%ecx),%al
52a439:	8b c8                	mov    %eax,%ecx
52a43b:	25 ff 00 00 00       	and    $0xff,%eax
52a440:	d3 ea                	shr    %cl,%edx
52a442:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a445:	2b d8                	sub    %eax,%ebx
52a447:	8a 41 04             	mov    0x4(%ecx),%al
52a44a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
52a44d:	88 01                	mov    %al,(%ecx)
52a44f:	ff 45 e8             	incl   -0x18(%ebp)
52a452:	ff 4d e4             	decl   -0x1c(%ebp)
52a455:	e9 87 03 00 00       	jmp    0x52a7e1
52a45a:	8b 45 f4             	mov    -0xc(%ebp),%eax
52a45d:	8a 40 01             	mov    0x1(%eax),%al
52a460:	8b c8                	mov    %eax,%ecx
52a462:	25 ff 00 00 00       	and    $0xff,%eax
52a467:	d3 ea                	shr    %cl,%edx
52a469:	2b d8                	sub    %eax,%ebx
52a46b:	f6 45 f0 10          	testb  $0x10,-0x10(%ebp)
52a46f:	0f 84 40 02 00 00    	je     0x52a6b5
52a475:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)
52a479:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a47c:	2b 5d f0             	sub    -0x10(%ebp),%ebx
52a47f:	8b 41 04             	mov    0x4(%ecx),%eax
52a482:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52a485:	8b 0c 8d c4 91 69 00 	mov    0x6991c4(,%ecx,4),%ecx
52a48c:	23 ca                	and    %edx,%ecx
52a48e:	03 c1                	add    %ecx,%eax
52a490:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52a493:	d3 ea                	shr    %cl,%edx
52a495:	83 fb 0f             	cmp    $0xf,%ebx
52a498:	73 1c                	jae    0x52a4b6
52a49a:	ff 4d ec             	decl   -0x14(%ebp)
52a49d:	8a 0e                	mov    (%esi),%cl
52a49f:	46                   	inc    %esi
52a4a0:	8b f9                	mov    %ecx,%edi
52a4a2:	8b cb                	mov    %ebx,%ecx
52a4a4:	81 e7 ff 00 00 00    	and    $0xff,%edi
52a4aa:	83 c3 08             	add    $0x8,%ebx
52a4ad:	d3 e7                	shl    %cl,%edi
52a4af:	0b d7                	or     %edi,%edx
52a4b1:	83 fb 0f             	cmp    $0xf,%ebx
52a4b4:	72 e4                	jb     0x52a49a
52a4b6:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52a4b9:	23 ca                	and    %edx,%ecx
52a4bb:	c1 e1 03             	shl    $0x3,%ecx
52a4be:	03 4d 10             	add    0x10(%ebp),%ecx
52a4c1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
52a4c4:	0f b6 09             	movzbl (%ecx),%ecx
52a4c7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
52a4ca:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a4cd:	8a 49 01             	mov    0x1(%ecx),%cl
52a4d0:	d3 ea                	shr    %cl,%edx
52a4d2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a4d5:	0f b6 49 01          	movzbl 0x1(%ecx),%ecx
52a4d9:	2b d9                	sub    %ecx,%ebx
52a4db:	f6 45 f0 10          	testb  $0x10,-0x10(%ebp)
52a4df:	0f 84 33 01 00 00    	je     0x52a618
52a4e5:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)
52a4e9:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
52a4ec:	73 1c                	jae    0x52a50a
52a4ee:	ff 4d ec             	decl   -0x14(%ebp)
52a4f1:	8a 0e                	mov    (%esi),%cl
52a4f3:	46                   	inc    %esi
52a4f4:	8b f9                	mov    %ecx,%edi
52a4f6:	8b cb                	mov    %ebx,%ecx
52a4f8:	81 e7 ff 00 00 00    	and    $0xff,%edi
52a4fe:	83 c3 08             	add    $0x8,%ebx
52a501:	d3 e7                	shl    %cl,%edi
52a503:	0b d7                	or     %edi,%edx
52a505:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
52a508:	72 e4                	jb     0x52a4ee
52a50a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a50d:	8b 79 04             	mov    0x4(%ecx),%edi
52a510:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52a513:	8b 0c 8d c4 91 69 00 	mov    0x6991c4(,%ecx,4),%ecx
52a51a:	23 ca                	and    %edx,%ecx
52a51c:	03 f9                	add    %ecx,%edi
52a51e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52a521:	d3 ea                	shr    %cl,%edx
52a523:	2b 5d f0             	sub    -0x10(%ebp),%ebx
52a526:	29 45 e4             	sub    %eax,-0x1c(%ebp)
52a529:	8b 4d e8             	mov    -0x18(%ebp),%ecx
52a52c:	2b cf                	sub    %edi,%ecx
52a52e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
52a531:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a534:	8b 49 28             	mov    0x28(%ecx),%ecx
52a537:	3b 4d d8             	cmp    -0x28(%ebp),%ecx
52a53a:	0f 86 9e 00 00 00    	jbe    0x52a5de
52a540:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a543:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a546:	8b 49 2c             	mov    0x2c(%ecx),%ecx
52a549:	2b 4f 28             	sub    0x28(%edi),%ecx
52a54c:	01 4d d8             	add    %ecx,-0x28(%ebp)
52a54f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a552:	8b 49 28             	mov    0x28(%ecx),%ecx
52a555:	3b 4d d8             	cmp    -0x28(%ebp),%ecx
52a558:	77 e6                	ja     0x52a540
52a55a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a55d:	8b 49 2c             	mov    0x2c(%ecx),%ecx
52a560:	2b 4d d8             	sub    -0x28(%ebp),%ecx
52a563:	89 4d f0             	mov    %ecx,-0x10(%ebp)
52a566:	3b 45 f0             	cmp    -0x10(%ebp),%eax
52a569:	76 39                	jbe    0x52a5a4
52a56b:	2b 45 f0             	sub    -0x10(%ebp),%eax
52a56e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a571:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a574:	8a 09                	mov    (%ecx),%cl
52a576:	88 0f                	mov    %cl,(%edi)
52a578:	ff 45 d8             	incl   -0x28(%ebp)
52a57b:	ff 45 e8             	incl   -0x18(%ebp)
52a57e:	ff 4d f0             	decl   -0x10(%ebp)
52a581:	75 eb                	jne    0x52a56e
52a583:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52a586:	8b 49 28             	mov    0x28(%ecx),%ecx
52a589:	89 4d d8             	mov    %ecx,-0x28(%ebp)