Function at 0x414639
Capabilities:
Check if file exists
Delete file
Get common file path
Move file
Read .ini file

Disassembly:
push 0x32c
mov eax, 0x5f1870
call fcn.0044e95a
mov ebx, ecx
call fcn.0053f541
push 0
mov esi, 0x9b
lea ecx, [ebp - 0x328]
push esi
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x10]
and dword [ebp - 4], 0
call fcn.00403028
mov ecx, eax
call fcn.005164d5
cmp dword [ebp - 0x318], 0
jne 0x4146df
push eax
push 0x64
lea eax, [ebp - 0xd8]
push eax
push 0x5f9ed8
push 0x5f9fc4
push str.UserLogin
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0xd8], 0
jne 0x4146ab
xor eax, eax
jmp 0x4146b8
lea eax, [ebp - 0xd8]
push eax
call fcn.005454d1
pop ecx
push eax
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x328]
call fcn.00403bdf
call fcn.0053f541
lea ecx, [ebp - 0x328]
push ecx
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
call fcn.00421c9b
push eax
lea ecx, [ebp - 0x334]
call fcn.0040b182
cmp dword [ebp - 0x314], 8
lea eax, [ebp - 0x328]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0x328]
push eax
push str.WnCore.exe
call fcn.00403028
mov ecx, eax
call fcn.00516386
push eax
lea eax, [ebp - 0x334]
push str.__s_s__QuickSync__s
push eax
call fcn.00415037
mov esi, dword [ebp - 0x334]
add esp, 0x14
cmp dword [esi - 4], 1
jle 0x41474f
push dword [esi - 0xc]
lea ecx, [ebp - 0x334]
call fcn.0040b946
mov esi, dword [ebp - 0x334]
push esi
call fcn.0052f663
pop ecx
call fcn.00403028
mov ecx, eax
call fcn.0052ea5b
push eax
lea ecx, [ebp - 0x2f8]
call fcn.00404479
cmp dword [ebp - 0x2e4], 8
lea eax, [ebp - 0x2f8]
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 2
cmovae eax, dword [ebp - 0x2f8]
push eax
call fcn.0040b20c
push 0x5c
push dword [ebp - 0x330]
mov byte [ebp - 4], 3
call fcn.00543ce7
pop ecx
pop ecx
test eax, eax
jne 0x4147ae
or eax, 0xffffffff
jmp 0x4147b6
sub eax, dword [ebp - 0x330]
sar eax, 1
inc eax
lea ecx, [ebp - 0x330]
push eax
lea eax, [ebp - 0x338]
push eax
call fcn.0040ba13
push eax
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 4
call fcn.0040b25f
mov ecx, dword [ebp - 0x338]
mov byte [ebp - 4], 3
lea ecx, [ecx - 0x10]
call fcn.0040bb8d
push str..temp
lea eax, [ebp - 0x2f8]
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.0040b106
add esp, 0xc
cmp dword [ebp - 0x2fc], 8
lea eax, [ebp - 0x310]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x310]
push eax
mov byte [ebp - 4], 5
call edi
test eax, eax
je 0x41485e
cmp dword [ebp - 0x2e4], 8
lea ecx, [ebp - 0x2f8]
push 1
cmovae ecx, dword [ebp - 0x2f8]
lea eax, [ebp - 0x310]
cmp dword [ebp - 0x2fc], 8
push ecx
cmovae eax, dword [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x8c
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
inc eax
push eax
push 0x8c
call fcn.0040b9d5
mov ecx, eax
call fcn.004114c9
push 0x8d
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
inc eax
push eax
push 0x8d
call fcn.0040b9d5
mov ecx, eax
call fcn.004114c9
push 0x8e
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
inc eax
push eax
push 0x8e
call fcn.0040b9d5
mov ecx, eax
call fcn.004114c9
call fcn.0040b9d5
mov ecx, eax
call fcn.00410921
push 0x208
lea eax, [ebp - 0x2e0]
push 0
push eax
call fcn.005426c0
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x2e0]
push eax
lea ecx, [ebp - 0x32c]
call fcn.0040b20c
push str.MutualTempFile.ini
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], 6
call fcn.0040b2d9
push dword [ebp - 0x32c]
push 0
push str.QuickSync
push str.MutualTempFile
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push dword [ebp - 0x32c]
mov dword [ebx + 0x2e4], eax
call edi
test eax, eax
je 0x414965
push dword [ebp - 0x32c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebx + 0x2e4], 0
push 0x2f0
je 0x41498b
call fcn.00420fa5
pop ecx
mov dword [ebp - 0x338], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x4149ae
push 1
jmp 0x4149a1
call fcn.00420fa5
pop ecx
mov dword [ebp - 0x338], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x4149ae
push 0
push 4
mov ecx, eax
call fcn.004139be
mov edi, eax
jmp 0x4149b0
xor edi, edi
xor eax, eax
mov byte [ebp - 4], 6
push eax
push eax
push eax
push eax
push eax
push eax
push 0x96c80000
push 0x5f9ed8
lea ecx, [ebx + 0x2c]
call dword [sym.imp.DuiLib32.dll_public:_struct_HWND______thiscall_DuiLib::CPaintManagerUI::GetPaintWindow_void_const]
push eax
mov ecx, edi
call dword [sym.imp.DuiLib32.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::Create_struct_HWND_____wchar_t_const___unsigned_long_int__unsigned_long_int__int__int__int__int__struct_HMENU____]
mov ecx, edi
call dword [sym.imp.DuiLib32.dll_public:_void___thiscall_DuiLib::CWindowWnd::CenterWindow_void_]
mov ecx, edi
call dword [sym.imp.DuiLib32.dll_public:_unsigned_int___thiscall_DuiLib::CWindowWnd::ShowModal_void_]
test edi, edi
je 0x4149f5
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0x14]
xor edi, edi
mov ecx, ebx
inc edi
push edi
call fcn.004165f2
mov ecx, dword [ebp - 0x32c]
lea ecx, [ecx - 0x10]
call fcn.0040bb8d
xor ebx, ebx
lea ecx, [ebp - 0x310]
push ebx
push edi
call fcn.004037bf
mov ecx, dword [ebp - 0x330]
lea ecx, [ecx - 0x10]
call fcn.0040bb8d
push ebx
push edi
lea ecx, [ebp - 0x2f8]
call fcn.004037bf
lea ecx, [esi - 0x10]
call fcn.0040bb8d
push ebx
push edi
lea ecx, [ebp - 0x328]
call fcn.004037bf
mov eax, edi
call fcn.0044e904
ret