Function at 0x521800
Capabilities:
Check if file exists
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x598450
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x612678]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], 0
lea ebx, [ecx + 0x14]
mov eax, dword [ebx]
cmp dword [eax + 8], 0
jne 0x5218e4
push ecx
lea ecx, [ebp - 0x18]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QFileInfo::constructor_class_QFile_const__]
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x18]
call dword [sym.imp.QtCore4.dll_public:_class_QString___thiscall_QFileInfo::absoluteFilePath_void_]
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
push ecx
mov ecx, eax
call dword [sym.imp.QtCore4.dll_public:_class_QString___thiscall_QString::toLower_void_]
mov edi, eax
push 0xffffffffffffffff
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 2
push str.QtLockedFile_mutex
push eax
call dword [sym.imp.QtCore4.dll_public:_static_class_QString___cdecl_QString::fromLatin1_char_const___int_]
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
push edi
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x1c], 1
mov esi, eax
call dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
push esi
mov ecx, ebx
call dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::operator_class_QString_const__]
lea ecx, [ebp - 0x14]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [ebp - 0x20]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [ebp - 0x24]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [ebp - 0x28]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QFileInfo::destructor_void_]
push ebx
lea ecx, [ebp - 0x10]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 5
test eax, eax
js 0x521927
push 0xa
push eax
lea eax, [ebp + 8]
push eax
call dword [sym.imp.QtCore4.dll_public:_static_class_QString___cdecl_QString::number_int__int_]
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 6
call dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
lea ecx, [ebp + 8]
mov byte [ebp - 4], 5
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [ebp - 0x10]
call dword [sym.imp.QtCore4.dll_public:_unsigned_short_int_const____thiscall_QString::utf16_void_const]
cmp byte [ebp + 0xc], 0
push eax
push 0
je 0x52194e
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
jne 0x52197a
push str.QtLockedFile::lock__:_CreateMutex_failed
jmp 0x52196f
push 0x100001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov esi, eax
test esi, esi
jne 0x52197a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x521978
push str.QtLockedFile::lock__:_OpenMutex_failed
call dword [sym.imp.QtCore4.dll_void___cdecl_qErrnoWarning_char_const__]
add esp, 4
xor esi, esi
lea ecx, [ebp - 0x10]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8