0,0 → 1,59 |
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 |