Function at 0x401170
Capabilities:
Create directory
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x20bc
call fcn.00406580
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x40bd78]
movq xmm0, qword [0x40bd60]
push ebx
push esi
mov dword [ebp - 0x20a4], eax
movzx eax, word [0x40bd7c]
push edi
movq qword [ebp - 0x20bc], xmm0
movq xmm0, qword [0x40bd68]
push 0x1ea
mov word [ebp - 0x20a0], ax
movq qword [ebp - 0x20b4], xmm0
movq xmm0, qword [0x40bd70]
lea eax, [ebp - 0x209e]
push 0
push eax
movq qword [ebp - 0x20ac], xmm0
call fcn.004033f0
mov eax, dword [0x40bd98]
movq xmm0, qword [0x40bd80]
mov dword [ebp - 0x1e98], eax
movzx eax, word [0x40bd9c]
movq qword [ebp - 0x1eb0], xmm0
movq xmm0, qword [0x40bd88]
push 0x1ea
mov word [ebp - 0x1e94], ax
movq qword [ebp - 0x1ea8], xmm0
movq xmm0, qword [0x40bd90]
lea eax, [ebp - 0x1e92]
push 0
push eax
mov dword [ebp - 0x1eb4], 0x81
movq qword [ebp - 0x1ea0], xmm0
call fcn.004033f0
movq xmm0, qword [0x40bda0]
movq qword [ebp - 0x1ca4], xmm0
movq xmm0, qword [0x40bda8]
movq qword [ebp - 0x1c9c], xmm0
movq xmm0, qword [0x40bdb0]
push 0x1e8
movq qword [ebp - 0x1c94], xmm0
movq xmm0, qword [0x40bdb8]
lea eax, [ebp - 0x1c84]
push 0
push eax
mov dword [ebp - 0x1ca8], 0x82
movq qword [ebp - 0x1c8c], xmm0
call fcn.004033f0
movq xmm0, qword [0x40bdc0]
movq qword [ebp - 0x1a98], xmm0
movq xmm0, qword [0x40bdc8]
push 0x1f0
movq qword [ebp - 0x1a90], xmm0
movq xmm0, qword [0x40bdd0]
lea eax, [ebp - 0x1a80]
push 0
push eax
mov dword [ebp - 0x1a9c], 0x83
movq qword [ebp - 0x1a88], xmm0
call fcn.004033f0
movq xmm0, qword [0x40bdd8]
movq qword [ebp - 0x188c], xmm0
movq xmm0, qword [0x40bde0]
push 0x1f0
movq qword [ebp - 0x1884], xmm0
movq xmm0, qword [0x40bde8]
lea eax, [ebp - 0x1874]
push 0
push eax
mov dword [ebp - 0x1890], 0x86
movq qword [ebp - 0x187c], xmm0
call fcn.004033f0
mov eax, dword [0x40be00]
movq xmm0, qword [str.snbase.dat]
mov dword [ebp - 0x1670], eax
movzx eax, word [0x40be04]
movq qword [ebp - 0x1680], xmm0
movq xmm0, qword [0x40bdf8]
mov dword [ebp - 0x1684], 0x84
movq qword [ebp - 0x1678], xmm0
mov word [ebp - 0x166c], ax
push 0x1f2
lea eax, [ebp - 0x166a]
push 0
push eax
call fcn.004033f0
mov eax, dword [0x40be18]
movq xmm0, qword [str.snbase.sys]
mov dword [ebp - 0x1464], eax
movzx eax, word [0x40be1c]
add esp, 0x48
mov word [ebp - 0x1460], ax
push 0x1f2
movq qword [ebp - 0x1474], xmm0
movq xmm0, qword [0x40be10]
lea eax, [ebp - 0x145e]
push 0
push eax
mov dword [ebp - 0x1478], 0x87
movq qword [ebp - 0x146c], xmm0
call fcn.004033f0
movq xmm0, qword [str.snbasex.inf]
movq qword [ebp - 0x1268], xmm0
movq xmm0, qword [0x40be28]
push 0x1f0
movq qword [ebp - 0x1260], xmm0
movq xmm0, qword [0x40be30]
lea eax, [ebp - 0x1250]
push 0
push eax
mov dword [ebp - 0x126c], 0x88
movq qword [ebp - 0x1258], xmm0
call fcn.004033f0
movq xmm0, qword [str.snbasex.sys]
movq qword [ebp - 0x105c], xmm0
movq xmm0, qword [0x40be40]
push 0x1f0
movq qword [ebp - 0x1054], xmm0
movq xmm0, qword [0x40be48]
lea eax, [ebp - 0x1044]
push 0
push eax
mov dword [ebp - 0x1060], 0x89
movq qword [ebp - 0x104c], xmm0
call fcn.004033f0
mov eax, dword [0x40be60]
movq xmm0, qword [0x40be50]
mov dword [ebp - 0xe40], eax
movzx eax, word [0x40be64]
push 0x1f2
mov word [ebp - 0xe3c], ax
movq qword [ebp - 0xe50], xmm0
movq xmm0, qword [0x40be58]
lea eax, [ebp - 0xe3a]
push 0
push eax
mov dword [ebp - 0xe54], 0x8a
movq qword [ebp - 0xe48], xmm0
call fcn.004033f0
movq xmm0, qword [str.WdfCoInstaller01009.dll]
movq qword [ebp - 0xc44], xmm0
movq xmm0, qword [0x40be70]
movq qword [ebp - 0xc3c], xmm0
movq xmm0, qword [0x40be78]
movq qword [ebp - 0xc34], xmm0
movq xmm0, qword [0x40be80]
movq qword [ebp - 0xc2c], xmm0
movq xmm0, qword [0x40be88]
push 0x1d8
movq qword [ebp - 0xc24], xmm0
movq xmm0, qword [0x40be90]
lea eax, [ebp - 0xc14]
push 0
push eax
mov dword [ebp - 0xc48], 0x8b
movq qword [ebp - 0xc1c], xmm0
call fcn.004033f0
movq xmm0, qword [str.dbghelp.dll]
movq qword [ebp - 0xa38], xmm0
movq xmm0, qword [0x40bea0]
mov dword [ebp - 0xa3c], 0x8c
movq qword [ebp - 0xa30], xmm0
movq xmm0, qword [0x40bea8]
push 0x1f0
lea eax, [ebp - 0xa20]
push 0
push eax
movq qword [ebp - 0xa28], xmm0
call fcn.004033f0
movq xmm0, qword [str.GdiPlus.dll]
add esp, 0x48
movq qword [ebp - 0x82c], xmm0
movq xmm0, qword [0x40beb8]
push 0x1f0
movq qword [ebp - 0x824], xmm0
movq xmm0, qword [0x40bec0]
lea eax, [ebp - 0x814]
push 0
push eax
mov dword [ebp - 0x830], 0x8d
movq qword [ebp - 0x81c], xmm0
call fcn.004033f0
mov dword [ebp - 0x624], 0x8e
mov ecx, 0x11
mov esi, str.Microsoft.Windows.GdiPlus.manifest
lea edi, [ebp - 0x620]
rep movsd dword es:[edi], dword [esi]
push 0x1c2
lea eax, [ebp - 0x5da]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.004033f0
add esp, 0x18
lea eax, [ebp - 0x414]
push eax
push 0
push 0
push 0x26
push 0
mov dword [ebp - 0x418], 0x8f
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x40166b
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x414]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x40bf10
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea esi, [ebp - 0x1eb4]
mov ebx, 0xe
jmp 0x4016a0
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.00401770
add esp, 0xc
lea eax, [esi - 0x208]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
movzx eax, word [esi]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, eax
call fcn.00401000
test eax, eax
je 0x4016f4
mov edi, 1
jmp 0x4016fc
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
add esi, 0x20c
dec ebx
jne 0x4016a0
test edi, edi
pop edi
pop esi
pop ebx
je 0x40174f
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.00401770
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x40bd60
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ecx
lea ecx, [ebp - 0x20c]
call fcn.004010c0
test eax, eax
jne 0x40174f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
call fcn.00401761
mov esp, ebp
pop ebp
ret 0x10