Function at 0x64aad7b0
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 dword [ebp - 0x30], eax
test byte [0x64ab5130], 8
jne 0x64aad958
test ebx, ebx
je 0x64aad948
test esi, esi
je 0x64aad948
lea eax, [ebp - 0x1c]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipCreateRegionRect
mov dword [ebp - 0x2c], eax
sub esp, 8
test eax, eax
jne 0x64aad933
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x64aada20
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov esi, dword fs:[0x18]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x3c], eax
call eax
mov dword [ebp - 0x34], eax
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x64aad9a0
mov edx, dword [ebx + 4]
mov dword [eax], edx
mov edx, dword [ebx + 8]
mov dword [eax + 4], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0x10]
mov dword [eax + 0xc], edx
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x10], eax
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x40], edi
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov dword [ebp - 0x38], eax
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64aad9a0
mov eax, dword [edi + 4]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x64aadbb0
ja 0x64aadab0
cmp eax, 0x10000000
jne 0x64aadabe
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + 8]
mov dword [edx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x30]
add dword [ebx], 2
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x34]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0xc], eax
mov ebx, dword [ebp - 0x1c]
test byte [0x64ab5130], 8
jne 0x64aadcd0
test ebx, ebx
je 0x64aad933
lea eax, [ebx + 4]
mov dword [esp], eax
call sym._delete_element
mov dword [esp + 8], ebx
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
mov eax, dword [ebp - 0x2c]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
mov dword [ebp - 0x2c], 2
jmp 0x64aad933
mov dword [esp], esi
call sym._debugstr_rectf
mov edx, dword [ebp - 0x30]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], str._p__s__d_n
mov dword [esp + 8], str.GdipCombineRegionRect
mov dword [esp + 4], 0x64ab5130
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_12
jmp 0x64aad7dc
mov dword [ebp - 0x2c], 3
mov esi, dword [ebp - 0x34]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov eax, dword [eax + 0x30]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov ebx, dword [ebp - 0x1c]
sub esp, 0xc
test byte [0x64ab5130], 8
jne 0x64aada80
test ebx, ebx
je 0x64aad933
lea eax, [ebx + 4]
mov dword [esp], eax
call sym._delete_element
mov dword [esp + 8], ebx
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 esi
sub esp, 0xc
jmp 0x64aad933
lea eax, [ebx + 4]
mov dword [esp], eax
call sym._delete_element
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov dword [ebx], edx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov edx, dword [eax + 8]
mov dword [ebx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ebx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [ebx + 0x14], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
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_HeapFree]
sub esp, 0xc
jmp 0x64aad933
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x64ac0781
mov dword [esp + 8], str.GdipDeleteRegion
mov dword [esp + 4], 0x64ab5130
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_12
jmp 0x64aad9e0
sub eax, 0x10000002
cmp eax, 1
jbe 0x64aad8db
mov eax, dword [ebp - 0x40]
mov dword [edx + 4], 0
mov esi, edx
mov dword [edx + 8], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0x44], eax
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov dword [esi + 4], eax
sub esp, 0xc
test eax, eax
je 0x64aade46
mov esi, dword [ebp - 0x44]
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aadd00
ja 0x64aadbe8
cmp edx, 0x10000000
jne 0x64aadbf7
mov eax, dword [ebp - 0x38]
mov edx, dword [esi + 4]
mov eax, dword [eax + 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 eax, dword [ebp - 0x40]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 8]
test eax, eax
je 0x64aade11
mov esi, dword [ebp - 0x40]
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aadefc
ja 0x64aadd46
cmp edx, 0x10000000
jne 0x64aadd55
mov eax, dword [ebp - 0x38]
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
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
jmp 0x64aad8db
mov eax, edx
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x64aad8db
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._delete_element
jmp 0x64aad9a7
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aadb4c
mov esi, dword [ebp - 0x38]
mov eax, dword [esi + 4]
mov dword [eax + 4], 0
mov eax, dword [esi + 4]
mov dword [eax + 8], 0
mov eax, dword [esi + 4]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
mov eax, dword [eax + 4]
mov esi, dword [esi + 4]
mov dword [ebp - 0x48], esi
test eax, eax
je 0x64aadf70
mov esi, dword [ebp - 0x48]
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aadf42
ja 0x64aade52
cmp edx, 0x10000000
jne 0x64aade61
mov eax, dword [ebp - 0x4c]
mov edx, dword [esi + 4]
mov eax, dword [eax + 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 eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x44]
mov eax, dword [eax + 4]
mov esi, dword [esi + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x44], esi
test eax, eax
je 0x64aae182
mov esi, dword [ebp - 0x44]
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aae117
ja 0x64aae000
cmp edx, 0x10000000
jne 0x64aae00f
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov ecx, 4
mov edi, dword [eax + 8]
add esi, 4
add edi, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x64aadb4c
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x64ac0781
mov dword [esp + 8], str.GdipDeleteRegion
mov dword [esp + 4], 0x64ab5130
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_12
jmp 0x64aad900
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x64aadb4c
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym._delete_element
mov dword [ebx + 4], 0
jmp 0x64aadbd5
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aad8db
mov esi, dword [ebp - 0x38]
mov eax, dword [esi + 8]
mov dword [eax + 4], 0
mov eax, dword [esi + 8]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x40]
mov esi, dword [esi + 8]
mov edi, dword [eax + 4]
mov eax, dword [esi + 4]
test eax, eax
je 0x64aae144
mov edx, dword [edi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aae0f3
ja 0x64aadfb1
cmp edx, 0x10000000
jne 0x64aadfc0
mov eax, dword [esi + 4]
mov ecx, 4
lea esi, [edi + 4]
add eax, 4
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x40]
mov eax, dword [eax + 8]
mov esi, dword [esi + 8]
mov dword [ebp - 0x44], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x40], esi
test eax, eax
je 0x64aae3dd
mov esi, dword [ebp - 0x40]
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aae2dd
ja 0x64aae21e
cmp edx, 0x10000000
jne 0x64aae22d
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
mov ecx, 4
mov edi, dword [eax + 8]
add esi, 4
add edi, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x64aad8db
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov esi, dword [ebp - 0x38]
sub esp, 0xc
mov dword [esi + 8], eax
test eax, eax
jne 0x64aadb63
mov dword [ebp - 0x2c], 3
jmp 0x64aadbd5
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aadc6b
mov esi, dword [ebp - 0x4c]
mov eax, dword [esi + 4]
mov dword [eax + 4], 0
mov eax, dword [esi + 4]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x48]
mov esi, dword [esi + 4]
mov edi, dword [eax + 4]
mov eax, dword [esi + 4]
test eax, eax
je 0x64aae1e0
mov edx, dword [edi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x64aae1bc
ja 0x64aae0a4
cmp edx, 0x10000000
jne 0x64aae0b3
mov eax, dword [esi + 4]
mov ecx, 4
lea esi, [edi + 4]
add eax, 4
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
lea edx, [eax + 8]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 8]
call sym._clone_element
test eax, eax
je 0x64aadc6b
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym._delete_element
mov dword [ebx + 4], 0
jmp 0x64aadd2c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x64aad8db
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym._delete_element
mov dword [ebx + 8], 0
jmp 0x64aadbd5
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
jne 0x64aadedf
jmp 0x64aadc6b
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov esi, dword [ebp - 0x4c]
sub esp, 0xc
mov dword [esi + 4], eax
test eax, eax
jne 0x64aadc28
mov dword [ebp - 0x2c], 3
jmp 0x64aadd2c
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aaddb4
mov eax, dword [esi + 4]
xor edx, edx
xor ecx, ecx
mov dword [eax + 4], edx
mov eax, dword [esi + 4]
mov dword [eax + 8], ecx
mov eax, dword [esi + 4]
lea edx, [eax + 4]
mov eax, dword [edi + 4]
call sym._clone_element
test eax, eax
je 0x64aae2c2
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym._delete_element
mov dword [esi + 4], 0
jmp 0x64aadf28
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aadb4c
mov esi, dword [ebp - 0x48]
xor ecx, ecx
xor edi, edi
mov eax, dword [esi + 8]
mov dword [eax + 4], ecx
mov eax, dword [esi + 8]
mov dword [eax + 8], edi
mov edi, dword [esi + 8]
mov eax, dword [ebp - 0x44]
cmp dword [edi + 4], 0
mov ecx, dword [eax + 4]
je 0x64aae399
mov edx, dword [edi + 4]
mov eax, dword [ecx]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x64aae377
ja 0x64aae308
cmp eax, 0x10000000
jne 0x64aae316
mov edi, dword [edi + 4]
lea esi, [ecx + 4]
mov ecx, 4
add edi, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 8]
mov dword [ebp - 0x4c], eax
lea edx, [eax + 8]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 8]
call sym._clone_element
test eax, eax
je 0x64aadb4c
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym._delete_element
mov dword [ebx + 8], 0
jmp 0x64aadd2c
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aadec0
mov eax, dword [esi + 4]
xor ecx, ecx
xor edx, edx
mov dword [eax + 4], ecx
mov eax, dword [esi + 4]
mov dword [eax + 8], edx
mov eax, dword [esi + 4]
lea edx, [eax + 4]
mov eax, dword [edi + 4]
call sym._clone_element
test eax, eax
je 0x64aae35c
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym._delete_element
mov dword [esi + 4], 0
jmp 0x64aadee2
mov eax, dword [esi + 4]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push edi
push edi
test eax, eax
jne 0x64aadfe6
jmp 0x64aaddb4
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 8]
mov dword [ebp - 0x4c], eax
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push edx
push edx
test eax, eax
jne 0x64aae087
jmp 0x64aadb4c
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov dword [esi + 4], eax
sub esp, 0xc
test eax, eax
jne 0x64aadd80
mov dword [ebp - 0x2c], 3
jmp 0x64aadf28
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov esi, dword [ebp - 0x48]
sub esp, 0xc
mov dword [esi + 8], eax
test eax, eax
jne 0x64aadc88
jmp 0x64aadfa5
mov eax, dword [esi + 4]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push ecx
push ecx
test eax, eax
jne 0x64aae0d9
jmp 0x64aadec0
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov dword [esi + 4], eax
sub esp, 0xc
test eax, eax
jne 0x64aade8c
mov dword [ebp - 0x2c], 3
jmp 0x64aadee2
sub edx, 0x10000002
cmp edx, 1
jbe 0x64aad8db
mov esi, dword [ebp - 0x44]
xor edi, edi
xor edx, edx
mov eax, dword [esi + 8]
mov dword [eax + 4], edi
mov eax, dword [esi + 8]
mov dword [eax + 8], edx
mov edi, dword [esi + 8]
mov eax, dword [ebp - 0x40]
cmp dword [edi + 4], 0
mov ecx, dword [eax + 4]
je 0x64aae4a3
mov edx, dword [edi + 4]
mov eax, dword [ecx]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x64aae481
ja 0x64aae434
cmp eax, 0x10000000
jne 0x64aae442
mov edi, dword [edi + 4]
lea esi, [ecx + 4]
mov ecx, 4
add edi, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
lea edx, [eax + 8]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
call sym._clone_element
mov esi, eax
test eax, eax
je 0x64aad8db
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym._delete_element
xor eax, eax
mov dword [ebp - 0x2c], esi
mov dword [ebx + 8], eax
jmp 0x64aadf28
mov eax, dword [esi + 4]
lea edx, [eax + 8]
mov eax, dword [edi + 8]
call sym._clone_element
test eax, eax
jne 0x64aadfe6
jmp 0x64aaddb4
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
mov esi, eax
push ecx
push ecx
test eax, eax
jne 0x64aae2a7
jmp 0x64aad8db
sub eax, 0x10000002
cmp eax, 1
jbe 0x64aae068
mov eax, dword [edi + 4]
xor edx, edx
xor esi, esi
mov dword [ebp - 0x4c], ecx
mov dword [eax + 4], edx
mov eax, dword [edi + 4]
mov dword [eax + 8], esi
mov eax, dword [edi + 4]
lea edx, [eax + 4]
mov eax, dword [ecx + 4]
call sym._clone_element
mov ecx, dword [ebp - 0x4c]
test eax, eax
mov esi, eax
je 0x64aae417
mov eax, dword [edi + 4]
mov dword [esp], eax
call sym._delete_element
xor eax, eax
mov dword [ebp - 0x2c], esi
mov dword [edi + 4], eax
jmp 0x64aae08a
mov eax, dword [esi + 4]
lea edx, [eax + 8]
mov eax, dword [edi + 8]
call sym._clone_element
test eax, eax
jne 0x64aae0d9
jmp 0x64aadec0
mov eax, dword [edi + 4]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
mov esi, eax
push edx
push edx
test eax, eax
jne 0x64aae344
jmp 0x64aae068
mov dword [ebp - 0x4c], ecx
mov eax, dword fs:[0x18]
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov ecx, dword [ebp - 0x4c]
sub esp, 0xc
test eax, eax
mov dword [edi + 4], eax
jne 0x64aae035
mov dword [ebp - 0x2c], 3
jmp 0x64aae08a
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov esi, dword [ebp - 0x44]
sub esp, 0xc
mov dword [esi + 8], eax
test eax, eax
jne 0x64aaddd1
jmp 0x64aae176
mov eax, dword [edi + 4]
lea edx, [eax + 8]
mov eax, dword [ecx + 8]
call sym._clone_element
mov esi, eax
test eax, eax
jne 0x64aae344
jmp 0x64aae068
sub eax, 0x10000002
cmp eax, 1
jbe 0x64aae286
mov eax, dword [edi + 4]
xor esi, esi
xor edx, edx
mov dword [ebp - 0x3c], ecx
mov dword [eax + 4], esi
mov eax, dword [edi + 4]
mov dword [eax + 8], edx
mov eax, dword [edi + 4]
lea edx, [eax + 4]
mov eax, dword [ecx + 4]
call sym._clone_element
mov ecx, dword [ebp - 0x3c]
test eax, eax
mov esi, eax
je 0x64aae4e5
mov eax, dword [edi + 4]
mov dword [esp], eax
call sym._delete_element
xor edx, edx
mov dword [edi + 4], edx
jmp 0x64aae2a7
mov eax, dword [edi + 4]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
mov esi, eax
push ecx
push ecx
test eax, eax
jne 0x64aae46c
jmp 0x64aae286
mov dword [ebp - 0x48], ecx
mov eax, dword fs:[0x18]
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
mov ecx, dword [ebp - 0x48]
sub esp, 0xc
test eax, eax
mov dword [edi + 4], eax
jne 0x64aae253
mov esi, 3
jmp 0x64aae2a7
mov eax, dword [edi + 4]
lea edx, [eax + 8]
mov eax, dword [ecx + 8]
call sym._clone_element
mov esi, eax
test eax, eax
jne 0x64aae46c
jmp 0x64aae286