convert_bmp_to_img: movzx eax,word [ebp+28] mul dword [ebp+18] mov ebx,32 div ebx test edx,edx je noaddword inc eax noaddword: mov [dwps],eax ;dwps-doublewords per string shl eax,2 mov [bps],eax ;bps-bytes per string cmp dword [ebp+34],0 jne yespicsize ;if picture size is defined mul dword [ebp+22] mov dword [ebp+34],eax yespicsize: mov eax,ebp push eax sub eax, [ebp+2];file size mov [soi],eax ;soi-start of image area for drawing pop eax add eax, [ebp+10] mov [sop],eax ;sop-start of picture in file add eax, [ebp+34] mov [eop],eax ;eop-end of picture in file mov eax, [ebp+18] mov ebx,3 mul ebx ;3x pixels in eax mov edi,[soi] ;initializing mov esi,[eop] sub esi,[bps] nextstring: push edi mov ecx,[dwps] cld rep movsd convert1: pop edi sub esi,[bps] sub esi,[bps] cmp esi,[sop] jb nomorestring add edi,eax jmp nextstring nomorestring: ret bps dd 0 dwps dd 0 soi dd 0 sop dd 0 eop dd 0