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

Disassembly:
push 0xb30
push 0x1001778
call fcn.01011fec
mov eax, dword [0x101647c]
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 0x1004a4a
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 0x1004a4a
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [ebp - 4], esi
push 0x101939c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
or dword [ebp - 4], 0xffffffff
jmp 0x1004a71
xor edi, edi
inc edi
mov dword [ebx + 0xc4], edi
mov dword [ebp - 4], edi
push 0x101d5e8
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
or dword [ebp - 4], 0xffffffff
jmp 0x1004aa4
mov dword [ebx + 0xa4], esi
lea eax, [ebp - 0x224]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x1004afc
push 0x100175c
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
push esi
push 3
push esi
push edi
push 0x80000000
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x1004afc
mov dword [ebx + 0xa4], edi
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.010064a6
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jb 0x1004b17
mov dword [ebx + 0xac], edi
jmp 0x1004b41
cmp al, 4
ja 0x1004b21
mov dword [ebx + 0xb0], edi
cmp al, 5
jne 0x1004b37
test ah, ah
jne 0x1004b31
mov dword [ebx + 0xb4], edi
jmp 0x1004b37
mov dword [ebx + 0xb8], edi
cmp al, 6
jne 0x1004b41
mov dword [ebx + 0xbc], edi
mov ecx, dword [ebx + 0xac]
cmp ecx, esi
jne 0x1004b5f
cmp dword [ebx + 0xb0], esi
jne 0x1004b5f
cmp dword [ebx + 0xb4], esi
jne 0x1004b5f
xor eax, eax
jmp 0x1004b61
mov eax, edi
mov dword [ebx + 0xa8], eax
cmp ecx, esi
jne 0x1004b75
cmp dword [ebx + 0xb0], esi
jne 0x1004b75
xor edi, edi
mov dword [ebx + 0xc0], edi
mov dword [ebp - 0xb3c], 8
cmp dword [ebx + 0xb8], esi
jne 0x1004b9f
cmp dword [ebx + 0xbc], esi
mov dword [ebp - 0xb38], 0x200
je 0x1004ba9
mov dword [ebp - 0xb38], 0x8200
lea eax, [ebp - 0xb3c]
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 0x1001750
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [ebx + 0x9c], eax
mov ecx, ebx
call fcn.010031cb
mov dword [ebp - 0xb40], eax
cmp eax, esi
jl 0x1004d8b
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 + 0xc0], esi
jne 0x1004c45
mov dword [ebx + 0x68], 0x34
mov dword [ebx + 0x6c], 0x1088000
mov dword [ebx + 0x90], 0x6a
mov dword [ebx + 0x98], 0x69
jmp 0x1004c53
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 0x1001734
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 - 0xb30], 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 - 0xb34], 8
push 0x400
lea eax, [ebp - 0x624]
push eax
push 0x120
push dword [0x1018f3c]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x1004d37
push 0xa
push 0
lea eax, [ebp - 0x624]
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0xb34], eax
push 0x5a
push dword [ebp - 0xb30]
call edi
imul eax, dword [ebp - 0xb34]
xor edx, edx
push 0x48
pop ecx
div ecx
neg eax
mov dword [ebp - 0x680], eax
push 0x1001734
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 - 0xb30]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebx + 0xc]
mov dword [0x1018f3c], eax
mov eax, dword [ebp - 0xb40]
mov ecx, dword [ebp - 0x1c]
call fcn.01011c2a
call fcn.01012027
ret 8