Function at 0x14001f244
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x300
mov rax, qword [0x14013cd80]
mov r12, rdx
mov rbp, rcx
cmp rax, 0xffffffffffffffff
jne 0x14001f275
xor eax, eax
jmp 0x14001fd22
xor esi, esi
mov edi, 1
cmp rdx, rsi
je 0x14001f2a1
test byte [rdx], 0x10
je 0x14001f2a1
mov rcx, qword [rdx + 8]
mov dword [rsp + 0x358], edi
mov qword [rsp + 0x70], rcx
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x78], rcx
jmp 0x14001f2b2
mov dword [rsp + 0x358], esi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
mov ebx, 0x2e
cmp rax, rsi
jne 0x14001f938
mov rax, qword [0x14013ccc0]
cmp rax, rsi
jne 0x14001f447
lea rcx, str.GdiPlus.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x14013ccc0], rax
cmp rax, rsi
jne 0x14001f447
lea rcx, [rsp + 0x80]
lea rdx, str._SystemRoot_WinSxS
lea r8d, [rbx - 2]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x38], rsi
call fcn.140102b50
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x80]
lea rcx, [0x14013d130]
xor r9d, r9d
mov byte [rsp + 0x20], dil
call fcn.14007bba4
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0xb0]
lea rcx, [rsp + 0x50]
call fcn.140101224
cmp rax, rsi
je 0x14001f40e
mov rcx, qword [rsp + 0x38]
lea r8d, [rbx + 0x2e]
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp rax, rsi
je 0x14001f369
mov word [rax], si
cmp word [rsp + 0xdc], bx
je 0x14001f3ea
test byte [rsp + 0xb0], 0x10
je 0x14001f3ea
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0xdc]
movsxd rbx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
lea rdx, [rcx + rbx + 0x1e]
lea rcx, [rsp + 0x48]
call fcn.140063314
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
lea r9, [rsp + 0xdc]
lea rdx, str._s_sGdiPlus.dll
call fcn.1400170d8
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea rcx, [rsp + 0x48]
mov qword [0x14013ccc0], rax
call fcn.14005aef8
mov ebx, 0x2e
cmp qword [0x14013ccc0], rsi
jne 0x14001f40e
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, esi
jne 0x14001f369
lea rcx, [rsp + 0x38]
call fcn.14005aef8
mov rcx, qword [rsp + 0x50]
cmp rcx, rsi
je 0x14001f42e
cmp rcx, 0xffffffffffffffff
je 0x14001f42e
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rax, qword [0x14013ccc0]
cmp rax, rsi
jne 0x14001f447
or qword [0x14013cd80], 0xffffffffffffffff
jmp 0x14001f26e
lea rdx, str.GdiplusShutdown
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipLoadImageFromFile
mov qword [0x14013cd88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDisposeImage
mov qword [0x14013cda0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateFromHDC
mov qword [0x14013cd90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDrawImageRectI
mov qword [0x14013ce28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateBitmapFromHBITMAP
mov qword [0x14013cd98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateHBITMAPFromBitmap
mov qword [0x14013cde8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipSaveImageToFile
mov qword [0x14013cdf0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageEncodersSize
mov qword [0x14013cdf8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageEncoders
mov qword [0x14013cdb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDrawImageI
mov qword [0x14013cdc0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageWidth
mov qword [0x14013ce00], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageHeight
mov qword [0x14013ce08], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDrawImageRectRectI
mov qword [0x14013ce10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDeleteGraphics
mov qword [0x14013ce20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipSetInterpolationMode
mov qword [0x14013ce30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipSetPixelOffsetMode
mov qword [0x14013ce38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipSetSmoothingMode
mov qword [0x14013ce40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipLoadImageFromStream
mov qword [0x14013ce48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageType
mov qword [0x14013ce50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GdipCreateBitmapFromHICON
mov qword [0x14013ce58], rax
mov rcx, qword [0x14013ccc0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageDimension
mov qword [0x14013ce70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateHICONFromBitmap
mov qword [0x14013ce78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipSetTextRenderingHint
mov qword [0x14013ce60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipImageGetFrameDimensionsList
mov qword [0x14013ce68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipImageSelectActiveFrame
mov qword [0x14013cda8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipImageGetFrameDimensionsCount
mov qword [0x14013cdb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipImageGetFrameCount
mov qword [0x14013cdc8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetPropertyItemSize
mov qword [0x14013cdd0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetPropertyItem
mov qword [0x14013cdd8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipBitmapLockBits
mov qword [0x14013cde0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipBitmapUnlockBits
mov qword [0x14013ce80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateBitmapFromScan0
mov qword [0x14013ce88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateBitmapFromResource
mov qword [0x14013ce90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCloneBitmapAreaI
mov qword [0x14013ce98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetImageGraphicsContext
mov qword [0x14013cea0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipScaleWorldTransform
mov qword [0x14013cea8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipCreateTexture
mov qword [0x14013ceb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDeleteBrush
mov qword [0x14013ceb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipFillRectangle
mov qword [0x14013cec0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
mov qword [0x14013cec8], rax
lea rdx, str.GdipDrawString
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipNewPrivateFontCollection
mov qword [0x14013ce18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipDeletePrivateFontCollection
mov qword [0x14013ced0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipPrivateAddMemoryFont
mov qword [0x14013ced8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetFontCollectionFamilyList
mov qword [0x14013cee0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdipGetFamilyName
mov qword [0x14013cee8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x14013ccc0]
lea rdx, str.GdiplusStartup
mov qword [0x14013cef0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013cd80], rax
lea rbx, [rbp - 1]
cmp rbx, 0xfffffffffffffffd
je 0x14001fd22
mov rcx, qword [0x14013cfc0]
cmp rcx, rsi
jne 0x14001f98f
cmp qword [0x14013cda0], rsi
je 0x14001f98f
xor ecx, ecx
lea rdx, [rsp + 0x80]
xor r8d, r8d
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rcx
lea rcx, [0x14013cfc0]
mov dword [rsp + 0x80], edi
call rax
mov rcx, qword [0x14013cfc0]
cmp rbx, 0xfffffffffffffffe
jb 0x14001f99d
mov rax, rcx
jmp 0x14001fd22
mov edx, 0x7c
mov rcx, rbp
mov qword [rsp + 0x30], rsi
mov r13, rsi
mov r14, rsi
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x350], esi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rsi
call qword [sym.imp.SHLWAPI.dll_StrChrW]
mov r15, rax
mov rdi, rax
mov eax, 2
cmp r15, rsi
je 0x14001f9e8
mov word [r15], si
add rdi, rax
mov ebx, 0x23
xor edx, edx
mov rcx, rbp
mov r8d, ebx
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
mov rsi, rax
mov rax, qword [0x14013cda0]
cmp bx, word [rbp]
je 0x14001fa1d
xor ebx, ebx
cmp rdi, rbx
jne 0x14001fa1f
cmp rax, rbx
jne 0x14001fbb2
jmp 0x14001fa1f
xor ebx, ebx
mov ecx, 0x23
cmp cx, word [rbp]
jne 0x14001fa54
mov rsi, rbp
add rbp, 2
movzx eax, word [rbp]
cmp ax, bx
je 0x14001fa46
sub ax, 0x30
cmp ax, 9
cmova rsi, rbp
mov r13, qword [0x14013cf70]
mov ebp, 2
jmp 0x14001fab9
cmp rsi, rbx
je 0x14001fba9
movzx ebx, word [rsi]
xor eax, eax
mov rcx, rbp
mov word [rsi], ax
call fcn.14001be60
mov ebp, 2
mov r8d, ebp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov word [rsi], bx
xor ebx, ebx
mov r14, rax
mov r13, rax
cmp rdi, rbx
je 0x14001fa9b
mov r8, r15
sub r8, rsi
sar r8, 1
jmp 0x14001faa7
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd r8, eax
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.140063508
mov rsi, qword [rsp + 0x40]
cmp rdi, rbx
je 0x14001fc57
movzx eax, word [rdi]
neg ax
sbb rcx, rcx
and rcx, rdi
mov rdi, rcx
cmp rcx, rbx
je 0x14001fc57
call fcn.14005d4e4
cmp al, bl
je 0x14001fb1c
mov rdx, rsi
mov rcx, r13
mov rdi, rbp
call qword [sym.imp.USER32.dll_LoadBitmapW]
mov rbx, rax
xor eax, eax
cmp rbx, rax
je 0x14001fb15
lea r8, [rsp + 0x30]
xor edx, edx
mov rcx, rbx
call qword [0x14013cde8]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
xor ebx, ebx
jmp 0x14001fc57
mov rcx, rdi
call fcn.14005d4a4
cmp al, bl
je 0x14001fb3a
mov edi, 3
mov dword [rsp + 0x350], 0x14
jmp 0x14001fb56
mov rcx, rdi
call fcn.14005d450
cmp al, bl
je 0x14001fc57
mov edi, 0xe
mov dword [rsp + 0x350], ebp
mov r9d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x70]
lea rax, [rsp + 0x350]
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov rcx, r13
mov qword [rsp + 0x20], rbx
call fcn.140073594
bt dword [rsp + 0x350], 8
mov rbx, rax
jae 0x14001fc2a
mov qword [rsp + 0x30], rax
xor eax, eax
cmp rbx, rax
je 0x14001fc50
or qword [r12], 4
jmp 0x14001fc45
cmp rax, rbx
je 0x14001fcf8
mov rcx, rbp
call fcn.14006858c
cmp al, bl
je 0x14001fbe7
lea rdx, [rsp + 0x58]
mov rcx, rbp
call fcn.14001e2b0
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
call fcn.140061a20
mov qword [rsp + 0x30], rax
jmp 0x14001fcf8
xor r9d, r9d
mov rdx, rbp
xor ecx, ecx
lea r8d, [r9 + 1]
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], ebx
call qword [sym.imp.USER32.dll_LoadImageW]
mov rbx, rax
xor eax, eax
cmp rbx, rax
je 0x14001fcae
lea ebp, [rax + 2]
cmp dword [rsp + 0x358], eax
je 0x14001fc2e
or qword [r12], rbp
mov qword [rsp + 0x30], rbx
jmp 0x14001fc45
xor eax, eax
jmp 0x14001fc16
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [0x14013ce70]
mov rcx, rbx
call qword [sym.imp.USER32.dll_DestroyIcon]
xor ebx, ebx
cmp qword [rsp + 0x30], rbx
jne 0x14001fc57
jmp 0x14001fc52
xor ebx, ebx
mov qword [rsp + 0x30], rbx
cmp r13, rbx
je 0x14001fc9e
cmp qword [rsp + 0x30], rbx
jne 0x14001fc9e
cmp rdi, rbx
lea r9, [rsp + 0x58]
mov rdx, rsi
cmove rdi, rbp
mov rcx, r13
mov qword [rsp + 0x20], rbx
mov r8, rdi
call fcn.14001ea88
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
call fcn.140061a20
mov qword [rsp + 0x30], rax
cmp rax, rbx
jne 0x14001fcf8
cmp r14, rbx
je 0x14001fcf8
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x14001fcf8
lea rdx, [rsp + 0x30]
mov rcx, rbp
call qword [0x14013cda0]
xor ebx, ebx
cmp qword [rsp + 0x30], rbx
je 0x14001fcf8
cmp r12, rbx
je 0x14001fcf8
lea r8d, [rbx + 0x2e]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp rax, rbx
je 0x14001fcf8
lea rcx, [rax + 2]
lea rdx, [0x14011fb48]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
cmp eax, ebx
jne 0x14001fcf8
or qword [r12], 4
cmp r15, rbx
je 0x14001fd06
mov eax, 0x7c
mov word [r15], ax
mov rbx, qword [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.14005aef8
lea rcx, [rsp + 0x40]
call fcn.14005aef8
mov rax, rbx
mov rbx, qword [rsp + 0x340]
add rsp, 0x300
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret