Function at 0x616250
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi]
mov edx, dword [eax + 0x54]
mov dword [ebp - 8], edi
call edx
mov ebx, eax
test ebx, ebx
jne 0x61629f
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x14]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov ecx, edi
call fcn.00615bf0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
mov dword [ebp - 4], ecx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x1c], 0
jne 0x6162cf
mov edx, dword [esi]
push str.GdipSetSmoothingMode
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
push 2
push ebx
call eax
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x14], 0
jne 0x6162f5
mov ecx, dword [esi]
push str.GdipSetPixelOffsetMode
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x14], eax
mov edx, dword [esi + 0x14]
push 4
push ebx
call edx
fild dword [ebp + 8]
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
fstp dword [ebp - 0x1c]
fild dword [ebp + 0xc]
sub ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x1c]
fstp dword [ebp - 0x18]
fild dword [ebp - 0xc]
mov dword [ebp - 0xc], ecx
fstp dword [ebp - 0x14]
fild dword [ebp - 0xc]
fstp dword [ebp - 0x10]
fild dword [ebp - 4]
fmul qword [0x6e80a0]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fchs
fstp dword [ebp - 0xc]
fld dword [ebp - 0x1c]
fld dword [ebp - 0xc]
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x18]
fsub st(1)
fstp dword [ebp - 0x18]
fadd st(0), st(0)
fld dword [ebp - 0x14]
fadd st(1)
fstp dword [ebp - 0x14]
fadd dword [ebp - 0x10]
fstp dword [ebp - 0x10]
test eax, eax
je 0x6163e1
lea edx, [ebp + 8]
push edx
push eax
mov ecx, edi
call fcn.00615390
mov edi, eax
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x64], 0
jne 0x616395
mov eax, dword [esi]
push str.GdipFillEllipse
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x64], eax
fld dword [ebp - 0x10]
mov ecx, dword [esi + 0x64]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp - 0x14]
fstp dword [esp + 8]
fld dword [ebp - 0x18]
fstp dword [esp + 4]
fld dword [ebp - 0x1c]
fstp dword [esp]
push edi
push ebx
call ecx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x44], 0
jne 0x6163d8
mov edx, dword [esi]
push str.GdipDeleteBrush
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x44]
push edi
call eax
mov edi, dword [ebp - 8]
cmp dword [ebp - 4], 0
jle 0x616462
mov edx, dword [ebp + 0x18]
lea ecx, [ebp + 8]
push ecx
push edx
mov ecx, edi
call fcn.00615770
mov edi, eax
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x50], 0
jne 0x616416
mov eax, dword [esi]
push str.GdipDrawEllipse
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x50], eax
fld dword [ebp - 0x10]
mov ecx, dword [esi + 0x50]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp - 0x14]
fstp dword [esp + 8]
fld dword [ebp - 0x18]
fstp dword [esp + 4]
fld dword [ebp - 0x1c]
fstp dword [esp]
push edi
push ebx
call ecx
call fcn.00613e80
mov esi, eax
cmp dword [esi + 0x48], 0
jne 0x616459
mov edx, dword [esi]
push str.GdipDeletePen
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
push edi
call eax
mov edi, dword [ebp - 8]
mov edx, dword [edi]
mov eax, dword [edx + 0x58]
push ebx
mov ecx, edi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18