Function at 0x4146ff
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x29c
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
je 0x41472e
test byte [eax], 0x10
je 0x41472e
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], eax
jmp 0x414737
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], ebx
cmp dword [0x4c8e60], ebx
jne 0x414966
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push str.GdiPlus.dll
call esi
mov edi, eax
cmp edi, ebx
jne 0x414828
push 1
push ebx
lea eax, [ebp - 4]
push eax
push str._SystemRoot_WinSxS
mov ecx, 0x4c9048
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
call fcn.0044ed7d
lea eax, [ebp - 0x29c]
push eax
push dword [ebp - 4]
lea eax, [ebp - 0xc]
push eax
call fcn.00499fd5
add esp, 0xc
test eax, eax
je 0x414818
push dword [ebp - 4]
call fcn.0040f20b
pop ecx
cmp word [ebp - 0x270], 0x2e
je 0x414805
test byte [ebp - 0x29c], 0x10
je 0x414805
push dword [ebp - 4]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
call edi
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x270]
push eax
call edi
mov ecx, dword [ebp - 0x10]
lea eax, [eax + ecx + 0x1e]
push eax
lea ecx, [ebp - 0x14]
call fcn.0043fdb8
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 4]
push str._s_sGdiPlus.dll
push dword [ebp - 0x14]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push dword [ebp - 0x14]
call esi
lea ecx, [ebp - 0x14]
mov edi, eax
call fcn.00439cfd
cmp edi, ebx
jne 0x414818
lea eax, [ebp - 0x29c]
push eax
lea ecx, [ebp - 0xc]
call fcn.0040553a
test eax, eax
jne 0x41479d
lea ecx, [ebp - 4]
call fcn.00439cfd
lea ecx, [ebp - 0xc]
call fcn.00402c90
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GdiplusShutdown
push edi
call esi
push str.GdipLoadImageFromFile
push edi
mov dword [0x4c8e64], eax
call esi
push str.GdipDisposeImage
push edi
mov dword [0x4c8e74], eax
call esi
push str.GdipCreateFromHDC
push edi
mov dword [0x4c8e68], eax
call esi
push str.GdipDrawImageRectI
push edi
mov dword [0x4c8e6c], eax
call esi
push str.GdipCreateBitmapFromHBITMAP
push edi
mov dword [0x4c8e70], eax
call esi
push str.GdipCreateHBITMAPFromBitmap
push edi
mov dword [0x4c8e80], eax
call esi
push str.GdipSaveImageToFile
push edi
mov dword [0x4c8e84], eax
call esi
push str.GdipGetImageEncodersSize
push edi
mov dword [0x4c8e88], eax
call esi
push str.GdipGetImageEncoders
push edi
mov dword [0x4c8e78], eax
call esi
push str.GdipDrawImageI
push edi
mov dword [0x4c8e7c], eax
call esi
push str.GdipGetImageWidth
push edi
mov dword [0x4c8e8c], eax
call esi
push str.GdipGetImageHeight
push edi
mov dword [0x4c8e90], eax
call esi
push str.GdipDrawImageRectRectI
push edi
mov dword [0x4c8e94], eax
call esi
push str.GdipDrawImageRectRectI
push edi
mov dword [0x4c8e98], eax
call esi
push str.GdipSetInterpolationMode
push edi
mov dword [0x4c8e9c], eax
call esi
push str.GdipSetPixelOffsetMode
push edi
mov dword [0x4c8ea0], eax
call esi
push str.GdipSetSmoothingMode
push edi
mov dword [0x4c8ea4], eax
call esi
push str.GdipLoadImageFromStream
push edi
mov dword [0x4c8ea8], eax
call esi
push str.GdipGetImageType
push edi
mov dword [0x4c8eac], eax
call esi
mov dword [0x4c8eb0], eax
push str.GdipCreateBitmapFromHICON
push edi
call esi
push str.GdipGetImageDimension
push edi
mov dword [0x4c8eb8], eax
call esi
push str.GdipCreateHICONFromBitmap
push edi
mov dword [0x4c8ebc], eax
call esi
push str.GdiplusStartup
push edi
mov dword [0x4c8eb4], eax
call esi
mov dword [0x4c8e60], eax
cmp dword [0x4c8f40], ebx
jne 0x414995
cmp dword [0x4c8e74], ebx
je 0x414995
xor eax, eax
mov dword [ebp - 0x4c], 1
lea edi, [ebp - 0x48]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
lea eax, [ebp - 0x4c]
push eax
push 0x4c8f40
call dword [0x4c8e60]
mov edi, dword [ebp + 8]
cmp edi, 0xffffffff
jne 0x4149a7
mov eax, dword [0x4c8f40]
jmp 0x414c23
cmp edi, ebx
jne 0x4149b2
xor eax, eax
jmp 0x414c23
lea eax, [edi + 2]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
call fcn.0043c486
pop ecx
pop ecx
push 0x7c
push edi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x4149f9
mov word [eax], bx
push 0x23
push ebx
push edi
mov dword [ebp - 0x14], eax
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp dword [ebp + 8], ebx
mov esi, eax
mov eax, dword [0x4c8e74]
jne 0x414a1a
cmp eax, ebx
jne 0x414b3f
cmp word [edi], 0x23
jne 0x414a2c
mov eax, dword [0x4c8f04]
mov esi, edi
mov dword [ebp - 4], eax
jmp 0x414a76
cmp esi, ebx
je 0x414b37
mov ax, word [esi]
push 2
push ebx
push edi
mov word [ebp - 0x10], ax
mov word [esi], bx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], eax
mov ax, word [ebp - 0x10]
mov word [esi], ax
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x414a62
sub eax, esi
sar eax, 1
jmp 0x414a69
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.0043febe
mov esi, dword [ebp - 0x18]
cmp dword [ebp + 8], ebx
je 0x414bab
add dword [ebp + 8], 2
je 0x414bab
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.Bitmap
call edi
test eax, eax
jne 0x414ad0
push esi
push dword [ebp - 4]
mov dword [ebp + 8], 2
call dword [sym.imp.USER32.dll_LoadBitmapW]
mov edi, eax
cmp edi, ebx
je 0x414bab
lea eax, [ebp - 8]
push eax
push ebx
push edi
call dword [0x4c8e80]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x414bab
push dword [ebp + 8]
push str.ICON
call edi
test eax, eax
jne 0x414aee
mov dword [ebp + 8], 3
mov dword [ebp - 0x1c], 4
jmp 0x414b1c
push dword [ebp + 8]
push str.ICON_GROUP
call edi
test eax, eax
je 0x414b0e
push dword [ebp + 8]
push str.ICONGROUP
call edi
test eax, eax
jne 0x414bab
mov dword [ebp + 8], 0xe
mov dword [ebp - 0x1c], 2
lea eax, [ebp - 0x1c]
push eax
push ebx
push dword [ebp - 0x34]
push dword [ebp - 0x2c]
push esi
push dword [ebp - 4]
call fcn.0044aad7
add esp, 0x18
mov edi, eax
jmp 0x414b81
cmp eax, ebx
je 0x414c02
push edi
call fcn.00443b84
test al, al
pop ecx
je 0x414b6a
lea eax, [ebp - 0x28]
push eax
push edi
call fcn.00413b31
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0043ed1c
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x414c02
push 0x10
push ebx
push ebx
push 1
push edi
push ebx
call dword [sym.imp.USER32.dll_LoadImageW]
cmp eax, ebx
mov dword [ebp - 0x10], eax
je 0x414bf7
mov edi, eax
cmp dword [ebp - 0x30], ebx
je 0x414b91
mov eax, dword [ebp + 0xc]
or dword [eax], 2
mov dword [ebp - 8], edi
jmp 0x414ba3
lea eax, [ebp - 8]
push eax
push edi
call dword [0x4c8eb8]
push edi
call dword [sym.imp.USER32.dll_DestroyIcon]
cmp dword [ebp - 8], ebx
jne 0x414bab
mov dword [ebp - 8], ebx
cmp dword [ebp - 4], ebx
je 0x414be7
cmp dword [ebp - 8], ebx
jne 0x414be7
cmp dword [ebp + 8], ebx
jne 0x414bc1
mov dword [ebp + 8], 2
push ebx
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 8]
push esi
push dword [ebp - 4]
call fcn.00414150
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0043ed1c
add esp, 0x1c
cmp eax, ebx
mov dword [ebp - 8], eax
jne 0x414c02
cmp dword [ebp - 0xc], ebx
je 0x414c02
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x414c02
lea eax, [ebp - 8]
push eax
push edi
call dword [0x4c8e74]
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x414c0e
mov word [eax], 0x7c
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x28]
call fcn.00439cfd
lea ecx, [ebp - 0x18]
call fcn.00439cfd
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret