Function at 0x415340
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 + 0x4dd241], al
mov byte [edx + edx + 0x4dd240], cl
add edx, 1
cmp edx, 4
jne 0x415353
xor eax, eax
mov edx, 0x5f
jmp 0x41538f
movzx edx, byte [eax + str.__shmem3_winpthreads_tdm_]
mov byte [eax + 0x4dd248], dl
add eax, 1
cmp eax, 0x1a
jne 0x415388
xor eax, eax
mov edx, 0x5f
jmp 0x4153b7
movzx edx, byte [eax + str.__shmem3_winpthreads_tdm_]
mov byte [eax + 0x4dd280], dl
add eax, 1
cmp eax, 0x19
jne 0x4153b0
mov byte [0x4dd299], 0x2d
mov dword [0x4dd29a], 0x61616161
mov dword [0x4dd29e], 0x61616161
mov dword [0x4dd2a2], 0x61616161
mov dword [0x4dd2a6], 0x61616161
mov dword [0x4dd2aa], 0x61616161
mov dword [0x4dd2ae], 0x61616161
mov dword [0x4dd2b2], 0x61616161
mov dword [0x4dd2b6], 0x61616161
mov byte [0x4dd2ba], 0
mov dword [esp + 8], 0x4dd240
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 0x4155aa
mov dword [esp], 0x4dd280
call dword [sym.imp.KERNEL32.dll_FindAtomA]
sub esp, 4
test ax, ax
jne 0x415500
mov edx, 0x4dd1e0
mov eax, 0x20
lea esi, [esi]
lea esi, [esi]
bt edx, eax
jae 0x4154a0
mov ecx, eax
neg ecx
mov byte [ecx + 0x4dd2ba], 0x41
sub eax, 1
jne 0x415490
mov dword [esp], 0x4dd280
call dword [sym.imp.KERNEL32.dll_AddAtomA]
sub esp, 4
test ax, ax
je 0x415599
mov dword [esp], sym.___shmem3_winpthreads_tdm_cleanup_local_region
mov dword [0x4dd1e0], 0x4dd1e0
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 [0x4dd1e0]
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], 0x4dd280
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetAtomNameA]
mov edx, eax
sub esp, 0xc
xor eax, eax
test edx, edx
je 0x4155ca
lea esi, [esi]
cmp byte [eax + 0x4dd29a], 0x41
jne 0x41554b
mov ecx, ebp
mov edx, edi
sub ecx, eax
shl edx, cl
or esi, edx
add eax, 1
cmp eax, 0x20
jne 0x415538
mov eax, esi
mov dword [0x4dd1e0], eax
jmp 0x41556c
cmp edx, 0x4dd1e0
je 0x4154d4
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x415560
cmp edx, 0x4dd1e0
je 0x4154d4
mov dword [edx + 4], 0x4dd1e0
mov dword [esp], sym.___shmem3_winpthreads_tdm_cleanup_local_region
call sym.__onexit
jmp 0x4154d4
mov eax, str.failed_to_add_string_to_atom_table_n
call sym.___shmem_get_error
xor eax, eax
jmp 0x4154f1
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 0x415555