Function at 0x478310
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 [0x59d950]
xor eax, eax
push ebp
push 0x4785f4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x59df6c]
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 [0x59df6c]
cmp byte [eax], 0
je 0x47837a
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 0x478386
mov edi, 0x478604
mov dword [ebp - 0xc], 0xb
mov eax, 0x478618
call fcn.00461b78
mov eax, 0x478618
call fcn.00461b78
mov eax, 0x478618
call fcn.00461b78
mov eax, 0x478618
call fcn.00461b78
push 0x20
lea eax, [ebp - 0x10]
call fcn.00423168
lea eax, [ebp - 0x10]
mov edx, 0x478630
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, 0x478630
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, 0x478630
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 [0x59de4c]
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.00475598
test eax, eax
jne 0x4785c1
call fcn.00478288
mov eax, dword [esi]
mov byte [eax + 0x34], 0
mov eax, dword [0x59deb0]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
mov eax, dword [0x59db2c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x24], al
mov eax, dword [0x59db84]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x25], al
mov eax, dword [0x59de60]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x26], al
mov eax, dword [0x59dc60]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x27], al
mov eax, dword [0x59dcb4]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x28], eax
mov eax, dword [0x59d9f0]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x2c], al
mov eax, dword [0x59d994]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x2d], al
mov eax, dword [0x59e07c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x35], al
call fcn.004750cc
movzx eax, ax
mov edx, dword [esi]
mov dword [edx + 0x10], eax
call fcn.004750c4
movzx eax, ax
mov edx, dword [esi]
mov dword [edx + 0x14], eax
mov eax, dword [0x59d8ec]
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 [0x59df68]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x19], al
mov eax, dword [0x59deb8]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x1a], al
mov eax, dword [0x59dcfc]
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 [0x59d8dc]
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, 0x478648
call fcn.00477768
lea edx, [ebp - 0x1c]
mov eax, dword [0x59d8ec]
mov eax, dword [eax + 0x5c]
call fcn.004221d8
cmp dword [ebp - 0x1c], 0
je 0x47857f
mov eax, dword [0x59d8ec]
mov eax, dword [eax + 0x5c]
call fcn.00477768
mov ecx, 0x478658
mov eax, 0x48add4
mov edx, 0x11600
call fcn.00462568
lea edx, [ebp - 0x20]
mov eax, dword [0x59d8ec]
mov eax, dword [eax + 0x15d]
call fcn.004221d8
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00477eb4
mov ebx, eax
test bl, bl
je 0x4785d1
mov eax, dword [0x59d9a4]
mov byte [eax], 1
jmp 0x4785d1
push 0x10
push 0
push 0x478668
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4785fb
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.004053b0
lea eax, [ebp - 4]
call fcn.0040538c
ret