Function at 0x10015eb9
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c4
mov ecx, dword [0x100e2ec0]
cmp ecx, 0xffffffff
jne 0x10015ed1
xor eax, eax
leave
ret
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x10015ef5
test byte [eax], 0x10
je 0x10015ef5
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 0x10015efe
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], ebx
cmp ecx, ebx
push esi
push edi
jne 0x1001637b
mov eax, dword [0x100e2e78]
cmp eax, ebx
jne 0x10016029
push str.GdiPlus.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
mov dword [0x100e2e78], eax
jne 0x10016029
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, 0x100e3108
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], ebx
call fcn.10058f7c
lea eax, [ebp - 0x2c4]
push eax
push dword [ebp - 4]
lea eax, [ebp - 0x10]
push eax
call fcn.100b37d1
add esp, 0xc
test eax, eax
je 0x10016002
push dword [ebp - 4]
call fcn.100100b6
pop ecx
cmp word [ebp - 0x298], 0x2e
je 0x10015fe3
test byte [ebp - 0x2c4], 0x10
je 0x10015fe3
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.10046141
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 [0x100e2e78], eax
call fcn.1003f96c
cmp dword [0x100e2e78], ebx
jne 0x10016002
lea eax, [ebp - 0x2c4]
push eax
lea ecx, [ebp - 0x10]
call fcn.10005c13
test eax, eax
jne 0x10015f7c
lea ecx, [ebp - 4]
call fcn.1003f96c
lea ecx, [ebp - 0x10]
call fcn.10002d8b
mov eax, dword [0x100e2e78]
cmp eax, ebx
jne 0x10016029
or dword [0x100e2ec0], 0xffffffff
xor eax, eax
jmp 0x10016689
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GdiplusShutdown
push eax
call esi
push str.GdipLoadImageFromFile
push dword [0x100e2e78]
mov dword [0x100e2ec4], eax
call esi
push str.GdipDisposeImage
push dword [0x100e2e78]
mov dword [0x100e2ed0], eax
call esi
push str.GdipCreateFromHDC
push dword [0x100e2e78]
mov dword [0x100e2ec8], eax
call esi
push str.GdipDrawImageRectI
push dword [0x100e2e78]
mov dword [0x100e2f14], eax
call esi
push str.GdipCreateBitmapFromHBITMAP
push dword [0x100e2e78]
mov dword [0x100e2ecc], eax
call esi
push str.GdipCreateHBITMAPFromBitmap
push dword [0x100e2e78]
mov dword [0x100e2ef4], eax
call esi
push str.GdipSaveImageToFile
push dword [0x100e2e78]
mov dword [0x100e2ef8], eax
call esi
push str.GdipGetImageEncodersSize
push dword [0x100e2e78]
mov dword [0x100e2efc], eax
call esi
push str.GdipGetImageEncoders
push dword [0x100e2e78]
mov dword [0x100e2edc], eax
call esi
push str.GdipDrawImageI
push dword [0x100e2e78]
mov dword [0x100e2ee0], eax
call esi
push str.GdipGetImageWidth
push dword [0x100e2e78]
mov dword [0x100e2f00], eax
call esi
push str.GdipGetImageHeight
push dword [0x100e2e78]
mov dword [0x100e2f04], eax
call esi
push str.GdipDrawImageRectRectI
push dword [0x100e2e78]
mov dword [0x100e2f08], eax
call esi
push str.GdipDeleteGraphics
push dword [0x100e2e78]
mov dword [0x100e2f10], eax
call esi
push str.GdipSetInterpolationMode
push dword [0x100e2e78]
mov dword [0x100e2f18], eax
call esi
push str.GdipSetPixelOffsetMode
push dword [0x100e2e78]
mov dword [0x100e2f1c], eax
call esi
push str.GdipSetSmoothingMode
push dword [0x100e2e78]
mov dword [0x100e2f20], eax
call esi
push str.GdipLoadImageFromStream
push dword [0x100e2e78]
mov dword [0x100e2f24], eax
call esi
push str.GdipGetImageType
push dword [0x100e2e78]
mov dword [0x100e2f28], eax
call esi
mov dword [0x100e2f2c], eax
push str.GdipCreateBitmapFromHICON
push dword [0x100e2e78]
call esi
push str.GdipGetImageDimension
push dword [0x100e2e78]
mov dword [0x100e2f38], eax
call esi
push str.GdipCreateHICONFromBitmap
push dword [0x100e2e78]
mov dword [0x100e2f3c], eax
call esi
push str.GdipSetTextRenderingHint
push dword [0x100e2e78]
mov dword [0x100e2f30], eax
call esi
push str.GdipImageGetFrameDimensionsList
push dword [0x100e2e78]
mov dword [0x100e2f34], eax
call esi
push str.GdipImageSelectActiveFrame
push dword [0x100e2e78]
mov dword [0x100e2ed4], eax
call esi
push str.GdipImageGetFrameDimensionsCount
push dword [0x100e2e78]
mov dword [0x100e2ed8], eax
call esi
push str.GdipImageGetFrameCount
push dword [0x100e2e78]
mov dword [0x100e2ee4], eax
call esi
push str.GdipGetPropertyItemSize
push dword [0x100e2e78]
mov dword [0x100e2ee8], eax
call esi
push str.GdipGetPropertyItem
push dword [0x100e2e78]
mov dword [0x100e2eec], eax
call esi
push str.GdipBitmapLockBits
push dword [0x100e2e78]
mov dword [0x100e2ef0], eax
call esi
push str.GdipBitmapUnlockBits
push dword [0x100e2e78]
mov dword [0x100e2f40], eax
call esi
push str.GdipCreateBitmapFromScan0
push dword [0x100e2e78]
mov dword [0x100e2f44], eax
call esi
push str.GdipCreateBitmapFromResource
push dword [0x100e2e78]
mov dword [0x100e2f48], eax
call esi
push str.GdipCloneBitmapAreaI
push dword [0x100e2e78]
mov dword [0x100e2f4c], eax
call esi
push str.GdipGetImageGraphicsContext
push dword [0x100e2e78]
mov dword [0x100e2f50], eax
call esi
push str.GdipScaleWorldTransform
push dword [0x100e2e78]
mov dword [0x100e2f54], eax
call esi
push str.GdipCreateTexture
push dword [0x100e2e78]
mov dword [0x100e2f58], eax
call esi
push str.GdipDeleteBrush
push dword [0x100e2e78]
mov dword [0x100e2f5c], eax
call esi
push str.GdipFillRectangle
push dword [0x100e2e78]
mov dword [0x100e2f60], eax
call esi
mov dword [0x100e2f64], eax
push str.GdipDrawString
push dword [0x100e2e78]
call esi
push str.GdipNewPrivateFontCollection
push dword [0x100e2e78]
mov dword [0x100e2f0c], eax
call esi
push str.GdipDeletePrivateFontCollection
push dword [0x100e2e78]
mov dword [0x100e2f68], eax
call esi
push str.GdipPrivateAddMemoryFont
push dword [0x100e2e78]
mov dword [0x100e2f6c], eax
call esi
push str.GdipGetFontCollectionFamilyList
push dword [0x100e2e78]
mov dword [0x100e2f70], eax
call esi
push str.GdipGetFamilyName
push dword [0x100e2e78]
mov dword [0x100e2f74], eax
call esi
push str.GdiplusStartup
push dword [0x100e2e78]
mov dword [0x100e2f78], eax
call esi
mov ecx, eax
mov dword [0x100e2ec0], ecx
mov esi, dword [ebp + 8]
lea eax, [esi - 1]
cmp eax, 0xfffffffd
jne 0x1001638d
mov eax, ecx
jmp 0x10016689
cmp dword [0x100e2ffc], ebx
jne 0x100163b8
cmp dword [0x100e2ed0], ebx
je 0x100163b8
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 0x100e2ffc
call ecx
lea eax, [esi - 1]
cmp eax, 0xfffffffe
jb 0x100163ca
mov eax, dword [0x100e2ffc]
jmp 0x10016689
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 0x100163fd
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 [0x100e2ed0]
mov edi, eax
mov ax, word [esi]
cmp ax, 0x23
je 0x1001642b
cmp dword [ebp - 4], ebx
jne 0x10016425
cmp ecx, ebx
jne 0x10016573
cmp ax, 0x23
jne 0x10016453
mov edi, esi
add esi, 2
xor eax, eax
mov ax, word [esi]
cmp ax, bx
je 0x10016449
push eax
call fcn.10045b88
add esp, 4
test al, al
jne 0x10016449
mov edi, esi
mov eax, dword [0x100e2fc0]
mov dword [ebp - 0xc], eax
jmp 0x100164a5
cmp edi, ebx
je 0x1001656b
mov ax, word [edi]
push 2
push ebx
push esi
mov word [ebp - 0x18], ax
mov word [edi], bx
call fcn.100132bf
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 0x10016491
mov eax, dword [ebp - 0x38]
sub eax, edi
sar eax, 1
jmp 0x10016498
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.10046247
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
cmp eax, ebx
je 0x100165e0
cmp word [eax], bx
jne 0x100164b8
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], ebx
je 0x100165e0
push dword [ebp - 4]
call fcn.10041b0b
test al, al
pop ecx
je 0x10016501
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 0x100165e0
lea eax, [ebp - 8]
push eax
push ebx
push esi
call dword [0x100e2ef4]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x100165e0
push dword [ebp - 4]
call fcn.10041ade
test al, al
pop ecx
je 0x1001651e
mov dword [ebp - 4], 3
mov dword [ebp - 0x14], 0x14
jmp 0x1001653d
push dword [ebp - 4]
call fcn.10041a9f
test al, al
pop ecx
je 0x100165e0
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.10052e9c
add esp, 0x18
test byte [ebp - 0x13], 1
mov esi, eax
je 0x100165b6
cmp esi, ebx
mov dword [ebp - 8], esi
je 0x100165dd
mov eax, dword [ebp + 0xc]
or dword [eax], 4
jmp 0x100165d8
cmp ecx, ebx
je 0x10016668
push esi
call fcn.1004a3f6
test al, al
pop ecx
je 0x1001659f
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.10014f8e
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.10045061
add esp, 0x14
mov dword [ebp - 8], eax
jmp 0x10016668
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 0x1001662d
mov esi, eax
cmp dword [ebp - 0x30], ebx
je 0x100165c6
mov eax, dword [ebp + 0xc]
or dword [eax], 2
mov dword [ebp - 8], esi
jmp 0x100165d8
lea eax, [ebp - 8]
push eax
push esi
call dword [0x100e2f38]
push esi
call dword [sym.imp.USER32.dll_DestroyIcon]
cmp dword [ebp - 8], ebx
jne 0x100165e0
mov dword [ebp - 8], ebx
cmp dword [ebp - 0xc], ebx
je 0x1001661d
cmp dword [ebp - 8], ebx
jne 0x1001661d
cmp dword [ebp - 4], ebx
jne 0x100165f6
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.100155e3
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.10045061
add esp, 0x20
cmp eax, ebx
mov dword [ebp - 8], eax
jne 0x10016668
cmp dword [ebp - 0x10], ebx
je 0x10016668
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10016668
lea eax, [ebp - 8]
push eax
push esi
call dword [0x100e2ed0]
cmp dword [ebp - 8], ebx
je 0x10016668
mov edi, dword [ebp + 0xc]
cmp edi, ebx
je 0x10016668
push 0x2e
push ebx
push esi
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp eax, ebx
je 0x10016668
push 0x100c9b90
add eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x10016668
or dword [edi], 4
mov eax, dword [ebp - 0x38]
cmp eax, ebx
je 0x10016674
mov word [eax], 0x7c
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x28]
call fcn.1003f96c
lea ecx, [ebp - 0x1c]
call fcn.1003f96c
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret