Function at 0x4788dc
Capabilities:
Create directory
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040580c
mov esi, dword [0x59e950]
xor eax, eax
push ebp
push 0x478bc0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x59ef6c]
movzx eax, byte [eax]
xor al, 1
mov edx, dword [esi]
mov byte [edx + 4], al
xor ebx, ebx
call fcn.00403424
mov eax, dword [0x59ef6c]
cmp byte [eax], 0
je 0x478946
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
call fcn.0040581c
mov edi, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xc], eax
jmp 0x478952
mov edi, 0x478bd0
mov dword [ebp - 0xc], 0xb
mov eax, 0x478be4
call fcn.00461b78
mov eax, 0x478be4
call fcn.00461b78
mov eax, 0x478be4
call fcn.00461b78
mov eax, 0x478be4
call fcn.00461b78
push 0x20
lea eax, [ebp - 0x10]
call fcn.00423168
lea eax, [ebp - 0x10]
mov edx, 0x478bfc
call fcn.00405658
mov eax, dword [ebp - 0x10]
call fcn.0040581c
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [ebp - 0x14]
call fcn.00423168
lea eax, [ebp - 0x14]
mov edx, 0x478bfc
call fcn.00405658
mov eax, dword [ebp - 0x14]
call fcn.0040581c
push eax
call sub.kernel32.dll_DeleteFileA
push 0
lea eax, [ebp - 0x18]
call fcn.00423168
lea eax, [ebp - 0x18]
mov edx, 0x478bfc
call fcn.00405658
mov eax, dword [ebp - 0x18]
call fcn.0040581c
push eax
call sub.kernel32.dll_CreateDirectoryA
mov eax, 0x7d0
call fcn.0040344c
add ax, 0x3e9
push eax
mov eax, dword [0x59ee4c]
mov eax, dword [eax]
push eax
mov eax, 0x7d0
call fcn.0040344c
mov ecx, eax
add cx, 0x7d0
movzx edx, word [ebp - 0xc]
mov eax, edi
call fcn.00475b64
test eax, eax
jne 0x478b8d
call fcn.00478854
mov eax, dword [esi]
mov byte [eax + 0x34], 0
mov eax, dword [0x59eeb0]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
mov eax, dword [0x59eb2c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x24], al
mov eax, dword [0x59eb84]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x25], al
mov eax, dword [0x59ee60]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x26], al
mov eax, dword [0x59ec60]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x27], al
mov eax, dword [0x59ecb4]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x28], eax
mov eax, dword [0x59e9f0]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x2c], al
mov eax, dword [0x59e994]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x2d], al
mov eax, dword [0x59f07c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x35], al
call fcn.00475698
movzx eax, ax
mov edx, dword [esi]
mov dword [edx + 0x10], eax
call fcn.00475690
movzx eax, ax
mov edx, dword [esi]
mov dword [edx + 0x14], eax
mov eax, dword [0x59e8ec]
movzx eax, byte [eax + 0x64]
mov edx, dword [esi]
mov byte [edx + 0x18], al
call sub.kernel32.dll_GetCurrentProcessId
mov edx, dword [esi]
mov dword [edx], eax
mov eax, dword [0x59ef68]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x19], al
mov eax, dword [0x59eeb8]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x1a], al
mov eax, dword [0x59ecfc]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x1b], al
mov eax, dword [esi]
mov byte [eax + 0x1c], 0
mov eax, dword [esi]
mov byte [eax + 0x36], 0
mov eax, dword [0x59e8dc]
mov eax, dword [eax]
call fcn.00422054
mov edx, dword [esi]
mov dword [edx + 0x20], eax
mov eax, dword [esi]
mov dword [eax + 0x28], 1
mov eax, 0x478c14
call fcn.00477d34
lea edx, [ebp - 0x1c]
mov eax, dword [0x59e8ec]
mov eax, dword [eax + 0x5c]
call fcn.004221d8
cmp dword [ebp - 0x1c], 0
je 0x478b4b
mov eax, dword [0x59e8ec]
mov eax, dword [eax + 0x5c]
call fcn.00477d34
mov ecx, 0x478c24
mov eax, 0x48bdd4
mov edx, 0x11600
call fcn.004626b4
lea edx, [ebp - 0x20]
mov eax, dword [0x59e8ec]
mov eax, dword [eax + 0x15d]
call fcn.004221d8
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00478480
mov ebx, eax
test bl, bl
je 0x478b9d
mov eax, dword [0x59e9a4]
mov byte [eax], 1
jmp 0x478b9d
push 0x10
push 0
push 0x478c34
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x478bc7
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.004053b0
lea eax, [ebp - 4]
call fcn.0040538c
ret