Function at 0x10022590
Capabilities:
Check mutex on windows

Disassembly:
push 0xffffffffffffffff
push 0x1008c2fc
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x100c6580]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x18], esi
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
xor ebx, ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], 0x100a46fc
mov dword [esi], 0x100a4bfc
mov dword [esi + 0x24], 0x100a4bf4
mov dword [esp + 0x24], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x17]
lea ecx, [esi + 0x3c]
push eax
mov byte [esp + 0x2c], 3
mov dword [esi + 0x38], ebx
call fcn.1001ceb0
mov dword [esi + 0x5c], ebx
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x17]
lea ecx, [esi + 0x60]
push eax
mov byte [esp + 0x2c], 5
call fcn.1001ceb0
lea ecx, [esi + 0x88]
mov byte [esp + 0x24], 6
mov dword [esi + 0x80], ebx
mov byte [esi + 0x84], bl
mov byte [esi + 0x85], bl
call fcn.1000bcf0
lea ecx, [esi + 0x94]
mov byte [esp + 0x24], 7
call fcn.10002790
mov dword [esi + 0xb0], ebx
mov byte [esi + 0xb4], bl
mov dword [esi + 0xb8], ebx
mov dword [esi + 0x10bc], ebx
mov dword [esi + 0x10c0], ebx
mov byte [esi + 0x10c4], bl
mov dword [esi + 0x10c8], ebx
lea ecx, [esi + 0x10cc]
mov byte [esp + 0x24], 0xc
call fcn.10002790
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x17]
lea ecx, [esi + 0x10ec]
push eax
mov byte [esp + 0x2c], 0xd
mov dword [esi + 0x10e8], 0x7d0
call fcn.1001ceb0
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x17]
lea ecx, [esi + 0x110c]
push eax
mov byte [esp + 0x2c], 0xe
call fcn.1001ceb0
mov byte [esp + 0x24], 0xf
lea ecx, [esi + 0x112c]
call fcn.10010c60
mov dword [esi + 0x116c], 0x8000
mov dword [esi + 0x1170], ebx
lea ecx, [esi + 0x1178]
mov byte [esp + 0x24], 0x11
mov dword [esi + 0x1174], ebx
call fcn.1004fdb0
mov dword [esi + 0x1194], ebx
mov byte [esi + 0x1198], bl
mov dword [esi + 0x119c], ebx
mov byte [esi + 0x11a0], bl
mov byte [esi + 0x11a1], bl
mov byte [esi + 0x11a2], bl
mov dword [esi + 0x11a4], ebx
push 0x100c7ba8
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x100c7ba4
mov byte [esp + 0x2c], 0x15
call fcn.10001730
mov eax, dword [eax]
cmp eax, ebx
je 0x10022754
mov eax, dword [eax]
jmp 0x10022756
xor eax, eax
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esi + 0x119c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10022786
mov edx, dword [esi + 0x119c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x119c], ebx
mov edi, dword [esp + 0x14]
cmp edi, ebx
je 0x100227c6
lea eax, [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x100227c6
cmp edi, ebx
je 0x100227c6
mov eax, dword [edi]
cmp eax, ebx
je 0x100227ad
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x100227bd
push eax
call fcn.10071dac
add esp, 4
push edi
call fcn.10071d3c
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret