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
549969:	33 db                	xor    %ebx,%ebx
54996b:	8b 4d 08             	mov    0x8(%ebp),%ecx
54996e:	8a 5e 01             	mov    0x1(%esi),%bl
549971:	d3 fb                	sar    %cl,%ebx
549973:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
549976:	33 db                	xor    %ebx,%ebx
549978:	8a 1e                	mov    (%esi),%bl
54997a:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
54997e:	0f b7 d9             	movzwl %cx,%ebx
549981:	c1 fb 08             	sar    $0x8,%ebx
549984:	80 e1 ff             	and    $0xff,%cl
549987:	80 e3 ff             	and    $0xff,%bl
54998a:	88 1e                	mov    %bl,(%esi)
54998c:	88 4e 01             	mov    %cl,0x1(%esi)
54998f:	83 c6 02             	add    $0x2,%esi
549992:	33 db                	xor    %ebx,%ebx
549994:	8b 4d 08             	mov    0x8(%ebp),%ecx
549997:	8a 5e 01             	mov    0x1(%esi),%bl
54999a:	d3 fb                	sar    %cl,%ebx
54999c:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
54999f:	33 db                	xor    %ebx,%ebx
5499a1:	8a 1e                	mov    (%esi),%bl
5499a3:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
5499a7:	0f b7 d9             	movzwl %cx,%ebx
5499aa:	c1 fb 08             	sar    $0x8,%ebx
5499ad:	80 e1 ff             	and    $0xff,%cl
5499b0:	80 e3 ff             	and    $0xff,%bl
5499b3:	88 1e                	mov    %bl,(%esi)
5499b5:	88 4e 01             	mov    %cl,0x1(%esi)
5499b8:	83 c6 02             	add    $0x2,%esi
5499bb:	33 db                	xor    %ebx,%ebx
5499bd:	8b 4d 08             	mov    0x8(%ebp),%ecx
5499c0:	8a 5e 01             	mov    0x1(%esi),%bl
5499c3:	d3 fb                	sar    %cl,%ebx
5499c5:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
5499c8:	33 db                	xor    %ebx,%ebx
5499ca:	8a 1e                	mov    (%esi),%bl
5499cc:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
5499d0:	0f b7 d9             	movzwl %cx,%ebx
5499d3:	c1 fb 08             	sar    $0x8,%ebx
5499d6:	80 e1 ff             	and    $0xff,%cl
5499d9:	80 e3 ff             	and    $0xff,%bl
5499dc:	88 1e                	mov    %bl,(%esi)
5499de:	88 4e 01             	mov    %cl,0x1(%esi)
5499e1:	83 c6 04             	add    $0x4,%esi
5499e4:	40                   	inc    %eax
5499e5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5499e8:	3b c1                	cmp    %ecx,%eax
5499ea:	0f 82 79 ff ff ff    	jb     0x549969
5499f0:	e9 44 02 00 00       	jmp    0x549c39
5499f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
5499f8:	8a 40 09             	mov    0x9(%eax),%al
5499fb:	3c 08                	cmp    $0x8,%al
5499fd:	75 2c                	jne    0x549a2b
5499ff:	8b 75 f8             	mov    -0x8(%ebp),%esi
549a02:	33 c0                	xor    %eax,%eax
549a04:	8b 55 f0             	mov    -0x10(%ebp),%edx
549a07:	3b c2                	cmp    %edx,%eax
549a09:	0f 83 2a 02 00 00    	jae    0x549c39
549a0f:	33 c9                	xor    %ecx,%ecx
549a11:	8a 0e                	mov    (%esi),%cl
549a13:	8b 55 f4             	mov    -0xc(%ebp),%edx
549a16:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
549a19:	88 0e                	mov    %cl,(%esi)
549a1b:	83 c6 02             	add    $0x2,%esi
549a1e:	40                   	inc    %eax
549a1f:	8b 55 f0             	mov    -0x10(%ebp),%edx
549a22:	3b c2                	cmp    %edx,%eax
549a24:	72 e9                	jb     0x549a0f
549a26:	e9 0e 02 00 00       	jmp    0x549c39
549a2b:	8b 75 f8             	mov    -0x8(%ebp),%esi
549a2e:	33 c0                	xor    %eax,%eax
549a30:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549a33:	3b c1                	cmp    %ecx,%eax
549a35:	0f 83 fe 01 00 00    	jae    0x549c39
549a3b:	33 db                	xor    %ebx,%ebx
549a3d:	8b 4d 08             	mov    0x8(%ebp),%ecx
549a40:	8a 5e 01             	mov    0x1(%esi),%bl
549a43:	d3 fb                	sar    %cl,%ebx
549a45:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
549a48:	33 db                	xor    %ebx,%ebx
549a4a:	8a 1e                	mov    (%esi),%bl
549a4c:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
549a50:	0f b7 d9             	movzwl %cx,%ebx
549a53:	c1 fb 08             	sar    $0x8,%ebx
549a56:	80 e1 ff             	and    $0xff,%cl
549a59:	80 e3 ff             	and    $0xff,%bl
549a5c:	88 1e                	mov    %bl,(%esi)
549a5e:	88 4e 01             	mov    %cl,0x1(%esi)
549a61:	83 c6 04             	add    $0x4,%esi
549a64:	40                   	inc    %eax
549a65:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549a68:	3b c1                	cmp    %ecx,%eax
549a6a:	72 cf                	jb     0x549a3b
549a6c:	e9 c8 01 00 00       	jmp    0x549c39
549a71:	8b 45 fc             	mov    -0x4(%ebp),%eax
549a74:	8a 40 09             	mov    0x9(%eax),%al
549a77:	3c 02                	cmp    $0x2,%al
549a79:	0f 85 e3 00 00 00    	jne    0x549b62
549a7f:	8b 75 f8             	mov    -0x8(%ebp),%esi
549a82:	33 c0                	xor    %eax,%eax
549a84:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549a87:	3b c1                	cmp    %ecx,%eax
549a89:	0f 83 d3 00 00 00    	jae    0x549b62
549a8f:	33 c9                	xor    %ecx,%ecx
549a91:	8a 0e                	mov    (%esi),%cl
549a93:	8b d9                	mov    %ecx,%ebx
549a95:	81 e3 c0 00 00 00    	and    $0xc0,%ebx
549a9b:	89 5d ec             	mov    %ebx,-0x14(%ebp)
549a9e:	8b d9                	mov    %ecx,%ebx
549aa0:	83 e3 30             	and    $0x30,%ebx
549aa3:	89 5d e8             	mov    %ebx,-0x18(%ebp)
549aa6:	8b d9                	mov    %ecx,%ebx
549aa8:	83 e3 0c             	and    $0xc,%ebx
549aab:	83 e1 03             	and    $0x3,%ecx
549aae:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
549ab1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
549ab4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
549ab7:	8b 5d ec             	mov    -0x14(%ebp),%ebx
549aba:	c1 f9 02             	sar    $0x2,%ecx
549abd:	8b 7d e8             	mov    -0x18(%ebp),%edi
549ac0:	0b cb                	or     %ebx,%ecx
549ac2:	8b 5d ec             	mov    -0x14(%ebp),%ebx
549ac5:	c1 fb 04             	sar    $0x4,%ebx
549ac8:	0b cb                	or     %ebx,%ecx
549aca:	8b 5d ec             	mov    -0x14(%ebp),%ebx
549acd:	c1 fb 06             	sar    $0x6,%ebx
549ad0:	0b cb                	or     %ebx,%ecx
549ad2:	8b 5d f4             	mov    -0xc(%ebp),%ebx
549ad5:	c1 ff 02             	sar    $0x2,%edi
549ad8:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
549adb:	8b 5d e8             	mov    -0x18(%ebp),%ebx
549ade:	80 e1 c0             	and    $0xc0,%cl
549ae1:	c1 e3 02             	shl    $0x2,%ebx
549ae4:	0b 5d e8             	or     -0x18(%ebp),%ebx
549ae7:	0b df                	or     %edi,%ebx
549ae9:	8b 7d e8             	mov    -0x18(%ebp),%edi
549aec:	c1 ff 04             	sar    $0x4,%edi
549aef:	0b df                	or     %edi,%ebx
549af1:	8b 7d f4             	mov    -0xc(%ebp),%edi
549af4:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
549af8:	c1 fb 02             	sar    $0x2,%ebx
549afb:	8b 7d e4             	mov    -0x1c(%ebp),%edi
549afe:	80 e3 30             	and    $0x30,%bl
549b01:	0a cb                	or     %bl,%cl
549b03:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
549b06:	c1 e3 04             	shl    $0x4,%ebx
549b09:	c1 e7 02             	shl    $0x2,%edi
549b0c:	0b df                	or     %edi,%ebx
549b0e:	8b 7d e4             	mov    -0x1c(%ebp),%edi
549b11:	0b df                	or     %edi,%ebx
549b13:	8b 7d e4             	mov    -0x1c(%ebp),%edi
549b16:	c1 ff 02             	sar    $0x2,%edi
549b19:	0b df                	or     %edi,%ebx
549b1b:	8b 7d f4             	mov    -0xc(%ebp),%edi
549b1e:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
549b22:	c1 fb 04             	sar    $0x4,%ebx
549b25:	8b 7d e0             	mov    -0x20(%ebp),%edi
549b28:	80 e3 0c             	and    $0xc,%bl
549b2b:	0a cb                	or     %bl,%cl
549b2d:	8b 5d e0             	mov    -0x20(%ebp),%ebx
549b30:	c1 e3 06             	shl    $0x6,%ebx
549b33:	c1 e7 04             	shl    $0x4,%edi
549b36:	0b df                	or     %edi,%ebx
549b38:	8b 7d e0             	mov    -0x20(%ebp),%edi
549b3b:	c1 e7 02             	shl    $0x2,%edi
549b3e:	0b df                	or     %edi,%ebx
549b40:	8b 7d e0             	mov    -0x20(%ebp),%edi
549b43:	0b df                	or     %edi,%ebx
549b45:	8b 7d f4             	mov    -0xc(%ebp),%edi
549b48:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
549b4c:	c1 fb 06             	sar    $0x6,%ebx
549b4f:	0a cb                	or     %bl,%cl
549b51:	88 0e                	mov    %cl,(%esi)
549b53:	46                   	inc    %esi