Function at 0x64a64f50
Capabilities:
Get process heap flags
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xfc
mov dword [ebp - 0x78], eax
mov eax, dword [edx]
mov dword [ebp - 0x60], ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x6c], eax
cmp eax, 4
ja case.default.0x64a64f75
mov edi, edx
jmp dword [eax*4 + 0x64ab980c]
fldz
fld dword [edx + 0x1c]
fucompi st(1)
jp 0x64a6533a
jne 0x64a65340
fld dword [edx + 0x20]
fucompi st(1)
fstp st(0)
jp 0x64a65342
jne 0x64a65342
mov eax, dword [edi + 0x10]
test eax, eax
je 0x64a64ff0
mov eax, dword [0x64ac2040]
lea edx, [eax + 1]
mov dword [0x64ac2040], edx
test eax, eax
jne 0x64a64ff0
test byte [0x64ab50b0], 1
je 0x64a64ff0
mov dword [esp + 0xc], str.path_gradient_gamma_correction_not_implemented_n
mov dword [esp + 8], str.brush_fill_pixels
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_3
lea esi, [esi]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x64a65040
mov eax, dword [0x64ac203c]
lea edx, [eax + 1]
mov dword [0x64ac203c], edx
test eax, eax
jne 0x64a65040
test byte [0x64ab50b0], 1
je 0x64a65040
mov dword [esp + 0xc], str.path_gradient_blend_not_implemented_n
mov dword [esp + 8], str.brush_fill_pixels
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_3
lea esi, [esi]
lea esi, [esi]
mov eax, dword [edi + 0x40]
test eax, eax
je 0x64a6505d
mov eax, dword [0x64ac2038]
lea edx, [eax + 1]
mov dword [0x64ac2038], edx
test eax, eax
je 0x64a657bf
mov eax, dword [0x64ac2034]
test eax, eax
je 0x64a6577c
lea eax, [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
mov dword [ebp - 0x88], eax
sub esp, 8
test eax, eax
jne 0x64a6515a
lea ebx, [ebp - 0x30]
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 4
mov eax, dword [ebp - 0x78]
mov dword [esp], eax
call sym._get_graphics_transform
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x64a650d9
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
call sym.gdiplus.dll_GdipTransformPath
mov dword [ebp - 0x88], eax
sub esp, 8
test eax, eax
je 0x64a657f5
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePath
sub esp, 4
jmp 0x64a6515a
fild dword [esi]
mov eax, dword [esi]
lea ebx, [ebp - 0x48]
add eax, 1
fst dword [ebp - 0x48]
fild dword [esi + 4]
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 4]
fst dword [ebp - 0x44]
fild dword [ebp - 0x68]
add eax, 1
mov dword [ebp - 0x68], eax
fstp dword [ebp - 0x40]
fstp dword [ebp - 0x3c]
fstp dword [ebp - 0x38]
fild dword [ebp - 0x68]
fstp dword [ebp - 0x34]
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x78]
mov dword [esp], eax
call sym._gdip_transform_points
mov dword [ebp - 0x88], eax
test eax, eax
je 0x64a6538e
jmp 0x64a6515a
fstp st(0)
mov eax, dword [ebp - 0x88]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 8]
test eax, eax
jle 0x64a651bd
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x68], 0
lea ebx, [eax*4]
lea esi, [esi]
nop
test ecx, ecx
jle 0x64a651bd
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
lea edx, [eax + edx*4]
xor eax, eax
nop
mov ecx, dword [edi + 4]
add eax, 1
mov dword [edx], ecx
mov ecx, dword [esi + 0xc]
add edx, ebx
cmp ecx, eax
jg 0x64a651a0
add dword [ebp - 0x68], 1
mov eax, dword [ebp - 0x68]
cmp eax, dword [esi + 8]
jl 0x64a65190
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x48]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov dword [esp], eax
call sym._get_hatch_data
mov dword [ebp - 0x88], eax
test eax, eax
jne case.default.0x64a64f75
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [ebp - 0x6c], eax
mov edx, edi
mov ebx, eax
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x30], eax
mov dword [esp], 0x3e800000
call sym._blend_colors
mov edx, edi
mov dword [ebp - 0x2c], eax
mov eax, ebx
mov dword [esp], 0x3f6a09e6
call sym._blend_colors
mov dword [ebp - 0x74], eax
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x64a6515a
mov eax, dword [ebp - 0x48]
mov edx, dword [esi + 8]
xor edi, edi
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0xc]
shl eax, 2
mov dword [ebp - 0x80], eax
lea esi, [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x68]
add eax, edi
not eax
add eax, dword [ecx + 0x78]
and eax, 7
movzx ebx, byte [ebx + eax]
mov eax, dword [ecx + 0x74]
imul ebx, ebx, 0x10101
mov ecx, eax
mov dword [ebp - 0x7c], eax
and ecx, 7
sar ebx, cl
test edx, edx
jle 0x64a6515a
mov dword [ebp - 0x7c], edi
xor eax, eax
jmp 0x64a652b7
mov ecx, dword [ebp - 0x74]
test edi, edi
jne 0x64a652a7
and edx, 0x82
setne dl
movzx edx, dl
mov ecx, dword [ebp + edx*4 - 0x30]
mov edi, dword [ebp - 0x60]
mov dword [edi + eax*4], ecx
mov edx, dword [esi + 8]
add eax, 1
cmp edx, eax
jle 0x64a652eb
mov ecx, dword [esi]
mov edx, ebx
add ecx, eax
not ecx
and ecx, 7
shr edx, cl
mov ecx, dword [ebp - 0x68]
mov edi, edx
and edi, 1
cmp byte [ecx + 8], 0
jne 0x64a65290
test edi, edi
mov ecx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x60]
cmovne ecx, dword [ebp - 0x70]
mov dword [edi + eax*4], ecx
mov edx, dword [esi + 8]
add eax, 1
cmp edx, eax
jg 0x64a652b7
mov edi, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x80]
add dword [ebp - 0x60], ebx
add edi, 1
cmp edi, dword [esi + 0xc]
jl 0x64a65250
jmp 0x64a6515a
mov ebx, dword [edx + 0x1c]
cmp dword [ebx + 8], 1
je 0x64a6557d
test byte [0x64ab50b0], 1
jne 0x64a65ec5
mov dword [ebp - 0x88], 6
mov eax, dword [ebp - 0x88]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
jmp 0x64a65342
fstp st(0)
mov eax, dword [0x64ac2044]
lea edx, [eax + 1]
mov dword [0x64ac2044], edx
test eax, eax
jne 0x64a64fa6
test byte [0x64ab50b0], 1
je 0x64a64fa6
mov dword [esp + 0xc], str.path_gradient_focus_not_implemented_n
mov dword [esp + 8], str.brush_fill_pixels
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a64fa6
mov eax, dword [edi + 0x3c]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x48]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x1c], eax
mov dword [esp], edx
call sym.gdiplus.dll_GdipInvertMatrix
lea edx, [ebp - 0x30]
sub esp, 4
test eax, eax
mov dword [ebp - 0x88], eax
jne 0x64a6515a
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], edx
call sym.gdiplus.dll_GdipTransformMatrixPoints
mov dword [ebp - 0x88], eax
sub esp, 0xc
test eax, eax
jne 0x64a6515a
fld dword [ebp - 0x48]
fld dword [ebp - 0x40]
mov eax, dword [esi + 0xc]
fsub st(1)
fstp dword [ebp - 0x78]
fld dword [ebp - 0x38]
fsub st(1)
fstp dword [ebp - 0x8c]
test eax, eax
jle 0x64a65158
mov dword [ebp - 0x80], 0
mov eax, dword [esi + 8]
xor edx, edx
fstp dword [ebp - 0x7c]
test eax, eax
jle 0x64a6515a
mov eax, dword [ebp - 0x60]
fild dword [ebp - 0x80]
mov dword [ebp - 0x84], edx
xor ebx, ebx
fmul dword [ebp - 0x8c]
lea eax, [eax + edx*4]
mov dword [ebp - 0x74], eax
fstp dword [ebp - 0x70]
lea esi, [esi]
nop
mov dword [ebp - 0x68], ebx
fild dword [ebp - 0x68]
fmul dword [ebp - 0x78]
fadd dword [ebp - 0x7c]
mov eax, dword [edi + 0x1c]
fadd dword [ebp - 0x70]
fsub dword [edi + 0xc]
fdiv dword [edi + 0x14]
test eax, eax
jne 0x64a65da0
fld1
fld st(1)
fprem
fnstsw ax
sahf
jp 0x64a65474
fstp st(1)
fucomi st(0)
jp 0x64a65f75
fstp st(1)
fstp dword [ebp - 0x68]
fld dword [ebp - 0x68]
fldz
fcompi st(1)
jbe 0x64a65499
fadd dword [0x64ababbc]
cmp dword [edi + 0x2c], 1
je 0x64a654ef
mov edx, dword [edi + 0x28]
mov eax, 1
fld dword [edx + 4]
fxch st(1)
fcomi st(1)
jbe 0x64a65ebb
fstp st(1)
jmp 0x64a654c2
fstp st(1)
add eax, 1
fld dword [edx + eax*4]
fxch st(1)
fcomi st(1)
ja 0x64a654c0
shl eax, 2
lea ecx, [eax - 4]
add edx, ecx
fld dword [edx]
mov edx, dword [edi + 0x24]
fld st(2)
fsub st(2)
fmul dword [edx + ecx]
fxch st(2)
fsub st(1)
fmul dword [edx + eax]
faddp st(2)
fsubp st(2)
fdivrp st(1)
mov eax, dword [edi + 0x38]
test eax, eax
je 0x64a65df0
mov edx, dword [edi + 0x34]
mov eax, 1
fld dword [edx + 4]
fxch st(1)
fcomi st(1)
jbe 0x64a65eee
fstp st(1)
jmp 0x64a6551a
fstp st(1)
add eax, 1
fld dword [edx + eax*4]
fxch st(1)
fcomi st(1)
ja 0x64a65518
shl eax, 2
lea ecx, [eax - 4]
add edx, ecx
fld dword [edx]
mov edx, dword [edi + 0x30]
mov eax, dword [edx + eax]
mov ecx, dword [edx + ecx]
fsub st(1), st(0)
mov edx, eax
mov eax, ecx
fsubp st(2)
fdivrp st(1)
fstp dword [esp]
call sym._blend_colors
mov edx, dword [ebp - 0x74]
mov dword [edx + ebx*4], eax
mov eax, dword [esi + 8]
add ebx, 1
cmp eax, ebx
jg 0x64a65450
add dword [ebp - 0x80], 1
mov edx, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x80]
cmp ebx, dword [esi + 0xc]
jge 0x64a6515a
add edx, dword [ebp + 0xc]
jmp 0x64a65426
mov eax, dword [ebx + 0x38]
fild dword [esi]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x3c]
fst dword [ebp - 0x48]
fild dword [esi + 4]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi]
add eax, 1
fst dword [ebp - 0x44]
mov dword [ebp - 0x68], eax
fild dword [ebp - 0x68]
mov eax, dword [esi + 4]
fstp dword [ebp - 0x40]
add eax, 1
fstp dword [ebp - 0x3c]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x48]
fstp dword [ebp - 0x38]
fild dword [ebp - 0x68]
fstp dword [ebp - 0x34]
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x78]
mov dword [esp], eax
call sym._gdip_transform_points
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x64a6515a
mov eax, dword [edi + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipInvertMatrix
mov dword [ebp - 0x88], eax
sub esp, 4
test eax, eax
jne 0x64a6515a
lea eax, [ebp - 0x48]
mov dword [esp + 8], 3
mov dword [esp + 4], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipTransformMatrixPoints
mov dword [ebp - 0x88], eax
sub esp, 0xc
test eax, eax
jne 0x64a6515a
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x64a65f91
fld dword [ebp - 0x48]
fld dword [ebp - 0x40]
mov edx, dword [esi + 0xc]
fsub st(1)
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x44]
fld dword [ebp - 0x3c]
fsub st(1)
fstp dword [ebp - 0x80]
fxch st(1)
fsubr dword [ebp - 0x38]
fstp dword [ebp - 0x84]
fsubr dword [ebp - 0x34]
fstp dword [ebp - 0x8c]
test edx, edx
jle 0x64a6515a
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 8]
mov dword [ebp + 8], esi
mov esi, dword [ebp - 0x78]
shl edx, 2
mov dword [ebp - 0x90], edx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x6c], edx
xor edx, edx
mov ecx, edx
mov edx, eax
test edx, edx
jle 0x64a6515a
mov dword [ebp - 0x68], ecx
fild dword [ebp - 0x68]
xor ebx, ebx
fld dword [ebp - 0x84]
mov dword [ebp - 0x78], ecx
fmul st(1)
fstp dword [ebp - 0x70]
fmul dword [ebp - 0x8c]
fstp dword [ebp - 0x74]
mov eax, dword [ebp - 0x60]
mov edx, dword [edi + 0x24]
mov dword [ebp - 0x68], ebx
fild dword [ebp - 0x68]
fld dword [ebp - 0x7c]
fmul st(1)
fadd dword [ebp - 0x48]
fadd dword [ebp - 0x70]
fstp dword [ebp - 0x30]
fmul dword [ebp - 0x80]
fadd dword [ebp - 0x44]
fadd dword [ebp - 0x74]
fstp dword [ebp - 0x2c]
mov ecx, dword [eax + 0x38]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 8], eax
lea eax, [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x3c]
mov dword [esp], eax
lea eax, [ebp - 0x58]
call sym._resample_bitmap_pixel
mov edx, dword [ebp - 0x6c]
mov dword [edx + ebx*4], eax
mov eax, dword [ebp + 8]
add ebx, 1
mov edx, dword [eax + 8]
cmp edx, ebx
jg 0x64a656f6
mov ecx, dword [ebp - 0x78]
add ecx, 1
cmp ecx, dword [eax + 0xc]
jge 0x64a6515a
mov ebx, dword [ebp - 0x90]
add dword [ebp - 0x6c], ebx
jmp 0x64a656cf
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 1
mov dword [esp + 4], eax
lea eax, [edi + 0x44]
mov dword [esp], eax
call sym.gdiplus.dll_GdipIsMatrixIdentity
mov eax, dword [ebp - 0x30]
sub esp, 8
test eax, eax
jne 0x64a6506a
test byte [0x64ab50b0], 1
jne 0x64a65f36
mov dword [0x64ac2034], 1
jmp 0x64a6506a
test byte [0x64ab50b0], 1
je 0x64a6505d
mov dword [esp + 0xc], str.path_gradient_preset_blend_not_implemented_n
mov dword [esp + 8], str.brush_fill_pixels
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a6505d
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], edx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.gdiplus.dll_GdipTransformMatrixPoints
mov dword [ebp - 0x88], eax
sub esp, 0xc
test eax, eax
jne 0x64a650d9
mov dword [esp + 8], 0x3f000000
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
call sym.gdiplus.dll_GdipFlattenPath
mov dword [ebp - 0x88], eax
sub esp, 0xc
test eax, eax
jne 0x64a650d9
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xe0], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], eax
test eax, eax
jle 0x64a65f5f
fld dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0xdc], 0
mov edi, eax
mov dword [ebp + 8], esi
fstp dword [ebp - 0xb4]
fld dword [ebp - 0x48]
fstp dword [ebp - 0x84]
jmp 0x64a658ad
movzx edx, byte [ebx + edi]
and edx, 7
cmp dl, 1
je 0x64a65ef8
cmp dword [ebp - 0x68], edi
jle 0x64a65f5f
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 8]
movzx edx, byte [ebx + edi]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x7c]
test dl, 7
mov esi, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
cmove ecx, edi
sub eax, 1
mov dword [ebp - 0xdc], ecx
lea ecx, [eax*4]
cmp eax, edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x70], ecx
lea ecx, [edi*4]
mov esi, ecx
cmovle esi, dword [ebp - 0x70]
add edi, 1
mov dword [ebp - 0x8c], esi
test dl, dl
js 0x64a6590c
cmp dword [ebp - 0x68], edi
jg 0x64a65894
mov esi, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0x6c]
lea ecx, [eax*4]
lea edx, [ebx + esi*8]
cmp eax, esi
mov eax, dword [ebp - 0x78]
fld dword [edx]
fstp dword [ebp - 0xbc]
fld dword [edx + 4]
lea edx, [esi*4]
cmovle edx, ecx
mov eax, dword [eax + edx]
fstp dword [ebp - 0xb0]
lea edx, [edi*8]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x6c]
lea ebx, [eax + edx - 8]
mov eax, dword [ebp + 8]
fld dword [ebx + 4]
fld dword [ebp - 0xb4]
mov edx, dword [eax + 4]
fcomi st(1)
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x6c], edx
fcmovnbe st(0), st(1)
fld dword [ebp - 0xb0]
fxch st(1)
fucomi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
fild dword [ebp - 0x68]
fcompi st(1)
ja 0x64a659b0
fxch st(1)
fstp dword [ebp - 0x70]
fstp dword [esp]
call sym._ceilf
mov edx, dword [ebp - 0x68]
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
or ah, 0xc
mov word [ebp - 0x5c], ax
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x6c]
fldcw word [ebp - 0x5a]
fld dword [ebp - 0x70]
jmp 0x64a659b2
fstp st(0)
fld dword [ebp - 0xb4]
fxch st(1)
mov eax, dword [ebp + 8]
fcomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fld dword [ebp - 0xb0]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
add edx, dword [eax + 0xc]
mov dword [ebp - 0xcc], edx
fild dword [ebp - 0xcc]
fxch st(1)
fcomi st(1)
fstp st(1)
ja 0x64a65a12
fxch st(1)
fstp dword [ebp - 0x68]
fstp dword [esp]
call sym._ceilf
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
or ah, 0xc
mov word [ebp - 0x5c], ax
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0xcc]
fldcw word [ebp - 0x5a]
fld dword [ebp - 0x68]
jmp 0x64a65a14
fstp st(0)
fld dword [ebx]
mov esi, dword [ebp - 0xcc]
fst dword [ebp - 0x74]
fld dword [ebp - 0xb0]
fsub st(2)
fst dword [ebp - 0x70]
fld dword [ebp - 0xbc]
fsub st(2)
fst dword [ebp - 0xa0]
fxch st(2)
fsub dword [ebp - 0x84]
fst dword [ebp - 0xa4]
fld dword [ebp - 0xb4]
fsub st(4)
fst dword [ebp - 0xa8]
fxch st(1)
fmulp st(2)
fmulp st(2)
faddp st(1)
fstp dword [ebp - 0x80]
cmp dword [ebp - 0x6c], esi
jge 0x64a65d86
mov esi, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov eax, dword [eax + esi]
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xd0], 0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
fstp dword [ebp - 0xc8]
nop
mov edi, dword [ebp - 0xd0]
fild dword [ebp - 0x6c]
test edi, edi
jne 0x64a65aec
fld dword [ebp - 0xc8]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x64a65aec
xor dword [ebp - 0xc0], 1
mov dword [ebp - 0xd0], 1
mov ebx, dword [ebp - 0xd4]
test ebx, ebx
jne 0x64a65b15
fld dword [ebp - 0xb0]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x64a65b15
xor dword [ebp - 0xc4], 1
mov dword [ebp - 0xd4], 1
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
jne 0x64a65b45
fld dword [ebp - 0xb4]
fxch st(1)
fcomi st(1)
fstp st(1)
jb 0x64a65b45
xor dword [ebp - 0xc0], 1
xor dword [ebp - 0xc4], 1
mov dword [ebp - 0xd8], 1
mov edx, dword [ebp - 0xc0]
test edx, edx
je 0x64a65e30
fld dword [ebp - 0xb4]
fsub st(1)
fmul dword [ebp - 0xa4]
fdiv dword [ebp - 0xa8]
fadd dword [ebp - 0x84]
fstp dword [ebp - 0x78]
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x64a65e08
fld dword [ebp - 0xb4]
fld st(0)
fsub st(2)
fld dword [ebp - 0xbc]
fld dword [ebp - 0x84]
fsub st(1), st(0)
fxch st(1)
fmulp st(2)
fxch st(2)
fsub dword [ebp - 0xb0]
fdivp st(1)
faddp st(1)
fxch st(1)
fstp dword [ebp - 0x98]
fst dword [esp]
fstp dword [ebp - 0x94]
call sym._ceilf
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
or ah, 0xc
mov word [ebp - 0x5c], ax
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x8c]
fldcw word [ebp - 0x5a]
fld dword [ebp - 0x78]
mov edi, dword [ebp - 0x8c]
mov ebx, edi
fstp dword [esp]
call sym._ceilf
mov ecx, dword [esi + 8]
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x8c]
fldcw word [ebp - 0x5a]
fld dword [ebp - 0x78]
fld dword [ebp - 0x94]
mov eax, dword [ebp - 0x8c]
fcompi st(1)
fstp st(0)
cmova ebx, eax
cmova eax, edi
mov edi, dword [esi]
cmp edi, ebx
cmovge ebx, edi
add ecx, edi
cmp ecx, eax
cmovg ecx, eax
cmp ebx, ecx
jge 0x64a65d68
fld dword [ebp - 0xc8]
fld dword [ebp - 0x98]
mov edx, dword [ebp - 0x90]
fsubr st(1), st(0)
fxch st(1)
fmul dword [ebp - 0xa0]
fstp dword [ebp - 0x78]
cmp dword [ebp - 0x9c], edx
je 0x64a65e56
fsub dword [ebp - 0xb4]
mov dword [ebp - 0x8c], ecx
mov ecx, edi
fld st(0)
fabs
fstp dword [ebp - 0xb8]
fstp dword [ebp - 0xac]
jmp 0x64a65c7a
mov ecx, dword [esi]
mov dword [ebp - 0x68], ebx
fild dword [ebp - 0x68]
fld dword [ebp - 0x84]
fsubr st(1)
fld st(0)
fabs
fld qword [0x64abac18]
fcomi st(1)
fstp st(1)
jb 0x64a65cb8
fld dword [ebp - 0xb8]
fxch st(1)
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x68], eax
fcompi st(1)
fstp st(0)
jae 0x64a65d20
fxch st(1)
jmp 0x64a65cbc
fstp st(0)
fxch st(1)
fstp dword [ebp - 0x94]
fld dword [ebp - 0xa8]
mov dword [ebp - 0x98], ecx
fmul st(1)
fld dword [ebp - 0xa4]
fld dword [ebp - 0xac]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fxch st(2)
fmul dword [ebp - 0x70]
fld dword [ebp - 0xa0]
fmulp st(2)
fsubrp st(1)
fdivp st(1)
fstp dword [esp]
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x90]
call sym._blend_colors
fld dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x68], eax
jmp 0x64a65d22
fstp st(0)
fsubr dword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
mov edx, ebx
add ebx, 1
fmul dword [ebp - 0x70]
sub eax, dword [esi + 4]
sub edx, ecx
fadd dword [ebp - 0x78]
mov edi, dword [ebp - 0x60]
fdiv dword [ebp - 0x80]
imul eax, dword [ebp + 0xc]
add eax, edx
lea edi, [edi + eax*4]
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 8]
fstp dword [esp]
mov eax, dword [ebp - 0x68]
call sym._blend_colors
mov dword [edi], eax
mov eax, dword [ebp - 0x8c]
cmp ebx, eax
jne 0x64a65c78
add dword [ebp - 0x6c], 1
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0xcc], eax
jne 0x64a65ac0
mov dword [ebp + 8], esi
mov edi, dword [ebp - 0xe4]
jmp 0x64a65d88
fstp st(0)
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], eax
jmp 0x64a658a4
fld qword [0x64abac10]
fld st(1)
fprem
fnstsw ax
sahf
jp 0x64a65da8
fstp st(1)
fucomi st(0)
jp 0x64a6605a
fstp st(1)
fstp dword [ebp - 0x68]
fld dword [ebp - 0x68]
fldz
fcompi st(1)
jbe 0x64a65dcd
fadd dword [0x64abac14]
fld1
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x64a65499
fsubr dword [0x64abac14]
jmp 0x64a65499
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
fstp dword [esp]
call sym._blend_colors
jmp 0x64a6554b
fld dword [ebp - 0xb0]
fsub st(1)
fld dword [ebp - 0x74]
fld dword [ebp - 0xbc]
fsub st(1), st(0)
fxch st(1)
fmulp st(2)
fxch st(1)
fdiv dword [ebp - 0x70]
faddp st(1)
fxch st(1)
jmp 0x64a65ba8
fld dword [ebp - 0xb0]
fsub st(1)
fld dword [ebp - 0x74]
fld dword [ebp - 0xbc]
fsub st(1), st(0)
fxch st(1)
fmulp st(2)
fxch st(1)
fdiv dword [ebp - 0x70]
faddp st(1)
fstp dword [ebp - 0x78]
jmp 0x64a65b70
fstp st(0)
mov dword [ebp - 0x94], ecx
mov ecx, edi
jmp 0x64a65e6a
mov ecx, dword [esi]
mov eax, dword [ebp - 0x6c]
sub eax, dword [esi + 4]
mov dword [ebp - 0x8c], ebx
mov edx, ebx
fild dword [ebp - 0x8c]
fsubr dword [ebp - 0x74]
sub edx, ecx
add ebx, 1
fmul dword [ebp - 0x70]
mov edi, dword [ebp - 0x60]
fadd dword [ebp - 0x78]
fdiv dword [ebp - 0x80]
imul eax, dword [ebp + 0xc]
add eax, edx
lea edi, [edi + eax*4]
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 8]
fstp dword [esp]
mov eax, dword [ebp - 0x68]
call sym._blend_colors
mov dword [edi], eax
cmp dword [ebp - 0x94], ebx
jne 0x64a65e68
jmp 0x64a65d68
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
jmp 0x64a654d6
mov dword [esp + 0xc], str.metafile_texture_brushes_not_implemented_n
mov dword [esp + 8], str.brush_fill_pixels
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_3
jmp case.default.0x64a64f75
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
jmp 0x64a6552e
mov esi, dword [ebp - 0x6c]
lea edx, [edi*8]
cmp eax, edi
mov eax, dword [ebp - 0x70]
lea ecx, [esi + edx]
mov esi, dword [ebp - 0x78]
fld dword [ecx]
fstp dword [ebp - 0xbc]
fld dword [ecx + 4]
lea ecx, [edi*4]
cmovg eax, ecx
mov eax, dword [esi + eax]
fstp dword [ebp - 0xb0]
mov dword [ebp - 0x9c], eax
jmp 0x64a6594f
mov dword [esp + 0xc], str.path_gradient_transform_not_implemented_n
mov dword [esp + 8], str.brush_fill_pixels
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a657b0
mov eax, dword [ebp - 0xe0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePath
sub esp, 4
jmp 0x64a6515a
fstp qword [ebp - 0x68]
fld1
fstp qword [esp + 8]
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_fmod]
fstp st(0)
fld qword [ebp - 0x68]
jmp 0x64a65487
mov eax, dword [ebx + 0x38]
imul eax, dword [ebx + 0x3c]
mov dword [esp + 4], 8
mov edx, dword fs:[0x18]
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [edi + 0x24], eax
sub esp, 0xc
test eax, eax
je 0x64a660cc
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebx + 0x38]
shl edx, 2
mov dword [ebp - 0x68], edx
mov edx, dword [ebx + 0x3c]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], 0x26200a
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x58]
mov dword [esp + 0xc], 0x26200a
mov dword [esp + 8], 5
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.gdiplus.dll_GdipBitmapLockBits
sub esp, 0x14
mov edx, eax
test eax, eax
je 0x64a6607a
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x60], edx
xor ebx, ebx
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
xor ecx, ecx
mov dword [esp + 4], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x60]
mov dword [edi + 0x24], ebx
sub esp, 0xc
mov dword [ebp - 0x88], edx
jmp 0x64a6515a
fstp qword [ebp - 0x68]
fld dword [0x64abac14]
fstp qword [esp + 8]
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_fmod]
fstp st(0)
fld qword [ebp - 0x68]
jmp 0x64a65dbb
lea eax, [ebp - 0x30]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipBitmapUnlockBits
push edx
push edx
mov edx, eax
test eax, eax
jne 0x64a6601f
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x20]
mov dword [esp], eax
call sym._apply_image_attributes
jmp 0x64a65676
mov edx, 3
jmp 0x64a6601f