Function at 0x477d40
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.00405848
mov esi, dword [0x6349f0]
xor eax, eax
push ebp
push 0x47824f
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00462130
mov eax, dword [0x635008]
movzx eax, byte [eax]
xor al, 1
mov edx, dword [esi]
mov byte [edx + 4], al
mov al, 1
call fcn.00477450
mov eax, 0x478268
call fcn.0047724c
xor ebx, ebx
call fcn.00403424
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push 0x478274
call sub.kernel32.dll_CreateFileA_1
mov eax, dword [0x635008]
cmp byte [eax], 0
je 0x477ddc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
call fcn.00405858
mov edi, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xc], eax
jmp 0x477de8
mov edi, 0x478288
mov dword [ebp - 0xc], 0xb
mov eax, 0x47829c
call fcn.00462704
mov eax, 0x47829c
call fcn.00462704
mov eax, 0x47829c
call fcn.00462704
mov eax, 0x47829c
call fcn.00462704
push 0x20
lea eax, [ebp - 0x10]
call fcn.00423614
lea eax, [ebp - 0x10]
mov edx, 0x4782b4
call fcn.00405694
mov eax, dword [ebp - 0x10]
call fcn.00405858
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [ebp - 0x14]
call fcn.00423614
lea eax, [ebp - 0x14]
mov edx, 0x4782b4
call fcn.00405694
mov eax, dword [ebp - 0x14]
call fcn.00405858
push eax
call sub.kernel32.dll_DeleteFileA
push 0
lea eax, [ebp - 0x18]
call fcn.00423614
lea eax, [ebp - 0x18]
mov edx, 0x4782b4
call fcn.00405694
mov eax, dword [ebp - 0x18]
call fcn.00405858
push eax
call sub.kernel32.dll_CreateDirectoryA
mov eax, 0x7d0
call fcn.0040344c
add ax, 0x3e9
push eax
mov eax, dword [0x634eec]
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.0047627c
test eax, eax
jne 0x47821c
call fcn.00477cb8
mov eax, dword [0x634df4]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x34], al
mov eax, dword [0x634f54]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x30], eax
mov eax, dword [0x634bb8]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x24], al
mov eax, dword [0x634c10]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x25], al
mov eax, dword [0x634f00]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x26], al
mov eax, dword [0x634cf8]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x27], al
mov eax, dword [0x634d4c]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x28], eax
mov eax, dword [0x634a8c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x2c], al
mov eax, dword [0x634a34]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x2d], al
mov eax, dword [0x63511c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x35], al
call fcn.00475f1c
movzx eax, ax
mov edx, dword [esi]
mov dword [edx + 0x10], eax
call fcn.00475f14
movzx eax, ax
mov edx, dword [esi]
mov dword [edx + 0x14], eax
mov eax, dword [0x634998]
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 [0x635004]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x19], al
mov eax, dword [0x634f5c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x1a], al
mov eax, dword [0x634d94]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x1b], al
mov eax, dword [0x634c7c]
movzx eax, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x36], al
mov eax, dword [esi]
mov byte [eax + 0x1c], 0
mov eax, dword [0x634988]
mov eax, dword [eax]
call fcn.00422674
mov edx, dword [esi]
mov dword [edx + 0x20], eax
push 0x13880
mov ecx, 0x4d3a28
mov eax, 0x4782c4
xor edx, edx
call fcn.0046323c
push 0x13880
mov ecx, 0x4e72a8
mov eax, 0x4782cc
xor edx, edx
call fcn.0046323c
push 0x4782d8
call sub.kernel32.dll_DeleteFileW
push 0x478308
call sub.kernel32.dll_DeleteFileW
push 0x20
push 0x478338
call sub.kernel32.dll_SetFileAttributesW
push 0x478338
call sub.kernel32.dll_DeleteFileW
push 0x20
push 0x478398
call sub.kernel32.dll_SetFileAttributesW
push 0x478398
call sub.kernel32.dll_DeleteFileW
mov eax, 0x478404
call fcn.004768dc
mov eax, 0x47841c
call fcn.004768dc
mov eax, 0x478434
call fcn.004768dc
lea edx, [ebp - 0x1c]
mov eax, dword [0x634998]
mov eax, dword [eax + 0x5c]
call fcn.004227f8
cmp dword [ebp - 0x1c], 0
je 0x478066
mov eax, dword [0x634998]
mov eax, dword [eax + 0x5c]
call fcn.004768dc
mov eax, 0x47844c
call fcn.00423360
mov eax, dword [0x634f84]
cmp byte [eax], 0
je 0x478090
mov ecx, 0x478458
mov eax, 0x505128
mov edx, 0x9000
call fcn.00462b70
jmp 0x4780d0
push 0x20
push 0x478468
call sub.kernel32.dll_SetFileAttributesW
push 0x20
push 0x47847c
call sub.kernel32.dll_SetFileAttributesW
push 0x478494
call sub.kernel32.dll_DeleteFileA
push 0x4784a0
call sub.kernel32.dll_DeleteFileA
mov ecx, 0x478458
mov eax, 0x4fab28
mov edx, 0xa600
call fcn.00462b70
mov edx, 0x4784ac
mov eax, 0x4784b8
mov ecx, 0xa
call fcn.004236d0
mov ecx, 0x4784c8
mov eax, 0x50e128
mov edx, 0x4000
call fcn.00462b70
mov ecx, 0x4784ec
mov eax, 0x512128
mov edx, 0x8000
call fcn.00462b70
mov ecx, 0x47851c
mov eax, 0x51a128
mov edx, 0x8000
call fcn.00462b70
mov ecx, 0x47854c
mov eax, str.DDS_
mov edx, 0x10080
call fcn.00462b70
mov ecx, 0x478568
mov eax, 0x4901f4
mov edx, 0xcaa0
call fcn.00462b70
mov ecx, 0x478580
mov eax, str.MAXFILE_C3_00001MOTI
mov edx, 0x56f0
call fcn.00462b70
mov ecx, 0x478598
mov eax, 0x49cc94
mov edx, 0xd916
call fcn.00462b70
mov ecx, 0x4785b0
mov eax, str.MAXFILE_C3_00001PHY
mov edx, 0x13d09
call fcn.00462b70
mov eax, dword [0x635008]
cmp byte [eax], 0
je 0x4781f7
mov eax, dword [ebp - 8]
mov edx, eax
mov eax, 0x478404
call fcn.0047635c
mov eax, dword [ebp - 8]
mov edx, eax
mov eax, 0x47841c
call fcn.0047635c
mov eax, dword [ebp - 8]
mov edx, eax
mov eax, 0x478434
call fcn.0047635c
lea edx, [ebp - 0x20]
mov eax, dword [0x634998]
mov eax, dword [eax + 0x5c]
call fcn.004227f8
cmp dword [ebp - 0x20], 0
je 0x4781e3
mov eax, dword [ebp - 8]
mov edx, eax
mov eax, dword [0x634998]
mov eax, dword [eax + 0x5c]
call fcn.0047635c
mov ecx, 0x4785c4
mov eax, 0x522128
mov edx, 0x1167d
call fcn.00462b70
mov eax, dword [ebp - 4]
call fcn.004770f0
mov ebx, eax
test bl, bl
je 0x478212
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x634974]
mov dword [edx], eax
mov eax, dword [0x634a40]
mov byte [eax], 1
jmp 0x47822c
push 0x10
push 0
push 0x4785dc
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x478256
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.004053ec
lea eax, [ebp - 4]
call fcn.004053c8
ret