Function at 0x528648
Capabilities:
Check mutex on windows
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
mov ebx, eax
push 1
lea eax, [ebp - 0x20]
push eax
call sub.advapi32.dll_InitializeSecurityDescriptor
push 0
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x20]
push eax
call sub.advapi32.dll_SetSecurityDescriptorDacl
mov dword [ebp - 0xc], 0xc
lea eax, [ebp - 0x20]
mov dword [ebp - 8], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x579b98]
call fcn.00407c54
push eax
push 0x800
push 0
push 4
lea eax, [ebp - 0xc]
push eax
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingW
mov dword [0x580354], eax
call sub.kernel32.dll_GetLastError_1
cmp eax, 0xb7
jne 0x5287cf
mov eax, dword [0x579b98]
call fcn.00407c54
push eax
push 0
push 0xf001f
call sub.kernel32.dll_OpenFileMappingW
mov dword [0x580354], eax
cmp dword [0x580354], 0
jne 0x5286f0
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0
lea edx, [ebp - 0x28]
xor ecx, ecx
mov al, 0x3a
call fcn.0052db30
push 0
push 0
push 0
push 0xf001f
mov eax, dword [0x580354]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [0x58036c], eax
cmp dword [0x58036c], 0
jne 0x52872c
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0
lea edx, [ebp - 0x28]
xor ecx, ecx
mov al, 0x3a
call fcn.0052db30
mov eax, dword [0x58036c]
add eax, 0x1000
sub eax, 8
mov dword [0x580370], eax
mov eax, dword [0x580370]
sub eax, 4
mov dword [0x580374], eax
mov eax, dword [0x580374]
sub eax, 4
mov dword [0x580378], eax
mov eax, dword [0x580378]
sub eax, 8
mov dword [0x580380], eax
mov eax, dword [0x580380]
sub eax, 4
mov dword [0x58037c], eax
mov eax, dword [0x579b94]
call fcn.00407c54
push eax
push 0
push 0x1f0001
call sub.kernel32.dll_OpenMutexW
mov dword [0x580358], eax
mov eax, 2
call fcn.005285ac
mov dword [0x58035c], eax
mov eax, 3
call fcn.005285ac
mov dword [0x580360], eax
mov eax, 4
call fcn.005285ac
mov dword [0x580364], eax
mov eax, 5
call fcn.005285ac
mov dword [0x580368], eax
jmp 0x5288b2
mov eax, dword [0x579b94]
call fcn.00407c54
push eax
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.0040c950
mov dword [0x580358], eax
push ebp
xor edx, edx
mov eax, 2
call fcn.005285f4
pop ecx
mov dword [0x58035c], eax
push ebp
mov dl, 1
mov eax, 3
call fcn.005285f4
pop ecx
mov dword [0x580360], eax
push ebp
xor edx, edx
mov eax, 4
call fcn.005285f4
pop ecx
mov dword [0x580364], eax
push ebp
xor edx, edx
mov eax, 5
call fcn.005285f4
pop ecx
mov dword [0x580368], eax
push 0
push 0
push 0
push 0xf001f
mov eax, dword [0x580354]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [0x58036c], eax
mov eax, dword [0x58036c]
add eax, 0x1000
sub eax, 8
mov dword [0x580370], eax
mov eax, dword [0x580370]
sub eax, 4
mov dword [0x580374], eax
mov eax, dword [0x580374]
sub eax, 4
mov dword [0x580378], eax
mov eax, dword [0x580378]
sub eax, 8
mov dword [0x580380], eax
mov eax, dword [0x580380]
sub eax, 4
mov dword [0x58037c], eax
mov eax, dword [0x580370]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x580374]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x58037c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x580370]
cmp dword [eax], 0
jge 0x5288c5
mov eax, dword [0x580370]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x580374]
cmp dword [eax], 0
jge 0x5288d8
mov eax, dword [0x580374]
xor edx, edx
mov dword [eax], edx
mov byte [ebx + 0xf], 1
pop ebx
mov esp, ebp
pop ebp
ret