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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x537f18
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x56d940]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push esi
push edi
mov eax, dword [0x56d940]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov bl, byte [ebp + 0xc]
mov edi, ecx
mov dword [esp + 0x10], edi
test bl, 1
je 0x4d0707
push 1
lea esi, [esp + 0x44]
call fcn.004ccce0
add esp, 4
mov ecx, eax
call fcn.00401560
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.004b5cb0
cmp esi, 0xffffffff
je 0x4d0707
mov eax, dword [0x56f418]
test eax, eax
jne 0x4d06ef
push 0xdc
xor ecx, ecx
call fcn.004c4640
push 1
push esi
call eax
add esp, 8
test al, 1
je 0x4d0707
push 0x20
mov ecx, edi
call fcn.004d00b0
add esp, 4
test bl, 4
jne 0x4d0744
push 0
mov ecx, edi
lea esi, [esp + 0x44]
call fcn.004ccce0
add esp, 4
mov ecx, eax
call fcn.00401560
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.004b5cb0
test esi, esi
je 0x4d0968
mov al, 1
jmp 0x4d0801
lea eax, [esp + 0x78]
push eax
call fcn.004c41b0
lea ecx, [esp + 0x78]
mov dword [esp + 0xc0], 0
call fcn.00402000
cmp eax, 0x104
jl 0x4d086b
push 0
mov ecx, edi
lea esi, [esp + 0x98]
call fcn.004ccce0
add esp, 4
mov ecx, esi
mov byte [esp + 0xc0], 1
call fcn.00401560
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov esi, eax
test esi, esi
je 0x4d07d8
lea ecx, [esp + 0x94]
call fcn.00401560
mov ebx, eax
push esi
mov eax, esi
lea edi, [esp + 0x7c]
call fcn.004c92f0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov edi, eax
or eax, 0xffffffff
lea esi, [esp + 0x78]
call fcn.004cfe90
test edi, edi
jne 0x4d0825
mov edi, dword [esp + 0x10]
cmp byte [ebp + 8], 0
je 0x4d07ea
push 0xda
mov ecx, edi
call fcn.004c4640
lea ecx, [esp + 0x94]
call fcn.004b5cb0
lea ecx, [esp + 0x78]
call fcn.004b5cb0
xor al, al
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.005007b7
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x78]
call fcn.004ccc00
test eax, eax
jle 0x4d0857
push eax
lea ebx, [esp + 0x60]
lea edi, [esp + 0x7c]
call fcn.004c45d0
push eax
mov ecx, edi
mov byte [esp + 0xc4], 2
call fcn.00402460
mov ecx, ebx
call fcn.004b5cb0
lea ecx, [esp + 0x94]
mov byte [esp + 0xc0], 0
call fcn.004b5cb0
lea ecx, [esp + 0x78]
call fcn.00402000
mov ebx, eax
xor esi, esi
lea edi, [ebx + ebx + 4]
mov dword [esp + 0x14], vtable.CZipAutoBuffer.0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
cmp edi, esi
je 0x4d08b6
jbe 0x4d08b0
push edi
call fcn.004e1be4
add esp, 4
push edi
mov esi, eax
push 0
push esi
mov dword [esp + 0x24], esi
call fcn.00506bf0
mov dword [esp + 0x28], edi
jmp 0x4d08be
mov dword [esp + 0x18], esi
jmp 0x4d08c1
push esi
push esi
push esi
call fcn.00506bf0
add esp, 0xc
lea ecx, [esp + 0x78]
call fcn.00401560
lea ecx, [ebx + ebx]
push ecx
push eax
push esi
call fcn.0050a920
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov word [esp + 0x48], ax
add esp, 0xc
lea eax, [esp + 0x20]
mov edx, 0x454
push eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 3
mov word [esp + 0x34], dx
mov dword [esp + 0x2c], esi
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
jne 0x4d0943
cmp dword [esp + 0x32], eax
jne 0x4d0943
lea ecx, [esp + 0x14]
call fcn.004d2790
lea ecx, [esp + 0x78]
call fcn.004b5cb0
mov al, 1
jmp 0x4d0801
test esi, esi
je 0x4d0950
push esi
call fcn.004e1c13
add esp, 4
lea ecx, [esp + 0x78]
mov dword [esp + 0xc0], 0xffffffff
call fcn.004b5cb0
mov edi, dword [esp + 0x10]
cmp byte [ebp + 8], 0
je 0x4d07ff
push 0xda
mov ecx, edi
call fcn.004c4640
int3