Function at 0x47eb40
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
xor ebx, ebx
mov esi, ecx
xor ebp, ebp
cmp dword [esi + 0x20], ebp
push edi
setne bl
add dword [0x56b0d4], 1
cmp dword [esi + 0x20], ebp
mov dword [esp + 0x10], ebx
jne 0x47f15a
push str.GDIPLUS.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebp
mov dword [esi + 0x20], eax
je 0x47f151
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GdiplusStartup
push eax
call edi
cmp eax, ebp
mov dword [esi + 0x24], eax
je 0x47f151
mov eax, dword [esi + 0x20]
push str.GdiplusShutdown
push eax
call edi
cmp eax, ebp
mov dword [esi + 0x28], eax
je 0x47f151
mov ecx, dword [esi + 0x20]
push str.GdipCreateFromHDC
push ecx
call edi
cmp eax, ebp
mov dword [0x56b1ac], eax
je 0x47f151
mov edx, dword [esi + 0x20]
push str.GdipDeleteGraphics
push edx
call edi
cmp eax, ebp
mov dword [0x56b1b0], eax
je 0x47f151
lea ebx, [esi + 4]
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esi + 0x24]
push ebp
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x1c]
push ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
call edx
test eax, eax
jne 0x47f13c
lea ebp, [eax + 1]
mov eax, dword [esi + 0x20]
push str.GdipSetClipRectI
push eax
call edi
mov dword [0x56b1c0], eax
mov ecx, dword [esi + 0x20]
push str.GdipSetClipPath
push ecx
call edi
mov dword [0x56b1c4], eax
mov edx, dword [esi + 0x20]
push str.GdipGetClipBounds
push edx
call edi
mov dword [0x56b1f0], eax
mov eax, dword [esi + 0x20]
push str.GdipResetClip
push eax
call edi
mov dword [0x56b1f4], eax
mov ecx, dword [esi + 0x20]
push str.GdipSetSmoothingMode
push ecx
call edi
mov dword [0x56b1b4], eax
mov edx, dword [esi + 0x20]
push str.GdipSetInterpolationMode
push edx
call edi
mov dword [0x56b1b8], eax
mov eax, dword [esi + 0x20]
push str.GdipSetTextRenderingHint
push eax
call edi
mov dword [0x56b1bc], eax
mov ecx, dword [esi + 0x20]
push str.GdipDrawCurveI
push ecx
call edi
mov dword [0x56b1c8], eax
mov edx, dword [esi + 0x20]
push str.GdipDrawBeziersI
push edx
call edi
mov dword [0x56b1cc], eax
mov eax, dword [esi + 0x20]
push str.GdipDrawPolygonI
push eax
call edi
mov dword [0x56b1d0], eax
mov ecx, dword [esi + 0x20]
push str.GdipDrawRectangleI
push ecx
call edi
mov dword [0x56b1d4], eax
mov edx, dword [esi + 0x20]
push str.GdipDrawLineI
push edx
call edi
mov dword [0x56b1d8], eax
mov eax, dword [esi + 0x20]
push str.GdipDrawLinesI
push eax
call edi
mov dword [0x56b1dc], eax
mov ecx, dword [esi + 0x20]
push str.GdipDrawEllipseI
push ecx
call edi
mov dword [0x56b1e0], eax
mov edx, dword [esi + 0x20]
push str.GdipFillRectangleI
push edx
call edi
mov dword [0x56b1e4], eax
mov eax, dword [esi + 0x20]
push str.GdipFillEllipseI
push eax
call edi
mov dword [0x56b1e8], eax
mov ecx, dword [esi + 0x20]
push str.GdipFillClosedCurveI
push ecx
call edi
mov dword [0x56b1ec], eax
mov edx, dword [esi + 0x20]
push str.GdipFillPolygon2I
push edx
call edi
mov dword [0x56b1f8], eax
mov eax, dword [esi + 0x20]
push str.GdipDrawImageRectI
push eax
call edi
mov dword [0x56b1fc], eax
mov ecx, dword [esi + 0x20]
push str.GdipDrawImageRectRectI
push ecx
call edi
mov dword [0x56b200], eax
mov edx, dword [esi + 0x20]
push str.GdipDrawPieI
push edx
call edi
mov dword [0x56b214], eax
mov eax, dword [esi + 0x20]
push str.GdipFillPieI
push eax
call edi
mov dword [0x56b218], eax
mov ecx, dword [esi + 0x20]
push str.GdipDrawArcI
push ecx
call edi
mov dword [0x56b21c], eax
mov edx, dword [esi + 0x20]
push str.GdipCreatePen1
push edx
call edi
mov dword [0x56b0d8], eax
mov eax, dword [esi + 0x20]
push str.GdipCreatePen2
push eax
call edi
mov dword [0x56b0dc], eax
mov ecx, dword [esi + 0x20]
push str.GdipSetPenDashStyle
push ecx
call edi
mov dword [0x56b0e0], eax
mov edx, dword [esi + 0x20]
push str.GdipSetPenDashArray
push edx
call edi
mov dword [0x56b0e4], eax
mov eax, dword [esi + 0x20]
push str.GdipDeletePen
push eax
call edi
mov dword [0x56b0e8], eax
mov ecx, dword [esi + 0x20]
push str.GdipSetPenLineJoin
push ecx
call edi
mov dword [0x56b0ec], eax
mov edx, dword [esi + 0x20]
push str.GdipCreateHatchBrush
push edx
call edi
mov dword [0x56b0f0], eax
mov eax, dword [esi + 0x20]
push str.GdipCreateSolidFill
push eax
call edi
mov dword [0x56b0f8], eax
mov ecx, dword [esi + 0x20]
push str.GdipDeleteBrush
push ecx
call edi
mov dword [0x56b0f4], eax
push str.GdipCreateLineBrushFromRect
mov edx, dword [esi + 0x20]
push edx
call edi
mov dword [0x56b0fc], eax
mov eax, dword [esi + 0x20]
push str.GdipSetLineLinearBlend
push eax
call edi
mov dword [0x56b100], eax
mov ecx, dword [esi + 0x20]
push str.GdipDisposeImage
push ecx
call edi
mov dword [0x56b104], eax
mov edx, dword [esi + 0x20]
push str.GdipLoadImageFromStreamICM
push edx
call edi
mov dword [0x56b108], eax
mov eax, dword [esi + 0x20]
push str.GdipLoadImageFromFileICM
push eax
call edi
mov dword [0x56b10c], eax
mov ecx, dword [esi + 0x20]
push str.GdipCreateBitmapFromHBITMAP
push ecx
call edi
mov dword [0x56b110], eax
mov edx, dword [esi + 0x20]
push str.GdipCreateBitmapFromHICON
push edx
call edi
mov dword [0x56b114], eax
mov eax, dword [esi + 0x20]
push str.GdipSaveImageToStream
push eax
call edi
mov dword [0x56b118], eax
mov ecx, dword [esi + 0x20]
push str.GdipSaveImageToFile
push ecx
call edi
mov dword [0x56b11c], eax
mov edx, dword [esi + 0x20]
push str.GdipGetImageRawFormat
push edx
call edi
mov dword [0x56b120], eax
mov eax, dword [esi + 0x20]
push str.GdipGetImageType
push eax
call edi
mov dword [0x56b124], eax
mov ecx, dword [esi + 0x20]
push str.GdipGetImageWidth
push ecx
call edi
mov dword [0x56b128], eax
mov edx, dword [esi + 0x20]
push str.GdipGetImageHeight
push edx
call edi
mov dword [0x56b12c], eax
mov eax, dword [esi + 0x20]
push str.GdipGetImageFlags
push eax
call edi
mov dword [0x56b130], eax
mov ecx, dword [esi + 0x20]
push str.GdipGetImageEncodersSize
push ecx
call edi
mov dword [0x56b134], eax
mov edx, dword [esi + 0x20]
push str.GdipGetImageEncoders
push edx
call edi
mov dword [0x56b138], eax
lea eax, [esi + 0x34]
push eax
lea ecx, [esi + 0x2c]
push ecx
call fcn.0047dcb0
mov edx, dword [esi + 0x20]
add esp, 8
push str.GdipCreateImageAttributes
push edx
call edi
mov dword [0x56b13c], eax
mov eax, dword [esi + 0x20]
push str.GdipDisposeImageAttributes
push eax
call edi
mov dword [0x56b140], eax
mov ecx, dword [esi + 0x20]
push str.GdipSetImageAttributesColorMatrix
push ecx
call edi
mov dword [0x56b144], eax
mov edx, dword [esi + 0x20]
push str.GdipDrawString
push edx
call edi
mov dword [0x56b204], eax
mov eax, dword [esi + 0x20]
push str.GdipMeasureString
push eax
call edi
mov dword [0x56b208], eax
mov ecx, dword [esi + 0x20]
push str.GdipDrawPath
push ecx
call edi
mov dword [0x56b20c], eax
mov edx, dword [esi + 0x20]
push str.GdipFillPath
push edx
call edi
mov dword [0x56b210], eax
mov eax, dword [esi + 0x20]
push str.GdipDeleteFont
push eax
call edi
mov dword [0x56b148], eax
mov ecx, dword [esi + 0x20]
push str.GdipCreateFontFromDC
push ecx
call edi
mov dword [0x56b14c], eax
mov edx, dword [esi + 0x20]
push str.GdipGetFontUnit
push edx
call edi
mov dword [0x56b150], eax
mov eax, dword [esi + 0x20]
push str.GdipGetFamily
push eax
call edi
mov dword [0x56b154], eax
mov ecx, dword [esi + 0x20]
push str.GdipGetFontStyle
push ecx
call edi
mov dword [0x56b15c], eax
mov edx, dword [esi + 0x20]
push str.GdipGetFontSize
push edx
call edi
mov dword [0x56b158], eax
mov eax, dword [esi + 0x20]
push str.GdipGetCellAscent
push eax
call edi
mov dword [0x56b160], eax
mov ecx, dword [esi + 0x20]
push str.GdipGetCellDescent
push ecx
call edi
mov dword [0x56b164], eax
mov edx, dword [esi + 0x20]
push str.GdipGetLineSpacing
push edx
call edi
mov dword [0x56b168], eax
mov eax, dword [esi + 0x20]
push str.GdipStringFormatGetGenericDefault
push eax
call edi
mov dword [0x56b16c], eax
mov ecx, dword [esi + 0x20]
push str.GdipStringFormatGetGenericTypographic
push ecx
call edi
mov dword [0x56b170], eax
mov edx, dword [esi + 0x20]
push str.GdipDeleteStringFormat
push edx
call edi
mov dword [0x56b174], eax
mov eax, dword [esi + 0x20]
push str.GdipSetStringFormatFlags
push eax
call edi
mov dword [0x56b178], eax
mov ecx, dword [esi + 0x20]
push str.GdipGetStringFormatFlags
push ecx
call edi
mov dword [0x56b17c], eax
mov edx, dword [esi + 0x20]
push str.GdipSetStringFormatAlign
push edx
call edi
mov dword [0x56b180], eax
mov eax, dword [esi + 0x20]
push str.GdipGetStringFormatAlign
push eax
call edi
mov dword [0x56b184], eax
mov ecx, dword [esi + 0x20]
push str.GdipCloneStringFormat
push ecx
call edi
mov dword [0x56b188], eax
mov edx, dword [esi + 0x20]
push str.GdipSetStringFormatLineAlign
push edx
call edi
mov dword [0x56b18c], eax
mov eax, dword [esi + 0x20]
push str.GdipGetStringFormatLineAlign
push eax
call edi
mov dword [0x56b190], eax
mov ecx, dword [esi + 0x20]
push str.GdipSetStringFormatTrimming
push ecx
call edi
mov dword [0x56b194], eax
mov edx, dword [esi + 0x20]
push str.GdipGetStringFormatTrimming
push edx
call edi
mov dword [0x56b198], eax
mov eax, dword [esi + 0x20]
push str.GdipCreatePath
push eax
call edi
mov dword [0x56b19c], eax
mov ecx, dword [esi + 0x20]
push str.GdipDeletePath
push ecx
call edi
mov dword [0x56b1a0], eax
mov edx, dword [esi + 0x20]
push str.GdipAddPathString
push edx
call edi
mov dword [0x56b1a4], eax
mov eax, dword [esi + 0x20]
push str.GdipAddPathEllipseI
push eax
call edi
push ebx
mov dword [0x56b1a8], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x14
ret
mov ebp, dword [esp + 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x14
ret
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x14
ret