Function at 0x416215
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c4
mov ecx, dword [0x4e2ec8]
cmp ecx, 0xffffffff
jne 0x41622d
xor eax, eax
leave
ret
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x416251
test byte [eax], 0x10
je 0x416251
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], eax
jmp 0x41625a
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], ebx
cmp ecx, ebx
push esi
push edi
jne 0x4166d7
mov eax, dword [0x4e2e80]
cmp eax, ebx
jne 0x416385
push str.GdiPlus.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
mov dword [0x4e2e80], eax
jne 0x416385
push 0xb
pop ecx
push 1
push ebx
lea eax, [ebp - 4]
push eax
mov esi, str._SystemRoot_WinSxS
lea edi, [ebp - 0x74]
lea eax, [ebp - 0x74]
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, 0x4e3110
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], ebx
call fcn.0045937c
lea eax, [ebp - 0x2c4]
push eax
push dword [ebp - 4]
lea eax, [ebp - 0x10]
push eax
call fcn.004b3c03
add esp, 0xc
test eax, eax
je 0x41635e
push dword [ebp - 4]
call fcn.00410409
pop ecx
cmp word [ebp - 0x298], 0x2e
je 0x41633f
test byte [ebp - 0x2c4], 0x10
je 0x41633f
push dword [ebp - 4]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
call esi
mov edi, eax
lea eax, [ebp - 0x298]
push eax
call esi
lea eax, [eax + edi + 0x1e]
push eax
lea ecx, [ebp - 0xc]
call fcn.004465ac
lea eax, [ebp - 0x298]
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 dword [0x4e2e80], eax
call fcn.0043fe25
cmp dword [0x4e2e80], ebx
jne 0x41635e
lea eax, [ebp - 0x2c4]
push eax
lea ecx, [ebp - 0x10]
call fcn.00405ce3
test eax, eax
jne 0x4162d8
lea ecx, [ebp - 4]
call fcn.0043fe25
lea ecx, [ebp - 0x10]
call fcn.00402d60
mov eax, dword [0x4e2e80]
cmp eax, ebx
jne 0x416385
or dword [0x4e2ec8], 0xffffffff
xor eax, eax
jmp 0x4169e5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GdiplusShutdown
push eax
call esi
push str.GdipLoadImageFromFile
push dword [0x4e2e80]
mov dword [0x4e2ecc], eax
call esi
push str.GdipDisposeImage
push dword [0x4e2e80]
mov dword [0x4e2ed8], eax
call esi
push str.GdipCreateFromHDC
push dword [0x4e2e80]
mov dword [0x4e2ed0], eax
call esi
push str.GdipDrawImageRectI
push dword [0x4e2e80]
mov dword [0x4e2f1c], eax
call esi
push str.GdipCreateBitmapFromHBITMAP
push dword [0x4e2e80]
mov dword [0x4e2ed4], eax
call esi
push str.GdipCreateHBITMAPFromBitmap
push dword [0x4e2e80]
mov dword [0x4e2efc], eax
call esi
push str.GdipSaveImageToFile
push dword [0x4e2e80]
mov dword [0x4e2f00], eax
call esi
push str.GdipGetImageEncodersSize
push dword [0x4e2e80]
mov dword [0x4e2f04], eax
call esi
push str.GdipGetImageEncoders
push dword [0x4e2e80]
mov dword [0x4e2ee4], eax
call esi
push str.GdipDrawImageI
push dword [0x4e2e80]
mov dword [0x4e2ee8], eax
call esi
push str.GdipGetImageWidth
push dword [0x4e2e80]
mov dword [0x4e2f08], eax
call esi
push str.GdipGetImageHeight
push dword [0x4e2e80]
mov dword [0x4e2f0c], eax
call esi
push str.GdipDrawImageRectRectI
push dword [0x4e2e80]
mov dword [0x4e2f10], eax
call esi
push str.GdipDeleteGraphics
push dword [0x4e2e80]
mov dword [0x4e2f18], eax
call esi
push str.GdipSetInterpolationMode
push dword [0x4e2e80]
mov dword [0x4e2f20], eax
call esi
push str.GdipSetPixelOffsetMode
push dword [0x4e2e80]
mov dword [0x4e2f24], eax
call esi
push str.GdipSetSmoothingMode
push dword [0x4e2e80]
mov dword [0x4e2f28], eax
call esi
push str.GdipLoadImageFromStream
push dword [0x4e2e80]
mov dword [0x4e2f2c], eax
call esi
push str.GdipGetImageType
push dword [0x4e2e80]
mov dword [0x4e2f30], eax
call esi
mov dword [0x4e2f34], eax
push str.GdipCreateBitmapFromHICON
push dword [0x4e2e80]
call esi
push str.GdipGetImageDimension
push dword [0x4e2e80]
mov dword [0x4e2f40], eax
call esi
push str.GdipCreateHICONFromBitmap
push dword [0x4e2e80]
mov dword [0x4e2f44], eax
call esi
push str.GdipSetTextRenderingHint
push dword [0x4e2e80]
mov dword [0x4e2f38], eax
call esi
push str.GdipImageGetFrameDimensionsList
push dword [0x4e2e80]
mov dword [0x4e2f3c], eax
call esi
push str.GdipImageSelectActiveFrame
push dword [0x4e2e80]
mov dword [0x4e2edc], eax
call esi
push str.GdipImageGetFrameDimensionsCount
push dword [0x4e2e80]
mov dword [0x4e2ee0], eax
call esi
push str.GdipImageGetFrameCount
push dword [0x4e2e80]
mov dword [0x4e2eec], eax
call esi
push str.GdipGetPropertyItemSize
push dword [0x4e2e80]
mov dword [0x4e2ef0], eax
call esi
push str.GdipGetPropertyItem
push dword [0x4e2e80]
mov dword [0x4e2ef4], eax
call esi
push str.GdipBitmapLockBits
push dword [0x4e2e80]
mov dword [0x4e2ef8], eax
call esi
push str.GdipBitmapUnlockBits
push dword [0x4e2e80]
mov dword [0x4e2f48], eax
call esi
push str.GdipCreateBitmapFromScan0
push dword [0x4e2e80]
mov dword [0x4e2f4c], eax
call esi
push str.GdipCreateBitmapFromResource
push dword [0x4e2e80]
mov dword [0x4e2f50], eax
call esi
push str.GdipCloneBitmapAreaI
push dword [0x4e2e80]
mov dword [0x4e2f54], eax
call esi
push str.GdipGetImageGraphicsContext
push dword [0x4e2e80]
mov dword [0x4e2f58], eax
call esi
push str.GdipScaleWorldTransform
push dword [0x4e2e80]
mov dword [0x4e2f5c], eax
call esi
push str.GdipCreateTexture
push dword [0x4e2e80]
mov dword [0x4e2f60], eax
call esi
push str.GdipDeleteBrush
push dword [0x4e2e80]
mov dword [0x4e2f64], eax
call esi
push str.GdipFillRectangle
push dword [0x4e2e80]
mov dword [0x4e2f68], eax
call esi
mov dword [0x4e2f6c], eax
push str.GdipDrawString
push dword [0x4e2e80]
call esi
push str.GdipNewPrivateFontCollection
push dword [0x4e2e80]
mov dword [0x4e2f14], eax
call esi
push str.GdipDeletePrivateFontCollection
push dword [0x4e2e80]
mov dword [0x4e2f70], eax
call esi
push str.GdipPrivateAddMemoryFont
push dword [0x4e2e80]
mov dword [0x4e2f74], eax
call esi
push str.GdipGetFontCollectionFamilyList
push dword [0x4e2e80]
mov dword [0x4e2f78], eax
call esi
push str.GdipGetFamilyName
push dword [0x4e2e80]
mov dword [0x4e2f7c], eax
call esi
push str.GdiplusStartup
push dword [0x4e2e80]
mov dword [0x4e2f80], eax
call esi
mov ecx, eax
mov dword [0x4e2ec8], ecx
mov esi, dword [ebp + 8]
lea eax, [esi - 1]
cmp eax, 0xfffffffd
jne 0x4166e9
mov eax, ecx
jmp 0x4169e5
cmp dword [0x4e3004], ebx
jne 0x416714
cmp dword [0x4e2ed8], ebx
je 0x416714
xor eax, eax
mov dword [ebp - 0x48], 1
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
lea eax, [ebp - 0x48]
push eax
push 0x4e3004
call ecx
lea eax, [esi - 1]
cmp eax, 0xfffffffe
jb 0x416726
mov eax, dword [0x4e3004]
jmp 0x4169e5
push 0x7c
push esi
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0x38], eax
je 0x416759
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 4], eax
push 0x23
push ebx
push esi
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
mov ecx, dword [0x4e2ed8]
mov edi, eax
mov ax, word [esi]
cmp ax, 0x23
je 0x416787
cmp dword [ebp - 4], ebx
jne 0x416781
cmp ecx, ebx
jne 0x4168cf
cmp ax, 0x23
jne 0x4167af
mov edi, esi
add esi, 2
xor eax, eax
mov ax, word [esi]
cmp ax, bx
je 0x4167a5
push eax
call fcn.00414d24
add esp, 4
test al, al
jne 0x4167a5
mov edi, esi
mov eax, dword [0x4e2fc8]
mov dword [ebp - 0xc], eax
jmp 0x416801
cmp edi, ebx
je 0x4168c7
mov ax, word [edi]
push 2
push ebx
push esi
mov word [ebp - 0x18], ax
mov word [edi], bx
call fcn.004135f9
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
cmp dword [ebp - 4], ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov ax, word [ebp - 0x18]
mov word [edi], ax
je 0x4167ed
mov eax, dword [ebp - 0x38]
sub eax, edi
sar eax, 1
jmp 0x4167f4
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.004466b2
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
cmp eax, ebx
je 0x41693c
cmp word [eax], bx
jne 0x416814
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], ebx
je 0x41693c
push dword [ebp - 4]
call fcn.00441f8d
test al, al
pop ecx
je 0x41685d
push edi
push dword [ebp - 0xc]
mov dword [ebp - 4], 2
call dword [sym.imp.USER32.dll_LoadBitmapW]
mov esi, eax
cmp esi, ebx
je 0x41693c
lea eax, [ebp - 8]
push eax
push ebx
push esi
call dword [0x4e2efc]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x41693c
push dword [ebp - 4]
call fcn.00441f60
test al, al
pop ecx
je 0x41687a
mov dword [ebp - 4], 3
mov dword [ebp - 0x14], 0x14
jmp 0x416899
push dword [ebp - 4]
call fcn.00441f21
test al, al
pop ecx
je 0x41693c
mov dword [ebp - 4], 0xe
mov dword [ebp - 0x14], 2
lea eax, [ebp - 0x14]
push eax
push ebx
push dword [ebp - 0x34]
push dword [ebp - 0x2c]
push edi
push dword [ebp - 0xc]
call fcn.0045329c
add esp, 0x18
test byte [ebp - 0x13], 1
mov esi, eax
je 0x416912
cmp esi, ebx
mov dword [ebp - 8], esi
je 0x416939
mov eax, dword [ebp + 0xc]
or dword [eax], 4
jmp 0x416934
cmp ecx, ebx
je 0x4169c4
push esi
call fcn.0044a828
test al, al
pop ecx
je 0x4168fb
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.004152ea
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.00445559
add esp, 0x14
mov dword [ebp - 8], eax
jmp 0x4169c4
push 0x10
push ebx
push ebx
push 1
push esi
push ebx
call dword [sym.imp.USER32.dll_LoadImageW]
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x416989
mov esi, eax
cmp dword [ebp - 0x30], ebx
je 0x416922
mov eax, dword [ebp + 0xc]
or dword [eax], 2
mov dword [ebp - 8], esi
jmp 0x416934
lea eax, [ebp - 8]
push eax
push esi
call dword [0x4e2f40]
push esi
call dword [sym.imp.USER32.dll_DestroyIcon]
cmp dword [ebp - 8], ebx
jne 0x41693c
mov dword [ebp - 8], ebx
cmp dword [ebp - 0xc], ebx
je 0x416979
cmp dword [ebp - 8], ebx
jne 0x416979
cmp dword [ebp - 4], ebx
jne 0x416952
mov dword [ebp - 4], 2
push ebx
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 4]
push edi
push dword [ebp - 0xc]
call fcn.0041593f
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.00445559
add esp, 0x20
cmp eax, ebx
mov dword [ebp - 8], eax
jne 0x4169c4
cmp dword [ebp - 0x10], ebx
je 0x4169c4
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4169c4
lea eax, [ebp - 8]
push eax
push esi
call dword [0x4e2ed8]
cmp dword [ebp - 8], ebx
je 0x4169c4
mov edi, dword [ebp + 0xc]
cmp edi, ebx
je 0x4169c4
push 0x2e
push ebx
push esi
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp eax, ebx
je 0x4169c4
push 0x4c9b88
add eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4169c4
or dword [edi], 4
mov eax, dword [ebp - 0x38]
cmp eax, ebx
je 0x4169d0
mov word [eax], 0x7c
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x28]
call fcn.0043fe25
lea ecx, [ebp - 0x1c]
call fcn.0043fe25
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret