Function at 0x108fc25
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x4a4
mov eax, dword [0x1099a38]
and dword [ebp - 0x49c], 0
and dword [ebp - 0x4a0], 0
push ebx
push esi
push edi
push 0x53
pop ecx
mov dword [ebp - 4], eax
lea esi, [ebp + 8]
lea edi, [ebp - 0x358]
lea eax, [ebp - 0x4a0]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x154]
push eax
lea ebx, [esi + 0x628]
push 0x104
push ebx
mov dword [ebp - 0x4a4], ebx
call fcn.01037501
mov edi, eax
test edi, edi
jge 0x108fc92
push edi
push 0x102d2f4
push 2
call fcn.0108e8f0
mov eax, edi
jmp 0x108fd04
cmp dword [ebp - 0x4a0], 0
mov edi, 0x103
jne 0x108fcd2
push esi
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x358]
push eax
push 0x102d2e8
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.01037486
mov esi, eax
add esp, 0x18
test esi, esi
jge 0x108fd11
push esi
push 0x102d2a0
jmp 0x108fcfb
push ebx
lea eax, [ebp - 0x358]
push eax
push 0x1020a90
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.01037486
mov esi, eax
add esp, 0x14
test esi, esi
jge 0x108fd11
push esi
push 0x102d250
push 2
call fcn.0108e8f0
mov eax, esi
add esp, 0xc
and eax, 0xffff
jmp 0x108fe74
lea eax, [ebp - 0x108]
push eax
push edi
lea eax, [ebp - 0x20c]
push eax
call fcn.0108c975
lea eax, [ebp - 0x20c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x108fd2e
mov esi, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
sub eax, ecx
mov byte [ebp + eax - 0x20d], 0x5f
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x108]
push eax
call esi
cmp eax, 0xffffffff
jne 0x108fda7
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x108fdae
push 0
lea eax, [ebp - 0x108]
push eax
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDecompressOrCopyFileA]
test eax, eax
mov dword [ebp - 0x49c], eax
je 0x108fdae
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x49c]
push 0x102d208
push 2
call fcn.0108e8f0
add esp, 0x10
jmp 0x108fe6e
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x108fe14
push 0x80
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x108fe0d
call esi
lea ecx, [ebp - 0x20c]
push ecx
push eax
push 0x102d1c0
push 2
mov dword [ebp - 0x49c], eax
call fcn.0108e8f0
add esp, 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x108fe5b
push 0x80
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x108fe5b
call esi
lea ecx, [ebp - 0x108]
push ecx
push eax
push 0x102d188
push 2
mov dword [ebp - 0x49c], eax
call fcn.0108e8f0
add esp, 0x10
lea eax, [ebp - 0x108]
push eax
push edi
push dword [ebp - 0x4a4]
call fcn.0108c975
mov eax, dword [ebp - 0x49c]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0106bc50
leave
ret 0x150