502529:	8b 92 84 00 00 00    	mov    0x84(%edx),%edx
50252f:	8b 02                	mov    (%edx),%eax
502531:	0f b6 04 08          	movzbl (%eax,%ecx,1),%eax
502535:	50                   	push   %eax
502536:	8b 45 f8             	mov    -0x8(%ebp),%eax
502539:	59                   	pop    %ecx
50253a:	2b c1                	sub    %ecx,%eax
50253c:	8b c8                	mov    %eax,%ecx
50253e:	0f af c8             	imul   %eax,%ecx
502541:	89 4d dc             	mov    %ecx,-0x24(%ebp)
502544:	8b 4a 04             	mov    0x4(%edx),%ecx
502547:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50254a:	c1 e0 04             	shl    $0x4,%eax
50254d:	0f b6 0c 19          	movzbl (%ecx,%ebx,1),%ecx
502551:	8b 5d f4             	mov    -0xc(%ebp),%ebx
502554:	83 c0 40             	add    $0x40,%eax
502557:	2b d9                	sub    %ecx,%ebx
502559:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx
50255c:	89 4d cc             	mov    %ecx,-0x34(%ebp)
50255f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
502562:	0f af 4d cc          	imul   -0x34(%ebp),%ecx
502566:	01 4d dc             	add    %ecx,-0x24(%ebp)
502569:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50256c:	8b 52 08             	mov    0x8(%edx),%edx
50256f:	0f b6 14 0a          	movzbl (%edx,%ecx,1),%edx
502573:	8b 4d 14             	mov    0x14(%ebp),%ecx
502576:	2b ca                	sub    %edx,%ecx
502578:	03 c9                	add    %ecx,%ecx
50257a:	89 4d c8             	mov    %ecx,-0x38(%ebp)
50257d:	8b 55 c8             	mov    -0x38(%ebp),%edx
502580:	0f af 55 c8          	imul   -0x38(%ebp),%edx
502584:	01 55 dc             	add    %edx,-0x24(%ebp)
502587:	8b 55 cc             	mov    -0x34(%ebp),%edx
50258a:	c1 e2 03             	shl    $0x3,%edx
50258d:	8d 14 52             	lea    (%edx,%edx,2),%edx
502590:	81 c2 90 00 00 00    	add    $0x90,%edx
502596:	89 55 cc             	mov    %edx,-0x34(%ebp)
502599:	8b 4d c8             	mov    -0x38(%ebp),%ecx
50259c:	c1 e1 05             	shl    $0x5,%ecx
50259f:	81 c1 00 01 00 00    	add    $0x100,%ecx
5025a5:	89 4d c8             	mov    %ecx,-0x38(%ebp)
5025a8:	8d 8d c4 fd ff ff    	lea    -0x23c(%ebp),%ecx
5025ae:	8b 55 08             	mov    0x8(%ebp),%edx
5025b1:	89 55 e0             	mov    %edx,-0x20(%ebp)
5025b4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5025b7:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
5025be:	8b 45 dc             	mov    -0x24(%ebp),%eax
5025c1:	89 45 d8             	mov    %eax,-0x28(%ebp)
5025c4:	8b 45 cc             	mov    -0x34(%ebp),%eax
5025c7:	89 45 d0             	mov    %eax,-0x30(%ebp)
5025ca:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
5025d1:	8b 75 d8             	mov    -0x28(%ebp),%esi
5025d4:	8b 55 c8             	mov    -0x38(%ebp),%edx
5025d7:	b8 03 00 00 00       	mov    $0x3,%eax
5025dc:	3b 31                	cmp    (%ecx),%esi
5025de:	7d 0a                	jge    0x5025ea
5025e0:	89 31                	mov    %esi,(%ecx)
5025e2:	8a 5d e4             	mov    -0x1c(%ebp),%bl
5025e5:	8b 7d e0             	mov    -0x20(%ebp),%edi
5025e8:	88 1f                	mov    %bl,(%edi)
5025ea:	03 f2                	add    %edx,%esi
5025ec:	81 c2 00 02 00 00    	add    $0x200,%edx
5025f2:	83 c1 04             	add    $0x4,%ecx
5025f5:	ff 45 e0             	incl   -0x20(%ebp)
5025f8:	48                   	dec    %eax
5025f9:	85 c0                	test   %eax,%eax
5025fb:	7d df                	jge    0x5025dc
5025fd:	8b 45 d0             	mov    -0x30(%ebp),%eax
502600:	01 45 d8             	add    %eax,-0x28(%ebp)
502603:	81 45 d0 20 01 00 00 	addl   $0x120,-0x30(%ebp)
50260a:	ff 4d ec             	decl   -0x14(%ebp)
50260d:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
502611:	7d be                	jge    0x5025d1
502613:	8b 55 d4             	mov    -0x2c(%ebp),%edx
502616:	01 55 dc             	add    %edx,-0x24(%ebp)
502619:	81 45 d4 80 00 00 00 	addl   $0x80,-0x2c(%ebp)
502620:	ff 4d f0             	decl   -0x10(%ebp)
502623:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
502627:	7d 95                	jge    0x5025be
502629:	ff 45 e8             	incl   -0x18(%ebp)
50262c:	ff 45 c4             	incl   -0x3c(%ebp)
50262f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
502632:	3b 4d 10             	cmp    0x10(%ebp),%ecx
502635:	0f 8c de fe ff ff    	jl     0x502519
50263b:	5f                   	pop    %edi
50263c:	5e                   	pop    %esi
50263d:	5b                   	pop    %ebx
50263e:	8b e5                	mov    %ebp,%esp
502640:	5d                   	pop    %ebp
502641:	c2 10 00             	ret    $0x10
502644:	55                   	push   %ebp
502645:	8b ec                	mov    %esp,%ebp
502647:	81 c4 6c fe ff ff    	add    $0xfffffe6c,%esp
50264d:	53                   	push   %ebx
50264e:	56                   	push   %esi
50264f:	57                   	push   %edi
502650:	8b d8                	mov    %eax,%ebx
502652:	89 4d f8             	mov    %ecx,-0x8(%ebp)
502655:	89 55 fc             	mov    %edx,-0x4(%ebp)
502658:	8b 83 c4 01 00 00    	mov    0x1c4(%ebx),%eax
50265e:	8d 8d ec fe ff ff    	lea    -0x114(%ebp),%ecx
502664:	8b 50 18             	mov    0x18(%eax),%edx
502667:	89 55 f4             	mov    %edx,-0xc(%ebp)
50266a:	c1 7d fc 02          	sarl   $0x2,-0x4(%ebp)
50266e:	c1 7d f8 03          	sarl   $0x3,-0x8(%ebp)
502672:	c1 7d 08 02          	sarl   $0x2,0x8(%ebp)
502676:	8b 75 fc             	mov    -0x4(%ebp),%esi
502679:	8b 7d f8             	mov    -0x8(%ebp),%edi
50267c:	8b 45 08             	mov    0x8(%ebp),%eax
50267f:	c1 e7 05             	shl    $0x5,%edi
502682:	c1 e6 05             	shl    $0x5,%esi
502685:	83 c7 02             	add    $0x2,%edi
502688:	c1 e0 05             	shl    $0x5,%eax
50268b:	83 c6 04             	add    $0x4,%esi
50268e:	83 c0 04             	add    $0x4,%eax
502691:	89 45 f0             	mov    %eax,-0x10(%ebp)
502694:	8b c3                	mov    %ebx,%eax
502696:	8b 55 f0             	mov    -0x10(%ebp),%edx
502699:	52                   	push   %edx
50269a:	51                   	push   %ecx
50269b:	8b cf                	mov    %edi,%ecx
50269d:	8b d6                	mov    %esi,%edx
50269f:	e8 e8 fb ff ff       	call   0x50228c
5026a4:	8b 55 f0             	mov    -0x10(%ebp),%edx
5026a7:	8d 8d 6c fe ff ff    	lea    -0x194(%ebp),%ecx
5026ad:	52                   	push   %edx
5026ae:	50                   	push   %eax
5026af:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
5026b5:	8b d6                	mov    %esi,%edx
5026b7:	50                   	push   %eax
5026b8:	51                   	push   %ecx
5026b9:	8b cf                	mov    %edi,%ecx
5026bb:	8b c3                	mov    %ebx,%eax
5026bd:	e8 0a fe ff ff       	call   0x5024cc
5026c2:	c1 65 fc 02          	shll   $0x2,-0x4(%ebp)
5026c6:	c1 65 f8 03          	shll   $0x3,-0x8(%ebp)
5026ca:	c1 65 08 02          	shll   $0x2,0x8(%ebp)
5026ce:	8d 8d 6c fe ff ff    	lea    -0x194(%ebp),%ecx
5026d4:	33 c0                	xor    %eax,%eax
5026d6:	89 45 ec             	mov    %eax,-0x14(%ebp)
5026d9:	33 db                	xor    %ebx,%ebx
5026db:	8b 45 fc             	mov    -0x4(%ebp),%eax
5026de:	03 45 ec             	add    -0x14(%ebp),%eax
5026e1:	8b 55 f4             	mov    -0xc(%ebp),%edx
5026e4:	8b 04 82             	mov    (%edx,%eax,4),%eax
5026e7:	8b 55 f8             	mov    -0x8(%ebp),%edx
5026ea:	03 d3                	add    %ebx,%edx
5026ec:	c1 e2 06             	shl    $0x6,%edx
5026ef:	03 c2                	add    %edx,%eax
5026f1:	8b 55 08             	mov    0x8(%ebp),%edx
5026f4:	03 d2                	add    %edx,%edx
5026f6:	03 c2                	add    %edx,%eax
5026f8:	33 d2                	xor    %edx,%edx
5026fa:	0f b6 31             	movzbl (%ecx),%esi
5026fd:	46                   	inc    %esi
5026fe:	66 89 30             	mov    %si,(%eax)
502701:	41                   	inc    %ecx
502702:	83 c0 02             	add    $0x2,%eax
502705:	42                   	inc    %edx
502706:	83 fa 04             	cmp    $0x4,%edx
502709:	7c ef                	jl     0x5026fa
50270b:	43                   	inc    %ebx
50270c:	83 fb 08             	cmp    $0x8,%ebx
50270f:	7c ca                	jl     0x5026db
502711:	ff 45 ec             	incl   -0x14(%ebp)
502714:	83 7d ec 04          	cmpl   $0x4,-0x14(%ebp)
502718:	7c bf                	jl     0x5026d9
50271a:	5f                   	pop    %edi
50271b:	5e                   	pop    %esi
50271c:	5b                   	pop    %ebx
50271d:	8b e5                	mov    %ebp,%esp
50271f:	5d                   	pop    %ebp
502720:	c2 04 00             	ret    $0x4
502723:	90                   	nop
502724:	55                   	push   %ebp
502725:	8b ec                	mov    %esp,%ebp
502727:	83 c4 dc             	add    $0xffffffdc,%esp
50272a:	53                   	push   %ebx
50272b:	56                   	push   %esi
50272c:	89 45 fc             	mov    %eax,-0x4(%ebp)
50272f:	8b 45 fc             	mov    -0x4(%ebp),%eax
502732:	8b 80 c4 01 00 00    	mov    0x1c4(%eax),%eax
502738:	8b 40 18             	mov    0x18(%eax),%eax
50273b:	89 45 f8             	mov    %eax,-0x8(%ebp)
50273e:	8b 45 fc             	mov    -0x4(%ebp),%eax
502741:	8b 40 6c             	mov    0x6c(%eax),%eax
502744:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502747:	33 c0                	xor    %eax,%eax
502749:	89 45 ec             	mov    %eax,-0x14(%ebp)
50274c:	89 4d dc             	mov    %ecx,-0x24(%ebp)
50274f:	89 55 e0             	mov    %edx,-0x20(%ebp)
502752:	8b 45 ec             	mov    -0x14(%ebp),%eax
502755:	3b 45 08             	cmp    0x8(%ebp),%eax
502758:	0f 8d 89 00 00 00    	jge    0x5027e7
50275e:	8b 55 e0             	mov    -0x20(%ebp),%edx
502761:	8b 45 dc             	mov    -0x24(%ebp),%eax
502764:	8b 1a                	mov    (%edx),%ebx
502766:	8b 10                	mov    (%eax),%edx
502768:	89 55 f4             	mov    %edx,-0xc(%ebp)
50276b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50276e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
502771:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
502775:	76 59                	jbe    0x5027d0
502777:	33 c0                	xor    %eax,%eax
502779:	33 d2                	xor    %edx,%edx
50277b:	8a 03                	mov    (%ebx),%al
50277d:	43                   	inc    %ebx
50277e:	33 c9                	xor    %ecx,%ecx
502780:	c1 f8 03             	sar    $0x3,%eax
502783:	8a 13                	mov    (%ebx),%dl
502785:	43                   	inc    %ebx
502786:	c1 fa 02             	sar    $0x2,%edx
502789:	8a 0b                	mov    (%ebx),%cl
50278b:	c1 f9 03             	sar    $0x3,%ecx
50278e:	43                   	inc    %ebx
50278f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
502792:	8b 4d f8             	mov    -0x8(%ebp),%ecx
502795:	8b 34 81             	mov    (%ecx,%eax,4),%esi
502798:	8b ca                	mov    %edx,%ecx
50279a:	c1 e1 06             	shl    $0x6,%ecx
50279d:	03 f1                	add    %ecx,%esi
50279f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5027a2:	03 c9                	add    %ecx,%ecx
5027a4:	03 f1                	add    %ecx,%esi
5027a6:	66 83 3e 00          	cmpw   $0x0,(%esi)
5027aa:	75 0f                	jne    0x5027bb
5027ac:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5027af:	51                   	push   %ecx
5027b0:	8b ca                	mov    %edx,%ecx
5027b2:	8b 55 fc             	mov    -0x4(%ebp),%edx
5027b5:	92                   	xchg   %eax,%edx
5027b6:	e8 89 fe ff ff       	call   0x502644
5027bb:	8b 55 f4             	mov    -0xc(%ebp),%edx
5027be:	8a 06                	mov    (%esi),%al
5027c0:	04 ff                	add    $0xff,%al
5027c2:	88 02                	mov    %al,(%edx)
5027c4:	ff 45 f4             	incl   -0xc(%ebp)
5027c7:	ff 4d e8             	decl   -0x18(%ebp)
5027ca:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
5027ce:	77 a7                	ja     0x502777
5027d0:	ff 45 ec             	incl   -0x14(%ebp)
5027d3:	83 45 dc 04          	addl   $0x4,-0x24(%ebp)
5027d7:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
5027db:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5027de:	3b 4d 08             	cmp    0x8(%ebp),%ecx
5027e1:	0f 8c 77 ff ff ff    	jl     0x50275e
5027e7:	5e                   	pop    %esi
5027e8:	5b                   	pop    %ebx
5027e9:	8b e5                	mov    %ebp,%esp
5027eb:	5d                   	pop    %ebp
5027ec:	c2 04 00             	ret    $0x4
5027ef:	90                   	nop
5027f0:	55                   	push   %ebp
5027f1:	8b ec                	mov    %esp,%ebp
5027f3:	83 c4 90             	add    $0xffffff90,%esp
5027f6:	53                   	push   %ebx
5027f7:	56                   	push   %esi
5027f8:	57                   	push   %edi
5027f9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5027fc:	89 55 f8             	mov    %edx,-0x8(%ebp)
5027ff:	89 45 fc             	mov    %eax,-0x4(%ebp)
502802:	8b 45 fc             	mov    -0x4(%ebp),%eax
502805:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
50280b:	89 55 f0             	mov    %edx,-0x10(%ebp)
50280e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
502811:	8b 41 18             	mov    0x18(%ecx),%eax
502814:	89 45 ec             	mov    %eax,-0x14(%ebp)
502817:	8b 55 fc             	mov    -0x4(%ebp),%edx
50281a:	8b 4a 6c             	mov    0x6c(%edx),%ecx
50281d:	89 4d b0             	mov    %ecx,-0x50(%ebp)
502820:	8b 45 fc             	mov    -0x4(%ebp),%eax
502823:	8b 90 3c 01 00 00    	mov    0x13c(%eax),%edx
502829:	89 55 ac             	mov    %edx,-0x54(%ebp)
50282c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50282f:	8b 41 28             	mov    0x28(%ecx),%eax
502832:	89 45 a8             	mov    %eax,-0x58(%ebp)
502835:	8b 55 fc             	mov    -0x4(%ebp),%edx
502838:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
50283e:	8b 01                	mov    (%ecx),%eax
502840:	89 45 a4             	mov    %eax,-0x5c(%ebp)
502843:	8b 55 fc             	mov    -0x4(%ebp),%edx
502846:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
50284c:	8b 41 04             	mov    0x4(%ecx),%eax
50284f:	89 45 a0             	mov    %eax,-0x60(%ebp)
502852:	8b 55 fc             	mov    -0x4(%ebp),%edx
502855:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
50285b:	33 d2                	xor    %edx,%edx
50285d:	8b 41 08             	mov    0x8(%ecx),%eax
502860:	89 45 9c             	mov    %eax,-0x64(%ebp)
502863:	89 55 b8             	mov    %edx,-0x48(%ebp)
502866:	8b 4d f4             	mov    -0xc(%ebp),%ecx
502869:	8b c1                	mov    %ecx,%eax
50286b:	89 45 90             	mov    %eax,-0x70(%ebp)
50286e:	8b 55 f8             	mov    -0x8(%ebp),%edx
502871:	8b ca                	mov    %edx,%ecx
502873:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
502876:	8b 45 b8             	mov    -0x48(%ebp),%eax
502879:	3b 45 08             	cmp    0x8(%ebp),%eax
50287c:	0f 8d 66 02 00 00    	jge    0x502ae8
502882:	8b 55 94             	mov    -0x6c(%ebp),%edx
502885:	8b 0a                	mov    (%edx),%ecx
502887:	89 4d cc             	mov    %ecx,-0x34(%ebp)
50288a:	8b 45 90             	mov    -0x70(%ebp),%eax
50288d:	8b 10                	mov    (%eax),%edx
50288f:	89 55 c8             	mov    %edx,-0x38(%ebp)
502892:	8b 4d f0             	mov    -0x10(%ebp),%ecx
502895:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
502899:	74 3f                	je     0x5028da
50289b:	8b 45 b0             	mov    -0x50(%ebp),%eax
50289e:	48                   	dec    %eax
50289f:	8d 14 40             	lea    (%eax,%eax,2),%edx
5028a2:	01 55 cc             	add    %edx,-0x34(%ebp)
5028a5:	8b 4d b0             	mov    -0x50(%ebp),%ecx
5028a8:	49                   	dec    %ecx
5028a9:	01 4d c8             	add    %ecx,-0x38(%ebp)
5028ac:	c7 45 c0 ff ff ff ff 	movl   $0xffffffff,-0x40(%ebp)
5028b3:	c7 45 bc fd ff ff ff 	movl   $0xfffffffd,-0x44(%ebp)
5028ba:	8b 4d b0             	mov    -0x50(%ebp),%ecx
5028bd:	8b 45 f0             	mov    -0x10(%ebp),%eax
5028c0:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
5028c3:	8b 50 20             	mov    0x20(%eax),%edx
5028c6:	83 c1 03             	add    $0x3,%ecx
5028c9:	03 c9                	add    %ecx,%ecx
5028cb:	03 d1                	add    %ecx,%edx
5028cd:	89 55 d0             	mov    %edx,-0x30(%ebp)
5028d0:	33 d2                	xor    %edx,%edx
5028d2:	8b 45 f0             	mov    -0x10(%ebp),%eax
5028d5:	89 50 24             	mov    %edx,0x24(%eax)
5028d8:	eb 21                	jmp    0x5028fb
5028da:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
5028e1:	c7 45 bc 03 00 00 00 	movl   $0x3,-0x44(%ebp)
5028e8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5028eb:	8b 41 20             	mov    0x20(%ecx),%eax
5028ee:	89 45 d0             	mov    %eax,-0x30(%ebp)
5028f1:	8b 55 f0             	mov    -0x10(%ebp),%edx
5028f4:	c7 42 24 01 00 00 00 	movl   $0x1,0x24(%edx)
5028fb:	33 c0                	xor    %eax,%eax
5028fd:	33 d2                	xor    %edx,%edx
5028ff:	89 45 e0             	mov    %eax,-0x20(%ebp)
502902:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502905:	89 45 e8             	mov    %eax,-0x18(%ebp)
502908:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50290b:	89 55 d8             	mov    %edx,-0x28(%ebp)
50290e:	89 55 dc             	mov    %edx,-0x24(%ebp)
502911:	8b 45 b0             	mov    -0x50(%ebp),%eax
502914:	33 c9                	xor    %ecx,%ecx
502916:	89 45 b4             	mov    %eax,-0x4c(%ebp)
502919:	89 cb                	mov    %ecx,%ebx
50291b:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
50291f:	8b f1                	mov    %ecx,%esi