Function at 0x401154
Capabilities:
Copy file
Create directory
Delete directory
Delete file
Get common file path

Disassembly:
jmp 0x40d850
mov eax, 0x1850
call fcn.0041be90
mov eax, dword [0x44e1b4]
xor eax, esp
mov dword [esp + 0x184c], eax
mov eax, dword [esp + 0x1858]
push ebx
mov ebx, dword [esp + 0x1860]
push ebp
push edi
mov edi, dword [esp + 0x1860]
push 0x208
xor ebp, ebp
lea ecx, [esp + 0x414]
push ebp
push ecx
mov dword [esp + 0x18], eax
call fcn.0041be10
push 0x410
lea edx, [esp + 0x1048]
push ebp
push edx
call fcn.0041be10
push 0x200
lea eax, [esp + 0x22c]
push ebp
push eax
call fcn.0041be10
push 0x200
lea ecx, [esp + 0x38]
push ebp
push ecx
call fcn.0041be10
push 0x410
lea edx, [esp + 0x147c]
push ebp
push edx
call fcn.0041be10
push 0x410
lea eax, [esp + 0x860]
push ebp
push eax
call fcn.0041be10
add esp, 0x48
push 0x208
lea ecx, [esp + 0x61c]
push ebp
push ecx
call fcn.0041be10
push 0x208
lea edx, [esp + 0xc40]
push ebp
push edx
call fcn.0041be10
push 0x200
lea eax, [esp + 0xe54]
push ebp
push eax
call fcn.0041be10
add esp, 0x24
lea ecx, [esp + 0x410]
push ecx
push ebp
push ebp
push 0x23
push ebp
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x100
lea edx, [esp + 0xe3c]
push edx
lea eax, [esp + 0x418]
push eax
call fcn.004010b4
add esp, 0xc
test eax, eax
je 0x40dad8
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [esp + 0xe3c]
push ecx
lea edx, [esp + 0x418]
push edx
lea eax, [esp + 0x1044]
push str._s_s
push eax
call esi
add esp, 0x10
push ebp
lea ecx, [esp + 0x1040]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x40dad7
push 0x100
lea edx, [esp + 0x18]
push edx
push 0x100
lea eax, [esp + 0x220]
push eax
push ebp
push ebp
push ebp
push ebp
push edi
call fcn.0041c92d
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x23c]
push edx
lea eax, [esp + 0x1478]
push 0x435d60
push eax
call esi
lea ecx, [esp + 0x1480]
push ecx
lea edx, [esp + 0x1074]
push edx
lea eax, [esp + 0x860]
push str._s_s
push eax
call esi
add esp, 0x44
push ebp
lea ecx, [esp + 0x828]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40dad7
lea edx, [esp + 0x824]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
push eax
lea eax, [esp + 0x828]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ecx, [esp + 0xc34]
push ecx
lea edx, [esp + 0x828]
push edx
call sub.LZ32.dll_GetExpandedNameW
cmp eax, 0xfffffff9
je 0x40dad7
push 0x100
lea eax, [esp + 0x18]
push eax
push 0x100
lea ecx, [esp + 0x220]
push ecx
push ebp
push ebp
push ebp
lea edx, [esp + 0xc50]
push ebp
push edx
call fcn.0041c92d
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x23c]
push ecx
lea edx, [esp + 0x648]
push 0x435d60
push edx
call esi
add esp, 0x34
lea eax, [esp + 0x61c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebx]
cmp eax, ecx
jbe 0x40dabc
mov dword [ebx], eax
jmp 0x40dad7
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x61c]
push edx
push ecx
push eax
call fcn.0041c22f
add esp, 0xc
mov ebp, 1
pop esi
lea ecx, [esp + 0x820]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [esp + 0x1038]
push edx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ecx, dword [esp + 0x1858]
pop edi
mov eax, ebp
pop ebp
pop ebx
xor ecx, esp
call fcn.0041bdf4
add esp, 0x1850
ret