Function at 0x1004f1e
Capabilities:
Check os version
Get common file path
Get file system object information

Disassembly:
push 0xb30
push 0x1001848
call fcn.01012f9c
mov eax, dword [0x1017484]
mov dword [ebp - 0x1c], eax
mov ebx, ecx
mov dword [ebp - 0xb2c], ebx
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebx + 0xc], eax
xor esi, esi
cmp edi, esi
je 0x1004f6e
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebx], eax
cmp eax, esi
je 0x1004f6e
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [ebp - 4], esi
push 0x101a3c0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
or dword [ebp - 4], 0xffffffff
jmp 0x1004f95
xor edi, edi
inc edi
mov dword [ebx + 0xb8], edi
mov dword [ebp - 4], edi
push 0x101e618
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
or dword [ebp - 4], 0xffffffff
jmp 0x1004fc8
push esi
call fcn.010138e4
push esi
push esi
push esi
push edi
push esi
call fcn.01013387
mov dword [0x1019f8c], eax
mov dword [ebx + 0xa4], esi
lea eax, [ebp - 0x224]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x100503c
push 0x100182c
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
push esi
push 3
push esi
push edi
mov edi, 0x80000000
push edi
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x1005041
mov dword [ebx + 0xa4], 1
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1005041
mov edi, 0x80000000
push esi
call fcn.010069ea
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, edi
jae 0x100505c
cmp al, 5
jb 0x100505c
xor ecx, ecx
xor edx, edx
inc edx
jmp 0x1005061
xor edx, edx
inc edx
mov ecx, edx
mov dword [ebx + 0xa8], ecx
cmp eax, edi
sbb ecx, ecx
inc ecx
mov dword [ebx + 0xac], ecx
cmp eax, edi
jae 0x100507e
cmp al, 4
jne 0x100507e
mov ecx, edx
jmp 0x1005080
xor ecx, ecx
mov dword [ebx + 0xb0], ecx
cmp eax, edi
jae 0x1005097
cmp al, 5
jne 0x1005097
cmp ah, 1
jb 0x1005097
mov ecx, edx
jmp 0x1005099
xor ecx, ecx
cmp ah, 1
jae 0x10050a4
mov dword [ebx + 0xa8], edx
cmp eax, edi
jae 0x10050b0
cmp al, 5
jb 0x10050b0
xor eax, eax
jmp 0x10050b2
mov eax, edx
mov dword [ebx + 0xb4], eax
mov dword [ebp - 0xb40], 8
neg ecx
sbb ecx, ecx
and ecx, 0x7f01
add ecx, 0x2ff
mov dword [ebp - 0xb3c], ecx
lea eax, [ebp - 0xb40]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov dword [ebp - 0xb28], esi
mov ecx, 0xac
xor eax, eax
lea edi, [ebp - 0xb24]
rep stosd dword es:[edi], eax
push 0x4011
push 0x2b4
lea eax, [ebp - 0xb28]
push eax
push 0x80
push 0x1001820
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [ebx + 0x9c], eax
mov ecx, ebx
call fcn.010034fa
mov dword [ebp - 0xb38], eax
cmp eax, esi
jl 0x10052ba
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x70], esi
lea eax, [ebx + 0x10]
mov dword [ebx + 0x88], eax
cmp dword [ebx + 0xb4], esi
jne 0x1005174
mov dword [ebx + 0x68], 0x34
mov dword [ebx + 0x6c], 0x1088000
mov dword [ebx + 0x90], 0x6a
mov dword [ebx + 0x98], 0x69
jmp 0x1005182
mov dword [ebx + 0x68], 0x28
mov dword [ebx + 0x6c], 0x20
mov dword [ebx + 0x84], esi
mov dword [ebx + 0x80], 0x16
push 0x7c
pop ecx
xor eax, eax
lea edi, [ebp - 0x870]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x874], 0x1f4
push esi
lea eax, [ebp - 0x874]
push eax
push esi
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
push 0x17
pop ecx
lea esi, [ebp - 0x6dc]
lea edi, [ebp - 0x680]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x670], 0x2bc
push 0x1001804
lea eax, [ebp - 0x664]
push eax
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
call esi
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0xb34], eax
push 0x5a
push eax
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
call edi
imul eax, eax, 0xfffffff4
cdq
push 0x48
pop ecx
idiv ecx
mov dword [ebp - 0x680], eax
lea eax, [ebp - 0x680]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [ebx + 4], eax
mov dword [ebp - 0xb30], 8
push 0x400
lea eax, [ebp - 0x624]
push eax
push 0x120
push dword [0x1019f5c]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x1005266
push 0xa
push 0
lea eax, [ebp - 0x624]
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0xb30], eax
push 0x5a
push dword [ebp - 0xb34]
call edi
imul eax, dword [ebp - 0xb30]
xor edx, edx
push 0x48
pop ecx
div ecx
neg eax
mov dword [ebp - 0x680], eax
push 0x1001804
lea eax, [ebp - 0x664]
push eax
call esi
lea eax, [ebp - 0x680]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [ebx + 8], eax
push dword [ebp - 0xb34]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebx + 0xc]
mov dword [0x1019f5c], eax
mov eax, dword [ebp - 0xb38]
mov ecx, dword [ebp - 0x1c]
call fcn.01012bde
call fcn.01012fd7
ret 8