;-----------------------------------------------------------
;-------analizing picture to palette------------------------
;-----------------------------------------------------------
analizing_picture_to_palette:

	 mov eax,[Picture_SizeX]
	 mov ebx,[Picture_SizeY]
	 imul eax,ebx
	 mov ecx,eax
	 mov edx,[PointerToPicture]
	 mov esi,1 ;counter colors in palette

	 ;put firs color of picture how one color in palette
	 mov ebp,[PointerToPalette]
	 mov eax,[edx]
	 and eax,0xffffff
	 mov [ebp],eax

	 analizing_to_palette:
	 mov eax,[edx]
	 and eax,0xffffff

	 mov edi,esi
	 mov ebp,[PointerToPalette]
	 next_color_in_palette:
	 mov ebx,[ebp]
	 and ebx,0xffffff
	 cmp ebx,eax	     ;this is color have in palette
	 je exit_loop_palette
	 add ebp,4
	 dec edi
	 jnz next_color_in_palette

	 inc esi
	 cmp esi,256 ;256 colors
	 ja more_than_256_colors
	 mov ebp,[PointerToPalette]
	 mov ebx,esi
	 dec ebx
	 shl ebx,2
	 add ebp,ebx
	 mov [ebp],ax
	 shr eax,16
	 mov [ebp+2],al

	 exit_loop_palette:

	 add edx,3
	 dec ecx
	 jnz analizing_to_palette


	 more_than_256_colors:
	 mov eax,esi

	 ret