Function at 0x6165b0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x54]
push edi
mov dword [ebp - 4], ebx
call edx
mov ecx, dword [ebp + 0x10]
mov edi, eax
test edi, edi
jne 0x6165e9
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.00615de0
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ecx]
xor edx, edx
test eax, eax
setle dl
push esi
dec edx
and edx, eax
mov dword [ebp - 8], edx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x1c], 0
jne 0x616617
mov eax, dword [esi]
push str.GdipSetSmoothingMode
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x1c]
push 2
push edi
call ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push edx
push eax
lea ecx, [ebp - 0x18]
push ecx
mov ecx, ebx
call fcn.00614140
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x6166cb
lea edx, [ebp - 0x18]
push edx
push eax
mov ecx, ebx
call fcn.00615390
mov ebx, eax
test ebx, ebx
je 0x6166c8
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x14], 0
jne 0x61666d
mov eax, dword [esi]
push str.GdipSetPixelOffsetMode
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 0x14]
push 4
push edi
call ecx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x68], 0
jne 0x616693
mov edx, dword [esi]
push str.GdipFillPolygonI
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x68], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x68]
push 0
push eax
push ecx
push ebx
push edi
call edx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x44], 0
jne 0x6166c2
mov eax, dword [esi]
push str.GdipDeleteBrush
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x44], eax
mov ecx, dword [esi + 0x44]
push ebx
call ecx
mov ebx, dword [ebp - 4]
cmp dword [ebp - 8], 0
jle 0x616785
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0x18]
push edx
push eax
mov ecx, ebx
call fcn.00615770
mov dword [ebp + 0x10], eax
test eax, eax
je 0x616785
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x14], 0
jne 0x61670d
mov ecx, dword [esi]
push str.GdipSetPixelOffsetMode
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x14], eax
mov edx, dword [ebp - 8]
and edx, reloc.oledlg.dll_OleUIAddVerbMenuA
jns 0x61671d
dec edx
or edx, 0xfffffffe
inc edx
mov eax, dword [esi + 0x14]
neg edx
sbb edx, edx
and edx, 0xfffffffc
add edx, 4
push edx
push edi
call eax
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x58], 0
jne 0x61674c
mov ecx, dword [esi]
push str.GdipDrawPolygonI
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x58], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [esi + 0x58]
push eax
push ecx
push edi
call edx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x48], 0
jne 0x61677c
mov eax, dword [esi]
push str.GdipDeletePen
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x48], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0x48]
push ecx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x58]
push edi
mov ecx, ebx
call edx
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x10