Function at 0x42e270
Capabilities:
Check if file exists
Delete file
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4675ba
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd04
mov dword [ebp - 0xcf8], ecx
lea ecx, [ebp - 0x20]
call fcn.0040c4c6
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x24], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x28], ecx
jmp 0x42e2c5
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jae 0x42e361
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x24]
cmp edx, dword [ecx + 4]
jb 0x42e2e6
push 0x80070057
call fcn.0040109c
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + edx*4]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x38]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 0xfffffffe
push eax
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x42e35c
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x42e35c
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
push eax
lea ecx, [ebp - 0x20]
call fcn.004130e0
jmp 0x42e2bc
xor ecx, ecx
cmp dword [ebp - 0x1c], 0
sete cl
movzx edx, cl
test edx, edx
jne 0x42e37d
lea eax, [ebp - 0x20]
push eax
call fcn.0042b7f0
add esp, 4
xor ecx, ecx
cmp dword [ebp - 0x1c], 0
sete cl
movzx edx, cl
test edx, edx
jne 0x42e8ed
mov dword [ebp - 0x30], 0
jmp 0x42e3a3
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0x60]
jae 0x42e8e6
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x1c]
jb 0x42e3c7
push 0x80070057
call fcn.0040109c
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
lea eax, [edx + ecx*4]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x104], 0x94
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
je 0x42e891
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0xcfc], ecx
cmp dword [ebp - 0xcfc], 1
je 0x42e42d
cmp dword [ebp - 0xcfc], 2
je 0x42e622
jmp 0x42e891
push 0x104
lea edx, [ebp - 0x530]
push edx
mov eax, dword [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [ebp - 0x538], eax
cmp dword [ebp - 0x538], 0
jne 0x42e45e
mov dword [ebp - 0x6c], 0
jmp 0x42e891
xor ecx, ecx
je 0x42e493
push 0x104
lea edx, [ebp - 0x220]
push edx
mov eax, dword [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [ebp - 0x538], eax
cmp dword [ebp - 0x538], 0
jne 0x42e493
mov dword [ebp - 0x6c], 0
jmp 0x42e891
mov ecx, dword [str.WinInit.ini]
mov dword [ebp - 0x118], ecx
mov edx, dword [0x46d594]
mov dword [ebp - 0x114], edx
mov eax, dword [0x46d598]
mov dword [ebp - 0x110], eax
mov cl, byte [0x46d59c]
mov byte [ebp - 0x10c], cl
push 0x104
lea edx, [ebp - 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x118]
push eax
mov ecx, dword [ebp - 0x11c]
lea edx, [ebp + ecx - 0x42c]
push edx
call fcn.0044ba20
add esp, 8
lea eax, [ebp - 0x42c]
push eax
push 0x104
lea ecx, [ebp - 0x324]
push ecx
call fcn.00410e20
mov dword [ebp - 0xc74], eax
mov dword [ebp - 0x108], str.rename
mov edx, dword [ebp - 0x108]
push edx
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x324]
call fcn.0042e920
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x328]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0xc78], edx
xor eax, eax
cmp dword [ebp - 0xc78], 0
sete al
movzx ecx, al
mov dword [ebp - 0x534], ecx
push 0
push 0
lea ecx, [ebp - 0x328]
call fcn.0042f500
lea edx, [ebp - 0x530]
push edx
push 0
lea ecx, [ebp - 0x328]
call fcn.0042f6b0
push 0x46d584
push 0
lea ecx, [ebp - 0x328]
call fcn.0042f6b0
xor eax, eax
je 0x42e5af
lea ecx, [ebp - 0x220]
push ecx
push 0
lea ecx, [ebp - 0x328]
call fcn.0042f6b0
jmp 0x42e5c1
push 0x46d580
push 0
lea ecx, [ebp - 0x328]
call fcn.0042f6b0
cmp dword [ebp - 0x534], 0
je 0x42e5d7
push 0
lea ecx, [ebp - 0x328]
call fcn.0040e710
mov edx, dword [ebp - 0x328]
mov dword [ebp - 0xccc], edx
mov eax, dword [ebp - 0xccc]
push eax
mov ecx, dword [ebp - 0x108]
push ecx
lea ecx, [ebp - 0x324]
call fcn.0042ea00
mov dword [ebp - 0x70], eax
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x328]
sub edx, 0x10
mov dword [ebp - 0xcd0], edx
mov ecx, dword [ebp - 0xcd0]
call fcn.00401741
jmp 0x42e891
mov dword [ebp - 0x6c], 0
lea ecx, [ebp - 0x958]
call fcn.0045dd10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x958]
call fcn.0045e130
test eax, eax
je 0x42e65b
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x958]
call fcn.0045e110
jmp 0x42e87a
push 0x45dd20
lea eax, [ebp - 0x958]
push eax
lea ecx, [ebp - 0x540]
push ecx
call fcn.00430ad0
add esp, 0xc
mov byte [ebp - 4], 3
lea edx, [ebp - 0x540]
mov dword [ebp - 0x95c], edx
xor eax, eax
jne 0x42e73f
mov ecx, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0xa64]
call fcn.0040d328
mov dword [ebp - 0xd00], eax
mov edx, dword [ebp - 0xd00]
mov dword [ebp - 0xcd4], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0xcd4]
mov ecx, dword [eax]
mov dword [ebp - 0xcd8], ecx
mov edx, dword [ebp - 0xcd8]
push edx
lea ecx, [ebp - 0x958]
call fcn.0045dd50
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x95d], al
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xa64]
mov dword [ebp - 0xcdc], eax
lea ecx, [ebp - 0xa60]
cmp dword [ebp - 0xcdc], ecx
je 0x42e70c
mov edx, dword [ebp - 0xcdc]
push edx
call fcn.00448193
add esp, 4
movzx eax, byte [ebp - 0x95d]
test eax, eax
je 0x42e73a
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x540]
call fcn.0042ffa0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x958]
call fcn.0045e110
jmp 0x42e87a
jmp 0x42e84d
mov ecx, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0xb6c]
call fcn.0040d328
mov dword [ebp - 0xd04], eax
mov edx, dword [ebp - 0xd04]
mov dword [ebp - 0xce0], edx
mov byte [ebp - 4], 5
push 0
lea ecx, [ebp - 0xc70]
call fcn.0040d328
mov dword [ebp - 0xd08], eax
mov eax, dword [ebp - 0xd08]
mov dword [ebp - 0xce8], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xce0]
mov edx, dword [ecx]
mov dword [ebp - 0xce4], edx
mov eax, dword [ebp - 0xce8]
mov ecx, dword [eax]
mov dword [ebp - 0xcec], ecx
mov edx, dword [ebp - 0xce4]
push edx
mov eax, dword [ebp - 0xcec]
push eax
lea ecx, [ebp - 0x958]
call fcn.0045ddf0
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0xa65], al
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xc70]
mov dword [ebp - 0xcf0], ecx
lea edx, [ebp - 0xc6c]
cmp dword [ebp - 0xcf0], edx
je 0x42e7f5
mov eax, dword [ebp - 0xcf0]
push eax
call fcn.00448193
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0xb6c]
mov dword [ebp - 0xcf4], ecx
lea edx, [ebp - 0xb68]
cmp dword [ebp - 0xcf4], edx
je 0x42e822
mov eax, dword [ebp - 0xcf4]
push eax
call fcn.00448193
add esp, 4
movzx ecx, byte [ebp - 0xa65]
test ecx, ecx
je 0x42e84d
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x540]
call fcn.0042ffa0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x958]
call fcn.0045e110
jmp 0x42e87a
mov dword [ebp - 0x6c], 1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x540]
call fcn.0042ffa0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x958]
call fcn.0045e110
xor edx, edx
jne 0x42e629
cmp dword [ebp - 0x6c], 0
jne 0x42e891
push 4
push 0
mov eax, dword [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
je 0x42e8a2
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0xd0c], ecx
jmp 0x42e8e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x42e8ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd10], eax
jmp 0x42e8d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
and eax, 0xffff
or eax, 0x70000
or eax, 0x80000000
mov dword [ebp - 0xd10], eax
mov edx, dword [ebp - 0xd10]
mov dword [ebp - 0xd0c], edx
jmp 0x42e39a
mov dword [ebp - 0x10], 0x320001
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.0040ec45
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4