Function at 0x41a520
Capabilities:
Check mutex on windows

Disassembly:
mov eax, dword [0x4b4364]
sub esp, 0x2c
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
jne 0x41a929
push 0x498f88
push ebp
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
cmp eax, ebp
mov dword [0x4b4364], eax
jne 0x41a77b
mov esi, dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 0x14
push 0x40
mov dword [esp + 0x18], 0xc
mov dword [esp + 0x20], ebp
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push 1
push eax
mov dword [esp + 0x1c], eax
call edi
test eax, eax
je 0x41a6a3
mov eax, dword [esp + 0x14]
push ebp
push ebp
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
je 0x41a6a3
push str._SEM32_MF_RU_V2
lea ecx, [esp + 0x14]
push 1
push ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, ebp
mov dword [0x4b4364], eax
je 0x41a5e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41a5e7
mov edx, dword [0x4b4364]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x41a5e7
mov eax, dword [0x4b4364]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x4b4364], ebp
mov ecx, dword [esp + 0x14]
mov ebp, dword [sym.imp.KERNEL32.dll_LocalFree]
push ecx
call ebp
mov ecx, dword [0x4b4364]
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x41a620
push 0x3c
push 0x498fa8
push str.___osresrce.c_t7.2
push 0
push 0xc8
call fcn.00425ce0
add esp, 0x14
push 0x14
push 0x40
mov dword [esp + 0x18], 0xc
mov dword [esp + 0x20], 0
call esi
push 1
push eax
mov dword [esp + 0x1c], eax
call edi
test eax, eax
je 0x41a6b5
mov eax, dword [esp + 0x14]
push 0
push 0
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
je 0x41a6b5
push 0x498fb8
push 0x8000
push 0
lea ecx, [esp + 0x1c]
push 0x4000004
push ecx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov edx, dword [esp + 0x14]
mov esi, eax
push edx
call ebp
test esi, esi
je 0x41a6bc
push 0
push 0
push 0
push 2
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
mov dword [0x4b4358], eax
je 0x41a6bc
mov dword [0x4b435c], esi
jmp 0x41a6cb
mov edx, dword [esp + 0x14]
mov ebp, dword [sym.imp.KERNEL32.dll_LocalFree]
push edx
call ebp
jmp 0x41a605
mov eax, dword [esp + 0x14]
push eax
call ebp
push 0x69
call fcn.00425880
mov eax, dword [0x4b4358]
add esp, 4
lea ecx, [esp + 0x1c]
push 0x1c
push ecx
push eax
mov esi, 0x14
mov edi, eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x41a728
mov eax, dword [esp + 0x2c]
test ah, 0x10
je 0x41a70b
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add eax, edx
lea ecx, [edi + 0x14]
cmp eax, ecx
jae 0x41a71c
mov esi, edi
mov edi, eax
sub esi, eax
add esi, 0x14
test esi, esi
je 0x41a720
push 4
push 0x1000
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
jmp 0x41a724
mov eax, edi
jmp 0x41a724
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x41a732
push 0x69
call fcn.00425880
add esp, 4
mov edx, dword [0x4b4358]
xor eax, eax
mov dword [edx], eax
mov ecx, dword [0x4b4358]
mov dword [ecx + 4], eax
mov edx, dword [0x4b4358]
mov dword [edx + 8], 0x14
mov ecx, dword [0x4b4358]
mov dword [ecx + 0xc], eax
mov edx, dword [0x4b4358]
mov dword [edx + 0x10], 0x554
mov eax, dword [0x4b4364]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
add esp, 0x2c
ret
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x41a7a3
push 0x57
push str..osresrce.c
push str.___osresrce.c_t7.2
push ebp
push 0xc8
call fcn.00425ce0
add esp, 0x14
push 0x498fe4
push ebp
push 2
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov edi, dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
cmp esi, ebp
je 0x41a7e8
push ebp
push ebp
push ebp
push 2
push esi
call edi
cmp eax, ebp
mov dword [0x4b4358], eax
je 0x41a7e8
mov edx, dword [0x4b4364]
mov dword [0x4b435c], esi
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
add esp, 0x2c
ret
push 0x14
push 0x40
mov dword [esp + 0x18], 0xc
mov dword [esp + 0x20], ebp
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 1
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
test eax, eax
je 0x41a869
mov ecx, dword [esp + 0x14]
push ebp
push ebp
push 1
push ecx
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
je 0x41a869
push str._SHAREMEM_MF_RU_MEM32_V2
push 0x8000
push ebp
lea edx, [esp + 0x1c]
push 0x4000004
push edx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov esi, eax
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp esi, ebp
je 0x41a874
push ebp
push ebp
push ebp
push 2
push esi
call edi
cmp eax, ebp
mov dword [0x4b4358], eax
je 0x41a874
mov dword [0x4b435c], esi
jmp 0x41a883
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x69
call fcn.00425880
mov eax, dword [0x4b4358]
add esp, 4
lea edx, [esp + 0x1c]
push 0x1c
push edx
push eax
mov esi, 0x14
mov edi, eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x41a8e0
mov eax, dword [esp + 0x2c]
test ah, 0x10
je 0x41a8c3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
add eax, ecx
lea edx, [edi + 0x14]
cmp eax, edx
jae 0x41a8d4
mov esi, edi
mov edi, eax
sub esi, eax
add esi, 0x14
cmp esi, ebp
je 0x41a8d8
push 4
push 0x1000
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
jmp 0x41a8dc
mov eax, edi
jmp 0x41a8dc
mov eax, dword [esp + 0xc]
cmp eax, ebp
jne 0x41a8ea
push 0x69
call fcn.00425880
add esp, 4
mov eax, dword [0x4b4358]
mov dword [eax], ebp
mov ecx, dword [0x4b4358]
mov dword [ecx + 4], ebp
mov edx, dword [0x4b4358]
mov dword [edx + 8], 0x14
mov eax, dword [0x4b4358]
mov dword [eax + 0xc], ebp
mov ecx, dword [0x4b4358]
mov dword [ecx + 0x10], 0x554
mov edx, dword [0x4b4364]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
add esp, 0x2c
ret