@text_reg equ ebx
align 64
mygetDigs: call mystrtod22
	cmp byte [edx],','
	jnz @f
	movss [esi],xmm6
	add esi,4
;------
	cmp byte [edx+1],'\'
	jnz .0
.ew:	inc edx
	cmp byte [edx],10
	jnz .ew

;------
.0:	inc edx
	mov @text_reg,edx
	jmp mygetDigs	

@@:	cmp byte [edx],'i'
	jnz @f
	mov [esi],@text_reg
	add esi,4
	inc edx
	cmp byte [edx],','
	jz  .0
	cmp byte [edx],';'
	jz  .1
	cmp byte [edx],13
	jbe  .1
	mov @text_reg,edx
	jmp mygetDigs
@@: movss [esi],xmm6
    add esi,4
.1: ret
align 64
mystrtod22:
      xorps xmm1,xmm1
      mov  edx,@text_reg              ;max 4294967295
      movd xmm7,edx             ;store start digit
      cmp  byte [edx],'+'
      jnz  @f
      inc  edx
@@:   mov  eax,1.0
      movd xmm5,eax
      movd xmm2,eax
      cmp  byte [edx],'-'
      jnz  @f
.ll:  inc  edx
      ;mov  eax,-1.0
      ;movd xmm5,eax
      subss xmm1,xmm5
      movss xmm5,xmm1
@@:   sub eax,eax
      sub @text_reg,@text_reg
.1:   mov al,[edx]
	cmp  byte [edx],'-'
      jz  .ll
        cmp al,32	;if space or tab
        jz .2
	cmp al,9
        jz .2

        sub al,'0'      
        cmp al,9
        ja  @f
      add @text_reg,@text_reg
      lea @text_reg,[@text_reg*5]
      add @text_reg,eax
.2:   inc edx
      jmp .1 ;@b
@@:   cvtsi2ss xmm6,@text_reg     ;store first part
      mulss    xmm6,xmm5    ;znak - or plus
      cmp byte [edx],'.'
      jz  @f
      mov al,[edx]          ;if 202i eto int budet
      cmp al,'i'
      jz  .rr      
      xorps    xmm5,xmm5
      ;movd eax,xmm7
.rr:  ret
@@:   ;mov  eax,1.0
      inc  edx
      ;movd xmm2,eax
      mov  eax,0.1
      movd xmm0,eax
      sub eax,eax
      sub @text_reg,@text_reg
.3:   mov al,[edx]
         sub  al,'0'      
      cmp al,9
      ja  @f
      mulss xmm2,xmm0     
      add @text_reg,@text_reg
      lea @text_reg,[@text_reg*5]
      add @text_reg,eax
      inc edx
      jmp .3
@@:   ;mov  eax,edx
      ;movd     eax,xmm7
      cvtsi2ss xmm0,@text_reg
      mulss    xmm0,xmm2
      mulss    xmm5,xmm0
      addss    xmm6,xmm5
      ret