Function at 0x4158f3
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2cc
mov ecx, dword [0x4daeb0]
cmp ecx, 0xffffffff
jne 0x41590b
xor eax, eax
leave
ret
mov eax, dword [ebp + 0xc]
push edi
xor edi, edi
cmp eax, edi
je 0x41592f
test byte [eax], 0x10
je 0x41592f
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], eax
jmp 0x415938
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
cmp ecx, edi
push ebx
push esi
jne 0x415c64
push str.GdiPlus.dll
call dword [sym.imp.KERNEL32.DLL_LoadLibraryW]
mov ebx, eax
cmp ebx, edi
jne 0x415a46
push 0xb
pop ecx
push 1
push 0
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], edi
lea eax, [ebp - 4]
push eax
mov esi, str._SystemRoot_WinSxS
lea edi, [ebp - 0x7c]
lea eax, [ebp - 0x7c]
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, 0x4db0e0
call fcn.00455dfb
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp - 4]
lea eax, [ebp - 0x10]
push eax
call fcn.004ac6b1
add esp, 0xc
test eax, eax
je 0x415a22
push dword [ebp - 4]
call fcn.00410077
pop ecx
cmp word [ebp - 0x2a0], 0x2e
je 0x415a0f
test byte [ebp - 0x2cc], 0x10
je 0x415a0f
push dword [ebp - 4]
mov esi, dword [sym.imp.KERNEL32.DLL_lstrlenW]
call esi
mov edi, eax
lea eax, [ebp - 0x2a0]
push eax
call esi
lea eax, [eax + edi + 0x1e]
push eax
lea ecx, [ebp - 0xc]
call fcn.00444a2e
lea eax, [ebp - 0x2a0]
push eax
push dword [ebp - 4]
push str._s_sGdiPlus.dll
push dword [ebp - 0xc]
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.DLL_LoadLibraryW]
lea ecx, [ebp - 0xc]
mov ebx, eax
call fcn.0043e48d
test ebx, ebx
jne 0x415a22
lea eax, [ebp - 0x2cc]
push eax
lea ecx, [ebp - 0x10]
call fcn.00405aa0
test eax, eax
jne 0x4159a7
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp - 0x10]
call fcn.00402cea
test ebx, ebx
jne 0x415a44
or dword [0x4daeb0], 0xffffffff
xor eax, eax
jmp 0x415f65
xor edi, edi
mov esi, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push str.GdiplusShutdown
push ebx
call esi
push str.GdipLoadImageFromFile
push ebx
mov dword [0x4daeb4], eax
call esi
push str.GdipDisposeImage
push ebx
mov dword [0x4daec0], eax
call esi
push str.GdipCreateFromHDC
push ebx
mov dword [0x4daeb8], eax
call esi
push str.GdipDrawImageRectI
push ebx
mov dword [0x4daf00], eax
call esi
push str.GdipCreateBitmapFromHBITMAP
push ebx
mov dword [0x4daebc], eax
call esi
push str.GdipCreateHBITMAPFromBitmap
push ebx
mov dword [0x4daee4], eax
call esi
push str.GdipSaveImageToFile
push ebx
mov dword [0x4daee8], eax
call esi
push str.GdipGetImageEncodersSize
push ebx
mov dword [0x4daeec], eax
call esi
push str.GdipGetImageEncoders
push ebx
mov dword [0x4daecc], eax
call esi
push str.GdipDrawImageI
push ebx
mov dword [0x4daed0], eax
call esi
push str.GdipGetImageWidth
push ebx
mov dword [0x4daef0], eax
call esi
push str.GdipGetImageHeight
push ebx
mov dword [0x4daef4], eax
call esi
push str.GdipDrawImageRectRectI
push ebx
mov dword [0x4daef8], eax
call esi
push str.GdipDeleteGraphics
push ebx
mov dword [0x4daefc], eax
call esi
push str.GdipSetInterpolationMode
push ebx
mov dword [0x4daf04], eax
call esi
push str.GdipSetPixelOffsetMode
push ebx
mov dword [0x4daf08], eax
call esi
push str.GdipSetSmoothingMode
push ebx
mov dword [0x4daf0c], eax
call esi
push str.GdipLoadImageFromStream
push ebx
mov dword [0x4daf10], eax
call esi
push str.GdipGetImageType
push ebx
mov dword [0x4daf14], eax
call esi
mov dword [0x4daf18], eax
push str.GdipCreateBitmapFromHICON
push ebx
call esi
push str.GdipGetImageDimension
push ebx
mov dword [0x4daf24], eax
call esi
push str.GdipCreateHICONFromBitmap
push ebx
mov dword [0x4daf28], eax
call esi
push str.GdipSetTextRenderingHint
push ebx
mov dword [0x4daf1c], eax
call esi
push str.GdipImageGetFrameDimensionsList
push ebx
mov dword [0x4daf20], eax
call esi
push str.GdipImageSelectActiveFrame
push ebx
mov dword [0x4daec4], eax
call esi
push str.GdipImageGetFrameDimensionsCount
push ebx
mov dword [0x4daec8], eax
call esi
push str.GdipImageGetFrameCount
push ebx
mov dword [0x4daed4], eax
call esi
push str.GdipGetPropertyItemSize
push ebx
mov dword [0x4daed8], eax
call esi
push str.GdipGetPropertyItem
push ebx
mov dword [0x4daedc], eax
call esi
push str.GdipBitmapLockBits
push ebx
mov dword [0x4daee0], eax
call esi
push str.GdipBitmapUnlockBits
push ebx
mov dword [0x4daf2c], eax
call esi
push str.GdipCreateBitmapFromScan0
push ebx
mov dword [0x4daf30], eax
call esi
push str.GdipCreateBitmapFromResource
push ebx
mov dword [0x4daf34], eax
call esi
push str.GdipCloneBitmapAreaI
push ebx
mov dword [0x4daf38], eax
call esi
push str.GdipGetImageGraphicsContext
push ebx
mov dword [0x4daf3c], eax
call esi
push str.GdipScaleWorldTransform
push ebx
mov dword [0x4daf40], eax
call esi
push str.GdipCreateTexture
push ebx
mov dword [0x4daf44], eax
call esi
push str.GdipDeleteBrush
push ebx
mov dword [0x4daf48], eax
call esi
push str.GdipFillRectangle
push ebx
mov dword [0x4daf4c], eax
call esi
mov dword [0x4daf50], eax
push str.GdiplusStartup
push ebx
call esi
mov ecx, eax
mov dword [0x4daeb0], ecx
cmp dword [0x4dafd4], edi
jne 0x415c92
cmp dword [0x4daec0], edi
je 0x415c92
xor eax, eax
mov dword [ebp - 0x50], 1
lea edi, [ebp - 0x4c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0
lea eax, [ebp - 0x50]
push eax
push 0x4dafd4
call ecx
xor edi, edi
mov esi, dword [ebp + 8]
lea eax, [esi - 1]
cmp eax, 0xfffffffe
jb 0x415ca7
mov eax, dword [0x4dafd4]
jmp 0x415f65
lea eax, [esi + 2]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
call fcn.00440edc
pop ecx
pop ecx
push 0x7c
push esi
call dword [sym.imp.shlwapi.dll_StrChrW]
cmp eax, edi
mov dword [ebp - 4], eax
je 0x415cee
mov word [eax], di
push 0x23
push edi
push esi
mov dword [ebp - 0x38], eax
call dword [sym.imp.shlwapi.dll_StrRChrW]
mov ecx, dword [0x4daec0]
mov ebx, eax
mov ax, word [esi]
cmp ax, 0x23
je 0x415d1f
cmp dword [ebp - 4], edi
jne 0x415d19
cmp ecx, edi
jne 0x415e4f
cmp ax, 0x23
jne 0x415d2b
mov eax, dword [0x4daf98]
mov ebx, esi
mov dword [ebp - 0xc], eax
jmp 0x415d7c
cmp ebx, edi
je 0x415e47
mov ax, word [ebx]
push 2
push edi
push esi
mov word [ebp - 0x18], ax
mov word [ebx], di
call fcn.004130a1
pop ecx
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryExW]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov ax, word [ebp - 0x18]
mov word [ebx], ax
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x415d68
sub eax, ebx
sar eax, 1
jmp 0x415d6f
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
push eax
push ebx
lea ecx, [ebp - 0x1c]
call fcn.00444b34
mov ebx, dword [ebp - 0x1c]
cmp dword [ebp - 4], edi
je 0x415ebc
push 2
pop esi
add dword [ebp - 4], esi
je 0x415ebc
mov eax, dword [ebp - 4]
cmp word [eax], di
jne 0x415d9c
mov dword [ebp - 4], edi
cmp dword [ebp - 4], edi
je 0x415ebc
push dword [ebp - 4]
call fcn.004404fb
test al, al
pop ecx
je 0x415de1
push ebx
push dword [ebp - 0xc]
mov dword [ebp - 4], esi
call dword [sym.imp.user32.dll_LoadBitmapW]
mov esi, eax
cmp esi, edi
je 0x415ebc
lea eax, [ebp - 8]
push eax
push edi
push esi
call dword [0x4daee4]
push esi
call dword [sym.imp.gdi32.dll_DeleteObject]
jmp 0x415ebc
push dword [ebp - 4]
call fcn.004404ce
test al, al
pop ecx
je 0x415dfe
mov dword [ebp - 4], 3
mov dword [ebp - 0x14], 0x14
jmp 0x415e19
push dword [ebp - 4]
call fcn.0044048f
test al, al
pop ecx
je 0x415ebc
mov dword [ebp - 4], 0xe
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x14]
push eax
push edi
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push ebx
push dword [ebp - 0xc]
call fcn.00450a0c
add esp, 0x18
test byte [ebp - 0x13], 1
mov esi, eax
je 0x415e92
cmp esi, edi
mov dword [ebp - 8], esi
je 0x415eb9
mov eax, dword [ebp + 0xc]
or dword [eax], 4
jmp 0x415eb4
cmp ecx, edi
je 0x415f44
push esi
call fcn.00448b6f
test al, al
pop ecx
je 0x415e7b
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.00414d19
push edi
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.00443752
add esp, 0x14
mov dword [ebp - 8], eax
jmp 0x415f44
push 0x10
push edi
push edi
push 1
push esi
push edi
call dword [sym.imp.user32.dll_LoadImageW]
cmp eax, edi
mov dword [ebp - 0x18], eax
je 0x415f09
mov esi, eax
cmp dword [ebp - 0x2c], edi
je 0x415ea2
mov eax, dword [ebp + 0xc]
or dword [eax], 2
mov dword [ebp - 8], esi
jmp 0x415eb4
lea eax, [ebp - 8]
push eax
push esi
call dword [0x4daf24]
push esi
call dword [sym.imp.user32.dll_DestroyCursor_1]
cmp dword [ebp - 8], edi
jne 0x415ebc
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], edi
je 0x415ef9
cmp dword [ebp - 8], edi
jne 0x415ef9
cmp dword [ebp - 4], edi
jne 0x415ed2
mov dword [ebp - 4], 2
push edi
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 4]
push ebx
push dword [ebp - 0xc]
call fcn.00415338
push edi
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.00443752
add esp, 0x20
cmp eax, edi
mov dword [ebp - 8], eax
jne 0x415f44
cmp dword [ebp - 0x10], edi
je 0x415f44
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
jmp 0x415f44
lea eax, [ebp - 8]
push eax
push esi
call dword [0x4daec0]
cmp dword [ebp - 8], edi
je 0x415f44
mov ebx, dword [ebp + 0xc]
cmp ebx, edi
je 0x415f44
push 0x2e
push edi
push esi
call dword [sym.imp.shlwapi.dll_StrRChrW]
cmp eax, edi
je 0x415f44
push 0x4c2ad8
add eax, 2
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x415f44
or dword [ebx], 4
mov eax, dword [ebp - 0x38]
cmp eax, edi
je 0x415f50
mov word [eax], 0x7c
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x28]
call fcn.0043e48d
lea ecx, [ebp - 0x1c]
call fcn.0043e48d
mov eax, esi
pop esi
pop ebx
pop edi
leave
ret