Function at 0x10010d60
Capabilities:
Check mutex on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x10048bb0
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x1005b4b0]
xor eax, esp
mov dword [esp + 0x94], eax
push esi
push edi
mov eax, dword [0x1005b4b0]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x68], 0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea eax, [esp + 0x90]
mov word [esp + 0x94], 0x100
push eax
mov dword [esp + 0x38], 0
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
jne 0x10010e86
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [esp + 0x64], 7
push 0x3f
xor eax, eax
mov dword [esp + 0x64], 0
push str.GSM_x32:__Error_creating_SID_for_mutex_creation._Error_number:
lea ecx, [esp + 0x58]
mov word [esp + 0x58], ax
call fcn.10012e20
mov edx, esi
mov dword [esp + 0xb0], 0
lea ecx, [esp + 0x70]
call fcn.10010cc0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0xbc], 1
call fcn.10012c30
cmp dword [esp + 0x84], 8
jb 0x10010e57
push dword [esp + 0x70]
call fcn.1001937f
add esp, 4
cmp dword [esp + 0x64], 8
lea eax, [esp + 0x50]
cmovae eax, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [esp + 0x64], 8
jb 0x10010e7f
push dword [esp + 0x50]
call fcn.1001937f
add esp, 4
xor eax, eax
jmp 0x100111a1
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
movdqa xmmword [esp + 0x34], xmm0
mov dword [esp + 0x40], eax
lea eax, [esp + 0x10]
push eax
push 0
lea eax, [esp + 0x2c]
movdqa xmmword [esp + 0x2c], xmm0
push eax
push 1
mov dword [esp + 0x34], 0x100000
mov dword [esp + 0x38], 2
mov dword [esp + 0x3c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 5
mov dword [esp + 0x20], 0
call dword [sym.imp.ADVAPI32.dll_SetEntriesInAclA]
mov esi, eax
test esi, esi
je 0x10010f5b
push str.GSM_x32:__Error_creating_ACL_for_mutex_creation._Error_number:
lea ecx, [esp + 0x54]
call fcn.10012580
mov edx, esi
mov dword [esp + 0xb0], 2
lea ecx, [esp + 0x70]
call fcn.10010cc0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0xbc], 3
call fcn.10012c30
cmp dword [esp + 0x84], 8
jb 0x10010f37
push dword [esp + 0x70]
call fcn.1001937f
add esp, 4
cmp dword [esp + 0x64], 8
lea eax, [esp + 0x50]
cmovae eax, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
jmp 0x10010e6c
push 0x14
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
jne 0x10010ff4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.GSM_x32:__Error_allocating_SD_for_mutex_creation._Error_number:
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.10012580
mov edx, esi
mov dword [esp + 0xb0], 4
lea ecx, [esp + 0x70]
call fcn.10010cc0
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0xbc], 5
call fcn.10012c30
cmp dword [esp + 0x84], 8
jb 0x10010fc6
push dword [esp + 0x70]
call fcn.1001937f
add esp, 4
cmp dword [esp + 0x64], 8
lea eax, [esp + 0x50]
cmovae eax, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x10010e6c
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
test eax, eax
jne 0x10011089
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.GSM_x32:__Error_initializing_SD_for_mutex_creation._Error_number:
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.10012580
mov edx, esi
mov dword [esp + 0xb0], 6
lea ecx, [esp + 0x70]
call fcn.10010cc0
mov byte [esp + 0xb0], 7
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x5c]
call fcn.10012c30
lea ecx, [esp + 0x70]
call fcn.100125e0
cmp dword [esp + 0x64], 8
lea eax, [esp + 0x50]
cmovae eax, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [esp + 0x50]
call fcn.100125e0
xor eax, eax
jmp 0x100111a1
push 0
push dword [esp + 0x14]
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
jne 0x100110d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.GSM_x32:__Error_adding_ACL_to_SD_for_mutex_creation._Error_number:
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.10012580
mov edx, esi
mov dword [esp + 0xb0], 8
lea ecx, [esp + 0x70]
call fcn.10010cc0
mov byte [esp + 0xb0], 9
jmp 0x10011039
push 0x100000
push 0
push str.mtxAllmaps
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0xc
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexExA]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1001117a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.GSM_x32:__Error_creating_permissive_mutex._Error_number:
lea ecx, [esp + 0x74]
mov esi, eax
call fcn.10012580
mov edx, esi
mov dword [esp + 0xb0], 0xa
lea ecx, [esp + 0x88]
call fcn.10010cc0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0xbc], 0xb
call fcn.10012c30
lea ecx, [esp + 0x88]
call fcn.100125e0
cmp dword [esp + 0x84], 8
lea eax, [esp + 0x70]
cmovae eax, dword [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [esp + 0x70]
call fcn.100125e0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x10011189
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
test eax, eax
je 0x1001119a
push eax
call esi
push edi
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.100176b0
mov esp, ebp
pop ebp
ret