Function at 0x64a68640
Capabilities:
Access peb ldr_data
Get process heap flags
Resolve function by parsing pe exports

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0xe8
mov eax, dword [ecx + 8]
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x94], eax
test byte [0x64ab50b0], 8
jne 0x64a69030
test edi, edi
je 0x64a69068
test esi, esi
je 0x64a69068
mov eax, dword [esi + 0x5c]
mov ebx, 4
test eax, eax
jne 0x64a68ec1
mov eax, dword [ebp - 0x94]
xor ebx, ebx
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x64a68ec1
mov eax, dword [esi + 0x14]
test eax, eax
je 0x64a686b6
cmp dword [esi + 0x18], 2
je 0x64a69150
mov eax, dword [esi]
test eax, eax
je 0x64a68ef0
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x98], edx
test edx, edx
jne 0x64a68ef0
mov edx, dword [edi + 0x38]
mov ecx, dword [edx]
test ecx, ecx
je 0x64a68ed8
cmp ecx, 1
jne 0x64a68ef0
mov ecx, dword [edx + 8]
not ecx
and ecx, 0xff000000
jne 0x64a68ef0
mov edx, dword [edx + 0xc]
not edx
and edx, 0xff000000
jne 0x64a68ef0
mov dword [ebp - 0x80], 0
mov dword [esp], eax
call sym._SaveDC_4
mov dword [ebp - 0xa4], eax
mov eax, dword [esi]
sub esp, 4
mov dword [esp], eax
call sym._EndPath_4
sub esp, 4
cmp dword [edi + 4], 2
jne 0x64a69221
fld dword [edi + 8]
fstp dword [ebp - 0xa0]
cmp dword [edi + 0x28], 5
jne 0x64a691be
mov edx, dword [edi + 0x30]
mov eax, 0x10
cmp edx, eax
cmovle eax, edx
mov dword [ebp - 0x9c], eax
test byte [0x64ab50b0], 8
jne 0x64a693aa
test edx, edx
jle 0x64a699c7
mov eax, dword [edi + 0x2c]
fld dword [ebp - 0xa0]
xor edx, edx
mov dword [ebp - 0xb0], 0
fmul dword [eax]
fadd dword [0x64ababb4]
fnstcw word [ebp - 0x8a]
movzx eax, word [ebp - 0x8a]
and ah, 0xf3
or ah, 4
mov word [ebp - 0x8c], ax
movzx eax, word [ebp - 0x8a]
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
or ah, 0xc
mov word [ebp - 0x8e], ax
lea eax, [ebp - 0x58]
fldcw word [ebp - 0x8e]
fistp dword [ebp - 0x58]
fldcw word [ebp - 0x8a]
mov dword [ebp - 0xa8], eax
lea eax, [edx + 1]
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0x9c], eax
jle 0x64a68b78
mov ecx, dword [edi + 0x2c]
mov ebx, dword [ebp - 0xb0]
fld dword [ebp - 0xa0]
fld dword [ecx + ebx + 4]
fmul st(1)
fld dword [0x64ababb4]
fadd st(1), st(0)
fxch st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 2]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b23
fld dword [ecx + ebx + 8]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 3]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b29
fld dword [ecx + ebx + 0xc]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 4]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b2f
fld dword [ecx + ebx + 0x10]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 5]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b35
fld dword [ecx + ebx + 0x14]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 6]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b3b
fld dword [ecx + ebx + 0x18]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 7]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b41
fld dword [ecx + ebx + 0x1c]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 8]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b47
fld dword [ecx + ebx + 0x20]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 9]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b4d
fld dword [ecx + ebx + 0x24]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 0xa]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b53
fld dword [ecx + ebx + 0x28]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 0xb]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b59
fld dword [ecx + ebx + 0x2c]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 0xc]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b5f
fld dword [ecx + ebx + 0x30]
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
lea eax, [edx + 0xd]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b65
fld dword [ecx + ebx + 0x34]
add edx, 0xe
fmul st(2)
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + eax*4 - 0x58]
fldcw word [ebp - 0x8a]
cmp dword [ebp - 0x9c], edx
jle 0x64a68b6b
fld dword [ecx + ebx + 0x38]
xor eax, eax
cmp dword [ebp - 0xb4], 1
sete al
neg eax
fmul st(2)
add eax, 0x10
fadd st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp + edx*4 - 0x58]
fldcw word [ebp - 0x8a]
cmp dword [ebp - 0x9c], eax
jle 0x64a68b71
fxch st(1)
fmul dword [ecx + 0x3c]
faddp st(1)
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
fldcw word [ebp - 0x8e]
fistp dword [ebp - 0x1c]
fldcw word [ebp - 0x8a]
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
jmp 0x64a68b78
fstp st(0)
fstp st(0)
lea esi, [esi]
mov ebx, dword [esi + 0x78]
mov ecx, dword [esi + 0x74]
lea edx, [ebp - 0x7c]
mov eax, dword [edi + 0x38]
mov dword [esp], ebx
call sym._create_gdi_logbrush
fld dword [ebp - 0xa0]
lea edx, [ebp - 0x7c]
fnstcw word [ebp - 0x8a]
fadd dword [0x64ababb4]
movzx eax, word [ebp - 0x8a]
and ah, 0xf3
or ah, 4
mov word [ebp - 0x8c], ax
mov eax, dword [ebp - 0xa8]
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
movzx eax, word [ebp - 0x8a]
or ah, 0xc
mov word [ebp - 0x8e], ax
fldcw word [ebp - 0x8e]
fistp dword [esp + 4]
fldcw word [ebp - 0x8a]
mov eax, dword [edi]
mov dword [esp], eax
call sym._ExtCreatePen_20
sub esp, 0x14
cmp dword [ebp - 0x7c], 3
mov ebx, eax
je 0x64a69397
mov dword [esp + 4], ebx
mov eax, dword [esi]
mov dword [esp], eax
call sym._SelectObject_8
lea edx, [ebp - 0x80]
mov eax, esi
sub esp, 8
call sym._get_clip_hrgn
mov ebx, eax
test eax, eax
jne 0x64a68e71
mov dword [esp + 8], 5
mov eax, dword [ebp - 0x80]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call sym._ExtSelectClipRgn_12
sub esp, 0xc
mov dword [esp], esi
call sym._gdi_transform_acquire
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 8]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb8], edx
lea edx, [eax*8]
mov ecx, edx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xb0], ecx
mov edx, dword fs:[0x18]
mov dword [esp + 8], ecx
mov ecx, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 8
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xa8], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov dword [ebp - 0x9c], ecx
call ecx
mov edx, dword [ebp - 0x94]
sub esp, 0xc
mov dword [ebp - 0xa0], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc0], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov ecx, dword [ebp - 0x9c]
call ecx
mov edx, dword [ebp - 0xb0]
sub esp, 0xc
mov dword [ebp - 0xa8], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov ecx, dword [ebp - 0x9c]
call ecx
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x9c], eax
sub esp, 0xc
test ecx, ecx
je 0x64a68dd8
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa8]
test eax, eax
sete al
test edx, edx
sete dl
or al, dl
jne 0x64a69994
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x64a69994
mov edx, ecx
cmp ecx, 1
jle 0x64a69582
mov dword [ebp - 0xc4], edi
mov ecx, dword [ebp - 0xb4]
mov eax, 1
mov edi, edx
mov dword [ebp - 0xc0], ebx
jmp 0x64a68da3
add eax, 1
cmp edi, eax
jle 0x64a69576
movzx edx, byte [ecx + eax]
mov ebx, eax
and edx, 7
cmp dl, 3
jne 0x64a68d98
add eax, 2
cmp edi, eax
jle 0x64a68dc6
test byte [ecx + ebx + 1], 3
je 0x64a68dc6
test byte [ecx + ebx + 2], 3
jne 0x64a68d98
test byte [0x64ab50b0], 2
jne 0x64a6999e
mov ebx, 1
mov eax, dword [ebp - 0xa0]
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x94], ecx
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x9c]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x94]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0xa8]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x94]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, dword [esi + 0x7c]
sub esp, 0xc
test eax, eax
jle 0x64a69519
cmp eax, 1
je 0x64a6954f
sub eax, 1
mov dword [esi + 0x7c], eax
mov dword [esp], 8
call sym._GetStockObject_4
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call sym._SelectObject_8
sub esp, 8
mov dword [esp], eax
call sym._DeleteObject_4
mov eax, dword [ebp - 0xa4]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call sym._RestoreDC_8
mov eax, dword [ebp - 0x80]
sub esp, 8
mov dword [esp], eax
call sym._DeleteObject_4
sub esp, 4
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
mov edx, dword [edx + 4]
not edx
and edx, 0xff000000
je 0x64a68709
lea esi, [esi]
cmp dword [edi + 4], 2
fld dword [edi + 8]
mov dword [ebp - 0x7c], 0
jne 0x64a69080
fld qword [0x64abac20]
fcompi st(1)
fstp st(0)
ja 0x64a69138
lea edx, [ebp - 0x70]
jmp 0x64a68f26
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x94]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
mov ebx, eax
test eax, eax
jne 0x64a68ec1
cmp dword [edi + 4], 2
je 0x64a69170
lea eax, [ebp - 0x58]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], 4
mov dword [esp], esi
call sym._get_graphics_transform
mov ebx, eax
test eax, eax
jne 0x64a68ec1
fld dword [ebp - 0x50]
fld dword [ebp - 0x4c]
fld dword [ebp - 0x54]
fld dword [ebp - 0x58]
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fstp qword [esp + 8]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_fmax]
fldz
fucompi st(1)
ja 0x64a6a340
fsqrt
fdivr dword [0x64ababbc]
fstp dword [ebp - 0x94]
fld dword [ebp - 0x94]
fstp dword [esp + 0xc]
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x70]
mov dword [esp], eax
call sym.gdiplus.dll_GdipWidenPath
sub esp, 0x10
cmp dword [edi + 4], 2
mov ebx, eax
je 0x64a6935b
test ebx, ebx
jne 0x64a69005
mov eax, dword [ebp - 0x70]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x38]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipFillPath
sub esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 0x7c]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteMatrix
mov eax, dword [ebp - 0x70]
sub esp, 4
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePath
sub esp, 4
jmp 0x64a68ec1
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x64ab914b
mov dword [esp + 8], str.GdipDrawPath
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
test edi, edi
jne 0x64a6867a
lea esp, [ebp - 0x10]
mov ebx, 2
pop ecx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
fldz
lea ecx, [ebp - 0x58]
fst dword [ebp - 0x70]
fst dword [ebp - 0x6c]
fst dword [ebp - 0x64]
fstp dword [ebp - 0x60]
fst dword [ebp - 0x68]
fstp dword [ebp - 0x5c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], esi
call sym._get_graphics_transform
mov ebx, eax
test eax, eax
jne 0x64a68ec1
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x58]
mov dword [esp + 8], 3
mov dword [esp + 4], edx
mov dword [ebp - 0x98], edx
mov dword [esp], ecx
call sym.gdiplus.dll_GdipTransformMatrixPoints
sub esp, 0xc
mov ebx, eax
test eax, eax
jne 0x64a68ec1
fld dword [ebp - 0x70]
fld dword [ebp - 0x68]
mov edx, dword [ebp - 0x98]
fsub st(1)
fld dword [ebp - 0x6c]
fld dword [ebp - 0x64]
fsub st(1)
fxch st(2)
fmul st(0)
fxch st(2)
fmul st(0)
faddp st(2)
fld qword [0x64abac28]
fcomi st(2)
fstp st(2)
jbe 0x64a68f20
fxch st(2)
fsubr dword [ebp - 0x60]
fxch st(2)
fsubr dword [ebp - 0x5c]
fxch st(2)
fmul st(0)
fxch st(2)
fmul st(0)
faddp st(2)
fcompi st(1)
fstp st(0)
jbe 0x64a68f26
mov ecx, dword [ebp - 0x94]
mov edx, edi
mov eax, esi
call sym._SOFTWARE_GdipDrawThinPath
mov ebx, eax
jmp 0x64a68ec1
mov edx, dword [ebp - 0x94]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], edx
call sym._METAFILE_DrawPath
mov ebx, eax
jmp 0x64a68ec1
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateMatrix
mov ebx, eax
sub esp, 4
mov eax, dword [ebp - 0x7c]
test ebx, ebx
jne 0x64a69008
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], esi
call sym._get_graphics_transform
mov ebx, eax
test eax, eax
jne 0x64a69005
fld1
fstp dword [ebp - 0x94]
jmp 0x64a68fb7
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0x74]
lea ebx, [ebp - 0x7c]
mov eax, dword [edi + 0x38]
mov dword [esp], edx
mov edx, ebx
call sym._create_gdi_logbrush
fld dword [ebp - 0xa0]
fadd dword [0x64ababb4]
fnstcw word [ebp - 0x8a]
movzx eax, word [ebp - 0x8a]
and ah, 0xf3
or ah, 4
mov word [ebp - 0x8c], ax
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
jmp 0x64a68bdb
fld1
lea edx, [ebp - 0x70]
lea eax, [esi + 0x44]
mov dword [ebp - 0x70], 0
fst dword [ebp - 0x68]
fstp dword [ebp - 0x64]
mov dword [ebp - 0x6c], 0
mov dword [esp + 4], edx
mov dword [esp + 8], 2
mov dword [ebp - 0x9c], edx
mov dword [esp], eax
call sym.gdiplus.dll_GdipTransformMatrixPoints
fld dword [ebp - 0x68]
fsub dword [ebp - 0x70]
fld dword [ebp - 0x64]
sub esp, 0xc
mov edx, dword [ebp - 0x9c]
fsub dword [ebp - 0x6c]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fld st(0)
fldz
fucompi st(1)
ja 0x64a6a35e
fstp st(1)
fsqrt
fdiv qword [0x64abac30]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x10]
fstp dword [ebp - 0x9c]
fld dword [esi + 0x3c]
test eax, eax
jne 0x64a692a2
mov eax, dword [esi + 0x34]
mov dword [ebp - 0xa0], edx
lea ebx, [ebp - 0x58]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
fstp dword [esp + 8]
fld dword [edi + 8]
fstp dword [esp]
call sym._units_to_pixels
fmul dword [ebp - 0x9c]
fmul dword [esi + 0x38]
fstp dword [ebp - 0x9c]
fldz
fst dword [ebp - 0x70]
fstp dword [ebp - 0x6c]
fld1
fst dword [ebp - 0x68]
fstp dword [ebp - 0x64]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 2
mov dword [esp + 4], 4
mov dword [esp], esi
call sym._get_graphics_transform
test eax, eax
jne 0x64a6931e
mov dword [esp + 8], 2
mov edx, dword [ebp - 0xa0]
mov dword [esp], ebx
mov dword [esp + 4], edx
call sym.gdiplus.dll_GdipTransformMatrixPoints
sub esp, 0xc
fld dword [ebp - 0x68]
fsub dword [ebp - 0x70]
fld dword [ebp - 0x64]
fsub dword [ebp - 0x6c]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fld st(0)
fldz
fucompi st(1)
ja 0x64a6a34e
fstp st(1)
fsqrt
fdiv qword [0x64abac30]
fmul dword [ebp - 0x9c]
fstp dword [ebp - 0xa0]
jmp 0x64a68741
mov eax, dword [ebp - 0x7c]
test ebx, ebx
jne 0x64a69008
mov dword [esp], eax
call sym.gdiplus.dll_GdipInvertMatrix
mov ebx, eax
sub esp, 4
mov eax, dword [ebp - 0x7c]
test ebx, ebx
jne 0x64a69008
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x70]
mov dword [esp], eax
call sym.gdiplus.dll_GdipTransformPath
sub esp, 8
mov ebx, eax
jmp 0x64a68fe6
mov eax, dword [ebp - 0x74]
mov dword [esp], eax
call sym._DeleteObject_4
sub esp, 4
jmp 0x64a68c15
mov dword [ebp - 0xa8], edx
mov dword [esp + 0xc], str.dashes_are:
mov dword [esp + 8], str.prepare_dc
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
mov edx, dword [ebp - 0xa8]
movzx ecx, byte [0x64ab50b0]
test edx, edx
jle 0x64a69d04
lea eax, [ebp - 0x58]
mov dword [ebp - 0xb4], esi
xor edx, edx
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0xa8], eax
mov ebx, edx
lea esi, [esi]
lea eax, [ebx*4]
fld dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xb0], eax
mov eax, dword [edi + 0x2c]
fmul dword [eax + ebx*4]
fadd dword [0x64ababb4]
fnstcw word [ebp - 0x8a]
movzx eax, word [ebp - 0x8a]
and ah, 0xf3
or ah, 4
mov word [ebp - 0x8c], ax
movzx eax, word [ebp - 0x8a]
fldcw word [ebp - 0x8c]
frndint
fldcw word [ebp - 0x8a]
or ah, 0xc
and ecx, 8
mov word [ebp - 0x8e], ax
fldcw word [ebp - 0x8e]
fistp dword [ebp - 0x9c]
fldcw word [ebp - 0x8a]
mov eax, dword [ebp - 0x9c]
mov dword [edx + ebx*4], eax
jne 0x64a69499
mov dword [ebp - 0x9c], esi
mov edx, ebx
mov esi, dword [ebp - 0xb4]
jmp 0x64a687e1
mov dword [esp + 0x10], eax
add ebx, 1
mov dword [esp + 0xc], str._ld_
mov dword [esp + 8], str.prepare_dc
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
movzx ecx, byte [0x64ab50b0]
cmp esi, ebx
jg 0x64a69408
mov dword [ebp - 0x9c], esi
mov esi, dword [ebp - 0xb4]
and ecx, 8
test cl, cl
je 0x64a68b78
mov eax, dword [edi]
mov dword [esp + 0xc], str._n_and_the_pen_style_is__x_n
mov dword [esp + 8], str.prepare_dc
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
jmp 0x64a68b78
test byte [0x64ab50b0], 2
je 0x64a68e71
mov dword [esp + 0xc], str.called_without_matching_gdi_transform_acquire_n
mov dword [esp + 8], str.gdi_transform_release
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a68e71
mov edx, dword [esi]
test edx, edx
je 0x64a68e6b
mov eax, dword [esi + 0x80]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._RestoreDC_8
mov eax, dword [esi + 0x7c]
sub esp, 8
jmp 0x64a68e6b
mov ebx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x94]
movzx eax, byte [eax + edx - 1]
mov byte [ebp - 0xc0], al
and eax, 7
cmp al, 1
je 0x64a69a0b
cmp al, 3
jne 0x64a699d5
mov eax, dword [edi + 0xc]
fld dword [edi + 8]
mov dword [ebp - 0xc0], eax
cmp eax, 0x14
je 0x64a69eee
cmp dword [ebp - 0xc0], 0xff
mov edx, dword [edi + 0x1c]
je 0x64a69d5f
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xb8]
sub eax, 8
add ecx, eax
fld dword [ecx + 4]
fst dword [ebp - 0xc4]
fld dword [ecx]
mov ecx, dword [ebp - 0x9c]
add eax, ecx
mov dword [ebp - 0xcc], eax
mov eax, ecx
mov ecx, dword [ebp - 0xb0]
fst dword [ebp - 0xc8]
lea ecx, [eax + ecx - 0x10]
mov eax, dword [ebp - 0xcc]
fld dword [eax + 4]
fsub dword [ecx + 4]
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0xb0]
fld dword [eax]
fsub dword [ecx]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax]
fsubp st(1)
fstp dword [ebp - 0xcc]
cmp ecx, 3
je 0x64a69675
ja 0x64a69d46
test ecx, ecx
je 0x64a69d1d
cmp ecx, 1
jne 0x64a69d4b
mov eax, dword [eax + 8]
fstp dword [ebp - 0xd4]
mov dword [ebp - 0xd8], edx
mov dword [esp], eax
call sym._ARGB2COLORREF
fld dword [ebp - 0xc8]
mov ecx, 0
fld dword [ebp - 0xcc]
mov dword [ebp - 0xd0], eax
mov edx, dword [ebp - 0xd8]
fucompi st(1)
fstp st(0)
fld dword [ebp - 0xd4]
setnp al
cmovne eax, ecx
test al, al
je 0x64a69cd7
fld dword [ebp - 0xc4]
fld dword [ebp - 0xb0]
fucompi st(1)
fstp st(0)
setnp al
cmovne eax, ecx
test al, al
je 0x64a69cd7
fstp st(0)
jmp 0x64a696e5
fstp st(0)
cmp dword [ebp - 0x94], 1
mov eax, 1
jle 0x64a69715
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xb4]
jmp 0x64a6970f
add eax, 1
cmp ecx, eax
je 0x64a69715
test byte [edx + eax], 7
je 0x64a69708
mov edx, dword [ebp - 0xb4]
movzx edx, byte [edx + eax]
mov byte [ebp - 0xb0], dl
and edx, 7
cmp dl, 1
je 0x64a69b91
cmp dl, 3
jne 0x64a69b5b
mov ecx, dword [ebp - 0x9c]
lea eax, [eax*8 - 8]
mov edx, dword [edi + 0x10]
mov dword [ebp - 0xc4], eax
fld dword [edi + 8]
add eax, ecx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xc0], eax
cmp edx, 0x14
je 0x64a69eb0
cmp dword [ebp - 0xb0], 0xff
mov edx, dword [edi + 0x18]
je 0x64a6a0a3
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb8]
add eax, ecx
fld dword [eax + 4]
fst dword [ebp - 0xb8]
fld dword [eax]
mov eax, dword [ebp - 0x9c]
lea eax, [eax + ecx + 8]
mov ecx, dword [ebp - 0xc0]
fst dword [ebp - 0xc4]
fld dword [ecx + 4]
fsub dword [eax + 4]
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0xc0]
fld dword [ecx]
fsub dword [eax]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax]
fsubp st(1)
fstp dword [ebp - 0xc8]
cmp ecx, 3
je 0x64a697e9
ja 0x64a69d98
test ecx, ecx
je 0x64a69da1
cmp ecx, 1
jne 0x64a69fdd
mov eax, dword [eax + 8]
fstp dword [ebp - 0xcc]
mov dword [ebp - 0xd0], edx
mov dword [esp], eax
call sym._ARGB2COLORREF
fld dword [ebp - 0xc4]
mov ecx, 0
fld dword [ebp - 0xc8]
mov edi, eax
mov edx, dword [ebp - 0xd0]
fucompi st(1)
fstp st(0)
fld dword [ebp - 0xcc]
setnp al
cmovne eax, ecx
test al, al
je 0x64a69e83
fld dword [ebp - 0xb8]
fld dword [ebp - 0xc0]
fucompi st(1)
fstp st(0)
setnp al
cmovne eax, ecx
test al, al
je 0x64a69e83
fstp st(0)
jmp 0x64a69855
fstp st(0)
xor eax, eax
lea edi, [ebp - 0x58]
mov dword [esp + 4], 4
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp], esi
call sym._get_graphics_transform
test eax, eax
jne 0x64a69895
mov eax, dword [ebp - 0x94]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipTransformMatrixPoints
sub esp, 0xc
mov edi, dword [ebp - 0x94]
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
mov ecx, edi
call sym._round_points
test edi, edi
jle 0x64a69912
mov dword [ebp - 0xb0], esi
mov edi, dword [ebp - 0x98]
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0xa8]
movzx edx, byte [esi + edi]
mov eax, edx
and eax, 7
cmp al, 1
je 0x64a6997c
cmp al, 3
je 0x64a69988
test al, al
je 0x64a69968
test byte [0x64ab50b0], 2
jne 0x64a69942
xor eax, eax
mov byte [ebx + edi], al
add edi, 1
cmp dword [ebp - 0x94], edi
jne 0x64a698d0
mov ebx, dword [ebp - 0x98]
mov esi, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call sym._PolyDraw_16
sub esp, 0x10
jmp 0x64a68dd8
mov dword [esp + 0xc], str.Bad_point_type_n
mov dword [esp + 8], str.convert_path_point_type
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a698f6
mov ecx, 7
mov eax, 6
test dl, dl
cmovs eax, ecx
jmp 0x64a698f8
mov ecx, 3
mov eax, 2
jmp 0x64a69972
mov ecx, 5
mov eax, 4
jmp 0x64a69972
mov ebx, 3
jmp 0x64a68dd8
mov dword [esp + 0xc], str.Bad_bezier_points_n
mov dword [esp + 8], str.draw_poly
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a68dd3
lea eax, [ebp - 0x58]
mov dword [ebp - 0xa8], eax
jmp 0x64a68b78
test byte [0x64ab50b0], 2
je 0x64a68dd3
mov dword [esp + 0xc], str.Bad_path_last_point_n
mov dword [esp + 8], str.draw_poly
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a68dd3
mov edx, dword [ebp - 0xb0]
mov eax, dword [edi + 0xc]
fld dword [edi + 8]
lea ecx, [edx - 8]
sub edx, 0x10
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc8], edx
cmp eax, 0x14
je 0x64a69ff1
cmp dword [ebp - 0xc0], 0xff
mov edx, dword [edi + 0x1c]
je 0x64a69da9
jmp 0x64a69a55
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xc4]
add eax, ecx
fld dword [eax + 4]
fstp dword [ebp - 0xb0]
fld dword [eax]
mov eax, dword [ebp - 0xc8]
add eax, ecx
fstp dword [ebp - 0xc4]
fld dword [eax + 4]
fstp dword [ebp - 0xc8]
fld dword [eax]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax]
fstp dword [ebp - 0xcc]
cmp ecx, 3
je 0x64a69aae
ja 0x64a69d2d
test ecx, ecx
je 0x64a69d15
cmp ecx, 1
jne 0x64a69d32
mov eax, dword [eax + 8]
fstp dword [ebp - 0xd4]
mov dword [ebp - 0xd8], edx
mov dword [esp], eax
call sym._ARGB2COLORREF
fld dword [ebp - 0xc4]
mov ecx, 0
fld dword [ebp - 0xcc]
mov dword [ebp - 0xd0], eax
mov edx, dword [ebp - 0xd8]
fucompi st(1)
fstp st(0)
fld dword [ebp - 0xd4]
setnp al
cmovne eax, ecx
test al, al
je 0x64a69b14
fld dword [ebp - 0xb0]
fld dword [ebp - 0xc8]
fucompi st(1)
fstp st(0)
setnp al
cmovne eax, ecx
test al, al
jne 0x64a696e3
fld dword [ebp - 0xb0]
fstp dword [esp + 0x14]
fld dword [ebp - 0xc4]
fstp dword [esp + 0x10]
fld dword [ebp - 0xc8]
fstp dword [esp + 0xc]
fld dword [ebp - 0xcc]
fstp dword [esp + 8]
mov dword [esp + 4], edx
mov eax, esi
fstp dword [esp]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xd0]
call sym._draw_cap.part.0
jmp 0x64a696e5
test byte [0x64ab50b0], 2
je 0x64a68dd3
mov dword [esp + 0xc], str.Bad_path_points_n
mov dword [esp + 8], str.draw_poly
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1_3
jmp 0x64a68dd3
lea eax, [eax*8 - 8]
mov edx, dword [edi + 0x10]
fld dword [edi + 8]
mov dword [ebp - 0xc4], eax
add eax, 8
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xc8], eax
cmp edx, 0x14
je 0x64a6a047
cmp dword [ebp - 0xb0], 0xff
mov edx, dword [edi + 0x18]
je 0x64a69f03
jmp 0x64a69bd9
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xc4]
add eax, ecx
fld dword [eax + 4]
fstp dword [ebp - 0xc0]
fld dword [eax]
mov eax, dword [ebp - 0xc8]
add eax, ecx
fstp dword [ebp - 0xb8]
fld dword [eax + 4]
fstp dword [ebp - 0xc4]
fld dword [eax]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax]
fstp dword [ebp - 0xc8]
cmp ecx, 3
je 0x64a69c32
ja 0x64a69ed1
test ecx, ecx
je 0x64a69d25
cmp ecx, 1
jne 0x64a69eda
mov eax, dword [eax + 8]
fstp dword [ebp - 0xcc]
mov dword [ebp - 0xd0], edx
mov dword [esp], eax
call sym._ARGB2COLORREF
fld dword [ebp - 0xb8]
mov ecx, 0
fld dword [ebp - 0xc8]
mov edi, eax
mov edx, dword [ebp - 0xd0]
fucompi st(1)
fstp st(0)
fld dword [ebp - 0xcc]
setnp al
cmovne eax, ecx
test al, al
je 0x64a69c94
fld dword [ebp - 0xc0]
fld dword [ebp - 0xc4]
fucompi st(1)
fstp st(0)
setnp al
cmovne eax, ecx
test al, al
jne 0x64a69853
fld dword [ebp - 0xc0]
fstp dword [esp + 0x14]
fld dword [ebp - 0xb8]
fstp dword [esp + 0x10]
fld dword [ebp - 0xc4]
fstp dword [esp + 0xc]
fld dword [ebp - 0xc8]
fstp dword [esp + 8]
mov dword [esp + 4], edx
mov eax, esi
mov edx, edi
fstp dword [esp]
mov ecx, dword [ebp - 0xb0]
call sym._draw_cap.part.0
jmp 0x64a69855
fld dword [ebp - 0xc4]
fstp dword [esp + 0x14]
fld dword [ebp - 0xc8]
fstp dword [esp + 0x10]
fld dword [ebp - 0xb0]
fstp dword [esp + 0xc]
fld dword [ebp - 0xcc]
fstp dword [esp + 8]
jmp 0x64a69b3c
lea eax, [ebp - 0x58]
and ecx, 8
mov dword [ebp - 0xa8], eax
jmp 0x64a694e2
mov eax, dword [eax + 4]
jmp 0x64a69ab1
mov eax, dword [eax + 4]
jmp 0x64a69678
mov eax, dword [eax + 4]
jmp 0x64a69c35
cmp ecx, 4
je 0x64a69d15
test byte [0x64ab50b0], 1
jne 0x64a6a18a
xor eax, eax
jmp 0x64a69ab1
cmp ecx, 4
je 0x64a69d1d
test byte [0x64ab50b0], 1
jne 0x64a6a2fb
xor eax, eax
jmp 0x64a69678
test edx, edx
je 0x64a695f6
fmul dword [edx + 0x18]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xb0]
lea eax, [eax + ecx - 0x20]
fstp dword [esp]
xor edx, edx
call sym._shorten_bezier_amt
mov eax, dword [edi + 0xc]
fld dword [edi + 8]
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0xc0], eax
jmp 0x64a695f6
cmp ecx, 4
jne 0x64a69fdd
mov eax, dword [eax + 4]
jmp 0x64a697ec
test edx, edx
je 0x64a69a55
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xc4]
add ecx, eax
mov dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0xc8]
add eax, ecx
mov ecx, 0
fld dword [eax + 4]
fld dword [eax]
mov eax, dword [ebp - 0xb0]
fld st(0)
fsubr dword [eax]
fld dword [eax + 4]
fsub st(3)
fldz
fucomi st(2)
setnp al
cmovne eax, ecx
test al, al
je 0x64a69e08
fucompi st(1)
setnp al
cmovne eax, ecx
test al, al
jne 0x64a69a4d
fxch st(2)
jmp 0x64a69e0c
fstp st(0)
fxch st(2)
fstp dword [ebp - 0xd0]
fxch st(2)
fstp dword [ebp - 0xcc]
fxch st(2)
fmul dword [edx + 0x18]
fstp qword [ebp - 0xc0]
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
fdivr qword [ebp - 0xc0]
mov eax, dword [ebp - 0xb0]
fstp dword [ebp - 0xc0]
fld1
fld dword [ebp - 0xc0]
fcomi st(1)
fstp st(1)
fld dword [ebp - 0xcc]
fld dword [ebp - 0xd0]
jb 0x64a6a262
fstp st(2)
fxch st(1)
fstp dword [eax]
fstp dword [eax + 4]
mov eax, dword [edi + 0xc]
fld dword [edi + 8]
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0xc0], eax
jmp 0x64a69a55
fld dword [ebp - 0xb8]
fstp dword [esp + 0x14]
fld dword [ebp - 0xc4]
fstp dword [esp + 0x10]
fld dword [ebp - 0xc0]
fstp dword [esp + 0xc]
fld dword [ebp - 0xc8]
fstp dword [esp + 8]
jmp 0x64a69cbc
fstp dword [esp]
mov edx, 1
call sym._shorten_bezier_amt
mov eax, dword [edi + 0x10]
fld dword [edi + 8]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0xb0], eax
jmp 0x64a6977d
cmp ecx, 4
je 0x64a69d25
test byte [0x64ab50b0], 1
jne 0x64a6a145
xor eax, eax
jmp 0x64a69c35
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xb0]
lea eax, [eax + edx - 0x20]
jmp 0x64a69d7a
test edx, edx
je 0x64a69bd9
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xc4]
add ecx, eax
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xc8]
add eax, ecx
mov ecx, 0
fld dword [eax + 4]
fld dword [eax]
mov eax, dword [ebp - 0xc0]
fld st(0)
fsubr dword [eax]
fld dword [eax + 4]
fsub st(3)
fldz
fucomi st(2)
setnp al
cmovne eax, ecx
test al, al
je 0x64a69f62
fucompi st(1)
setnp al
cmovne eax, ecx
test al, al
jne 0x64a69bd1
fxch st(2)
jmp 0x64a69f66
fstp st(0)
fxch st(2)
fstp dword [ebp - 0xd0]
fxch st(2)
fstp dword [ebp - 0xcc]
fxch st(2)
fmul dword [edx + 0x18]
fstp qword [ebp - 0xb0]
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
fdivr qword [ebp - 0xb0]
mov eax, dword [ebp - 0xc0]
fstp dword [ebp - 0xb0]
fld1
fld dword [ebp - 0xb0]
fcomi st(1)
fstp st(1)
fld dword [ebp - 0xcc]
fld dword [ebp - 0xd0]
jb 0x64a6a1f7
fstp st(2)
fxch st(1)
fstp dword [eax]
fstp dword [eax + 4]
mov eax, dword [edi + 0x10]
fld dword [edi + 8]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0xb0], eax
jmp 0x64a69bd9
test byte [0x64ab50b0], 1
jne 0x64a6a21d
xor eax, eax
jmp 0x64a697ec
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xc8]
lea ecx, [eax + ecx]
add eax, edx
mov edx, 0
fld dword [eax + 4]
fld dword [eax]
fld dword [ecx]
fsub st(1)
fld dword [ecx + 4]
fsub st(3)
fldz
fucomi st(2)
setnp al
cmovne eax, edx
test al, al
je 0x64a6a0c1
fucompi st(1)
setnp al
cmovne eax, edx
test al, al
je 0x64a6a0c7
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov edx, dword [edi + 0x1c]
jmp 0x64a69a55
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xc4]
lea ecx, [eax + edx]
mov edx, dword [ebp - 0xc8]
add eax, edx
mov edx, 0
fld dword [eax + 4]
fld dword [eax]
fld dword [ecx]
fsub st(1)
fld dword [ecx + 4]
fsub st(3)
fldz
fucomi st(2)
setnp al
cmovne eax, edx
test al, al
je 0x64a6a277
fucompi st(1)
setnp al
cmovne eax, edx
test al, al
je 0x64a6a27d
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov edx, dword [edi + 0x18]
jmp 0x64a69bd9
test edx, edx
je 0x64a6977d
fmul dword [edx + 0x18]
mov edx, 1
fstp dword [esp]
mov eax, dword [ebp - 0xc0]
jmp 0x64a69eb8
fstp st(0)
fxch st(4)
jmp 0x64a6a0c9
fxch st(4)
fstp dword [ebp - 0xb0]
fxch st(1)
fstp dword [ebp - 0xd0]
fxch st(1)
fstp dword [ebp - 0xcc]
fmul st(0)
fxch st(1)
mov dword [ebp - 0xc0], ecx
fmul st(0)
faddp st(1)
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
fld dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc0]
fdivrp st(1)
fstp dword [ebp - 0xb0]
fld1
fld dword [ebp - 0xb0]
fcomi st(1)
fstp st(1)
fld dword [ebp - 0xcc]
fld dword [ebp - 0xd0]
jb 0x64a6a1cf
fstp st(2)
fxch st(1)
fstp dword [ecx]
fstp dword [ecx + 4]
mov eax, dword [edi + 0xc]
fld dword [edi + 8]
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0xc0], eax
jmp 0x64a69a55
mov dword [ebp - 0xd0], edx
xor edx, edx
fstp dword [ebp - 0xcc]
mov dword [esp], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.unhandled_brush_type__d_n
mov dword [esp + 8], str.get_gdi_brush_color
mov dword [esp + 4], 0x64ab50b0
call sym._wine_dbg_log.constprop.1_3
mov edx, dword [ebp - 0xd0]
xor eax, eax
fld dword [ebp - 0xcc]
jmp 0x64a69c35
xor eax, eax
mov dword [ebp - 0xd4], edx
fstp dword [ebp - 0xd0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.unhandled_brush_type__d_n
mov dword [esp + 8], str.get_gdi_brush_color
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], eax
call sym._wine_dbg_log.constprop.1_3
mov edx, dword [ebp - 0xd4]
xor eax, eax
fld dword [ebp - 0xd0]
jmp 0x64a69ab1
fxch st(2)
fstp dword [esp + 8]
lea edx, [ecx + 4]
mov eax, ecx
fstp dword [esp + 4]
fstp dword [esp]
call sym._shorten_line_percent
mov eax, dword [edi + 0xc]
fld dword [edi + 8]
mov dword [ebp - 0xc0], eax
jmp 0x64a6a03f
fxch st(2)
fstp dword [esp + 8]
lea edx, [eax + 4]
fstp dword [esp + 4]
fstp dword [esp]
call sym._shorten_line_percent
mov eax, dword [edi + 0x10]
fld dword [edi + 8]
mov dword [ebp - 0xb0], eax
jmp 0x64a6a09b
mov dword [ebp - 0xd0], edx
fstp dword [ebp - 0xcc]
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov dword [esp + 0xc], str.unhandled_brush_type__d_n
mov dword [esp + 8], str.get_gdi_brush_color
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], ecx
call sym._wine_dbg_log.constprop.1_3
mov edx, dword [ebp - 0xd0]
xor eax, eax
fld dword [ebp - 0xcc]
jmp 0x64a697ec
fxch st(2)
fstp dword [esp + 8]
lea edx, [eax + 4]
fstp dword [esp + 4]
fstp dword [esp]
jmp 0x64a6a1e1
fstp st(0)
fxch st(4)
jmp 0x64a6a27f
fxch st(4)
fstp dword [ebp - 0xb0]
fxch st(1)
fstp dword [ebp - 0xd0]
fxch st(1)
fstp dword [ebp - 0xcc]
fmul st(0)
fxch st(1)
mov dword [ebp - 0xc0], ecx
fmul st(0)
faddp st(1)
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
fld dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc0]
fdivrp st(1)
fstp dword [ebp - 0xb0]
fld1
fld dword [ebp - 0xb0]
fcomi st(1)
fstp st(1)
fld dword [ebp - 0xcc]
fld dword [ebp - 0xd0]
jb 0x64a6a37a
fstp st(2)
fxch st(1)
fstp dword [ecx]
fstp dword [ecx + 4]
mov eax, dword [edi + 0x10]
fld dword [edi + 8]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0xb0], eax
jmp 0x64a69bd9
xor eax, eax
mov dword [ebp - 0xd4], edx
fstp dword [ebp - 0xd0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.unhandled_brush_type__d_n
mov dword [esp + 8], str.get_gdi_brush_color
mov dword [esp + 4], 0x64ab50b0
mov dword [esp], eax
call sym._wine_dbg_log.constprop.1_3
mov edx, dword [ebp - 0xd4]
xor eax, eax
fld dword [ebp - 0xd0]
jmp 0x64a69678
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
jmp 0x64a68fab
fstp st(0)
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
jmp 0x64a69344
fstp st(0)
mov dword [ebp - 0x9c], edx
fstp qword [esp]
call dword [sym.imp.ucrtbase.dll_sqrt]
mov edx, dword [ebp - 0x9c]
jmp 0x64a69286
fxch st(2)
fstp dword [esp + 8]
lea edx, [ecx + 4]
mov eax, ecx
fstp dword [esp + 4]
fstp dword [esp]
jmp 0x64a6a207