Function at 0x42ea70
Capabilities:
Check if file exists
Delete file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x467632
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcd4
mov dword [ebp - 0xcc8], ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x18], ecx
jmp 0x42eab6
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jae 0x42f048
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ecx + 4]
jb 0x42ead7
push 0x80070057
call fcn.0040109c
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
lea eax, [ecx + edx*4]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x42f043
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x42f043
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0xc4], 0x94
lea eax, [ebp - 0xc4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x42efec
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xccc], ecx
cmp dword [ebp - 0xccc], 1
je 0x42eb73
cmp dword [ebp - 0xccc], 2
je 0x42ed6e
jmp 0x42efec
push 0x104
lea edx, [ebp - 0x4f0]
push edx
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [ebp - 0x4f8], eax
cmp dword [ebp - 0x4f8], 0
jne 0x42eba4
mov dword [ebp - 0x2c], 0
jmp 0x42efec
xor ecx, ecx
je 0x42ebd9
push 0x104
lea edx, [ebp - 0x1e0]
push edx
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [ebp - 0x4f8], eax
cmp dword [ebp - 0x4f8], 0
jne 0x42ebd9
mov dword [ebp - 0x2c], 0
jmp 0x42efec
mov ecx, dword [str.WinInit.ini]
mov dword [ebp - 0xd8], ecx
mov edx, dword [0x46d594]
mov dword [ebp - 0xd4], edx
mov eax, dword [0x46d598]
mov dword [ebp - 0xd0], eax
mov cl, byte [0x46d59c]
mov byte [ebp - 0xcc], cl
push 0x104
lea edx, [ebp - 0x3ec]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0xd8]
push eax
mov ecx, dword [ebp - 0xdc]
lea edx, [ebp + ecx - 0x3ec]
push edx
call fcn.0044ba20
add esp, 8
lea eax, [ebp - 0x3ec]
push eax
push 0x104
lea ecx, [ebp - 0x2e4]
push ecx
call fcn.00410e20
mov dword [ebp - 0xc34], eax
mov dword [ebp - 0xc8], str.rename
mov edx, dword [ebp - 0xc8]
push edx
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x2e4]
call fcn.0042e920
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x2e8]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0xc38], edx
xor eax, eax
cmp dword [ebp - 0xc38], 0
sete al
movzx ecx, al
mov dword [ebp - 0x4f4], ecx
push 0
push 0
lea ecx, [ebp - 0x2e8]
call fcn.0042f500
lea edx, [ebp - 0x4f0]
push edx
push 0
lea ecx, [ebp - 0x2e8]
call fcn.0042f6b0
push 0x46d584
push 0
lea ecx, [ebp - 0x2e8]
call fcn.0042f6b0
xor eax, eax
je 0x42ecf8
lea ecx, [ebp - 0x1e0]
push ecx
push 0
lea ecx, [ebp - 0x2e8]
call fcn.0042f6b0
jmp 0x42ed0a
push 0x46d580
push 0
lea ecx, [ebp - 0x2e8]
call fcn.0042f6b0
cmp dword [ebp - 0x4f4], 0
je 0x42ed20
push 0
lea ecx, [ebp - 0x2e8]
call fcn.0040e710
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0xc9c], edx
mov eax, dword [ebp - 0xc9c]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
lea ecx, [ebp - 0x2e4]
call fcn.0042ea00
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2e8]
sub edx, 0x10
mov dword [ebp - 0xca0], edx
mov ecx, dword [ebp - 0xca0]
call fcn.00401741
jmp 0x42efec
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x918]
call fcn.0045dd10
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x918]
call fcn.0045e130
test eax, eax
je 0x42edad
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x918]
call fcn.0045e110
jmp 0x42efd5
push 0x45dd20
lea eax, [ebp - 0x918]
push eax
lea ecx, [ebp - 0x500]
push ecx
call fcn.00430ad0
add esp, 0xc
mov byte [ebp - 4], 2
lea edx, [ebp - 0x500]
mov dword [ebp - 0x91c], edx
xor eax, eax
jne 0x42ee94
mov ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0xa24]
call fcn.0040d328
mov dword [ebp - 0xcd0], eax
mov edx, dword [ebp - 0xcd0]
mov dword [ebp - 0xca4], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xca4]
mov ecx, dword [eax]
mov dword [ebp - 0xca8], ecx
mov edx, dword [ebp - 0xca8]
push edx
lea ecx, [ebp - 0x918]
call fcn.0045dd50
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x91d], al
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xa24]
mov dword [ebp - 0xcac], eax
lea ecx, [ebp - 0xa20]
cmp dword [ebp - 0xcac], ecx
je 0x42ee5e
mov edx, dword [ebp - 0xcac]
push edx
call fcn.00448193
add esp, 4
movzx eax, byte [ebp - 0x91d]
test eax, eax
je 0x42ee8f
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x500]
call fcn.0042ffa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x918]
call fcn.0045e110
jmp 0x42efd5
jmp 0x42efa5
mov ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0xb2c]
call fcn.0040d328
mov dword [ebp - 0xcd4], eax
mov edx, dword [ebp - 0xcd4]
mov dword [ebp - 0xcb0], edx
mov byte [ebp - 4], 4
push 0
lea ecx, [ebp - 0xc30]
call fcn.0040d328
mov dword [ebp - 0xcd8], eax
mov eax, dword [ebp - 0xcd8]
mov dword [ebp - 0xcb8], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xcb0]
mov edx, dword [ecx]
mov dword [ebp - 0xcb4], edx
mov eax, dword [ebp - 0xcb8]
mov ecx, dword [eax]
mov dword [ebp - 0xcbc], ecx
mov edx, dword [ebp - 0xcb4]
push edx
mov eax, dword [ebp - 0xcbc]
push eax
lea ecx, [ebp - 0x918]
call fcn.0045ddf0
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0xa25], al
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0xc30]
mov dword [ebp - 0xcc0], ecx
lea edx, [ebp - 0xc2c]
cmp dword [ebp - 0xcc0], edx
je 0x42ef4a
mov eax, dword [ebp - 0xcc0]
push eax
call fcn.00448193
add esp, 4
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0xb2c]
mov dword [ebp - 0xcc4], ecx
lea edx, [ebp - 0xb28]
cmp dword [ebp - 0xcc4], edx
je 0x42ef77
mov eax, dword [ebp - 0xcc4]
push eax
call fcn.00448193
add esp, 4
movzx ecx, byte [ebp - 0xa25]
test ecx, ecx
je 0x42efa5
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x500]
call fcn.0042ffa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x918]
call fcn.0045e110
jmp 0x42efd5
mov dword [ebp - 0x2c], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x500]
call fcn.0042ffa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x918]
call fcn.0045e110
xor edx, edx
jne 0x42ed75
cmp dword [ebp - 0x2c], 0
jne 0x42efec
push 4
push 0
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x42effd
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xcdc], ecx
jmp 0x42f03c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x42f015
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xce0], eax
jmp 0x42f030
call dword [sym.imp.KERNEL32.dll_GetLastError]
and eax, 0xffff
or eax, 0x70000
or eax, 0x80000000
mov dword [ebp - 0xce0], eax
mov edx, dword [ebp - 0xce0]
mov dword [ebp - 0xcdc], edx
mov dword [ebp - 0x10], 0x320001
jmp 0x42eaad
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4