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
549799:	8a 4a 0b             	mov    0xb(%edx),%cl
54979c:	0f af 4d f0          	imul   -0x10(%ebp),%ecx
5497a0:	83 c1 07             	add    $0x7,%ecx
5497a3:	c1 e9 03             	shr    $0x3,%ecx
5497a6:	89 48 04             	mov    %ecx,0x4(%eax)
5497a9:	5f                   	pop    %edi
5497aa:	5e                   	pop    %esi
5497ab:	5b                   	pop    %ebx
5497ac:	8b e5                	mov    %ebp,%esp
5497ae:	5d                   	pop    %ebp
5497af:	c2 24 00             	ret    $0x24
5497b2:	90                   	nop
5497b3:	90                   	nop
5497b4:	55                   	push   %ebp
5497b5:	8b ec                	mov    %esp,%ebp
5497b7:	83 c4 dc             	add    $0xffffffdc,%esp
5497ba:	53                   	push   %ebx
5497bb:	56                   	push   %esi
5497bc:	57                   	push   %edi
5497bd:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5497c0:	89 55 f8             	mov    %edx,-0x8(%ebp)
5497c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
5497c6:	8b 55 0c             	mov    0xc(%ebp),%edx
5497c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
5497cc:	8b 08                	mov    (%eax),%ecx
5497ce:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5497d1:	8b 45 fc             	mov    -0x4(%ebp),%eax
5497d4:	8a 48 09             	mov    0x9(%eax),%cl
5497d7:	80 f9 08             	cmp    $0x8,%cl
5497da:	77 07                	ja     0x5497e3
5497dc:	8b 45 f4             	mov    -0xc(%ebp),%eax
5497df:	85 c0                	test   %eax,%eax
5497e1:	75 16                	jne    0x5497f9
5497e3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5497e6:	8a 41 09             	mov    0x9(%ecx),%al
5497e9:	3c 10                	cmp    $0x10,%al
5497eb:	0f 85 48 04 00 00    	jne    0x549c39
5497f1:	85 d2                	test   %edx,%edx
5497f3:	0f 84 40 04 00 00    	je     0x549c39
5497f9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5497fc:	8a 41 08             	mov    0x8(%ecx),%al
5497ff:	2c 01                	sub    $0x1,%al
549801:	0f 82 6a 02 00 00    	jb     0x549a71
549807:	fe c8                	dec    %al
549809:	74 15                	je     0x549820
54980b:	2c 02                	sub    $0x2,%al
54980d:	0f 84 e2 01 00 00    	je     0x5499f5
549813:	2c 02                	sub    $0x2,%al
549815:	0f 84 ef 00 00 00    	je     0x54990a
54981b:	e9 19 04 00 00       	jmp    0x549c39
549820:	8b 4d fc             	mov    -0x4(%ebp),%ecx
549823:	8a 41 09             	mov    0x9(%ecx),%al
549826:	3c 08                	cmp    $0x8,%al
549828:	75 44                	jne    0x54986e
54982a:	8b 75 f8             	mov    -0x8(%ebp),%esi
54982d:	33 c0                	xor    %eax,%eax
54982f:	8b 55 f0             	mov    -0x10(%ebp),%edx
549832:	3b c2                	cmp    %edx,%eax
549834:	0f 83 ff 03 00 00    	jae    0x549c39
54983a:	33 c9                	xor    %ecx,%ecx
54983c:	8a 0e                	mov    (%esi),%cl
54983e:	8b 55 f4             	mov    -0xc(%ebp),%edx
549841:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
549844:	88 0e                	mov    %cl,(%esi)
549846:	46                   	inc    %esi
549847:	33 d2                	xor    %edx,%edx
549849:	8a 16                	mov    (%esi),%dl
54984b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
54984e:	8a 14 11             	mov    (%ecx,%edx,1),%dl
549851:	88 16                	mov    %dl,(%esi)
549853:	46                   	inc    %esi
549854:	33 c9                	xor    %ecx,%ecx
549856:	8a 0e                	mov    (%esi),%cl
549858:	8b 55 f4             	mov    -0xc(%ebp),%edx
54985b:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
54985e:	88 0e                	mov    %cl,(%esi)
549860:	46                   	inc    %esi
549861:	40                   	inc    %eax
549862:	8b 55 f0             	mov    -0x10(%ebp),%edx
549865:	3b c2                	cmp    %edx,%eax
549867:	72 d1                	jb     0x54983a
549869:	e9 cb 03 00 00       	jmp    0x549c39
54986e:	8b 75 f8             	mov    -0x8(%ebp),%esi
549871:	33 c0                	xor    %eax,%eax
549873:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549876:	3b c1                	cmp    %ecx,%eax
549878:	0f 83 bb 03 00 00    	jae    0x549c39
54987e:	33 db                	xor    %ebx,%ebx
549880:	8b 4d 08             	mov    0x8(%ebp),%ecx
549883:	8a 5e 01             	mov    0x1(%esi),%bl
549886:	d3 fb                	sar    %cl,%ebx
549888:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
54988b:	33 db                	xor    %ebx,%ebx
54988d:	8a 1e                	mov    (%esi),%bl
54988f:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
549893:	0f b7 d9             	movzwl %cx,%ebx
549896:	c1 fb 08             	sar    $0x8,%ebx
549899:	80 e1 ff             	and    $0xff,%cl
54989c:	80 e3 ff             	and    $0xff,%bl
54989f:	88 1e                	mov    %bl,(%esi)
5498a1:	88 4e 01             	mov    %cl,0x1(%esi)
5498a4:	83 c6 02             	add    $0x2,%esi
5498a7:	33 db                	xor    %ebx,%ebx
5498a9:	8b 4d 08             	mov    0x8(%ebp),%ecx
5498ac:	8a 5e 01             	mov    0x1(%esi),%bl
5498af:	d3 fb                	sar    %cl,%ebx
5498b1:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
5498b4:	33 db                	xor    %ebx,%ebx
5498b6:	8a 1e                	mov    (%esi),%bl
5498b8:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
5498bc:	0f b7 d9             	movzwl %cx,%ebx
5498bf:	c1 fb 08             	sar    $0x8,%ebx
5498c2:	80 e1 ff             	and    $0xff,%cl
5498c5:	80 e3 ff             	and    $0xff,%bl
5498c8:	88 1e                	mov    %bl,(%esi)
5498ca:	88 4e 01             	mov    %cl,0x1(%esi)
5498cd:	83 c6 02             	add    $0x2,%esi
5498d0:	33 db                	xor    %ebx,%ebx
5498d2:	8b 4d 08             	mov    0x8(%ebp),%ecx
5498d5:	8a 5e 01             	mov    0x1(%esi),%bl
5498d8:	d3 fb                	sar    %cl,%ebx
5498da:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
5498dd:	33 db                	xor    %ebx,%ebx
5498df:	8a 1e                	mov    (%esi),%bl
5498e1:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
5498e5:	0f b7 d9             	movzwl %cx,%ebx
5498e8:	c1 fb 08             	sar    $0x8,%ebx
5498eb:	80 e1 ff             	and    $0xff,%cl
5498ee:	80 e3 ff             	and    $0xff,%bl
5498f1:	88 1e                	mov    %bl,(%esi)
5498f3:	88 4e 01             	mov    %cl,0x1(%esi)
5498f6:	83 c6 02             	add    $0x2,%esi
5498f9:	40                   	inc    %eax
5498fa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5498fd:	3b c1                	cmp    %ecx,%eax
5498ff:	0f 82 79 ff ff ff    	jb     0x54987e
549905:	e9 2f 03 00 00       	jmp    0x549c39
54990a:	8b 45 fc             	mov    -0x4(%ebp),%eax
54990d:	8a 40 09             	mov    0x9(%eax),%al
549910:	3c 08                	cmp    $0x8,%al
549912:	75 45                	jne    0x549959
549914:	8b 75 f8             	mov    -0x8(%ebp),%esi
549917:	33 c0                	xor    %eax,%eax
549919:	8b 55 f0             	mov    -0x10(%ebp),%edx
54991c:	3b c2                	cmp    %edx,%eax
54991e:	0f 83 15 03 00 00    	jae    0x549c39
549924:	33 c9                	xor    %ecx,%ecx
549926:	8b 55 f4             	mov    -0xc(%ebp),%edx
549929:	8a 0e                	mov    (%esi),%cl
54992b:	40                   	inc    %eax
54992c:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
54992f:	33 d2                	xor    %edx,%edx
549931:	88 0e                	mov    %cl,(%esi)
549933:	46                   	inc    %esi
549934:	8b 4d f4             	mov    -0xc(%ebp),%ecx
549937:	8a 16                	mov    (%esi),%dl
549939:	8a 14 11             	mov    (%ecx,%edx,1),%dl
54993c:	33 c9                	xor    %ecx,%ecx
54993e:	88 16                	mov    %dl,(%esi)
549940:	46                   	inc    %esi
549941:	8b 55 f4             	mov    -0xc(%ebp),%edx
549944:	8a 0e                	mov    (%esi),%cl
549946:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
549949:	88 0e                	mov    %cl,(%esi)
54994b:	46                   	inc    %esi
54994c:	46                   	inc    %esi
54994d:	8b 55 f0             	mov    -0x10(%ebp),%edx
549950:	3b c2                	cmp    %edx,%eax
549952:	72 d0                	jb     0x549924
549954:	e9 e0 02 00 00       	jmp    0x549c39
549959:	8b 75 f8             	mov    -0x8(%ebp),%esi
54995c:	33 c0                	xor    %eax,%eax
54995e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549961:	3b c1                	cmp    %ecx,%eax
549963:	0f 83 d0 02 00 00    	jae    0x549c39