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)
52a58c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a58f:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a592:	8a 09                	mov    (%ecx),%cl
52a594:	88 0f                	mov    %cl,(%edi)
52a596:	ff 45 d8             	incl   -0x28(%ebp)
52a599:	ff 45 e8             	incl   -0x18(%ebp)
52a59c:	48                   	dec    %eax
52a59d:	75 ed                	jne    0x52a58c
52a59f:	e9 3d 02 00 00       	jmp    0x52a7e1
52a5a4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a5a7:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a5aa:	48                   	dec    %eax
52a5ab:	8a 09                	mov    (%ecx),%cl
52a5ad:	88 0f                	mov    %cl,(%edi)
52a5af:	ff 45 d8             	incl   -0x28(%ebp)
52a5b2:	ff 45 e8             	incl   -0x18(%ebp)
52a5b5:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a5b8:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a5bb:	8a 09                	mov    (%ecx),%cl
52a5bd:	88 0f                	mov    %cl,(%edi)
52a5bf:	ff 45 d8             	incl   -0x28(%ebp)
52a5c2:	ff 45 e8             	incl   -0x18(%ebp)
52a5c5:	48                   	dec    %eax
52a5c6:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a5c9:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a5cc:	8a 09                	mov    (%ecx),%cl
52a5ce:	88 0f                	mov    %cl,(%edi)
52a5d0:	ff 45 d8             	incl   -0x28(%ebp)
52a5d3:	ff 45 e8             	incl   -0x18(%ebp)
52a5d6:	48                   	dec    %eax
52a5d7:	75 ed                	jne    0x52a5c6
52a5d9:	e9 03 02 00 00       	jmp    0x52a7e1
52a5de:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a5e1:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a5e4:	48                   	dec    %eax
52a5e5:	8a 09                	mov    (%ecx),%cl
52a5e7:	88 0f                	mov    %cl,(%edi)
52a5e9:	ff 45 d8             	incl   -0x28(%ebp)
52a5ec:	ff 45 e8             	incl   -0x18(%ebp)
52a5ef:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a5f2:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a5f5:	8a 09                	mov    (%ecx),%cl
52a5f7:	88 0f                	mov    %cl,(%edi)
52a5f9:	ff 45 d8             	incl   -0x28(%ebp)
52a5fc:	ff 45 e8             	incl   -0x18(%ebp)
52a5ff:	48                   	dec    %eax
52a600:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52a603:	8b 7d e8             	mov    -0x18(%ebp),%edi
52a606:	8a 09                	mov    (%ecx),%cl
52a608:	88 0f                	mov    %cl,(%edi)
52a60a:	ff 45 d8             	incl   -0x28(%ebp)
52a60d:	ff 45 e8             	incl   -0x18(%ebp)
52a610:	48                   	dec    %eax
52a611:	75 ed                	jne    0x52a600
52a613:	e9 c9 01 00 00       	jmp    0x52a7e1
52a618:	f6 45 f0 40          	testb  $0x40,-0x10(%ebp)
52a61c:	75 2c                	jne    0x52a64a
52a61e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a621:	8b 49 04             	mov    0x4(%ecx),%ecx
52a624:	c1 e1 03             	shl    $0x3,%ecx
52a627:	01 4d f4             	add    %ecx,-0xc(%ebp)
52a62a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52a62d:	8b 0c 8d c4 91 69 00 	mov    0x6991c4(,%ecx,4),%ecx
52a634:	23 ca                	and    %edx,%ecx
52a636:	c1 e1 03             	shl    $0x3,%ecx
52a639:	01 4d f4             	add    %ecx,-0xc(%ebp)
52a63c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a63f:	0f b6 09             	movzbl (%ecx),%ecx
52a642:	89 4d f0             	mov    %ecx,-0x10(%ebp)
52a645:	e9 80 fe ff ff       	jmp    0x52a4ca
52a64a:	8b 45 08             	mov    0x8(%ebp),%eax
52a64d:	8b cb                	mov    %ebx,%ecx
52a64f:	c1 e9 03             	shr    $0x3,%ecx
52a652:	c7 40 18 08 92 69 00 	movl   $0x699208,0x18(%eax)
52a659:	8b 45 08             	mov    0x8(%ebp),%eax
52a65c:	8b 40 04             	mov    0x4(%eax),%eax
52a65f:	2b 45 ec             	sub    -0x14(%ebp),%eax
52a662:	3b c1                	cmp    %ecx,%eax
52a664:	76 07                	jbe    0x52a66d
52a666:	8b cb                	mov    %ebx,%ecx
52a668:	c1 e9 03             	shr    $0x3,%ecx
52a66b:	eb 02                	jmp    0x52a66f
52a66d:	8b c8                	mov    %eax,%ecx
52a66f:	8b c1                	mov    %ecx,%eax
52a671:	01 45 ec             	add    %eax,-0x14(%ebp)
52a674:	2b f0                	sub    %eax,%esi
52a676:	c1 e0 03             	shl    $0x3,%eax
52a679:	2b d8                	sub    %eax,%ebx
52a67b:	8b 45 0c             	mov    0xc(%ebp),%eax
52a67e:	89 50 20             	mov    %edx,0x20(%eax)
52a681:	8b 55 0c             	mov    0xc(%ebp),%edx
52a684:	89 5a 1c             	mov    %ebx,0x1c(%edx)
52a687:	8b 45 08             	mov    0x8(%ebp),%eax
52a68a:	8b 55 ec             	mov    -0x14(%ebp),%edx
52a68d:	89 50 04             	mov    %edx,0x4(%eax)
52a690:	8b c6                	mov    %esi,%eax
52a692:	8b 4d 08             	mov    0x8(%ebp),%ecx
52a695:	8b 55 08             	mov    0x8(%ebp),%edx
52a698:	2b 01                	sub    (%ecx),%eax
52a69a:	01 42 08             	add    %eax,0x8(%edx)
52a69d:	8b 4d 08             	mov    0x8(%ebp),%ecx
52a6a0:	89 31                	mov    %esi,(%ecx)
52a6a2:	8b 45 0c             	mov    0xc(%ebp),%eax
52a6a5:	8b 55 e8             	mov    -0x18(%ebp),%edx
52a6a8:	89 50 34             	mov    %edx,0x34(%eax)
52a6ab:	b8 fd ff ff ff       	mov    $0xfffffffd,%eax
52a6b0:	e9 98 01 00 00       	jmp    0x52a84d
52a6b5:	f6 45 f0 40          	testb  $0x40,-0x10(%ebp)
52a6b9:	75 57                	jne    0x52a712
52a6bb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a6be:	8b 41 04             	mov    0x4(%ecx),%eax
52a6c1:	c1 e0 03             	shl    $0x3,%eax
52a6c4:	01 45 f4             	add    %eax,-0xc(%ebp)
52a6c7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52a6ca:	8b 04 8d c4 91 69 00 	mov    0x6991c4(,%ecx,4),%eax
52a6d1:	23 c2                	and    %edx,%eax
52a6d3:	c1 e0 03             	shl    $0x3,%eax
52a6d6:	01 45 f4             	add    %eax,-0xc(%ebp)
52a6d9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a6dc:	33 c0                	xor    %eax,%eax
52a6de:	8a 01                	mov    (%ecx),%al
52a6e0:	89 45 f0             	mov    %eax,-0x10(%ebp)
52a6e3:	85 c0                	test   %eax,%eax
52a6e5:	0f 85 6f fd ff ff    	jne    0x52a45a
52a6eb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a6ee:	8a 41 01             	mov    0x1(%ecx),%al
52a6f1:	8b c8                	mov    %eax,%ecx
52a6f3:	25 ff 00 00 00       	and    $0xff,%eax
52a6f8:	d3 ea                	shr    %cl,%edx
52a6fa:	8b 4d f4             	mov    -0xc(%ebp),%ecx
52a6fd:	2b d8                	sub    %eax,%ebx
52a6ff:	8a 41 04             	mov    0x4(%ecx),%al
52a702:	8b 4d e8             	mov    -0x18(%ebp),%ecx
52a705:	88 01                	mov    %al,(%ecx)
52a707:	ff 45 e8             	incl   -0x18(%ebp)
52a70a:	ff 4d e4             	decl   -0x1c(%ebp)
52a70d:	e9 cf 00 00 00       	jmp    0x52a7e1
52a712:	f6 45 f0 20          	testb  $0x20,-0x10(%ebp)
52a716:	74 61                	je     0x52a779
52a718:	8b 45 08             	mov    0x8(%ebp),%eax
52a71b:	8b cb                	mov    %ebx,%ecx
52a71d:	c1 e9 03             	shr    $0x3,%ecx
52a720:	8b 40 04             	mov    0x4(%eax),%eax
52a723:	2b 45 ec             	sub    -0x14(%ebp),%eax
52a726:	3b c1                	cmp    %ecx,%eax
52a728:	76 07                	jbe    0x52a731
52a72a:	8b cb                	mov    %ebx,%ecx
52a72c:	c1 e9 03             	shr    $0x3,%ecx
52a72f:	eb 02                	jmp    0x52a733
52a731:	8b c8                	mov    %eax,%ecx
52a733:	8b c1                	mov    %ecx,%eax
52a735:	01 45 ec             	add    %eax,-0x14(%ebp)
52a738:	2b f0                	sub    %eax,%esi
52a73a:	c1 e0 03             	shl    $0x3,%eax
52a73d:	2b d8                	sub    %eax,%ebx
52a73f:	8b 45 0c             	mov    0xc(%ebp),%eax
52a742:	89 50 20             	mov    %edx,0x20(%eax)
52a745:	8b 55 0c             	mov    0xc(%ebp),%edx
52a748:	89 5a 1c             	mov    %ebx,0x1c(%edx)
52a74b:	8b 45 08             	mov    0x8(%ebp),%eax
52a74e:	8b 55 ec             	mov    -0x14(%ebp),%edx
52a751:	89 50 04             	mov    %edx,0x4(%eax)
52a754:	8b c6                	mov    %esi,%eax
52a756:	8b 4d 08             	mov    0x8(%ebp),%ecx
52a759:	8b 55 08             	mov    0x8(%ebp),%edx
52a75c:	2b 01                	sub    (%ecx),%eax
52a75e:	01 42 08             	add    %eax,0x8(%edx)
52a761:	8b 4d 08             	mov    0x8(%ebp),%ecx
52a764:	89 31                	mov    %esi,(%ecx)
52a766:	8b 45 0c             	mov    0xc(%ebp),%eax
52a769:	8b 55 e8             	mov    -0x18(%ebp),%edx
52a76c:	89 50 34             	mov    %edx,0x34(%eax)
52a76f:	b8 01 00 00 00       	mov    $0x1,%eax
52a774:	e9 d4 00 00 00       	jmp    0x52a84d
52a779:	8b 4d 08             	mov    0x8(%ebp),%ecx