Function at 0x41c930
Capabilities:
Check mutex on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor edx, edx
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + edx + 0x1c]
mov ecx, eax
and eax, 0xf
shr cl, 4
add eax, 0x61
add ecx, 0x41
mov byte [edx + edx + 0x4f5241], al
mov byte [edx + edx + 0x4f5240], cl
add edx, 1
cmp edx, 4
jne 0x41c943
xor eax, eax
mov edx, 0x5f
jmp 0x41c97f
movzx edx, byte [eax + str.__shmem3_winpthreads_tdm_]
mov byte [eax + 0x4f5248], dl
add eax, 1
cmp eax, 0x1a
jne 0x41c978
xor eax, eax
mov edx, 0x5f
jmp 0x41c9a7
movzx edx, byte [eax + str.__shmem3_winpthreads_tdm_]
mov byte [eax + 0x4f5280], dl
add eax, 1
cmp eax, 0x19
jne 0x41c9a0
mov byte [0x4f5299], 0x2d
mov dword [0x4f529a], 0x61616161
mov dword [0x4f529e], 0x61616161
mov dword [0x4f52a2], 0x61616161
mov dword [0x4f52a6], 0x61616161
mov dword [0x4f52aa], 0x61616161
mov dword [0x4f52ae], 0x61616161
mov dword [0x4f52b2], 0x61616161
mov dword [0x4f52b6], 0x61616161
mov byte [0x4f52ba], 0
mov dword [esp + 8], 0x4f5240
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 8
mov esi, eax
test eax, eax
jne 0x41cb9a
mov dword [esp], 0x4f5280
call dword [sym.imp.KERNEL32.dll_FindAtomA]
sub esp, 4
test ax, ax
jne 0x41caf0
mov edx, 0x4f51e0
mov eax, 0x20
lea esi, [esi]
lea esi, [esi]
bt edx, eax
jae 0x41ca90
mov ecx, eax
neg ecx
mov byte [ecx + 0x4f52ba], 0x41
sub eax, 1
jne 0x41ca80
mov dword [esp], 0x4f5280
call dword [sym.imp.KERNEL32.dll_AddAtomA]
sub esp, 4
test ax, ax
je 0x41cb89
mov dword [esp], sym.___shmem3_winpthreads_tdm_cleanup_local_region
mov dword [0x4f51e0], 0x4f51e0
call sym.__onexit
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
sub esp, 4
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4f51e0]
sub esp, 4
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, ax
mov ebp, 0x20
mov edi, 1
mov dword [esp + 8], 0x3b
mov dword [esp + 4], 0x4f5280
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetAtomNameA]
mov edx, eax
sub esp, 0xc
xor eax, eax
test edx, edx
je 0x41cbba
lea esi, [esi]
cmp byte [eax + 0x4f529a], 0x41
jne 0x41cb3b
mov ecx, ebp
mov edx, edi
sub ecx, eax
shl edx, cl
or esi, edx
add eax, 1
cmp eax, 0x20
jne 0x41cb28
mov eax, esi
mov dword [0x4f51e0], eax
jmp 0x41cb5c
cmp edx, 0x4f51e0
je 0x41cac4
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x41cb50
cmp edx, 0x4f51e0
je 0x41cac4
mov dword [edx + 4], 0x4f51e0
mov dword [esp], sym.___shmem3_winpthreads_tdm_cleanup_local_region
call sym.__onexit
jmp 0x41cac4
mov eax, str.failed_to_add_string_to_atom_table_n
call sym.___shmem_get_error
xor eax, eax
jmp 0x41cae1
mov eax, str.failed_to_to_lock_creation_mutex_n
call sym.___shmem_get_error
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
sub esp, 4
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str.failed_to_get_string_from_atom_n
call sym.___shmem_get_error
xor eax, eax
jmp 0x41cb45