Function at 0x64a9db10
Capabilities:
Access peb ldr_data
Get process heap flags

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, 0x68
mov eax, dword [ecx + 8]
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x40], eax
test byte [0x64ab5100], 8
jne 0x64a9dcb8
test ebx, ebx
je 0x64a9dca0
mov ecx, dword [ebp - 0x40]
test edx, edx
setne byte [ebp - 0x3c]
movzx eax, byte [ebp - 0x3c]
test ecx, ecx
jne 0x64a9db66
test al, al
jne 0x64a9dca0
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x64a9dca0
lea edi, [esi - 1]
mov ecx, dword [ebx + 0x9c]
cmp edi, 0x79
ja 0x64a9dc68
test ecx, ecx
je case.0x64a9dc96.16385
lea ecx, [edx + 8]
mov dword [ebp - 0x44], edx
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
mov dword [ebp - 0x3c], ecx
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
sub esp, 0xc
test eax, eax
mov edi, eax
je 0x64a9f300
mov dword [eax], esi
lea eax, [eax + 8]
sub esi, 0x4c
mov dword [eax - 4], ecx
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x40]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memcpy
cmp esi, 1
jbe 0x64a9f2d8
mov eax, dword [ebx + 0xcc]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x9c]
mov dword [esp], eax
call sym._PlayEnhMetaFileRecord_16
sub esp, 0x10
test eax, eax
jne 0x64a9dc2c
test byte [0x64ab5100], 2
jne 0x64a9dd18
mov dword [esp + 8], edi
mov eax, dword fs:[0x18]
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
xor edi, edi
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x14
test ecx, ecx
je 0x64a9dc8b
mov dword [ebp - 0x48], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.gdiplus.dll_GdipReleaseDC
mov edx, dword [ebp - 0x48]
mov dword [ebx + 0x9c], 0
sub esp, 8
lea eax, [esi - 0x4001]
cmp eax, 0x35
ja case.0x64a9dc96.16387
jmp dword [eax*4 + str.PdPd]
mov edi, 2
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x14
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x3c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.__p__x__x__d__p__n
mov dword [esp + 8], str.GdipPlayMetafileRecord
mov dword [esp + 4], 0x64ab5100
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_9
mov edx, dword [ebp - 0x3c]
jmp 0x64a9db45
test byte [0x64ab5100], 1
jne 0x64a9f404
mov edi, 6
jmp 0x64a9dca5
mov dword [esp + 0xc], str.PlayEnhMetaFileRecord_failed_n
mov dword [esp + 8], str.GdipPlayMetafileRecord
mov dword [esp + 4], 0x64ab5100
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_9
jmp 0x64a9dc2c
mov eax, dword fs:[0x18]
mov dword [ebp - 0x44], eax
mov dword [esp + 8], 0x38
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a9f300
lea eax, [eax + 0x34]
mov dword [ebp - 0x3c], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xe0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCloneRegion
mov edx, dword [ebp - 0x3c]
sub esp, 8
test eax, eax
mov edi, eax
jne 0x64a9f794
mov eax, dword [ebx + 0x98]
lea ecx, [edx + 0x10]
mov dword [ebp - 0x3c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
cmp esi, 0x4028
je 0x64a9f6a1
call sym.gdiplus.dll_GdipSaveGraphics
mov edx, dword [ebp - 0x3c]
sub esp, 8
test eax, eax
mov edi, eax
jne 0x64a9f7ba
mov eax, dword [ebp - 0x40]
mov edi, 1
mov eax, dword [eax]
mov dword [edx + 0xc], edi
xor edi, edi
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 0x20], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x24], ecx
mov eax, dword [eax + 0x14]
mov dword [edx + 0x28], eax
mov eax, dword [ebx + 0xd4]
mov dword [edx + 0x2c], eax
fld dword [ebx + 0xd8]
fstp dword [edx + 0x30]
mov eax, dword [ebx + 0xe4]
mov dword [edx], eax
lea eax, [ebx + 0xe4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 0xe4]
mov dword [eax + 4], edx
mov dword [ebx + 0xe4], edx
jmp 0x64a9dc52
xor eax, eax
mov edi, dword [ebx + 0xe4]
cmp esi, 0x4029
lea ecx, [ebx + 0xe4]
setne al
mov dword [ebp - 0x3c], eax
cmp edi, ecx
je case.0x64a9dc96.16385
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edi
mov eax, dword [edx]
mov edx, edi
mov edi, dword [ebp - 0x3c]
jmp 0x64a9de92
mov edx, dword [edx]
cmp edx, ecx
je case.0x64a9dc96.16385
cmp dword [edx + 8], eax
jne 0x64a9de88
cmp dword [edx + 0xc], edi
jne 0x64a9de88
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
mov esi, ecx
mov dword [ebp - 0x40], ebx
mov ebx, edi
mov dword [ebp - 0x3c], edx
mov eax, dword fs:[0x18]
mov edi, eax
cmp esi, ebx
je 0x64a9df0e
lea esi, [esi]
nop
cmp dword [ebp - 0x3c], ebx
je 0x64a9f332
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [ecx + 4], eax
mov ecx, dword [ebx]
mov dword [eax], ecx
mov eax, dword [ebx + 0x34]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x40]
sub esp, 0xc
mov ebx, dword [eax + 0xe4]
cmp esi, ebx
jne 0x64a9dec0
mov eax, dword [pe_dos_header]
ud2
mov esi, dword [ebp - 0x44]
mov eax, esi
cmp al, 0x3f
ja 0x64a9dca0
movzx eax, al
cmp dword [ebx + eax*8 + 0xec], 2
lea ecx, [eax + 0x1c]
jne 0x64a9dca0
and esi, 0x4000
jne 0x64a9f4a4
cmp edx, 0x10
jne 0x64a9dca0
mov eax, dword [ebp - 0x40]
fld dword [eax + 0xc]
fstp dword [esp + 0x14]
fld dword [eax + 8]
fstp dword [esp + 0x10]
fld dword [eax + 4]
fstp dword [esp + 0xc]
fld dword [eax]
fstp dword [esp + 8]
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawEllipse
sub esp, 0x18
mov edi, eax
jmp 0x64a9dca5
mov dword [ebp - 0x30], 0
mov edi, 2
cmp edx, 0xc
jbe 0x64a9dca5
mov ecx, dword [ebp - 0x44]
sub edx, 0xc
mov esi, ecx
and esi, 0x4000
cmp esi, 1
sbb eax, eax
and eax, 8
add eax, 8
cmp eax, edx
jne 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
and ch, 0x80
jne 0x64a9f7f7
cmp eax, 0x3f
ja 0x64a9dca5
cmp dword [ebx + eax*8 + 0xec], 1
lea edx, [eax + 0x1c]
jne 0x64a9dca5
mov eax, dword [ebx + edx*8 + 0x10]
mov edi, dword [ebp - 0x40]
mov edx, dword [ebx + 0x98]
fld dword [edi + 4]
fld dword [edi + 8]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x18]
test esi, esi
je 0x64a9f8e6
movsx ecx, word [edi + 0x12]
mov dword [esp + 0x14], ecx
movsx ecx, word [edi + 0x10]
mov dword [esp + 0x10], ecx
movsx ecx, word [edi + 0xe]
mov dword [esp + 0xc], ecx
movsx ecx, word [edi + 0xc]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp], edx
call sym.gdiplus.dll_GdipFillPieI
sub esp, 0x20
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push eax
jmp 0x64a9dca5
mov eax, dword fs:[0x18]
mov dword [ebp - 0x3c], eax
mov edi, 3
mov dword [esp + 8], 0x38
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x64a9dca5
lea eax, [eax + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xe0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCloneRegion
sub esp, 8
mov edi, eax
test eax, eax
jne 0x64a9f662
lea eax, [esi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipBeginContainer2
sub esp, 8
mov edi, eax
test eax, eax
je 0x64a9f548
mov eax, dword [esi + 0x34]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
sub esp, 4
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x64a9dca5
lea eax, [edx + 0xc]
cmp eax, 0x23
jbe 0x64a9dca0
mov esi, dword [ebp - 0x40]
mov eax, dword [ebx + 0xd0]
mov edx, dword [esi]
mov dword [eax], edx
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [esi + 0x14]
mov dword [eax + 0x14], edx
mov eax, ebx
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
mov esi, dword [ebp - 0x44]
mov eax, esi
cmp al, 0x3f
ja 0x64a9dca0
movzx eax, al
cmp dword [ebx + eax*8 + 0xec], 2
lea ecx, [eax + 0x1c]
jne 0x64a9dca0
and esi, 0x4000
jne 0x64a9f4ef
cmp edx, 0x18
jne 0x64a9dca0
mov eax, dword [ebp - 0x40]
fld dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [eax]
fstp dword [esp + 0x18]
fld dword [eax + 0x14]
fstp dword [esp + 0x14]
fld dword [eax + 0x10]
fstp dword [esp + 0x10]
fld dword [eax + 0xc]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fstp dword [esp + 8]
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawPie
sub esp, 0x20
mov edi, eax
jmp 0x64a9dca5
mov esi, dword [ebp - 0x44]
mov eax, esi
cmp al, 0x3f
ja 0x64a9dca0
movzx eax, al
cmp dword [ebx + eax*8 + 0xec], 2
lea ecx, [eax + 0x1c]
jne 0x64a9dca0
mov eax, esi
test ah, 0x40
jne 0x64a9f44b
cmp edx, 0x18
jne 0x64a9dca0
mov eax, dword [ebp - 0x40]
fld dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [eax]
fstp dword [esp + 0x18]
fld dword [eax + 0x14]
fstp dword [esp + 0x14]
fld dword [eax + 0x10]
fstp dword [esp + 0x10]
fld dword [eax + 0xc]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fstp dword [esp + 8]
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawArc
sub esp, 0x20
mov edi, eax
jmp 0x64a9dca5
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0
cmp al, 0x3f
ja 0x64a9f314
cmp edx, 4
jne 0x64a9f314
mov edx, eax
movzx eax, al
mov edi, 2
cmp dword [ebx + eax*8 + 0xec], 4
lea esi, [eax + 0x1c]
jne 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
and dh, 0x80
jne 0x64a9f93e
cmp eax, 0x3f
ja 0x64a9dca5
cmp dword [ebx + eax*8 + 0xec], 1
lea edx, [eax + 0x1c]
jne 0x64a9dca5
mov eax, dword [ebx + edx*8 + 0x10]
mov edx, dword [ebx + esi*8 + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipFillRegion
mov edi, eax
mov eax, dword [ebp - 0x30]
sub esp, 0xc
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push eax
jmp 0x64a9dca5
movzx eax, byte [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetInterpolationMode
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
movzx eax, byte [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPixelOffsetMode
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
lea eax, [ebx + 0x9c]
xor edi, edi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipGetDC
sub esp, 8
jmp 0x64a9dc52
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x38], 0
mov eax, esi
shr eax, 8
cmp al, 9
ja 0x64a9f6c0
mov ecx, esi
cmp cl, 0x3f
ja 0x64a9f6c0
movzx esi, al
mov dword [ebp - 0x3c], esi
cmp al, 8
ja case.0x64a9e372.0
jmp dword [esi*4 + 0x64abf614]
mov esi, dword [ebp - 0x44]
mov eax, esi
cmp al, 0x3f
ja 0x64a9f328
cmp byte [ebp - 0x3c], 0
jne 0x64a9f328
movzx eax, al
mov edi, 2
cmp dword [ebx + eax*8 + 0xec], 4
lea edx, [eax + 0x1c]
jne 0x64a9dca5
lea eax, [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebx + edx*8 + 0x10]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCloneRegion
mov edi, eax
push esi
push esi
test eax, eax
jne 0x64a9dca5
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov eax, ebx
shr ecx, 8
and ecx, 0xf
call sym._metafile_set_clip_region
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
push ecx
jmp 0x64a9dca5
cmp edx, 4
jne 0x64a9dca0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipGraphicsClear
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
cmp edx, 4
jne 0x64a9dca0
mov esi, dword [ebp - 0x44]
mov eax, esi
cmp al, 0x3f
ja 0x64a9dca0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
cmp eax, 0x3f
ja 0x64a9dca0
mov edx, esi
movzx edx, dl
cmp dword [ebx + edx*8 + 0xec], 3
lea ecx, [edx + 0x1c]
jne 0x64a9dca0
cmp dword [ebx + eax*8 + 0xec], 2
lea edx, [eax + 0x1c]
jne 0x64a9dca0
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebx + edx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawPath
sub esp, 0xc
mov edi, eax
jmp 0x64a9dca5
mov dword [ebp - 0x30], 0
mov edi, 2
cmp edx, 0xc
jbe 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
test eax, eax
je 0x64a9dca5
mov ecx, dword [ebp - 0x44]
and ecx, 0x800
je 0x64a9f688
lea esi, [eax + eax + 0xf]
and esi, 0xfffffffc
mov edi, 2
cmp esi, edx
jne 0x64a9dca5
mov esi, dword [ebp - 0x40]
mov esi, dword [esi]
test dword [ebp - 0x44], 0x8000
jne 0x64a9f885
cmp esi, 0x3f
ja 0x64a9dca5
cmp dword [ebx + esi*8 + 0xec], 1
lea edx, [esi + 0x1c]
jne 0x64a9dca5
mov esi, dword [ebx + edx*8 + 0x10]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x44]
mov edx, ecx
shr edx, 9
and edx, 1
mov edi, edx
and ch, 0x48
je 0x64a9fa0f
shl eax, 3
mov dword [esp], eax
call sym.gdiplus.dll_GdipAlloc
push edx
mov edx, eax
test eax, eax
je 0x64a9faa8
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
jne 0x64a9fae0
mov eax, dword [ebp - 0x40]
jmp 0x64a9e557
fild word [eax + ecx*4 + 0xc]
fstp dword [edx + ecx*8]
fild word [eax + ecx*4 + 0xe]
fstp dword [edx + ecx*8 + 4]
add ecx, 1
cmp ecx, dword [eax + 8]
jb 0x64a9e545
mov dword [esp + 0x14], edi
mov eax, dword [ebp - 0x40]
fld dword [eax + 4]
fstp dword [esp + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [ebp - 0x3c], edx
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipFillClosedCurve2
mov edx, dword [ebp - 0x3c]
sub esp, 0x18
mov edi, eax
mov dword [esp], edx
call sym.gdiplus.dll_GdipFree
push eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push eax
jmp 0x64a9dca5
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0
mov edi, 2
cmp cl, 0x3f
ja 0x64a9dca5
movzx eax, cl
cmp dword [ebx + eax*8 + 0xec], 3
lea esi, [eax + 0x1c]
jne 0x64a9e5e1
cmp edx, 4
je 0x64a9f738
mov edi, 2
jmp 0x64a9dca5
mov edi, dword [ebp - 0x44]
mov eax, edi
cmp al, 0x3f
ja 0x64a9dca0
movzx eax, al
cmp dword [ebx + eax*8 + 0xec], 2
lea esi, [eax + 0x1c]
jne 0x64a9dca0
cmp edx, 4
jbe 0x64a9dca0
mov eax, dword [ebp - 0x40]
and edi, 0x4000
lea ecx, [edx - 4]
mov eax, dword [eax]
jne 0x64a9f6ca
mov edx, eax
shl edx, 4
cmp edx, ecx
jne 0x64a9dca0
mov edi, dword [ebp - 0x40]
xor edx, edx
add edi, 4
mov dword [ebp - 0x3c], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov eax, dword [ebx + esi*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawRectangles
mov edx, dword [ebp - 0x3c]
sub esp, 0x10
mov edi, eax
mov dword [esp], edx
call sym.gdiplus.dll_GdipFree
sub esp, 4
jmp 0x64a9dca5
mov dword [ebp - 0x30], 0
mov edi, 2
cmp edx, 4
jbe 0x64a9dca5
mov ecx, dword [ebp - 0x44]
sub edx, 4
mov esi, ecx
and esi, 0x4000
cmp esi, 1
sbb eax, eax
and eax, 8
add eax, 8
cmp eax, edx
jne 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
and ch, 0x80
jne 0x64a9f826
cmp eax, 0x3f
ja 0x64a9dca5
cmp dword [ebx + eax*8 + 0xec], 1
lea edx, [eax + 0x1c]
jne 0x64a9dca5
mov eax, dword [ebx + edx*8 + 0x10]
test esi, esi
mov edx, dword [ebx + 0x98]
mov esi, dword [ebp - 0x40]
je 0x64a9f8b4
movsx ecx, word [esi + 0xa]
mov dword [esp + 0x14], ecx
movsx ecx, word [esi + 8]
mov dword [esp + 0x10], ecx
movsx ecx, word [esi + 6]
mov dword [esp + 0xc], ecx
movsx ecx, word [esi + 4]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp], edx
call sym.gdiplus.dll_GdipFillEllipseI
sub esp, 0x18
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push ecx
jmp 0x64a9dca5
lea esi, [edx + 0xc]
mov dword [ebp - 0x30], 0
mov edi, 2
cmp esi, 0x13
jbe 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
mov eax, dword [eax + 4]
and ecx, 0x4000
je 0x64a9f3ef
lea edx, [eax*8 + 0x14]
cmp esi, edx
jb 0x64a9dca5
mov esi, dword [ebp - 0x40]
mov edx, dword [esi]
test dword [ebp - 0x44], 0x8000
jne 0x64a9f849
mov edi, 2
cmp edx, 0x3f
ja 0x64a9dca5
cmp dword [ebx + edx*8 + 0xec], 1
lea esi, [edx + 0x1c]
jne 0x64a9dca5
mov edi, dword [ebx + esi*8 + 0x10]
mov esi, dword [ebp - 0x40]
xor edx, edx
add esi, 8
test ecx, ecx
jne 0x64a9f98f
mov dword [ebp - 0x3c], edx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipFillRectangles
mov esi, dword [ebp - 0x3c]
sub esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
sub esp, 4
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x64a9dca5
lea eax, [edx + 0xc]
cmp eax, 0xf
jbe 0x64a9dca0
mov eax, dword [ebp - 0x44]
shr eax, 0xd
and eax, 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x40]
fld dword [eax]
fstp dword [esp + 4]
mov eax, dword [ebx + 0xd0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipRotateMatrix
mov eax, ebx
sub esp, 0xc
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
lea eax, [edx + 0xc]
mov edi, 2
cmp eax, 0x1b
jbe 0x64a9dca5
lea eax, [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateRegionRect
sub esp, 8
mov edi, eax
test eax, eax
jne 0x64a9dca5
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov eax, ebx
shr ecx, 8
and ecx, 0xf
call sym._metafile_set_clip_region
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
push eax
jmp 0x64a9dca5
mov esi, dword [ebp - 0x44]
mov eax, esi
cmp al, 0x3f
ja 0x64a9f31e
cmp byte [ebp - 0x3c], 0
jne 0x64a9f31e
movzx eax, al
mov edi, 2
cmp dword [ebx + eax*8 + 0xec], 3
lea edx, [eax + 0x1c]
jne 0x64a9dca5
lea eax, [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebx + edx*8 + 0x10]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateRegionPath
mov edi, eax
push edx
push edx
test eax, eax
jne 0x64a9dca5
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov eax, ebx
shr ecx, 8
and ecx, 0xf
call sym._metafile_set_clip_region
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
push eax
jmp 0x64a9dca5
mov ecx, dword [ebp - 0x44]
mov edi, 2
cmp cl, 0x3f
ja 0x64a9dca5
movzx eax, cl
cmp dword [ebx + eax*8 + 0xec], 5
lea esi, [eax + 0x1c]
jne 0x64a9dca5
and ecx, 0x4000
cmp ecx, 1
sbb eax, eax
and eax, 8
add eax, 0x20
cmp eax, edx
jne 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
cmp eax, 0x3f
ja 0x64a9dca5
cmp dword [ebx + eax*8 + 0xec], 8
lea edx, [eax + 0x1c]
jne 0x64a9dca5
mov eax, dword [ebp - 0x40]
test ecx, ecx
je 0x64a9fa44
fild word [eax + 0x18]
fst dword [ebp - 0x30]
fild word [eax + 0x1a]
fst dword [ebp - 0x2c]
fild word [eax + 0x1c]
faddp st(2)
fxch st(1)
fst dword [ebp - 0x28]
fxch st(1)
fst dword [ebp - 0x24]
fxch st(1)
fstp dword [ebp - 0x20]
fild word [eax + 0x1e]
faddp st(1)
xor edi, edi
fstp dword [ebp - 0x1c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
mov eax, dword [ebx + edx*8 + 0x10]
mov dword [esp + 0x24], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
mov dword [esp + 0x20], eax
fld dword [edx + 0x14]
lea eax, [ebp - 0x30]
fstp dword [esp + 0x1c]
fld dword [edx + 0x10]
fstp dword [esp + 0x18]
fld dword [edx + 0xc]
fstp dword [esp + 0x14]
fld dword [edx + 8]
mov dword [esp + 0xc], 3
mov dword [esp + 8], eax
fstp dword [esp + 0x10]
mov eax, dword [ebx + esi*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawImagePointsRect
sub esp, 0x30
mov edi, eax
jmp 0x64a9dca5
fldz
fst dword [esp + 0x18]
fst dword [esp + 0x14]
fld1
fst dword [esp + 0x10]
fxch st(1)
fst dword [esp + 0xc]
fstp dword [esp + 8]
fstp dword [esp + 4]
mov eax, dword [ebx + 0xd0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetMatrixElements
mov eax, ebx
sub esp, 0x1c
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
cmp byte [ebp - 0x44], 0x3f
mov dword [ebp - 0x30], 0
ja 0x64a9f30a
movzx eax, byte [ebp - 0x44]
lea esi, [eax + 0x1c]
cmp dword [ebx + eax*8 + 0xec], 6
mov dword [ebp - 0x3c], esi
jne 0x64a9f30a
cmp edx, 0xf
jbe 0x64a9f30a
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x64a9f30a
lea ecx, [eax + eax*4]
mov esi, dword [esi + 8]
add ecx, ecx
lea edi, [ecx + 0x28]
test esi, esi
jne 0x64a9ea9f
lea edi, [ecx + 0x10]
lea ecx, [edi + 3]
and ecx, 0xfffffffc
cmp edx, ecx
jne 0x64a9f30a
mov esi, dword [ebp - 0x40]
mov edx, dword [esi]
test dword [ebp - 0x44], 0x8000
jne 0x64a9fa6a
cmp edx, 0x3f
ja 0x64a9f30a
cmp dword [ebx + edx*8 + 0xec], 1
lea ecx, [edx + 0x1c]
jne 0x64a9f30a
mov esi, dword [ebx + ecx*8 + 0x10]
mov dword [ebp - 0x44], esi
mov esi, dword [ebp - 0x40]
mov ecx, dword [esi + 8]
lea edi, [esi + 0x10]
test al, 1
je 0x64a9faba
lea edx, [eax*8]
test ecx, ecx
je 0x64a9eaff
add edx, 0x18
mov dword [esp + 8], edx
mov dword [ebp - 0x48], edx
xor edx, edx
mov dword [esp + 4], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x48]
sub esp, 0xc
test eax, eax
mov ecx, eax
je 0x64a9faca
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + 0xc]
mov dword [esp], ecx
mov dword [esp + 8], edx
add eax, eax
add eax, edi
mov dword [esp + 4], eax
mov dword [ebp - 0x48], ecx
call sym._memcpy
mov ecx, dword [ebp - 0x48]
mov eax, dword [esi + 0xc]
mov esi, dword [ebp - 0x40]
xor edx, edx
cmp dword [esi + 8], 0
je 0x64a9eb62
lea edx, [ecx + eax*8]
mov dword [esp + 0x1c], edx
mov esi, dword [ebp - 0x40]
mov edx, dword [esi + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov esi, dword [ebp - 0x44]
mov dword [esp + 0x10], esi
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebx + esi*8 + 0x10]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 0x98]
xor ebx, ebx
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawDriverString
mov edi, eax
mov eax, dword [ebp - 0x30]
sub esp, 0x20
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push ecx
mov esi, dword [ebp - 0x48]
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x64a9dca5
mov eax, dword [ebp - 0x44]
shr eax, 1
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetSmoothingMode
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
movzx eax, byte [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetTextRenderingHint
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
cmp byte [ebp - 0x44], 0x3f
ja 0x64a9ec98
mov esi, dword [ebp - 0x44]
mov eax, esi
movzx eax, al
lea edi, [eax + 0x1c]
cmp dword [ebx + eax*8 + 0xec], 5
mov dword [ebp - 0x3c], edi
jne 0x64a9ec98
cmp edx, 0x1c
jbe 0x64a9ec98
mov edi, dword [ebp - 0x40]
mov eax, dword [edi]
cmp eax, 0x3f
ja 0x64a9ec98
cmp dword [ebx + eax*8 + 0xec], 8
jne 0x64a9ec98
cmp dword [edi + 0x18], 3
jne 0x64a9ec98
and esi, 0x2000
je 0x64a9ec76
test byte [0x64ab5100], 1
jne 0x64a9fc85
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
sub edx, 0x1c
mov eax, dword [eax + 0x18]
and ecx, 0x800
je 0x64a9fbf2
add eax, eax
cmp edx, eax
je 0x64a9fb22
mov edi, 2
jmp 0x64a9dca5
lea eax, [edx + 0xc]
cmp eax, 0xf
jbe 0x64a9dca0
mov eax, dword [ebp - 0x44]
mov dword [ebx + 0xd4], eax
mov eax, dword [ebp - 0x40]
fld dword [eax]
mov eax, ebx
fstp dword [ebx + 0xd8]
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
movzx eax, byte [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetCompositingMode
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
movzx eax, byte [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetCompositingQuality
sub esp, 8
mov edi, eax
jmp 0x64a9dca5
lea eax, [edx + 0xc]
cmp eax, 0x13
jbe 0x64a9dca0
mov eax, dword [ebp - 0x44]
shr eax, 0xd
and eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x40]
fld dword [eax + 4]
fstp dword [esp + 8]
fld dword [eax]
fstp dword [esp + 4]
mov eax, dword [ebx + 0xd0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipTranslateMatrix
mov eax, ebx
sub esp, 0x10
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
lea eax, [edx + 0xc]
cmp eax, 0x13
jbe 0x64a9dca0
mov eax, dword [ebp - 0x44]
shr eax, 0xd
and eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x40]
fld dword [eax + 4]
fstp dword [esp + 8]
fld dword [eax]
fstp dword [esp + 4]
mov eax, dword [ebx + 0xd0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipScaleMatrix
mov eax, ebx
sub esp, 0x10
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
lea eax, [edx + 0xc]
mov edi, 2
cmp eax, 0x23
jbe 0x64a9dca5
mov esi, dword [ebp - 0x40]
lea edx, [ebp - 0x30]
mov eax, dword [esi]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], edx
shr eax, 0xd
and eax, 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xd0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipMultiplyMatrix
mov eax, ebx
sub esp, 0xc
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
xor ecx, ecx
mov edi, 2
mov dword [ebp - 0x30], ecx
cmp edx, 0x18
jne 0x64a9dca5
lea eax, [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateImageAttributes
mov edi, eax
push edx
test eax, eax
jne 0x64a9dca5
mov edx, dword [ebp - 0x40]
xor eax, eax
cmp dword [edx + 0x10], 0
setne al
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [edx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetImageAttributesWrapMode
mov edi, eax
sub esp, 0x10
mov eax, dword [ebp - 0x30]
test edi, edi
jne 0x64a9fc4a
mov dword [ebp - 0x38], eax
movzx eax, byte [ebp - 0x44]
mov esi, dword [ebp - 0x38]
lea edi, [ebx + eax*8]
mov eax, dword [edi + 0xec]
cmp eax, 8
ja case.0x64a9ee88.7
jmp dword [eax*4 + 0x64abf638]
cmp edx, 0x18
jbe 0x64a9fa05
mov esi, dword [ebp - 0x40]
sub edx, 0x18
mov edi, 2
mov eax, dword [esi + 0x14]
add eax, eax
cmp edx, eax
jb 0x64a9dca5
add eax, 2
mov dword [esp], eax
call sym.gdiplus.dll_GdipAlloc
mov edi, eax
push edx
test eax, eax
je 0x64a9fa9e
mov eax, dword [esi + 0x14]
mov edx, esi
mov dword [esp], edi
add edx, 0x18
add eax, eax
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym._memcpy
mov eax, dword [esi + 0x14]
lea edx, [ebp - 0x30]
mov word [edi + eax*2], 0
xor eax, eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call sym.gdiplus.dll_GdipCreateFontFamilyFromName
sub esp, 0xc
mov dword [ebp - 0x48], eax
mov dword [esp], edi
call sym.gdiplus.dll_GdipFree
lea edx, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x64a9ef2a
mov dword [esp], edx
call sym.gdiplus.dll_GdipGetGenericFontFamilySansSerif
mov edi, eax
push esi
test eax, eax
jne 0x64a9dca5
lea eax, [ebp - 0x38]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 8]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 8], eax
fld dword [edx + 4]
fstp dword [esp + 4]
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateFont
mov edi, eax
mov eax, dword [ebp - 0x30]
sub esp, 0x14
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteFontFamily
push eax
test edi, edi
jne 0x64a9dca5
jmp 0x64a9ee6f
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x38]
call sym._metafile_deserialize_image
mov edi, eax
jmp 0x64a9ef65
cmp edx, 0x14
jbe 0x64a9f87d
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 8]
mov eax, ecx
and eax, 1
cmp eax, 1
sbb eax, eax
and eax, 0xffffffe8
add eax, 0x2c
test cl, 2
je 0x64a9efa8
add eax, 4
test cl, 4
je 0x64a9efb0
add eax, 4
test cl, 8
je 0x64a9efb8
add eax, 4
test cl, 0x10
je 0x64a9efc0
add eax, 4
test cl, 0x20
je 0x64a9efc8
add eax, 4
test cl, 0x40
je 0x64a9efd0
add eax, 4
test cl, 0x80
je 0x64a9efd8
add eax, 4
test ch, 1
je 0x64a9eff2
mov edi, dword [ebp - 0x40]
add edi, eax
add eax, 4
cmp eax, edx
jae 0x64a9f87d
mov edi, dword [edi]
lea eax, [eax + edi*4]
test ch, 2
je 0x64a9effa
add eax, 4
test ch, 4
je 0x64a9f013
lea edi, [eax + 4]
cmp edi, edx
jae 0x64a9f87d
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + eax]
lea eax, [edi + eax*4]
test ch, 8
je 0x64a9f02b
lea edi, [eax + 4]
cmp edi, edx
jae 0x64a9f87d
mov esi, dword [ebp - 0x40]
add edi, dword [esi + eax]
mov eax, edi
and ch, 0x10
je 0x64a9f043
lea ecx, [eax + 4]
cmp ecx, edx
jae 0x64a9f87d
mov esi, dword [ebp - 0x40]
add ecx, dword [esi + eax]
mov eax, ecx
mov esi, dword [ebp - 0x40]
sub edx, eax
lea ecx, [ebp - 0x34]
add eax, esi
call sym._metafile_deserialize_brush
test eax, eax
jne 0x64a9f87a
lea eax, [ebp - 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 8], eax
fld dword [esi + 0x10]
fstp dword [esp + 4]
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreatePen2
mov edi, eax
mov eax, dword [ebp - 0x34]
sub esp, 0x10
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push eax
test edi, edi
jne 0x64a9fab2
mov eax, dword [esi + 8]
mov edx, 0xc
test al, 1
je 0x64a9f0b1
test byte [0x64ab5100], 1
jne 0x64a9fc58
mov edx, 0x24
test al, 2
jne 0x64a9fd28
test al, 4
jne 0x64a9fce5
test al, 8
jne 0x64a9febd
test al, 0x10
jne 0x64a9fe8a
test al, 0x20
jne 0x64a9fe57
test al, 0x40
je 0x64a9f0ed
test byte [0x64ab5100], 1
jne 0x64a9fcb2
add edx, 4
test al, 0x80
jne 0x64a9fe2d
test ah, 1
je 0x64a9fdea
test byte [0x64ab5100], 1
jne 0x64a9fdc2
test ah, 4
je 0x64a9fd7f
test byte [0x64ab5100], 1
jne 0x64a9fd57
test ah, 8
jne 0x64a9f156
test ah, 0x10
je 0x64a9f156
test byte [0x64ab5100], 1
je 0x64a9f156
xor eax, eax
mov dword [esp + 0xc], str.PenDataCustomEndCap_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], eax
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
jmp 0x64a9ee6f
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x38]
call sym._metafile_deserialize_brush
mov edi, eax
jmp 0x64a9ef65
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], eax
cmp edx, 7
jle 0x64a9f6c0
mov dword [ebp - 0x28], 8
test eax, eax
je 0x64a9f6c0
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateRegion
push edi
mov edi, eax
test eax, eax
jne 0x64a9dca5
lea eax, [ebp - 0x34]
xor esi, esi
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x34], esi
mov dword [esp], eax
lea ecx, [edx + 4]
lea eax, [ebp - 0x30]
call sym._metafile_read_region_node
mov edi, eax
test eax, eax
jne 0x64a9f1d8
cmp dword [ebp - 0x34], 0
jne 0x64a9ee6f
mov edi, 2
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
push ecx
jmp 0x64a9dca5
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x38]
call sym._metafile_deserialize_path
mov edi, eax
jmp 0x64a9ef65
test byte [0x64ab5100], 1
jne 0x64a9f961
mov edi, 6
jmp 0x64a9dca5
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push ebx
mov eax, dword [ebp - 0x3c]
mov dword [edi + 0xf0], esi
mov dword [edi + 0xec], eax
xor edi, edi
jmp 0x64a9dca5
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDisposeImageAttributes
push eax
jmp case.0x64a9ee88.0
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteFont
push eax
jmp case.0x64a9ee88.0
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDisposeImage
push eax
jmp case.0x64a9ee88.0
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
push eax
jmp case.0x64a9ee88.0
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePath
push edx
jmp case.0x64a9ee88.0
mov eax, dword [edi + 0xf0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePen
push ecx
jmp case.0x64a9ee88.0
test byte [0x64ab5100], 1
je case.0x64a9ee88.0
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], str.not_implemented_for_object_type__u._n
mov dword [esp + 8], str.metafile_free_object_table_entry
mov dword [esp + 4], 0x64ab5100
mov dword [esp], eax
call sym._wine_dbg_log.constprop.0_9
jmp case.0x64a9ee88.0
mov dword [esp + 4], 4
mov eax, dword [ebx + 0x9c]
mov dword [esp], eax
call sym._SetStretchBltMode_8
sub esp, 8
jmp 0x64a9dbf2
mov edi, 3
jmp 0x64a9dca5
mov edi, 2
jmp 0x64a9dca5
mov edi, 2
jmp 0x64a9dca5
mov edi, 2
jmp 0x64a9dca5
mov edi, 2
jmp 0x64a9dca5
mov edx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
mov ecx, dword [edx + 0x10]
mov eax, dword [ebx + 0x98]
cmp esi, 0x4029
jne 0x64a9f431
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.gdiplus.dll_GdipEndContainer
mov edx, dword [ebp - 0x3c]
sub esp, 8
mov ecx, dword [edx + 0x14]
mov eax, dword [ebx + 0xd0]
mov dword [eax], ecx
mov ecx, dword [edx + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 0x1c]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0x20]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x28]
mov dword [eax + 0x14], ecx
mov eax, dword [edx + 0x2c]
mov dword [ebx + 0xd4], eax
fld dword [edx + 0x30]
fstp dword [ebx + 0xd8]
mov dword [esp + 8], 0
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x3c], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xe0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCombineRegionRegion
mov edx, dword [ebp - 0x3c]
sub esp, 0xc
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov ecx, dword [edx]
mov dword [eax], ecx
mov eax, dword [edx + 0x34]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
mov edx, dword [ebp - 0x3c]
sub esp, 4
mov dword [esp + 8], edx
mov eax, dword fs:[0x18]
jmp 0x64a9dc36
mov edx, eax
shl edx, 4
add edx, 0x14
cmp esi, edx
jae 0x64a9e768
jmp 0x64a9dca5
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Not_implemented_for_record_type__x_n
mov dword [esp + 8], str.GdipPlayMetafileRecord
mov dword [esp + 4], 0x64ab5100
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_9
jmp 0x64a9dd0d
mov dword [ebp - 0x3c], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.gdiplus.dll_GdipRestoreGraphics
mov edx, dword [ebp - 0x3c]
sub esp, 8
jmp 0x64a9f362
cmp edx, 0x10
jne 0x64a9dca0
mov esi, dword [ebp - 0x40]
fld dword [esi + 4]
fstp dword [esp + 0x1c]
fld dword [esi]
fstp dword [esp + 0x18]
movsx eax, word [esi + 0xe]
mov dword [esp + 0x14], eax
movsx eax, word [esi + 0xc]
mov dword [esp + 0x10], eax
movsx eax, word [esi + 0xa]
mov dword [esp + 0xc], eax
movsx eax, word [esi + 8]
mov dword [esp + 8], eax
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawArcI
sub esp, 0x20
mov edi, eax
jmp 0x64a9dca5
cmp edx, 8
jne 0x64a9dca0
mov esi, dword [ebp - 0x40]
movsx eax, word [esi + 6]
mov dword [esp + 0x14], eax
movsx eax, word [esi + 4]
mov dword [esp + 0x10], eax
movsx eax, word [esi + 2]
mov dword [esp + 0xc], eax
movsx eax, word [esi]
mov dword [esp + 8], eax
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawEllipseI
sub esp, 0x18
mov edi, eax
jmp 0x64a9dca5
cmp edx, 0x10
jne 0x64a9dca0
mov esi, dword [ebp - 0x40]
fld dword [esi + 4]
fstp dword [esp + 0x1c]
fld dword [esi]
fstp dword [esp + 0x18]
movsx eax, word [esi + 0xe]
mov dword [esp + 0x14], eax
movsx eax, word [esi + 0xc]
mov dword [esp + 0x10], eax
movsx eax, word [esi + 0xa]
mov dword [esp + 0xc], eax
movsx eax, word [esi + 8]
mov dword [esp + 8], eax
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawPieI
sub esp, 0x20
mov edi, eax
jmp 0x64a9dca5
mov edi, dword [ebp - 0x40]
mov eax, dword [edi + 0x20]
mov dword [esi + 0xc], 0
mov dword [esi + 8], eax
mov eax, dword [ebx + 0xd0]
mov edx, dword [eax]
mov dword [esi + 0x14], edx
mov edx, dword [eax + 4]
mov dword [esi + 0x18], edx
mov edx, dword [eax + 8]
mov dword [esi + 0x1c], edx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x20], edx
mov edx, dword [eax + 0x10]
mov dword [esi + 0x24], edx
mov eax, dword [eax + 0x14]
mov dword [esi + 0x28], eax
mov eax, dword [ebx + 0xd4]
mov dword [esi + 0x2c], eax
fld dword [ebx + 0xd8]
fstp dword [esi + 0x30]
mov eax, dword [ebx + 0xe4]
mov dword [esi], eax
lea eax, [ebx + 0xe4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 0xe4]
mov dword [eax + 4], esi
mov eax, dword [ebx + 0x8c]
mov dword [ebx + 0xe4], esi
movzx esi, byte [edi - 0xa]
mov dword [esp + 0xc], eax
fld dword [ebx + 0x2c]
fstp dword [esp + 8]
mov dword [esp + 4], esi
mov dword [esp], 0x3f800000
call sym._units_to_pixels
mov eax, dword [ebx + 0x8c]
fstp dword [ebp - 0x3c]
mov dword [esp + 0xc], eax
fld dword [ebx + 0x30]
mov dword [esp + 4], esi
mov dword [esp], 0x3f800000
fstp dword [esp + 8]
call sym._units_to_pixels
fld dword [ebp - 0x3c]
fld dword [edi + 0x10]
lea eax, [ebp - 0x30]
fmul st(1)
fld dword [edi + 0x14]
fmul st(3)
fxch st(3)
fmul dword [edi + 0x1c]
fxch st(2)
fmul dword [edi + 0x18]
fdivr dword [edi + 8]
fstp dword [ebp - 0x30]
fldz
fst dword [ebp - 0x2c]
fstp dword [ebp - 0x28]
fxch st(1)
fdivr dword [edi + 0xc]
fstp dword [ebp - 0x24]
fsubr dword [edi]
fstp dword [ebp - 0x20]
fsubr dword [edi + 4]
fstp dword [ebp - 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xd0]
mov dword [esp], eax
call sym.gdiplus.dll_GdipMultiplyMatrix
mov eax, ebx
sub esp, 0xc
call sym._METAFILE_PlaybackUpdateWorldTransform
mov edi, eax
jmp 0x64a9dca5
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x64a9dca5
test dword [ebp - 0x44], 0x4000
je 0x64a9f81a
lea esi, [eax*4 + 0xc]
jmp 0x64a9e4c9
call sym.gdiplus.dll_GdipBeginContainer2
mov edx, dword [ebp - 0x3c]
sub esp, 8
test eax, eax
mov edi, eax
jne 0x64a9f7ba
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
jmp 0x64a9dde3
mov edi, 2
jmp 0x64a9dca5
lea edx, [eax*8]
cmp edx, ecx
jne 0x64a9dca0
shl eax, 4
mov dword [esp], eax
call sym.gdiplus.dll_GdipAlloc
sub esp, 4
mov edi, eax
test eax, eax
je 0x64a9f300
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
test ecx, ecx
je 0x64a9f72f
mov dword [ebp - 0x3c], edi
mov edx, edi
mov edi, dword [ebp - 0x40]
xor eax, eax
fild word [edi + eax*8 + 4]
add edx, 0x10
fstp dword [edx - 0x10]
fild word [edi + eax*8 + 6]
fstp dword [edx - 0xc]
fild word [edi + eax*8 + 8]
fstp dword [edx - 8]
fild word [edi + eax*8 + 0xa]
add eax, 1
fstp dword [edx - 4]
mov ecx, dword [edi]
cmp eax, ecx
jb 0x64a9f704
mov edi, dword [ebp - 0x3c]
mov eax, ecx
mov edx, edi
jmp 0x64a9e63e
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
and ch, 0x80
jne 0x64a9f91b
cmp eax, 0x3f
ja 0x64a9dca5
cmp dword [ebx + eax*8 + 0xec], 1
lea edx, [eax + 0x1c]
jne 0x64a9dca5
mov eax, dword [ebx + edx*8 + 0x10]
mov edx, dword [ebx + esi*8 + 0x10]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipFillPath
mov edi, eax
mov eax, dword [ebp - 0x30]
sub esp, 0xc
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push ebx
jmp 0x64a9dca5
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x64a9dca5
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x3c], edx
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteRegion
mov edx, dword [ebp - 0x3c]
sub esp, 4
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x64a9dca5
lea edx, [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.gdiplus.dll_GdipCreateSolidFill
mov edi, eax
push edx
push edx
test eax, eax
jne 0x64a9dca5
mov eax, dword [ebp - 0x30]
jmp 0x64a9dfee
lea esi, [eax*8 + 0xc]
jmp 0x64a9e4c9
lea edx, [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.gdiplus.dll_GdipCreateSolidFill
push edi
push edi
mov edi, eax
test eax, eax
jne 0x64a9dca5
mov eax, dword [ebp - 0x30]
jmp 0x64a9e6d9
lea eax, [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipCreateSolidFill
mov edi, eax
push edx
push edx
test eax, eax
jne 0x64a9e7d2
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + 4]
jmp 0x64a9e79d
mov dword [ebp - 0x3c], eax
mov edi, dword [ebp - 0x3c]
jmp 0x64a9dca5
lea eax, [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call sym.gdiplus.dll_GdipCreateSolidFill
mov edi, eax
push ecx
push ecx
test eax, eax
jne 0x64a9dca5
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + 8]
jmp 0x64a9e506
fld dword [esi + 0x10]
fstp dword [esp + 0x14]
fld dword [esi + 0xc]
fstp dword [esp + 0x10]
fld dword [esi + 8]
fstp dword [esp + 0xc]
fld dword [esi + 4]
mov dword [esp + 4], eax
mov dword [esp], edx
fstp dword [esp + 8]
call sym.gdiplus.dll_GdipFillEllipse
sub esp, 0x18
mov edi, eax
jmp 0x64a9e71b
mov esi, dword [ebp - 0x40]
fld dword [esi + 0x18]
fstp dword [esp + 0x14]
fld dword [esi + 0x14]
fstp dword [esp + 0x10]
fld dword [esi + 0x10]
fstp dword [esp + 0xc]
fld dword [esi + 0xc]
mov dword [esp + 4], eax
mov dword [esp], edx
fstp dword [esp + 8]
call sym.gdiplus.dll_GdipFillPie
sub esp, 0x20
mov edi, eax
jmp 0x64a9e03e
lea edx, [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.gdiplus.dll_GdipCreateSolidFill
push edi
push edi
mov edi, eax
test eax, eax
jne 0x64a9dca5
mov eax, dword [ebp - 0x30]
jmp 0x64a9f764
lea edx, [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.gdiplus.dll_GdipCreateSolidFill
mov edi, eax
push edx
push edx
test eax, eax
jne 0x64a9dca5
mov eax, dword [ebp - 0x30]
jmp 0x64a9e2ab
mov eax, dword [ebp - 0x3c]
xor esi, esi
mov dword [esp + 0xc], str.not_implemented_for_object_type__d._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x64ab5100
mov dword [esp], esi
call sym._wine_dbg_log.constprop.0_9
jmp 0x64a9f208
shl eax, 4
mov dword [esp + 4], 8
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x64a9fa94
mov edx, dword [ebp - 0x40]
cmp dword [edx + 4], 0
je 0x64a9f9f8
xor eax, eax
fild word [edx + eax*8 + 8]
mov ecx, eax
shl ecx, 4
fstp dword [esi + ecx]
fild word [edx + eax*8 + 0xa]
fstp dword [esi + ecx + 4]
fild word [edx + eax*8 + 0xc]
fstp dword [esi + ecx + 8]
fild word [edx + eax*8 + 0xe]
add eax, 1
fstp dword [esi + ecx + 0xc]
cmp eax, dword [edx + 4]
jb 0x64a9f9cc
mov eax, dword [ebp - 0x40]
mov edx, esi
mov eax, dword [eax + 4]
jmp 0x64a9e7ad
mov edi, 2
jmp 0x64a9dca5
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x40]
fld dword [edx + 4]
mov dword [esp + 0xc], eax
lea eax, [edx + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
fstp dword [esp + 0x10]
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipFillClosedCurve2
sub esp, 0x18
mov edi, eax
jmp 0x64a9e59b
fld dword [eax + 0x18]
fst dword [ebp - 0x30]
fld dword [eax + 0x1c]
fst dword [ebp - 0x2c]
fxch st(1)
fadd dword [eax + 0x20]
fst dword [ebp - 0x28]
fxch st(1)
fst dword [ebp - 0x24]
fxch st(1)
fstp dword [ebp - 0x20]
fadd dword [eax + 0x24]
jmp 0x64a9e9a5
lea eax, [ebp - 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipCreateSolidFill
push ecx
push ecx
test eax, eax
jne 0x64a9f30a
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0xc]
jmp 0x64a9eae0
mov edi, 3
jmp 0x64a9e7d2
mov edi, 3
jmp 0x64a9dca5
mov edi, 3
jmp 0x64a9e59b
mov dword [ebp - 0x3c], edi
jmp 0x64a9f87d
lea edx, [eax + eax]
xor esi, esi
mov dword [ebp - 0x48], esi
lea ecx, [edi + edx]
jmp 0x64a9eb54
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeleteBrush
push edi
mov edi, 3
jmp 0x64a9dca5
mov dword [ebp - 0x3c], ebx
mov ecx, dword [ebp - 0x40]
mov eax, 1
jmp 0x64a9fb15
movzx ebx, byte [ecx + eax*2 + 0xc]
mov dword [ebp - 0x44], ebx
fild dword [ebp - 0x44]
fadd dword [edx + eax*8 - 8]
fstp dword [edx + eax*8]
movzx ebx, byte [ecx + eax*2 + 0xd]
mov dword [ebp - 0x44], ebx
fild dword [ebp - 0x44]
fadd dword [edx + eax*8 - 4]
fstp dword [edx + eax*8 + 4]
add eax, 1
cmp eax, dword [ecx + 8]
jb 0x64a9faed
mov ebx, dword [ebp - 0x3c]
jmp 0x64a9e55c
mov esi, dword [ebp - 0x40]
movzx eax, byte [esi + 0x1c]
mov word [ebp - 0x44], ax
fild word [ebp - 0x44]
movzx eax, byte [esi + 0x1d]
fst dword [ebp - 0x30]
mov word [ebp - 0x44], ax
fild word [ebp - 0x44]
movzx eax, byte [esi + 0x1e]
fst dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
movzx eax, byte [esi + 0x1f]
faddp st(2)
fxch st(1)
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0x20]
fst dword [ebp - 0x28]
fild dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0x21]
faddp st(2)
fxch st(1)
fst dword [ebp - 0x24]
fild dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x30]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x20]
fild dword [ebp - 0x44]
faddp st(1)
fstp dword [ebp - 0x1c]
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edx
mov esi, dword [ebp - 0x40]
mov ecx, dword [esi]
mov ecx, dword [ebx + ecx*8 + 0xf0]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x20], ecx
fld dword [esi + 0x14]
fstp dword [esp + 0x1c]
fld dword [esi + 0x10]
fstp dword [esp + 0x18]
fld dword [esi + 0xc]
fstp dword [esp + 0x14]
fld dword [esi + 8]
mov dword [esp + 0xc], 3
mov dword [esp + 8], eax
fstp dword [esp + 0x10]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebx + eax*8 + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDrawImagePointsRect
sub esp, 0x30
mov edi, eax
jmp 0x64a9dca5
test dword [ebp - 0x44], 0x4000
je 0x64a9fc28
shl eax, 2
cmp edx, eax
jne 0x64a9ec98
mov edx, dword [ebp - 0x40]
lea eax, [ebp - 0x30]
fild word [edx + ecx*4 + 0x1c]
fstp dword [eax + ecx*8]
fild word [edx + ecx*4 + 0x1e]
fstp dword [eax + ecx*8 + 4]
add ecx, 1
cmp ecx, 3
jne 0x64a9fc0c
jmp 0x64a9fb86
shl eax, 3
cmp edx, eax
jne 0x64a9ec98
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x30]
mov ecx, 6
mov edi, eax
add esi, 0x1c
rep movsd dword es:[edi], dword [esi]
jmp 0x64a9fb86
mov dword [esp], eax
call sym.gdiplus.dll_GdipDisposeImageAttributes
push eax
jmp 0x64a9dca5
xor ecx, ecx
mov dword [esp + 0xc], str.PenDataTransform_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], ecx
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
jmp 0x64a9f0ac
xor ecx, ecx
mov dword [ebp - 0x48], edx
mov dword [esp + 0xc], str.image_effects_are_not_supported._n
mov dword [esp + 8], str.GdipPlayMetafileRecord
mov dword [esp + 4], 0x64ab5100
mov dword [esp], ecx
call sym._wine_dbg_log.constprop.0_9
mov edx, dword [ebp - 0x48]
jmp 0x64a9ec76
xor esi, esi
mov dword [ebp - 0x48], edx
mov dword [esp + 0xc], str.PenDataDashedLineCap_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], esi
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x48]
mov eax, dword [eax + 8]
jmp 0x64a9f0ea
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
mov eax, dword [esi + edx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPenEndCap
push edi
push edi
mov edi, eax
test eax, eax
jne 0x64a9fd14
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 8]
add edx, 4
jmp 0x64a9f0c1
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePen
push eax
mov dword [ebp - 0x3c], edi
jmp 0x64a9f87d
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
mov eax, dword [esi + edx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPenStartCap
mov edi, eax
push edx
push edx
test eax, eax
jne 0x64a9fd14
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 8]
add edx, 4
jmp 0x64a9f0b9
xor eax, eax
mov dword [esp + 0xc], str.PenDataCompoundLine_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], eax
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
test ah, 8
je 0x64a9f126
test byte [0x64ab5100], 1
je 0x64a9f156
xor eax, eax
mov dword [esp + 0xc], str.PenDataCustomStartCap_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], eax
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
jmp 0x64a9f126
xor edx, edx
mov dword [esp + 0xc], str.PenDataDashedLine_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], edx
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
test ah, 2
je 0x64a9f10b
test byte [0x64ab5100], 1
je 0x64a9f10b
xor eax, eax
mov dword [esp + 0xc], str.PenDataNonCenter_is_not_supported._n
mov dword [esp + 8], str.METAFILE_PlaybackObject
mov dword [esp + 4], 0x64ab5100
mov dword [esp], eax
call sym._wine_dbg_log.constprop.0_9
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
jmp 0x64a9f10b
mov esi, dword [ebp - 0x40]
fld dword [esi + edx + 8]
fstp dword [esp + 4]
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPenDashOffset
mov edi, eax
push ecx
push ecx
test eax, eax
jne 0x64a9fd14
mov eax, dword [esi + 8]
jmp 0x64a9f0f5
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
mov eax, dword [esi + edx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPenDashStyle
push edi
push edi
mov edi, eax
test eax, eax
jne 0x64a9fd14
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 8]
add edx, 4
jmp 0x64a9f0d9
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
fld dword [esi + edx + 8]
fstp dword [esp + 4]
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPenMiterLimit
mov edi, eax
push edx
push edx
test eax, eax
jne 0x64a9fd14
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 8]
add edx, 4
jmp 0x64a9f0d1
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
mov eax, dword [esi + edx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipSetPenLineJoin
mov edi, eax
push ecx
push ecx
test eax, eax
jne 0x64a9fd14
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 8]
add edx, 4
jmp 0x64a9f0c9