Function at 0x458864
Capabilities:
Create directory
Get common file path
Get program files directory
Get startup folder

Disassembly:
push 0x254
mov eax, 0x4e57ee
call fcn.004d631c
mov ebx, ecx
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x26
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
lea esi, [ebx + 0xb4]
push eax
mov ecx, esi
call fcn.00401ffb
push 2
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0xc]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x3c]
call fcn.00401ffb
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
lea ecx, [ebx + 0x24]
push eax
call fcn.00401ffb
push 0xffffffffffffffff
push str._x86_
mov ecx, esi
call fcn.00446e3b
cmp eax, 0xffffffff
je 0x458972
and dword [ebp - 0x238], 0
xor ecx, ecx
dec eax
mov word [ebp - 0x248], cx
push eax
push ecx
push esi
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x234], 7
call fcn.00408458
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebx + 0xcc]
call fcn.00402b70
lea ecx, [ebp - 0x248]
call fcn.00401f5a
jmp 0x45897e
push esi
lea ecx, [ebx + 0xcc]
call fcn.0040d2f0
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x28
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x54]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x1a
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x6c]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x1c
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x84]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x23
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x9c]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0xe4]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x19
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0xfc]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0xb
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x114]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x16
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x12c]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 2
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x144]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x17
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x15c]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x24
push eax
call esi
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00401a11
and dword [ebp - 4], 0
push str.System32Tasks
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.004029e1
add esp, 0xc
lea ecx, [ebx + 0x1bc]
push eax
call fcn.00402b70
lea ecx, [ebp - 0x248]
call fcn.00401f5a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x230]
call fcn.00401f5a
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00401a11
push str.Tasks
push eax
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 1
push eax
call fcn.004029e1
add esp, 0xc
lea ecx, [ebx + 0x1d4]
push eax
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.00401f5a
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 7
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x1ec]
call fcn.00401ffb
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x18
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call edi
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x204]
call fcn.00401ffb
push str.System32
lea edi, [ebx + 0x24]
lea eax, [ebp - 0x230]
push edi
push eax
call fcn.00403164
add esp, 0xc
lea esi, [ebx + 0x27c]
mov ecx, esi
push eax
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
push str.SysWOW64
lea eax, [ebp - 0x230]
push edi
push eax
call fcn.00403164
add esp, 0xc
lea edi, [ebx + 0x294]
mov ecx, edi
push eax
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
push str.drivers
lea eax, [ebp - 0x230]
push esi
push eax
call fcn.00403164
add esp, 0xc
lea ecx, [ebx + 0x24c]
push eax
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
push str.drivers
lea eax, [ebp - 0x230]
push edi
push eax
call fcn.00403164
add esp, 0xc
lea ecx, [ebx + 0x264]
push eax
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
mov ecx, ebx
call fcn.0045866f
push str.clntmp
lea ecx, [ebp - 0x248]
call fcn.00401a11
lea eax, [ebp - 0x248]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0040501b
pop ecx
pop ecx
lea esi, [ebx + 0x234]
push eax
mov ecx, esi
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.00401f5a
cmp dword [esi + 0x14], 8
jb 0x458d68
mov esi, dword [esi]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, ebx
call fcn.004594fc
lea eax, [ebp - 0x230]
mov ecx, ebx
push eax
call fcn.004288aa
push eax
lea ecx, [ebx + 0x2c4]
call fcn.00402b70
lea ecx, [ebp - 0x230]
call fcn.00401f5a
lea eax, [ebp - 0x260]
mov ecx, ebx
push eax
call fcn.0041dcbd
push eax
lea ecx, [ebx + 0x2ac]
call fcn.00402b70
lea ecx, [ebp - 0x260]
call fcn.00401f5a
call fcn.004d62c6
ret