Function at 0x487ab4
Capabilities:
Create directory
Delete file
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
push edi
call fcn.004041fc
je 0x487ebe
mov ebx, eax
xor eax, eax
push ebp
push 0x487eb5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call fcn.00423c68
xor eax, eax
mov dword [ebx + 0x54], eax
push 0
call sub.ole32.dll_CoInitialize_1
push 0
push 0
mov cl, 1
xor edx, edx
xor eax, eax
call fcn.004265f0
xor ecx, ecx
xor edx, edx
call fcn.004265b4
mov esi, eax
mov dword [ebx + 0x74], esi
mov ecx, 0x487ec8
mov eax, dword [esi + 0x80]
mov edx, dword [0x6557f8]
call fcn.0042610c
mov eax, dword [ebx + 0x74]
mov dword [eax + 0xbc], ebx
mov dword [eax + 0xb8], 0x485170
mov edx, 0x487edc
call fcn.004257f4
mov eax, ebx
call fcn.00485430
push 0x4e
call sub.user32.dll_GetSystemMetrics
mov esi, eax
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x80]
sub esi, dword [eax + 0x24]
sar esi, 1
jns 0x487b63
adc esi, 0
push 0x4f
call sub.user32.dll_GetSystemMetrics
mov edi, dword [ebx + 0x74]
mov edx, dword [edi + 0x80]
sub eax, dword [edx + 0x28]
sar eax, 1
jns 0x487b7d
adc eax, 0
mov edx, dword [ebx + 0x74]
mov edx, dword [edx + 0x80]
mov edx, dword [edx + 0x24]
push edx
mov edx, dword [ebx + 0x74]
mov edx, dword [edx + 0x80]
mov edx, dword [edx + 0x28]
push edx
mov edx, edi
mov ecx, eax
mov eax, esi
xchg edx, eax
call fcn.004265b4
push 0x7f00
mov eax, dword [0x6557f8]
push eax
call sub.user32.dll_LoadIconA
push eax
push 0
push 0x80
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [ebx + 0x74]
xor ecx, ecx
xor edx, edx
call fcn.00426420
mov ecx, 0xa0
mov edx, 0x14
call fcn.00425ad8
mov esi, eax
mov dword [ebx + 0x58], esi
mov eax, esi
mov edx, 0x12c
call fcn.004262f0
mov eax, dword [ebx + 0x58]
mov edx, 0xffff
call fcn.00425c90
mov eax, dword [ebx + 0x58]
mov dl, 1
call fcn.00426390
mov eax, dword [ebx + 0x74]
xor ecx, ecx
xor edx, edx
call fcn.00426420
mov ecx, 0x7e
mov edx, 0x14
call fcn.00425ad8
mov esi, eax
mov dword [ebx + 0x5c], esi
mov edx, dword [0x651e38]
mov edx, dword [edx]
mov eax, esi
call fcn.004262f0
mov eax, dword [ebx + 0x5c]
mov edx, 0xbdd0ee
call fcn.00425c90
mov eax, dword [ebx + 0x5c]
mov dl, 1
call fcn.00426390
mov eax, dword [0x651be8]
xor edx, edx
mov dword [eax], edx
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487ef0
call fcn.00463fac
mov eax, 0x487f04
call fcn.00463fac
mov eax, 0x487f04
call fcn.00463fac
mov eax, 0x487f04
call fcn.00463fac
mov eax, 0x487f04
call fcn.00463fac
push 0x20
lea eax, [ebp - 4]
call fcn.00423328
lea eax, [ebp - 4]
mov edx, 0x487f1c
call fcn.00405658
mov eax, dword [ebp - 4]
call fcn.0040581c
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [ebp - 8]
call fcn.00423328
lea eax, [ebp - 8]
mov edx, 0x487f1c
call fcn.00405658
mov eax, dword [ebp - 8]
call fcn.0040581c
push eax
call sub.kernel32.dll_DeleteFileA
push 0
lea eax, [ebp - 0xc]
call fcn.00423328
lea eax, [ebp - 0xc]
mov edx, 0x487f1c
call fcn.00405658
mov eax, dword [ebp - 0xc]
call fcn.0040581c
push eax
call sub.kernel32.dll_CreateDirectoryA
push 0x20
push 0x487f2c
call sub.kernel32.dll_SetFileAttributesA
push 0x487f2c
call sub.kernel32.dll_DeleteFileA
push 0x20
push 0x487f38
call sub.kernel32.dll_SetFileAttributesA
push 0x487f38
call sub.kernel32.dll_DeleteFileA
call fcn.00463e60
mov ecx, 0x48564c
mov edx, ebx
lea eax, [ebx + 0x60]
call fcn.00422e98
lea eax, [ebx + 0x60]
push eax
push 0x190
push 0x14d
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SetTimer
mov ecx, 0x485328
mov edx, ebx
lea eax, [ebx + 0x1c]
call fcn.00422e98
lea eax, [ebx + 0x1c]
push eax
push 0x64
push 0x58
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SetTimer
mov eax, dword [ebx + 0x74]
xor edx, edx
call fcn.0042fac0
mov esi, eax
mov edx, 0x1d
mov eax, esi
call fcn.004262f0
mov edx, 0x1b
mov eax, esi
call fcn.00425aac
mov edx, 0x1b8
mov eax, esi
call fcn.004259f4
mov edx, 0xa
mov eax, esi
call fcn.00425a40
mov edx, 0x487f48
mov eax, esi
call fcn.0042fd18
mov edx, 0x487f58
mov eax, esi
call fcn.0042fd58
mov edx, 0x487f58
mov eax, esi
call fcn.0042fd98
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], 0x487a9c
push 0x487f68
call sub.kernel32.dll_DeleteFileA
push 0x487f78
push 0x487f8c
call sub.kernel32.dll_MoveFileA
push 0x20
push 0x487fa0
call sub.kernel32.dll_SetFileAttributesA
push 0x487fa0
call sub.kernel32.dll_DeleteFileA
push 0x487fb0
call sub.kernel32.dll_DeleteFileW
call fcn.0046388c
mov eax, ebx
mov edx, 0x12c
call fcn.00485d9c
test al, al
jne 0x487e70
mov byte [0x551484], 0
mov eax, dword [0x6519d0]
cmp byte [eax], 0
je 0x487e81
mov byte [0x551484], 0
push 0x14d
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_KillTimer
mov eax, dword [ebx + 0x74]
call fcn.00425f04
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487ebc
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004053b0
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret