Function at 0x69070b90
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
sub esp, 0x58
test byte [0x6907a148], 8
mov dword [ebp - 0xc], ebx
mov ebx, dword [ecx]
mov dword [ebp - 8], esi
mov esi, dword [ecx + 4]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edi
jne 0x69070d60
test ebx, ebx
je 0x69070d50
test esi, esi
je 0x69070d50
mov edi, 0x18
mov edx, 8
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x20], eax
call eax
mov dword [ebp - 0x1c], eax
sub esp, 0xc
test eax, eax
mov dword [esi], eax
mov edi, eax
je 0x69071a20
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
cmp eax, 0x10000001
je 0x69070d98
ja 0x69070c60
cmp eax, 0x10000000
jne 0x69070c6a
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x14], eax
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
lea esp, [ecx - 4]
ret 8
sub eax, 0x10000002
cmp eax, 1
jbe 0x69070c44
mov esi, dword [ebp - 0x1c]
mov edx, 0x14
mov ecx, 8
mov eax, dword [ebx + 8]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [ebp - 0x24], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov dword [ebp - 0x28], eax
sub esp, 0xc
test eax, eax
mov dword [esi + 8], eax
je 0x6907102c
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [esi], eax
cmp eax, 0x10000001
je 0x69071040
ja 0x69070eb0
cmp eax, 0x10000000
jne 0x69070ebe
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebx + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x69070ff5
mov edx, dword [ebx]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x69070fb8
ja 0x69070dd8
cmp edx, 0x10000000
jne 0x69070de7
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 0x10]
mov dword [eax + 0x10], edx
xor eax, eax
jmp 0x69070c46
mov eax, 2
jmp 0x69070c46
mov ecx, 0x690858c8
mov edi, str.GdipCloneRegion
mov dword [esp + 0x14], esi
mov eax, 0x6907a148
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_12
jmp 0x69070bbe
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x69070c44
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x1c]
add edx, 4
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
jmp 0x69070c46
sub edx, 0x10000002
cmp edx, 1
jbe 0x69070c44
mov dword [eax + 4], 0
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0xc]
mov dword [eax + 8], 0
mov eax, dword [edx + 0xc]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov edx, dword [eax + 4]
test edx, edx
je 0x690716b0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x69071469
ja 0x69071228
cmp eax, 0x10000000
jne 0x69071236
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebx + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x24], eax
mov edx, dword [eax + 8]
test edx, edx
je 0x6907184c
mov eax, dword [ebx]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x69071710
ja 0x690713c8
cmp eax, 0x10000000
jne 0x690713d6
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
xor eax, eax
jmp 0x69070c46
sub eax, 0x10000002
cmp eax, 1
jbe 0x69070cfc
mov esi, dword [ebp - 0x28]
mov ecx, 0x14
mov edi, 8
mov eax, dword [ebp - 0x24]
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, dword [eax + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [ebp - 0x30], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov dword [ebp - 0x2c], eax
sub esp, 0xc
test eax, eax
mov dword [esi + 4], eax
je 0x6907168d
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x690712e0
ja 0x69071088
cmp eax, 0x10000000
jne 0x69071096
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov edx, dword [edx + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
mov edx, dword [eax + 8]
test edx, edx
je 0x69071654
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [edx], eax
cmp eax, 0x10000001
je 0x690714f9
ja 0x69071170
cmp eax, 0x10000000
jne 0x6907117e
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
jmp 0x69070cfc
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x69070c44
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + 0xc]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0xc], 0
jmp 0x69070db8
mov edx, 8
mov edi, 0x14
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0xc], eax
sub esp, 0xc
test eax, eax
jne 0x69070d0d
mov eax, 3
jmp 0x69070db8
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x69070cfc
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 8], 0
jmp 0x69070db8
sub eax, 0x10000002
cmp eax, 1
jbe 0x69070f53
mov esi, dword [ebp - 0x2c]
mov edx, 8
mov edi, 0x14
mov eax, dword [ebp - 0x30]
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, dword [eax + 4]
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [ebp - 0x34], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov dword [esi + 4], eax
sub esp, 0xc
test eax, eax
je 0x6907194d
mov edx, dword [ebp - 0x34]
mov edx, dword [edx]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x690715dc
ja 0x69071323
cmp edx, 0x10000000
jne 0x69071332
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x28]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 8]
mov eax, dword [edi + 8]
test eax, eax
je 0x6907191b
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x69071888
ja 0x69071589
cmp edx, 0x10000000
jne 0x69071598
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x69070f53
sub eax, 0x10000002
cmp eax, 1
jbe 0x69070cfc
mov dword [edx + 4], 0
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x24]
mov edi, dword [edx + 8]
mov esi, dword [eax + 4]
mov eax, dword [edi + 4]
test eax, eax
je 0x690718ca
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x690718a9
ja 0x69071539
cmp edx, 0x10000000
jne 0x69071548
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax + 8]
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 8]
mov eax, dword [edi + 8]
test eax, eax
je 0x69071afa
mov edx, dword [esi]
mov eax, dword [edi + 8]
cmp edx, 0x10000001
mov dword [eax], edx
je 0x69071a60
ja 0x690717d8
cmp edx, 0x10000000
jne 0x690717e7
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x69070cfc
sub eax, 0x10000002
cmp eax, 1
jbe 0x69070e50
mov dword [edx + 4], 0
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x24]
mov edi, dword [edx + 4]
mov esi, dword [eax + 4]
mov eax, dword [edi + 4]
test eax, eax
je 0x69071978
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x6907182b
ja 0x690714a9
cmp edx, 0x10000000
jne 0x690714b8
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 8]
mov eax, dword [edi + 8]
test eax, eax
je 0x69071ac3
mov edx, dword [esi]
mov eax, dword [edi + 8]
cmp edx, 0x10000001
mov dword [eax], edx
je 0x69071aa2
ja 0x69071732
cmp edx, 0x10000000
jne 0x69071741
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x69070e50
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x69070f53
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebx + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 4], 0
jmp 0x69071063
sub edx, 0x10000002
cmp edx, 1
jbe 0x69071124
mov dword [eax + 4], 0
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x34]
mov edi, dword [edx + 4]
mov esi, dword [eax + 4]
mov eax, dword [edi + 4]
test eax, eax
je 0x690719c9
mov edx, dword [esi]
mov dword [eax], edx
cmp edx, 0x10000001
je 0x69071957
ja 0x69071601
cmp edx, 0x10000000
jne 0x69071610
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
lea edx, [eax + 8]
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
call sym._clone_element
test eax, eax
je 0x69071124
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebx + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 4], 0
jmp 0x69071303
sub eax, 0x10000002
cmp eax, 1
jbe 0x69070c44
mov dword [edx + 4], 0
mov edx, dword [ebp - 0x24]
mov esi, dword [ebx + 4]
mov eax, dword [edx + 8]
mov dword [eax + 8], 0
mov edi, dword [edx + 8]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x69071b31
mov edx, dword [esi]
mov eax, dword [edi + 4]
cmp edx, 0x10000001
mov dword [eax], edx
je 0x69071a81
ja 0x69071785
cmp edx, 0x10000000
jne 0x69071794
lea edi, [eax + 4]
add esi, 4
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
lea edx, [eax + 8]
mov eax, dword [ebx + 8]
call sym._clone_element
test eax, eax
je 0x69070c44
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 8], 0
jmp 0x69070fd5
mov eax, dword [ebp - 0x24]
add edx, 4
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x69070e50
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebx + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 4], 0
jmp 0x69070fd5
sub edx, 0x10000002
cmp edx, 1
jbe 0x6907128d
mov dword [eax + 4], 0
mov eax, dword [edi + 4]
mov dword [eax + 8], 0
mov eax, dword [edi + 4]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071a2a
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], 0
jmp 0x69071489
mov eax, dword [ebp - 0x24]
add edx, 4
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
je 0x69070cfc
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [ebx + 8], 0
jmp 0x69071063
sub edx, 0x10000002
cmp edx, 1
jbe 0x690711d5
mov dword [eax + 4], 0
mov eax, dword [edi + 4]
mov dword [eax + 8], 0
mov eax, dword [edi + 4]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071a45
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], 0
jmp 0x69071519
sub edx, 0x10000002
cmp edx, 1
jbe 0x69070f53
mov dword [eax + 4], 0
mov eax, dword [edi + 8]
mov dword [eax + 8], 0
mov eax, dword [edi + 8]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071a05
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 8]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 8], 0
jmp 0x69071303
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
jne 0x690713a8
jmp 0x69071124
sub edx, 0x10000002
cmp edx, 1
jbe 0x69071389
mov dword [eax + 4], 0
mov eax, dword [edi + 4]
mov dword [eax + 8], 0
mov eax, dword [edi + 4]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071b82
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], 0
jmp 0x690713a8
mov ecx, 0x14
mov esi, 8
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov edx, eax
mov eax, dword [ebp - 0x28]
sub esp, 0xc
test edx, edx
mov dword [eax + 8], edx
jne 0x69070f70
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym._delete_element
mov dword [ebx + 8], 0
jmp 0x6907102c
mov ecx, 0x14
mov esi, 8
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x20]
call eax
mov edx, eax
mov eax, dword [ebp - 0x28]
sub esp, 0xc
test edx, edx
mov dword [eax + 4], edx
jne 0x69070e12
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call sym._delete_element
mov eax, 3
mov dword [ebx + 0xc], 0
jmp 0x69070db8
add edx, 4
mov dword [esp + 4], edx
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
sub esp, 8
test eax, eax
jne 0x69071449
jmp 0x69070c44
sub edx, 0x10000002
cmp edx, 1
jbe 0x69070e50
mov dword [eax + 4], 0
mov eax, dword [edi + 8]
mov dword [eax + 8], 0
mov eax, dword [edi + 8]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071bb8
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 8]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 8], 0
jmp 0x69071489
sub edx, 0x10000002
cmp edx, 1
jbe 0x6907142d
mov dword [eax + 4], 0
mov eax, dword [edi + 4]
mov dword [eax + 8], 0
mov eax, dword [edi + 4]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071bd3
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 4]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], 0
jmp 0x69071449
sub edx, 0x10000002
cmp edx, 1
jbe 0x69070cfc
mov dword [eax + 4], 0
mov eax, dword [edi + 8]
mov dword [eax + 8], 0
mov eax, dword [edi + 8]
lea edx, [eax + 4]
mov eax, dword [esi + 4]
call sym._clone_element
test eax, eax
je 0x69071b9d
mov dword [ebp - 0x20], eax
mov edx, dword [edi + 8]
mov dword [esp], edx
call sym._delete_element
mov eax, dword [ebp - 0x20]
mov dword [edi + 8], 0
jmp 0x69071519
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push edx
test eax, eax
push edx
jne 0x690714df
jmp 0x6907128d
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 - 0x20]
call eax
mov edx, eax
mov eax, dword [ebp - 0x24]
sub esp, 0xc
test edx, edx
mov dword [eax + 8], edx
jne 0x69070e67
jmp 0x690716e9
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push edx
test eax, eax
push edx
jne 0x690715bf
jmp 0x69070f53
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push edx
test eax, eax
push edx
jne 0x6907156f
jmp 0x690711d5
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 - 0x20]
call eax
mov dword [edi + 4], eax
sub esp, 0xc
test eax, eax
jne 0x690711a6
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym._delete_element
mov eax, 3
mov dword [ebx + 8], 0
jmp 0x69071063
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 - 0x20]
call eax
mov dword [edi + 8], eax
sub esp, 0xc
test eax, eax
jne 0x6907113b
mov eax, 3
jmp 0x69071303
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push ecx
test eax, eax
push ecx
jne 0x69071637
jmp 0x69071389
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 - 0x20]
call eax
mov dword [edi + 4], eax
sub esp, 0xc
test eax, eax
jne 0x6907125e
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym._delete_element
mov eax, 3
mov dword [ebx + 4], 0
jmp 0x69070fd5
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 - 0x20]
call eax
mov dword [edi + 4], eax
sub esp, 0xc
test eax, eax
jne 0x6907135a
mov eax, 3
jmp 0x690713a8
mov eax, dword [edi + 8]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x690715bf
jmp 0x69070f53
mov eax, 3
jmp 0x69070c46
mov eax, dword [edi + 4]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x690714df
jmp 0x6907128d
mov eax, dword [edi + 4]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x6907156f
jmp 0x690711d5
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push ecx
test eax, eax
push ecx
jne 0x6907180e
jmp 0x69070cfc
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push edx
test eax, eax
push edx
jne 0x690717bb
jmp 0x6907142d
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.gdiplus.dll_GdipClonePath
push esi
test eax, eax
push esi
jne 0x69071768
jmp 0x69070e50
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 - 0x20]
call eax
mov dword [edi + 8], eax
sub esp, 0xc
test eax, eax
jne 0x690712a4
jmp 0x690719aa
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 - 0x20]
call eax
mov dword [edi + 8], eax
sub esp, 0xc
test eax, eax
jne 0x690711ec
jmp 0x690718fc
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 - 0x20]
call eax
mov dword [edi + 4], eax
sub esp, 0xc
test eax, eax
jne 0x690713fb
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym._delete_element
mov eax, 3
mov dword [ebx + 8], 0
jmp 0x69070fd5
mov eax, dword [edi + 4]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x69071637
jmp 0x69071389
mov eax, dword [edi + 8]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x6907180e
jmp 0x69070cfc
mov eax, dword [edi + 8]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x69071768
jmp 0x69070e50
mov eax, dword [edi + 4]
lea edx, [eax + 8]
mov eax, dword [esi + 8]
call sym._clone_element
test eax, eax
jne 0x690717bb
jmp 0x6907142d