Function at 0x41b940
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 + 0x432381], al
mov byte [edx + edx + 0x432380], cl
add edx, 1
cmp edx, 4
jne 0x41b953
xor eax, eax
mov edx, 0x5f
jmp 0x41b98f
movzx edx, byte [eax + str.__shmem3_winpthreads_tdm_]
mov byte [eax + 0x432388], dl
add eax, 1
cmp eax, 0x1a
jne 0x41b988
xor eax, eax
mov edx, 0x5f
jmp 0x41b9b7
movzx edx, byte [eax + str.__shmem3_winpthreads_tdm_]
mov byte [eax + 0x4323c0], dl
add eax, 1
cmp eax, 0x19
jne 0x41b9b0
mov byte [0x4323d9], 0x2d
mov dword [0x4323da], 0x61616161
mov dword [0x4323de], 0x61616161
mov dword [0x4323e2], 0x61616161
mov dword [0x4323e6], 0x61616161
mov dword [0x4323ea], 0x61616161
mov dword [0x4323ee], 0x61616161
mov dword [0x4323f2], 0x61616161
mov dword [0x4323f6], 0x61616161
mov byte [0x4323fa], 0
mov dword [esp + 8], 0x432380
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 0x41bbaa
mov dword [esp], 0x4323c0
call dword [sym.imp.KERNEL32.dll_FindAtomA]
sub esp, 4
test ax, ax
jne 0x41bb00
mov edx, 0x432320
mov eax, 0x20
lea esi, [esi]
lea esi, [esi]
bt edx, eax
jae 0x41baa0
mov ecx, eax
neg ecx
mov byte [ecx + 0x4323fa], 0x41
sub eax, 1
jne 0x41ba90
mov dword [esp], 0x4323c0
call dword [sym.imp.KERNEL32.dll_AddAtomA]
sub esp, 4
test ax, ax
je 0x41bb99
mov dword [esp], sym.___shmem3_winpthreads_tdm_cleanup_local_region
mov dword [0x432320], 0x432320
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 [0x432320]
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], 0x4323c0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetAtomNameA]
mov edx, eax
sub esp, 0xc
xor eax, eax
test edx, edx
je 0x41bbca
lea esi, [esi]
cmp byte [eax + 0x4323da], 0x41
jne 0x41bb4b
mov ecx, ebp
mov edx, edi
sub ecx, eax
shl edx, cl
or esi, edx
add eax, 1
cmp eax, 0x20
jne 0x41bb38
mov eax, esi
mov dword [0x432320], eax
jmp 0x41bb6c
cmp edx, 0x432320
je 0x41bad4
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x41bb60
cmp edx, 0x432320
je 0x41bad4
mov dword [edx + 4], 0x432320
mov dword [esp], sym.___shmem3_winpthreads_tdm_cleanup_local_region
call sym.__onexit
jmp 0x41bad4
mov eax, str.failed_to_add_string_to_atom_table_n
call sym.___shmem_get_error
xor eax, eax
jmp 0x41baf1
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 0x41bb55