Function at 0x48f000
Capabilities:
Check if file exists
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c6418
mov eax, dword fs:[0]
push eax
sub esp, 0x130
mov eax, dword [0x4f06b4]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
mov eax, dword [0x4f06b4]
xor eax, esp
push eax
lea eax, [esp + 0x140]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
and dword [esp + 0x14], 0
mov ebx, ecx
cmp dword [ebx + 0x14], 8
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov esi, edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], eax
jb 0x48f069
mov eax, dword [ebx]
jmp 0x48f06b
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x48f24f
cmp dword [ebx + 0x14], 8
jb 0x48f084
mov eax, dword [ebx]
jmp 0x48f086
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x48f24f
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 2
je 0x48f24f
call edi
push eax
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x3c], esp
push ebx
call fcn.00409de0
lea ebx, [esp + 0x134]
call fcn.00488fd4
mov ecx, dword [esp + 0x18]
and dword [esp + 0x148], 0
mov eax, dword [ecx]
mov edx, ebx
push edx
push 1
call dword [eax + 0x24c]
lea eax, [esp + 0x2c]
push eax
call fcn.00407c19
and dword [esp + 0x108], 0
xor eax, eax
mov dword [esp + 0x10c], 7
mov word [esp + 0xf8], ax
lea ecx, [esp + 0xf8]
mov byte [esp + 0x148], 2
call fcn.004810a4
mov ebx, dword [esp + 0x24]
push 0x4cdb44
push ecx
lea eax, [esp + 0x44]
push eax
mov ecx, ebx
call fcn.00408999
pop ecx
pop ecx
push eax
call fcn.00408b2f
push eax
lea ecx, [esp + 0x104]
call fcn.00408999
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x30]
call fcn.00407cf0
cmp dword [eax + 0x14], 8
jb 0x48f15f
mov eax, dword [eax]
cmp dword [ebx + 0x14], 8
jb 0x48f169
mov ecx, dword [ebx]
jmp 0x48f16b
mov ecx, ebx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
setne byte [esp + 0x13]
push 1
xor edi, edi
lea esi, [esp + 0xd8]
call fcn.0040a3ed
cmp byte [esp + 0x13], 0
je 0x48f27a
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x30]
call fcn.00407cf0
cmp dword [eax + 0x14], 8
jb 0x48f1ae
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x48f1c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x48f1c8
mov bl, 1
jmp 0x48f1ca
xor bl, bl
push 1
xor edi, edi
lea esi, [esp + 0xd8]
call fcn.0040a3ed
test bl, bl
je 0x48f212
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x30]
call fcn.00407cf0
cmp dword [eax + 0x14], 8
jb 0x48f1f7
mov eax, dword [eax]
push 4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 1
xor edi, edi
lea esi, [esp + 0xd8]
call fcn.0040a3ed
push 1
xor edi, edi
lea esi, [esp + 0xfc]
call fcn.0040a3ed
lea eax, [esp + 0x2c]
mov byte [esp + 0x148], 0
call fcn.004071a2
or dword [esp + 0x148], 0xffffffff
lea ecx, [esp + 0x114]
call fcn.0048904a
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebx
call fcn.0048f71d
or dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x148], 4
cmp dword [ebx + 0x14], 8
jb 0x48f311
mov edi, dword [ebx]
jmp 0x48f313
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x3c], esp
push ebx
call fcn.00409de0
lea ebx, [esp + 0xf4]
call fcn.0048917d
mov ecx, dword [esp + 0x18]
mov edx, ebx
push edx
mov byte [esp + 0x14c], 3
mov eax, dword [ecx]
push 3
call dword [eax + 0x24c]
mov ecx, ebx
call fcn.004891f3
push 1
xor edi, edi
lea esi, [esp + 0xfc]
call fcn.0040a3ed
lea eax, [esp + 0x2c]
mov byte [esp + 0x148], 0
call fcn.004071a2
lea ecx, [esp + 0x114]
call fcn.0048904a
xor al, al
mov ecx, dword [esp + 0x140]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.004a545d
mov esp, ebp
pop ebp
ret 8
mov edi, ebx
push 2
push 0
push 0xc0000000
lea eax, [esp + 0x20]
call fcn.00484479
test al, al
jne 0x48f39d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebx + 0x14], 8
mov esi, eax
jb 0x48f33b
mov eax, dword [ebx]
jmp 0x48f33d
mov eax, ebx
mov ecx, dword [0x4f546c]
push eax
push str.Open_File__s_Failed
push 3
call fcn.0047b708
add esp, 0xc
push esi
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x3c], esp
push ebx
call fcn.00409de0
lea ebx, [esp + 0x134]
call fcn.0048945e
mov ecx, dword [esp + 0x18]
mov edx, ebx
push edx
mov byte [esp + 0x14c], 5
mov eax, dword [ecx]
push 3
call dword [eax + 0x24c]
mov ecx, ebx
call fcn.004894d4
lea esi, [esp + 0x14]
call fcn.004844b9
jmp 0x48f2e9
mov eax, dword [esi + 4]
push eax
lea ecx, [esi + 8]
push ecx
lea eax, [esp + 0x1c]
call fcn.004844f1
test al, al
jne 0x48f408
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x38], esp
push ebx
call fcn.00409de0
lea ebx, [esp + 0xf0]
call fcn.00489326
mov ecx, dword [esp + 0x18]
mov edx, ebx
push edx
mov byte [esp + 0x14c], 6
mov eax, dword [ecx]
push 3
call dword [eax + 0x24c]
lea esi, [esp + 0x14]
call fcn.004844b9
mov ecx, ebx
call fcn.00489396
xor bl, bl
lea esi, [esp + 0x14]
call fcn.004844b9
mov al, bl
jmp 0x48f2eb
lea esi, [esp + 0x14]
call fcn.004844b9
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
lea eax, [eax + ecx + 8]
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
mov bl, 1
jmp 0x48f3f8