548338:	8a 41 09             	mov    0x9(%ecx),%al
54833b:	8b 0c 24             	mov    (%esp),%ecx
54833e:	0f af d0             	imul   %eax,%edx
548341:	88 51 0b             	mov    %dl,0xb(%ecx)
548344:	33 c0                	xor    %eax,%eax
548346:	8b 14 24             	mov    (%esp),%edx
548349:	8a 42 0b             	mov    0xb(%edx),%al
54834c:	f7 ef                	imul   %edi
54834e:	8b 14 24             	mov    (%esp),%edx
548351:	83 c0 07             	add    $0x7,%eax
548354:	c1 e8 03             	shr    $0x3,%eax
548357:	89 42 04             	mov    %eax,0x4(%edx)
54835a:	8b 44 24 08          	mov    0x8(%esp),%eax
54835e:	83 c4 70             	add    $0x70,%esp
548361:	5d                   	pop    %ebp
548362:	5f                   	pop    %edi
548363:	5e                   	pop    %esi
548364:	5b                   	pop    %ebx
548365:	c3                   	ret
548366:	90                   	nop
548367:	90                   	nop
548368:	56                   	push   %esi
548369:	57                   	push   %edi
54836a:	55                   	push   %ebp
54836b:	85 d2                	test   %edx,%edx
54836d:	74 64                	je     0x5483d3
54836f:	48                   	dec    %eax
548370:	74 0f                	je     0x548381
548372:	48                   	dec    %eax
548373:	74 18                	je     0x54838d
548375:	83 e8 02             	sub    $0x2,%eax
548378:	74 1f                	je     0x548399
54837a:	83 e8 04             	sub    $0x4,%eax
54837d:	74 26                	je     0x5483a5
54837f:	eb 30                	jmp    0x5483b1
548381:	bf 02 00 00 00       	mov    $0x2,%edi
548386:	bd ff 00 00 00       	mov    $0xff,%ebp
54838b:	eb 28                	jmp    0x5483b5
54838d:	bf 04 00 00 00       	mov    $0x4,%edi
548392:	bd 55 00 00 00       	mov    $0x55,%ebp
548397:	eb 1c                	jmp    0x5483b5
548399:	bf 10 00 00 00       	mov    $0x10,%edi
54839e:	bd 11 00 00 00       	mov    $0x11,%ebp
5483a3:	eb 10                	jmp    0x5483b5
5483a5:	bf 00 01 00 00       	mov    $0x100,%edi
5483aa:	bd 01 00 00 00       	mov    $0x1,%ebp
5483af:	eb 04                	jmp    0x5483b5
5483b1:	33 ff                	xor    %edi,%edi
5483b3:	33 ed                	xor    %ebp,%ebp
5483b5:	33 f6                	xor    %esi,%esi
5483b7:	33 c9                	xor    %ecx,%ecx
5483b9:	8b c2                	mov    %edx,%eax
5483bb:	3b fe                	cmp    %esi,%edi
5483bd:	7e 14                	jle    0x5483d3
5483bf:	8b d1                	mov    %ecx,%edx
5483c1:	88 10                	mov    %dl,(%eax)
5483c3:	88 50 01             	mov    %dl,0x1(%eax)
5483c6:	88 50 02             	mov    %dl,0x2(%eax)
5483c9:	83 c0 03             	add    $0x3,%eax
5483cc:	46                   	inc    %esi
5483cd:	03 cd                	add    %ebp,%ecx
5483cf:	3b fe                	cmp    %esi,%edi
5483d1:	7f ec                	jg     0x5483bf
5483d3:	5d                   	pop    %ebp
5483d4:	5f                   	pop    %edi
5483d5:	5e                   	pop    %esi
5483d6:	c3                   	ret
5483d7:	90                   	nop
5483d8:	55                   	push   %ebp
5483d9:	8b ec                	mov    %esp,%ebp
5483db:	83 c4 94             	add    $0xffffff94,%esp
5483de:	53                   	push   %ebx
5483df:	56                   	push   %esi
5483e0:	57                   	push   %edi
5483e1:	89 55 f8             	mov    %edx,-0x8(%ebp)
5483e4:	89 45 fc             	mov    %eax,-0x4(%ebp)
5483e7:	8b f1                	mov    %ecx,%esi
5483e9:	8b 45 fc             	mov    -0x4(%ebp),%eax
5483ec:	8b 7d 28             	mov    0x28(%ebp),%edi
5483ef:	85 ff                	test   %edi,%edi
5483f1:	8b 10                	mov    (%eax),%edx
5483f3:	89 55 f0             	mov    %edx,-0x10(%ebp)
5483f6:	0f 84 ad 13 00 00    	je     0x5497a9
5483fc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5483ff:	f6 41 08 04          	testb  $0x4,0x8(%ecx)
548403:	74 17                	je     0x54841c
548405:	8b 45 fc             	mov    -0x4(%ebp),%eax
548408:	8a 50 08             	mov    0x8(%eax),%dl
54840b:	80 fa 03             	cmp    $0x3,%dl
54840e:	0f 84 95 13 00 00    	je     0x5497a9
548414:	85 f6                	test   %esi,%esi
548416:	0f 84 8d 13 00 00    	je     0x5497a9
54841c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54841f:	8a 41 08             	mov    0x8(%ecx),%al
548422:	2c 01                	sub    $0x1,%al
548424:	72 1d                	jb     0x548443
548426:	fe c8                	dec    %al
548428:	0f 84 b2 04 00 00    	je     0x5488e0
54842e:	2c 02                	sub    $0x2,%al
548430:	0f 84 c9 07 00 00    	je     0x548bff
548436:	2c 02                	sub    $0x2,%al
548438:	0f 84 68 0b 00 00    	je     0x548fa6
54843e:	e9 1f 13 00 00       	jmp    0x549762
548443:	8b 55 fc             	mov    -0x4(%ebp),%edx
548446:	33 c9                	xor    %ecx,%ecx
548448:	8a 4a 09             	mov    0x9(%edx),%cl
54844b:	83 f9 10             	cmp    $0x10,%ecx
54844e:	0f 87 0e 13 00 00    	ja     0x549762
548454:	8a 89 61 84 54 00    	mov    0x548461(%ecx),%cl
54845a:	ff 24 8d 72 84 54 00 	jmp    *0x548472(,%ecx,4)
548461:	00 05 04 00 03 00    	add    %al,0x30004
548467:	00 00                	add    %al,(%eax)
548469:	02 00                	add    (%eax),%al
54846b:	00 00                	add    %al,(%eax)
54846d:	00 00                	add    %al,(%eax)
54846f:	00 00                	add    %al,(%eax)
548471:	01 62 97             	add    %esp,-0x69(%edx)
548474:	54                   	push   %esp
548475:	00 eb                	add    %ch,%bl
548477:	87 54 00 62          	xchg   %edx,0x62(%eax,%eax,1)
54847b:	87 54 00 34          	xchg   %edx,0x34(%eax,%eax,1)
54847f:	86 54 00 f2          	xchg   %dl,-0xe(%eax,%eax,1)
548483:	84 54 00 8a          	test   %dl,-0x76(%eax,%eax,1)
548487:	84 54 00 8b          	test   %dl,-0x75(%eax,%eax,1)
54848b:	5d                   	pop    %ebp
54848c:	f8                   	clc
54848d:	33 d2                	xor    %edx,%edx
54848f:	89 55 f4             	mov    %edx,-0xc(%ebp)
548492:	b8 07 00 00 00       	mov    $0x7,%eax
548497:	8b 55 f0             	mov    -0x10(%ebp),%edx
54849a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
54849d:	3b ca                	cmp    %edx,%ecx
54849f:	0f 83 bd 12 00 00    	jae    0x549762
5484a5:	8b c8                	mov    %eax,%ecx
5484a7:	33 d2                	xor    %edx,%edx
5484a9:	8a 13                	mov    (%ebx),%dl
5484ab:	d3 fa                	sar    %cl,%edx
5484ad:	66 83 e2 01          	and    $0x1,%dx
5484b1:	66 3b 56 08          	cmp    0x8(%esi),%dx
5484b5:	75 1c                	jne    0x5484d3
5484b7:	b9 07 00 00 00       	mov    $0x7,%ecx
5484bc:	2b c8                	sub    %eax,%ecx
5484be:	ba 7f 7f 00 00       	mov    $0x7f7f,%edx
5484c3:	d3 fa                	sar    %cl,%edx
5484c5:	80 e2 ff             	and    $0xff,%dl
5484c8:	20 13                	and    %dl,(%ebx)
5484ca:	8b c8                	mov    %eax,%ecx
5484cc:	8a 57 08             	mov    0x8(%edi),%dl
5484cf:	d2 e2                	shl    %cl,%dl
5484d1:	08 13                	or     %dl,(%ebx)
5484d3:	85 c0                	test   %eax,%eax
5484d5:	75 08                	jne    0x5484df
5484d7:	b8 07 00 00 00       	mov    $0x7,%eax
5484dc:	43                   	inc    %ebx
5484dd:	eb 01                	jmp    0x5484e0
5484df:	48                   	dec    %eax
5484e0:	ff 45 f4             	incl   -0xc(%ebp)
5484e3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5484e6:	8b 55 f0             	mov    -0x10(%ebp),%edx
5484e9:	3b ca                	cmp    %edx,%ecx
5484eb:	72 b8                	jb     0x5484a5
5484ed:	e9 70 12 00 00       	jmp    0x549762
5484f2:	8b 45 20             	mov    0x20(%ebp),%eax
5484f5:	85 c0                	test   %eax,%eax
5484f7:	0f 84 cd 00 00 00    	je     0x5485ca
5484fd:	8b 5d f8             	mov    -0x8(%ebp),%ebx
548500:	33 d2                	xor    %edx,%edx
548502:	89 55 f4             	mov    %edx,-0xc(%ebp)
548505:	b8 06 00 00 00       	mov    $0x6,%eax
54850a:	8b 55 f0             	mov    -0x10(%ebp),%edx
54850d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
548510:	3b ca                	cmp    %edx,%ecx
548512:	0f 83 4a 12 00 00    	jae    0x549762
548518:	8b c8                	mov    %eax,%ecx
54851a:	33 d2                	xor    %edx,%edx
54851c:	8a 13                	mov    (%ebx),%dl
54851e:	d3 fa                	sar    %cl,%edx
548520:	66 83 e2 03          	and    $0x3,%dx
548524:	66 3b 56 08          	cmp    0x8(%esi),%dx
548528:	75 1e                	jne    0x548548
54852a:	b9 06 00 00 00       	mov    $0x6,%ecx
54852f:	2b c8                	sub    %eax,%ecx
548531:	ba 3f 3f 00 00       	mov    $0x3f3f,%edx
548536:	d3 fa                	sar    %cl,%edx
548538:	80 e2 ff             	and    $0xff,%dl
54853b:	20 13                	and    %dl,(%ebx)
54853d:	8b c8                	mov    %eax,%ecx
54853f:	8a 57 08             	mov    0x8(%edi),%dl
548542:	d2 e2                	shl    %cl,%dl
548544:	08 13                	or     %dl,(%ebx)
548546:	eb 5d                	jmp    0x5485a5
548548:	33 d2                	xor    %edx,%edx
54854a:	8b c8                	mov    %eax,%ecx
54854c:	8a 13                	mov    (%ebx),%dl
54854e:	d3 fa                	sar    %cl,%edx
548550:	80 e2 03             	and    $0x3,%dl
548553:	33 c9                	xor    %ecx,%ecx
548555:	88 55 ef             	mov    %dl,-0x11(%ebp)
548558:	33 d2                	xor    %edx,%edx
54855a:	8a 55 ef             	mov    -0x11(%ebp),%dl
54855d:	8a 4d ef             	mov    -0x11(%ebp),%cl
548560:	c1 e2 02             	shl    $0x2,%edx
548563:	0b ca                	or     %edx,%ecx
548565:	33 d2                	xor    %edx,%edx
548567:	8a 55 ef             	mov    -0x11(%ebp),%dl
54856a:	c1 e2 04             	shl    $0x4,%edx
54856d:	0b ca                	or     %edx,%ecx
54856f:	33 d2                	xor    %edx,%edx
548571:	8a 55 ef             	mov    -0x11(%ebp),%dl
548574:	c1 e2 06             	shl    $0x6,%edx
548577:	0b ca                	or     %edx,%ecx
548579:	8b 55 20             	mov    0x20(%ebp),%edx
54857c:	0f b6 0c 0a          	movzbl (%edx,%ecx,1),%ecx
548580:	c1 f9 06             	sar    $0x6,%ecx
548583:	ba 3f 3f 00 00       	mov    $0x3f3f,%edx
548588:	80 e1 03             	and    $0x3,%cl
54858b:	88 4d ee             	mov    %cl,-0x12(%ebp)
54858e:	b9 06 00 00 00       	mov    $0x6,%ecx
548593:	2b c8                	sub    %eax,%ecx
548595:	d3 fa                	sar    %cl,%edx
548597:	80 e2 ff             	and    $0xff,%dl
54859a:	8b c8                	mov    %eax,%ecx
54859c:	20 13                	and    %dl,(%ebx)
54859e:	8a 55 ee             	mov    -0x12(%ebp),%dl
5485a1:	d2 e2                	shl    %cl,%dl
5485a3:	08 13                	or     %dl,(%ebx)
5485a5:	85 c0                	test   %eax,%eax
5485a7:	75 08                	jne    0x5485b1
5485a9:	b8 06 00 00 00       	mov    $0x6,%eax
5485ae:	43                   	inc    %ebx
5485af:	eb 03                	jmp    0x5485b4
5485b1:	83 e8 02             	sub    $0x2,%eax
5485b4:	ff 45 f4             	incl   -0xc(%ebp)
5485b7:	8b 55 f4             	mov    -0xc(%ebp),%edx
5485ba:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5485bd:	3b d1                	cmp    %ecx,%edx
5485bf:	0f 82 53 ff ff ff    	jb     0x548518
5485c5:	e9 98 11 00 00       	jmp    0x549762
5485ca:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5485cd:	33 d2                	xor    %edx,%edx
5485cf:	89 55 f4             	mov    %edx,-0xc(%ebp)
5485d2:	b8 06 00 00 00       	mov    $0x6,%eax
5485d7:	8b 55 f0             	mov    -0x10(%ebp),%edx
5485da:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5485dd:	3b ca                	cmp    %edx,%ecx
5485df:	0f 83 7d 11 00 00    	jae    0x549762
5485e5:	8b c8                	mov    %eax,%ecx
5485e7:	33 d2                	xor    %edx,%edx
5485e9:	8a 13                	mov    (%ebx),%dl
5485eb:	d3 fa                	sar    %cl,%edx
5485ed:	66 83 e2 03          	and    $0x3,%dx
5485f1:	66 3b 56 08          	cmp    0x8(%esi),%dx
5485f5:	75 1c                	jne    0x548613
5485f7:	b9 06 00 00 00       	mov    $0x6,%ecx
5485fc:	2b c8                	sub    %eax,%ecx
5485fe:	ba 3f 3f 00 00       	mov    $0x3f3f,%edx
548603:	d3 fa                	sar    %cl,%edx
548605:	80 e2 ff             	and    $0xff,%dl
548608:	20 13                	and    %dl,(%ebx)
54860a:	8b c8                	mov    %eax,%ecx
54860c:	8a 57 08             	mov    0x8(%edi),%dl
54860f:	d2 e2                	shl    %cl,%dl
548611:	08 13                	or     %dl,(%ebx)
548613:	85 c0                	test   %eax,%eax
548615:	75 08                	jne    0x54861f
548617:	b8 06 00 00 00       	mov    $0x6,%eax
54861c:	43                   	inc    %ebx
54861d:	eb 03                	jmp    0x548622
54861f:	83 e8 02             	sub    $0x2,%eax
548622:	ff 45 f4             	incl   -0xc(%ebp)
548625:	8b 4d f4             	mov    -0xc(%ebp),%ecx
548628:	8b 55 f0             	mov    -0x10(%ebp),%edx
54862b:	3b ca                	cmp    %edx,%ecx
54862d:	72 b6                	jb     0x5485e5
54862f:	e9 2e 11 00 00       	jmp    0x549762
548634:	8b 45 20             	mov    0x20(%ebp),%eax
548637:	85 c0                	test   %eax,%eax
548639:	0f 84 b9 00 00 00    	je     0x5486f8
54863f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
548642:	33 d2                	xor    %edx,%edx
548644:	89 55 f4             	mov    %edx,-0xc(%ebp)
548647:	b8 04 00 00 00       	mov    $0x4,%eax
54864c:	8b 55 f0             	mov    -0x10(%ebp),%edx
54864f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
548652:	3b ca                	cmp    %edx,%ecx
548654:	0f 83 08 11 00 00    	jae    0x549762
54865a:	8b c8                	mov    %eax,%ecx
54865c:	33 d2                	xor    %edx,%edx
54865e:	8a 13                	mov    (%ebx),%dl
548660:	d3 fa                	sar    %cl,%edx
548662:	66 83 e2 0f          	and    $0xf,%dx
548666:	66 3b 56 08          	cmp    0x8(%esi),%dx
54866a:	75 1e                	jne    0x54868a
54866c:	b9 04 00 00 00       	mov    $0x4,%ecx
548671:	2b c8                	sub    %eax,%ecx
548673:	ba 0f 0f 00 00       	mov    $0xf0f,%edx
548678:	d3 fa                	sar    %cl,%edx
54867a:	80 e2 ff             	and    $0xff,%dl
54867d:	20 13                	and    %dl,(%ebx)
54867f:	8b c8                	mov    %eax,%ecx
548681:	8a 57 08             	mov    0x8(%edi),%dl
548684:	d2 e2                	shl    %cl,%dl
548686:	08 13                	or     %dl,(%ebx)
548688:	eb 49                	jmp    0x5486d3
54868a:	33 d2                	xor    %edx,%edx
54868c:	8b c8                	mov    %eax,%ecx
54868e:	8a 13                	mov    (%ebx),%dl
548690:	d3 fa                	sar    %cl,%edx
548692:	80 e2 0f             	and    $0xf,%dl
548695:	33 c9                	xor    %ecx,%ecx
548697:	88 55 ed             	mov    %dl,-0x13(%ebp)
54869a:	33 d2                	xor    %edx,%edx
54869c:	8a 55 ed             	mov    -0x13(%ebp),%dl
54869f:	8a 4d ed             	mov    -0x13(%ebp),%cl
5486a2:	c1 e2 04             	shl    $0x4,%edx
5486a5:	0b ca                	or     %edx,%ecx
5486a7:	8b 55 20             	mov    0x20(%ebp),%edx
5486aa:	0f b6 0c 0a          	movzbl (%edx,%ecx,1),%ecx
5486ae:	c1 f9 04             	sar    $0x4,%ecx
5486b1:	ba 0f 0f 00 00       	mov    $0xf0f,%edx
5486b6:	80 e1 0f             	and    $0xf,%cl
5486b9:	88 4d ec             	mov    %cl,-0x14(%ebp)
5486bc:	b9 04 00 00 00       	mov    $0x4,%ecx
5486c1:	2b c8                	sub    %eax,%ecx
5486c3:	d3 fa                	sar    %cl,%edx
5486c5:	80 e2 ff             	and    $0xff,%dl
5486c8:	8b c8                	mov    %eax,%ecx
5486ca:	20 13                	and    %dl,(%ebx)
5486cc:	8a 55 ec             	mov    -0x14(%ebp),%dl
5486cf:	d2 e2                	shl    %cl,%dl
5486d1:	08 13                	or     %dl,(%ebx)
5486d3:	85 c0                	test   %eax,%eax
5486d5:	75 08                	jne    0x5486df
5486d7:	b8 04 00 00 00       	mov    $0x4,%eax
5486dc:	43                   	inc    %ebx
5486dd:	eb 03                	jmp    0x5486e2
5486df:	83 e8 04             	sub    $0x4,%eax
5486e2:	ff 45 f4             	incl   -0xc(%ebp)
5486e5:	8b 55 f4             	mov    -0xc(%ebp),%edx
5486e8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5486eb:	3b d1                	cmp    %ecx,%edx
5486ed:	0f 82 67 ff ff ff    	jb     0x54865a
5486f3:	e9 6a 10 00 00       	jmp    0x549762
5486f8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5486fb:	33 d2                	xor    %edx,%edx
5486fd:	89 55 f4             	mov    %edx,-0xc(%ebp)
548700:	b8 04 00 00 00       	mov    $0x4,%eax
548705:	8b 55 f0             	mov    -0x10(%ebp),%edx
548708:	8b 4d f4             	mov    -0xc(%ebp),%ecx
54870b:	3b ca                	cmp    %edx,%ecx