Function at 0x403b30
Capabilities:
Check if file exists
Delete file
Read file on windows
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52157b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1cc8
call fcn.0042c840
mov eax, dword [0x57dcc0]
xor eax, ebp
mov dword [ebp - 0x98], eax
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1ca8], ecx
lea ecx, [ebp - 0x80]
call fcn.00414640
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x94]
call fcn.0050232d
mov byte [ebp - 4], 1
push 0
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x24]
call fcn.004044f0
mov byte [ebp - 4], 2
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x12ac], 0
mov dword [ebp - 0x12a8], 0
mov dword [ebp - 0x12a4], 0
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x2c]
call fcn.00402a80
mov byte [ebp - 4], 3
lea eax, [ebp - 0x1b90]
push eax
call fcn.004045f0
mov ecx, eax
call fcn.00404600
mov dword [ebp - 0x1cac], eax
mov ecx, dword [ebp - 0x1cac]
mov dword [ebp - 0x1cb0], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x1cb0]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402b30
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1b90]
call fcn.00402b10
lea ecx, [ebp - 0x2c]
call fcn.00418360
push eax
lea ecx, [ebp - 0x1c94]
call fcn.00404760
mov dword [ebp - 0x1cb4], eax
mov eax, dword [ebp - 0x1cb4]
mov dword [ebp - 0x1cb8], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x1cb8]
call fcn.00418360
push eax
lea ecx, [ebp - 0x80]
call fcn.004147b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c94]
call fcn.00404790
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x12b0], eax
cmp dword [ebp - 0x12b0], 0xffffffff
jne 0x403d55
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x135c], eax
push 0
push 0
lea edx, [ebp - 0x12b8]
push edx
push 0x400
mov eax, dword [ebp - 0x135c]
push eax
push 0
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov ecx, dword [ebp - 0x12b8]
push ecx
mov edx, dword [ebp - 0x135c]
push edx
push str.The_program_failed_with_error__d:__s
lea eax, [ebp - 0x1358]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0
push 0
lea ecx, [ebp - 0x1358]
push ecx
call fcn.0050ac4f
mov edx, dword [ebp - 0x12b8]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x1c98], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00402b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.004045c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x94]
call fcn.0050236c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.00414710
mov eax, dword [ebp - 0x1c98]
jmp 0x4041f7
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x2a0]
push ecx
call fcn.0042c01f
add esp, 8
lea edx, [ebp - 0x2a0]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x2a0]
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.0040a700
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x12b4]
push eax
call fcn.0040a700
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x28]
call fcn.00418360
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x403dc7
lea ecx, [ebp - 0x28]
call fcn.00404720
push eax
call fcn.00409e60
add esp, 4
lea ecx, [ebp - 0x24]
push ecx
push 0x1021
lea ecx, [ebp - 0x12b4]
call fcn.00418360
push eax
lea ecx, [ebp - 0x94]
call fcn.0050268c
test eax, eax
jne 0x403e88
mov edx, dword [ebp - 0x12b0]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x400
lea eax, [ebp - 0x1b60]
push eax
lea ecx, [ebp - 0x24]
call fcn.00502dc0
push 0
push 0
lea ecx, [ebp - 0x1b60]
push ecx
call fcn.0050ac4f
mov dword [ebp - 0x1c9c], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x12b4]
call fcn.00402b10
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
call fcn.00402b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00402b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.004045c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x94]
call fcn.0050236c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.00414710
mov eax, dword [ebp - 0x1c9c]
jmp 0x4041f7
push 0
lea edx, [ebp - 0x12ac]
push edx
push 0x1000
lea eax, [ebp - 0x12a0]
push eax
mov ecx, dword [ebp - 0x12b0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x403ec3
mov edx, dword [ebp - 0x1ca8]
mov dword [edx + 0xc4], 1
jmp 0x4040c6
push 0
lea eax, [ebp - 0x12ac]
push eax
lea ecx, [ebp - 0x12a0]
push ecx
lea ecx, [ebp - 0x80]
call fcn.004170e0
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x1b84]
call fcn.005010f6
mov byte [ebp - 4], 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x12ac]
push edx
lea eax, [ebp - 0x12a0]
push eax
lea ecx, [ebp - 0x94]
call fcn.0050207b
jmp 0x403f57
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x1b84]
call fcn.004044e0
mov eax, dword [ebp - 0x12ac]
xor ecx, ecx
mov edx, dword [ebp - 0x1ca8]
add eax, dword [edx + 0xd0]
mov edx, dword [edx + 0xd4]
adc edx, ecx
mov ecx, dword [ebp - 0x1ca8]
mov dword [ecx + 0xd0], eax
mov dword [ecx + 0xd4], edx
mov edx, dword [ebp - 0x1ca8]
mov eax, dword [edx + 0xc8]
mov ecx, dword [edx + 0xcc]
mov dword [ebp - 0x1cc0], eax
mov dword [ebp - 0x1cbc], ecx
mov edx, dword [ebp - 0x1cbc]
mov dword [ebp - 0x1cc4], edx
and dword [ebp - 0x1cbc], 0x7fffffff
fild qword [ebp - 0x1cc0]
and dword [ebp - 0x1cc4], 0x80000000
mov dword [ebp - 0x1cc8], 0
fild qword [ebp - 0x1cc8]
fchs
faddp st(1)
mov eax, dword [ebp - 0x1ca8]
mov ecx, dword [eax + 0xd0]
mov edx, dword [eax + 0xd4]
mov dword [ebp - 0x1cd0], ecx
mov dword [ebp - 0x1ccc], edx
mov eax, dword [ebp - 0x1ccc]
mov dword [ebp - 0x1cd4], eax
and dword [ebp - 0x1ccc], 0x7fffffff
fild qword [ebp - 0x1cd0]
and dword [ebp - 0x1cd4], 0x80000000
mov dword [ebp - 0x1cd8], 0
fild qword [ebp - 0x1cd8]
fchs
faddp st(1)
fdivrp st(1)
fmul qword [0x52dc00]
call fcn.0042bf80
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x84]
push ecx
mov ecx, dword [ebp - 0x1ca8]
add ecx, 0x70
call fcn.00404440
push 1
push 0
push 0
push 0
lea edx, [ebp - 0x1b7c]
push edx
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x4040a4
lea eax, [ebp - 0x1b7c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [ebp - 0x1b7c]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x40406f
cmp dword [ebp - 0x12ac], 0
jbe 0x4040c6
mov edx, dword [ebp - 0x1ca8]
cmp dword [edx + 0xc4], 0
jne 0x4040c6
cmp dword [ebp - 0x30], 0
jne 0x403e88
mov eax, dword [ebp - 0x12b0]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x94]
call fcn.005022cb
lea ecx, [ebp - 0x80]
call fcn.00414c80
mov ecx, dword [ebp - 0x1ca8]
cmp dword [ecx + 0xc4], 0
je 0x404173
lea ecx, [ebp - 0x12b4]
call fcn.00418360
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x1b8c], eax
mov dword [ebp - 0x1ca0], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x12b4]
call fcn.00402b10
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
call fcn.00402b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00402b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.004045c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x94]
call fcn.0050236c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.00414710
mov eax, dword [ebp - 0x1ca0]
jmp 0x4041f7
mov edx, dword [ebp - 0x1ca8]
cmp dword [edx + 0xc0], 0
je 0x404196
push 1
lea ecx, [ebp - 0x12b4]
call fcn.00418360
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [ebp - 0x1ca4], 1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x12b4]
call fcn.00402b10
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
call fcn.00402b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00402b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.004045c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x94]
call fcn.0050236c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.00414710
mov eax, dword [ebp - 0x1ca4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x98]
xor ecx, ebp
call fcn.0042b9ea
mov esp, ebp
pop ebp
ret 8