Function at 0x4092e4
Capabilities:
Copy file
Create directory
Delete file
Get common file path
Set current directory
Set file attributes

Disassembly:
mov eax, 0x44079c
call fcn.004151bc
sub esp, 0x430
mov eax, dword [0x466c7c]
push ebx
xor ebx, ebx
push edi
mov edi, ecx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.00406add
lea eax, [ebp - 0x43c]
mov byte [ebp - 4], 3
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x4094df
lea eax, [ebp - 0x23c]
push eax
push ebx
lea eax, [ebp - 0x43c]
push 0x462df0
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x4094df
lea eax, [ebp - 0x23c]
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.00432ae6
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x45344c
lea ecx, [ebp - 0x18]
call fcn.00431bf6
push eax
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x18]
call fcn.00431b5c
lea esi, [edi + 0x238]
push eax
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.00432a96
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.004329a9
mov eax, dword [esi]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.00408f7c
mov edi, 0x453458
mov byte [ebp - 4], 5
push edi
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00432b8c
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.00432a96
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call fcn.004329a9
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.004329a9
mov ecx, dword [0x467e6c]
lea eax, [ebp - 0x3c]
push eax
call fcn.00405d1a
mov eax, dword [eax + 4]
mov byte [ebp - 4], 7
cmp eax, ebx
jne 0x409424
mov eax, 0x444464
push eax
lea ecx, [ebp - 0x1c]
call fcn.00432c5f
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.00404e00
push esi
lea ecx, [ebp - 0x14]
call fcn.00432a96
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ebx, 0x80
push ebx
push dword [ebp - 0x14]
call esi
mov ecx, dword [0x467e6c]
lea eax, [ebp - 0x3c]
push eax
call fcn.00405d1a
mov eax, dword [eax + 4]
mov byte [ebp - 4], 8
test eax, eax
mov dword [ebp - 0x10], 0x444464
je 0x409479
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push edi
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00432b8c
push dword [ebp - 0x10]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00432b8c
mov eax, dword [eax]
push 0
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x20]
call fcn.004329a9
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.004329a9
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.00404e00
push ebx
push dword [ebp - 0x14]
call esi
mov ecx, dword [0x467e6c]
push 8
push dword [ebp - 0x14]
call fcn.00405e1f
pop esi
mov ecx, dword [0x467e6c]
call fcn.00405ef0
pop edi
pop ebx
test eax, eax
je 0x4094f7
mov dword [ebp - 0x24], 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.00406b32
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004329a9
and byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.004329a9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004329a9
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
mov dword fs:[0], ecx
leave
ret