549363:	88 0e                	mov    %cl,(%esi)
549365:	8a 45 aa             	mov    -0x56(%ebp),%al
549368:	24 ff                	and    $0xff,%al
54936a:	88 46 01             	mov    %al,0x1(%esi)
54936d:	8a 53 03             	mov    0x3(%ebx),%dl
549370:	8b 4d 08             	mov    0x8(%ebp),%ecx
549373:	d3 fa                	sar    %cl,%edx
549375:	8b 45 14             	mov    0x14(%ebp),%eax
549378:	33 c9                	xor    %ecx,%ecx
54937a:	8a 4b 02             	mov    0x2(%ebx),%cl
54937d:	8b 14 90             	mov    (%eax,%edx,4),%edx
549380:	66 8b 04 4a          	mov    (%edx,%ecx,2),%ax
549384:	66 89 45 aa          	mov    %ax,-0x56(%ebp)
549388:	0f b7 55 aa          	movzwl -0x56(%ebp),%edx
54938c:	c1 fa 08             	sar    $0x8,%edx
54938f:	33 c0                	xor    %eax,%eax
549391:	80 e2 ff             	and    $0xff,%dl
549394:	88 56 02             	mov    %dl,0x2(%esi)
549397:	8a 4d aa             	mov    -0x56(%ebp),%cl
54939a:	80 e1 ff             	and    $0xff,%cl
54939d:	88 4e 03             	mov    %cl,0x3(%esi)
5493a0:	8a 43 05             	mov    0x5(%ebx),%al
5493a3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5493a6:	d3 f8                	sar    %cl,%eax
5493a8:	8b 55 14             	mov    0x14(%ebp),%edx
5493ab:	8b 04 82             	mov    (%edx,%eax,4),%eax
5493ae:	33 d2                	xor    %edx,%edx
5493b0:	8a 53 04             	mov    0x4(%ebx),%dl
5493b3:	66 8b 0c 50          	mov    (%eax,%edx,2),%cx
5493b7:	66 89 4d aa          	mov    %cx,-0x56(%ebp)
5493bb:	0f b7 45 aa          	movzwl -0x56(%ebp),%eax
5493bf:	c1 f8 08             	sar    $0x8,%eax
5493c2:	24 ff                	and    $0xff,%al
5493c4:	88 46 04             	mov    %al,0x4(%esi)
5493c7:	8a 55 aa             	mov    -0x56(%ebp),%dl
5493ca:	80 e2 ff             	and    $0xff,%dl
5493cd:	88 56 05             	mov    %dl,0x5(%esi)
5493d0:	e9 d5 01 00 00       	jmp    0x5495aa
5493d5:	66 83 7d ac 00       	cmpw   $0x0,-0x54(%ebp)
5493da:	75 44                	jne    0x549420
5493dc:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
5493e0:	c1 f9 08             	sar    $0x8,%ecx
5493e3:	80 e1 ff             	and    $0xff,%cl
5493e6:	88 0e                	mov    %cl,(%esi)
5493e8:	8a 47 02             	mov    0x2(%edi),%al
5493eb:	24 ff                	and    $0xff,%al
5493ed:	88 46 01             	mov    %al,0x1(%esi)
5493f0:	0f b7 57 04          	movzwl 0x4(%edi),%edx
5493f4:	c1 fa 08             	sar    $0x8,%edx
5493f7:	80 e2 ff             	and    $0xff,%dl
5493fa:	88 56 02             	mov    %dl,0x2(%esi)
5493fd:	8a 4f 04             	mov    0x4(%edi),%cl
549400:	80 e1 ff             	and    $0xff,%cl
549403:	88 4e 03             	mov    %cl,0x3(%esi)
549406:	0f b7 47 06          	movzwl 0x6(%edi),%eax
54940a:	c1 f8 08             	sar    $0x8,%eax
54940d:	24 ff                	and    $0xff,%al
54940f:	88 46 04             	mov    %al,0x4(%esi)
549412:	8a 57 06             	mov    0x6(%edi),%dl
549415:	80 e2 ff             	and    $0xff,%dl
549418:	88 56 05             	mov    %dl,0x5(%esi)
54941b:	e9 8a 01 00 00       	jmp    0x5495aa
549420:	33 c0                	xor    %eax,%eax
549422:	8b 4d 08             	mov    0x8(%ebp),%ecx
549425:	8a 43 01             	mov    0x1(%ebx),%al
549428:	8b 55 0c             	mov    0xc(%ebp),%edx
54942b:	d3 f8                	sar    %cl,%eax
54942d:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
549430:	33 c0                	xor    %eax,%eax
549432:	8a 03                	mov    (%ebx),%al
549434:	66 8b 14 41          	mov    (%ecx,%eax,2),%dx
549438:	66 89 55 a8          	mov    %dx,-0x58(%ebp)
54943c:	0f b7 4d a8          	movzwl -0x58(%ebp),%ecx
549440:	0f b7 45 ac          	movzwl -0x54(%ebp),%eax
549444:	0f af c8             	imul   %eax,%ecx
549447:	0f b7 55 ac          	movzwl -0x54(%ebp),%edx
54944b:	b8 ff ff 00 00       	mov    $0xffff,%eax
549450:	2b c2                	sub    %edx,%eax
549452:	8b 55 24             	mov    0x24(%ebp),%edx
549455:	0f b7 52 02          	movzwl 0x2(%edx),%edx
549459:	f7 ea                	imul   %edx
54945b:	03 c8                	add    %eax,%ecx
54945d:	81 c1 00 80 00 00    	add    $0x8000,%ecx
549463:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
549466:	8b 45 a4             	mov    -0x5c(%ebp),%eax
549469:	c1 e8 10             	shr    $0x10,%eax
54946c:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
54946f:	03 c1                	add    %ecx,%eax
549471:	c1 e8 10             	shr    $0x10,%eax
549474:	0f b7 d0             	movzwl %ax,%edx
549477:	8b 4d 08             	mov    0x8(%ebp),%ecx
54947a:	81 e2 ff 00 00 00    	and    $0xff,%edx
549480:	d3 fa                	sar    %cl,%edx
549482:	0f b7 c0             	movzwl %ax,%eax
549485:	8b 4d 10             	mov    0x10(%ebp),%ecx
549488:	c1 f8 08             	sar    $0x8,%eax
54948b:	8b 14 91             	mov    (%ecx,%edx,4),%edx
54948e:	66 8b 04 42          	mov    (%edx,%eax,2),%ax
549492:	0f b7 d0             	movzwl %ax,%edx
549495:	c1 fa 08             	sar    $0x8,%edx
549498:	24 ff                	and    $0xff,%al
54949a:	80 e2 ff             	and    $0xff,%dl
54949d:	88 16                	mov    %dl,(%esi)
54949f:	88 46 01             	mov    %al,0x1(%esi)
5494a2:	33 c0                	xor    %eax,%eax
5494a4:	8b 4d 08             	mov    0x8(%ebp),%ecx
5494a7:	8a 43 03             	mov    0x3(%ebx),%al
5494aa:	8b 55 0c             	mov    0xc(%ebp),%edx
5494ad:	d3 f8                	sar    %cl,%eax
5494af:	33 c9                	xor    %ecx,%ecx
5494b1:	8a 4b 02             	mov    0x2(%ebx),%cl
5494b4:	8b 04 82             	mov    (%edx,%eax,4),%eax
5494b7:	66 8b 04 48          	mov    (%eax,%ecx,2),%ax
5494bb:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
5494bf:	0f b7 55 a8          	movzwl -0x58(%ebp),%edx
5494c3:	0f b7 4d ac          	movzwl -0x54(%ebp),%ecx
5494c7:	0f af d1             	imul   %ecx,%edx
5494ca:	0f b7 45 ac          	movzwl -0x54(%ebp),%eax
5494ce:	b9 ff ff 00 00       	mov    $0xffff,%ecx
5494d3:	2b c8                	sub    %eax,%ecx
5494d5:	8b 45 24             	mov    0x24(%ebp),%eax
5494d8:	0f b7 40 04          	movzwl 0x4(%eax),%eax
5494dc:	0f af c8             	imul   %eax,%ecx
5494df:	03 d1                	add    %ecx,%edx
5494e1:	81 c2 00 80 00 00    	add    $0x8000,%edx
5494e7:	89 55 a0             	mov    %edx,-0x60(%ebp)
5494ea:	8b 45 a0             	mov    -0x60(%ebp),%eax
5494ed:	c1 e8 10             	shr    $0x10,%eax
5494f0:	8b 55 a0             	mov    -0x60(%ebp),%edx
5494f3:	03 c2                	add    %edx,%eax
5494f5:	c1 e8 10             	shr    $0x10,%eax
5494f8:	0f b7 d0             	movzwl %ax,%edx
5494fb:	8b 4d 08             	mov    0x8(%ebp),%ecx
5494fe:	81 e2 ff 00 00 00    	and    $0xff,%edx
549504:	d3 fa                	sar    %cl,%edx
549506:	0f b7 c0             	movzwl %ax,%eax
549509:	8b 4d 10             	mov    0x10(%ebp),%ecx
54950c:	c1 f8 08             	sar    $0x8,%eax
54950f:	8b 14 91             	mov    (%ecx,%edx,4),%edx
549512:	66 8b 04 42          	mov    (%edx,%eax,2),%ax
549516:	0f b7 c8             	movzwl %ax,%ecx
549519:	c1 f9 08             	sar    $0x8,%ecx
54951c:	24 ff                	and    $0xff,%al
54951e:	80 e1 ff             	and    $0xff,%cl
549521:	88 4e 02             	mov    %cl,0x2(%esi)
549524:	88 46 03             	mov    %al,0x3(%esi)
549527:	33 c0                	xor    %eax,%eax
549529:	8b 4d 08             	mov    0x8(%ebp),%ecx
54952c:	8a 43 05             	mov    0x5(%ebx),%al
54952f:	8b 55 0c             	mov    0xc(%ebp),%edx
549532:	d3 f8                	sar    %cl,%eax
549534:	8b 04 82             	mov    (%edx,%eax,4),%eax
549537:	33 d2                	xor    %edx,%edx
549539:	8a 53 04             	mov    0x4(%ebx),%dl
54953c:	66 8b 0c 50          	mov    (%eax,%edx,2),%cx
549540:	66 89 4d a8          	mov    %cx,-0x58(%ebp)
549544:	0f b7 45 a8          	movzwl -0x58(%ebp),%eax
549548:	0f b7 55 ac          	movzwl -0x54(%ebp),%edx
54954c:	f7 ea                	imul   %edx
54954e:	0f b7 4d ac          	movzwl -0x54(%ebp),%ecx
549552:	ba ff ff 00 00       	mov    $0xffff,%edx
549557:	2b d1                	sub    %ecx,%edx
549559:	8b 4d 24             	mov    0x24(%ebp),%ecx
54955c:	0f b7 49 06          	movzwl 0x6(%ecx),%ecx
549560:	0f af d1             	imul   %ecx,%edx
549563:	03 c2                	add    %edx,%eax
549565:	05 00 80 00 00       	add    $0x8000,%eax
54956a:	89 45 9c             	mov    %eax,-0x64(%ebp)
54956d:	8b 45 9c             	mov    -0x64(%ebp),%eax
549570:	c1 e8 10             	shr    $0x10,%eax
549573:	8b 55 9c             	mov    -0x64(%ebp),%edx
549576:	03 c2                	add    %edx,%eax
549578:	c1 e8 10             	shr    $0x10,%eax
54957b:	0f b7 d0             	movzwl %ax,%edx
54957e:	8b 4d 08             	mov    0x8(%ebp),%ecx
549581:	81 e2 ff 00 00 00    	and    $0xff,%edx
549587:	d3 fa                	sar    %cl,%edx
549589:	0f b7 c0             	movzwl %ax,%eax
54958c:	8b 4d 10             	mov    0x10(%ebp),%ecx
54958f:	c1 f8 08             	sar    $0x8,%eax
549592:	8b 14 91             	mov    (%ecx,%edx,4),%edx
549595:	66 8b 04 42          	mov    (%edx,%eax,2),%ax
549599:	0f b7 d0             	movzwl %ax,%edx
54959c:	c1 fa 08             	sar    $0x8,%edx
54959f:	80 e2 ff             	and    $0xff,%dl
5495a2:	24 ff                	and    $0xff,%al
5495a4:	88 56 04             	mov    %dl,0x4(%esi)
5495a7:	88 46 05             	mov    %al,0x5(%esi)
5495aa:	ff 45 f4             	incl   -0xc(%ebp)
5495ad:	83 c3 08             	add    $0x8,%ebx
5495b0:	83 c6 06             	add    $0x6,%esi
5495b3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5495b6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5495b9:	3b c1                	cmp    %ecx,%eax
5495bb:	0f 82 5a fd ff ff    	jb     0x54931b
5495c1:	e9 9c 01 00 00       	jmp    0x549762
5495c6:	33 c0                	xor    %eax,%eax
5495c8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5495cb:	8b 75 f8             	mov    -0x8(%ebp),%esi
5495ce:	89 45 f4             	mov    %eax,-0xc(%ebp)
5495d1:	8b 55 f4             	mov    -0xc(%ebp),%edx
5495d4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5495d7:	3b d1                	cmp    %ecx,%edx
5495d9:	0f 83 83 01 00 00    	jae    0x549762
5495df:	33 c0                	xor    %eax,%eax
5495e1:	33 d2                	xor    %edx,%edx
5495e3:	8a 43 06             	mov    0x6(%ebx),%al
5495e6:	8a 53 07             	mov    0x7(%ebx),%dl
5495e9:	c1 e0 08             	shl    $0x8,%eax
5495ec:	66 03 c2             	add    %dx,%ax
5495ef:	66 89 45 9a          	mov    %ax,-0x66(%ebp)
5495f3:	66 81 7d 9a ff ff    	cmpw   $0xffff,-0x66(%ebp)
5495f9:	75 11                	jne    0x54960c
5495fb:	6a 06                	push   $0x6
5495fd:	53                   	push   %ebx
5495fe:	56                   	push   %esi
5495ff:	e8 dc cd fd ff       	call   0x5263e0
549604:	83 c4 0c             	add    $0xc,%esp
549607:	e9 3f 01 00 00       	jmp    0x54974b
54960c:	66 83 7d 9a 00       	cmpw   $0x0,-0x66(%ebp)
549611:	75 44                	jne    0x549657
549613:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
549617:	c1 f9 08             	sar    $0x8,%ecx
54961a:	80 e1 ff             	and    $0xff,%cl
54961d:	88 0e                	mov    %cl,(%esi)
54961f:	8a 47 02             	mov    0x2(%edi),%al
549622:	24 ff                	and    $0xff,%al
549624:	88 46 01             	mov    %al,0x1(%esi)
549627:	0f b7 57 04          	movzwl 0x4(%edi),%edx
54962b:	c1 fa 08             	sar    $0x8,%edx
54962e:	80 e2 ff             	and    $0xff,%dl
549631:	88 56 02             	mov    %dl,0x2(%esi)
549634:	8a 4f 04             	mov    0x4(%edi),%cl
549637:	80 e1 ff             	and    $0xff,%cl
54963a:	88 4e 03             	mov    %cl,0x3(%esi)
54963d:	0f b7 47 06          	movzwl 0x6(%edi),%eax
549641:	c1 f8 08             	sar    $0x8,%eax
549644:	24 ff                	and    $0xff,%al
549646:	88 46 04             	mov    %al,0x4(%esi)
549649:	8a 57 06             	mov    0x6(%edi),%dl
54964c:	80 e2 ff             	and    $0xff,%dl
54964f:	88 56 05             	mov    %dl,0x5(%esi)
549652:	e9 f4 00 00 00       	jmp    0x54974b
549657:	33 c9                	xor    %ecx,%ecx
549659:	33 c0                	xor    %eax,%eax
54965b:	8a 0b                	mov    (%ebx),%cl
54965d:	8a 43 01             	mov    0x1(%ebx),%al
549660:	c1 e1 08             	shl    $0x8,%ecx
549663:	33 d2                	xor    %edx,%edx
549665:	66 03 c8             	add    %ax,%cx
549668:	33 c0                	xor    %eax,%eax
54966a:	66 89 4d 98          	mov    %cx,-0x68(%ebp)
54966e:	33 c9                	xor    %ecx,%ecx
549670:	8a 53 02             	mov    0x2(%ebx),%dl
549673:	8a 4b 03             	mov    0x3(%ebx),%cl
549676:	c1 e2 08             	shl    $0x8,%edx
549679:	66 03 d1             	add    %cx,%dx
54967c:	66 89 55 96          	mov    %dx,-0x6a(%ebp)
549680:	33 d2                	xor    %edx,%edx
549682:	8a 43 04             	mov    0x4(%ebx),%al
549685:	8a 53 05             	mov    0x5(%ebx),%dl
549688:	c1 e0 08             	shl    $0x8,%eax
54968b:	66 03 c2             	add    %dx,%ax
54968e:	66 89 45 94          	mov    %ax,-0x6c(%ebp)
549692:	0f b7 45 98          	movzwl -0x68(%ebp),%eax
549696:	0f b7 55 9a          	movzwl -0x66(%ebp),%edx
54969a:	f7 ea                	imul   %edx
54969c:	0f b7 4d 9a          	movzwl -0x66(%ebp),%ecx
5496a0:	ba ff ff 00 00       	mov    $0xffff,%edx
5496a5:	2b d1                	sub    %ecx,%edx
5496a7:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
5496ab:	0f af d1             	imul   %ecx,%edx
5496ae:	03 c2                	add    %edx,%eax
5496b0:	05 00 80 00 00       	add    $0x8000,%eax
5496b5:	8b d0                	mov    %eax,%edx
5496b7:	c1 ea 10             	shr    $0x10,%edx
5496ba:	03 c2                	add    %edx,%eax
5496bc:	c1 e8 10             	shr    $0x10,%eax
5496bf:	0f b7 c8             	movzwl %ax,%ecx
5496c2:	c1 f9 08             	sar    $0x8,%ecx
5496c5:	80 e1 ff             	and    $0xff,%cl
5496c8:	24 ff                	and    $0xff,%al
5496ca:	88 0e                	mov    %cl,(%esi)
5496cc:	88 46 01             	mov    %al,0x1(%esi)
5496cf:	0f b7 45 96          	movzwl -0x6a(%ebp),%eax
5496d3:	0f b7 55 9a          	movzwl -0x66(%ebp),%edx
5496d7:	f7 ea                	imul   %edx
5496d9:	0f b7 4d 9a          	movzwl -0x66(%ebp),%ecx
5496dd:	ba ff ff 00 00       	mov    $0xffff,%edx
5496e2:	2b d1                	sub    %ecx,%edx
5496e4:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
5496e8:	0f af d1             	imul   %ecx,%edx
5496eb:	03 c2                	add    %edx,%eax
5496ed:	05 00 80 00 00       	add    $0x8000,%eax
5496f2:	8b d0                	mov    %eax,%edx
5496f4:	c1 ea 10             	shr    $0x10,%edx
5496f7:	03 c2                	add    %edx,%eax
5496f9:	c1 e8 10             	shr    $0x10,%eax
5496fc:	0f b7 c8             	movzwl %ax,%ecx
5496ff:	c1 f9 08             	sar    $0x8,%ecx
549702:	80 e1 ff             	and    $0xff,%cl
549705:	24 ff                	and    $0xff,%al
549707:	88 4e 02             	mov    %cl,0x2(%esi)
54970a:	88 46 03             	mov    %al,0x3(%esi)
54970d:	0f b7 45 94          	movzwl -0x6c(%ebp),%eax
549711:	0f b7 55 9a          	movzwl -0x66(%ebp),%edx
549715:	f7 ea                	imul   %edx
549717:	0f b7 4d 9a          	movzwl -0x66(%ebp),%ecx
54971b:	ba ff ff 00 00       	mov    $0xffff,%edx
549720:	2b d1                	sub    %ecx,%edx
549722:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
549726:	0f af d1             	imul   %ecx,%edx
549729:	03 c2                	add    %edx,%eax
54972b:	05 00 80 00 00       	add    $0x8000,%eax
549730:	8b d0                	mov    %eax,%edx
549732:	c1 ea 10             	shr    $0x10,%edx
549735:	03 c2                	add    %edx,%eax
549737:	c1 e8 10             	shr    $0x10,%eax
54973a:	0f b7 c8             	movzwl %ax,%ecx
54973d:	c1 f9 08             	sar    $0x8,%ecx
549740:	80 e1 ff             	and    $0xff,%cl
549743:	24 ff                	and    $0xff,%al
549745:	88 4e 04             	mov    %cl,0x4(%esi)
549748:	88 46 05             	mov    %al,0x5(%esi)
54974b:	ff 45 f4             	incl   -0xc(%ebp)
54974e:	83 c3 08             	add    $0x8,%ebx
549751:	83 c6 06             	add    $0x6,%esi
549754:	8b 45 f4             	mov    -0xc(%ebp),%eax
549757:	8b 55 f0             	mov    -0x10(%ebp),%edx
54975a:	3b c2                	cmp    %edx,%eax
54975c:	0f 82 7d fe ff ff    	jb     0x5495df
549762:	8b 45 fc             	mov    -0x4(%ebp),%eax
549765:	f6 40 08 04          	testb  $0x4,0x8(%eax)
549769:	74 3e                	je     0x5497a9
54976b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54976e:	80 61 08 fb          	andb   $0xfb,0x8(%ecx)
549772:	8b 45 fc             	mov    -0x4(%ebp),%eax
549775:	33 c9                	xor    %ecx,%ecx
549777:	fe 48 0a             	decb   0xa(%eax)
54977a:	8b 55 fc             	mov    -0x4(%ebp),%edx
54977d:	8b 45 fc             	mov    -0x4(%ebp),%eax
549780:	8a 4a 0a             	mov    0xa(%edx),%cl
549783:	33 d2                	xor    %edx,%edx
549785:	8a 50 09             	mov    0x9(%eax),%dl
549788:	8b 45 fc             	mov    -0x4(%ebp),%eax
54978b:	0f af ca             	imul   %edx,%ecx
54978e:	88 48 0b             	mov    %cl,0xb(%eax)
549791:	33 c9                	xor    %ecx,%ecx
549793:	8b 55 fc             	mov    -0x4(%ebp),%edx
549796:	8b 45 fc             	mov    -0x4(%ebp),%eax