Function at 0x4383b0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d5d00
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x5920a4]
xor eax, esp
mov dword [esp + 0x88], eax
push ebx
push esi
push edi
mov eax, dword [0x5920a4]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, edx
mov dword [esp + 0x14], ecx
mov dword [edi + 0x18c], ecx
lea ebx, [edi + 0x190]
push eax
mov ecx, ebx
mov byte [edi + 0x1f0], 0
call fcn.00497cc0
mov eax, dword [edi]
mov edx, dword [eax]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, edi
call edx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x64]
push str.Notify
push ecx
mov dword [esp + 0xb4], 0
call fcn.0045ebf0
add esp, 0xc
mov ecx, eax
call fcn.00403410
push eax
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
push 0
push 1
lea ecx, [esp + 0x68]
mov dword [edi + 0x280], eax
call fcn.00448860
push 0x56130c
mov eax, ebx
call fcn.00402a20
test al, al
jne 0x4384d6
push 0x560564
mov eax, ebx
call fcn.00402a20
test al, al
jne 0x4384d6
push str.Mutex
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x68]
push eax
call fcn.00492140
add esp, 0xc
mov ecx, eax
call fcn.00403410
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push 1
lea ecx, [esp + 0x68]
mov esi, eax
call fcn.00448860
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4f5a77
mov dword [edi + 0x284], esi
call fcn.004a0450
or ecx, 0xffffffff
mov eax, 2
call fcn.004a0400
mov ecx, 2
mov eax, 4
call fcn.004a0400
lea esi, [edi + 0x2c0]
push esi
call fcn.004a4310
mov esi, dword [esi]
mov dword [esi + 0x34], 0xffff
mov esi, edi
call fcn.0049bc60
lea eax, [esp + 0x3c]
call fcn.004a00e0
push 0x56130c
mov eax, ebx
mov byte [esp + 0xac], 1
call fcn.00402a20
test al, al
jne 0x4f5aa5
push 0x561320
mov eax, ebx
call fcn.00402a20
test al, al
jne 0x4f5b82
push 0x561324
mov eax, ebx
call fcn.00402a20
test al, al
jne 0x4f5b82
push 0x560564
mov eax, ebx
call fcn.00402a20
test al, al
jne 0x4f5af3
movzx eax, word [edi + 0x1dc]
mov esi, dword [esp + 0x14]
push eax
mov edx, esi
call fcn.004a0610
mov ecx, dword [edi + 0x1e4]
mov eax, dword [edi + 0x1e8]
add esp, 4
push ecx
lea edx, [edi + 0x1c0]
push edx
push esi
lea esi, [esp + 0x48]
call fcn.0049ccc0
mov eax, dword [esp + 0x48]
mov ecx, dword [edi + 0x288]
mov dword [edi + 0x28c], eax
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push edi
call eax
push edi
call fcn.0049eed0
mov edx, dword [edi]
mov eax, dword [edx + 0xe4]
mov ecx, edi
call eax
mov bl, 1
test bl, bl
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
je 0x438644
cmp byte [edi + 0x1f1], 0
jne 0x4f5b3f
test bl, bl
je 0x43860c
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x4386b2
mov edx, dword [edi]
mov eax, dword [edx + 0xe4]
cmp eax, method.dxdriver::EngineImpl.virtual_228
jne 0x4f5b36
mov esi, dword [edi + 0x2c0]
call fcn.00438310
cmp edx, dword [esp + 0x18]
jl 0x438638
jg 0x4386a1
cmp eax, dword [esp + 0x14]
jae 0x4386a1
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
test bl, bl
jne 0x4385e0
cmp byte [edi + 0x1f1], 0
jne 0x4f5b3f
test bl, bl
jne 0x4385e0
mov esi, edi
call fcn.0049a590
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x3c]
call fcn.004a43a0
push 0
push 1
lea ecx, [esp + 0x84]
call fcn.00448860
mov eax, esi
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004a9c82
mov esp, ebp
pop ebp
ret 4
mov ecx, edi
call fcn.00438700
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x438640
push 0
push 0
push 0
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x4386f1
mov eax, 1
and bl, al
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
test bl, bl
jne 0x4385f1
jmp 0x43860c
xor eax, eax
jmp 0x4386cc
mov edi, dword [edi + 0x280]
test edi, edi
je 0x4f5bae
push 0
push 0
push edi
push 0xffff
call dword [sym.imp.USER32.dll_PostMessageA]
lea ecx, [esp + 0x7c]
call fcn.00416880
xor eax, eax
jmp 0x43867b
movzx ecx, word [edi + 0x1dc]
mov esi, dword [esp + 0x14]
push ecx
mov edx, esi
call fcn.004a0610
mov edx, dword [edi + 0x1e4]
add esp, 4
push edx
lea eax, [edi + 0x1c0]
push eax
mov eax, dword [edi + 0x1e8]
push esi
lea esi, [esp + 0x48]
call fcn.0049ccc0
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x28c], ecx
mov ecx, dword [edi + 0x288]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
jmp 0x4385bd
push 0x560564
push ebx
call fcn.005266cf
test al, al
je 0x4f5b18
push 0x560564
push ebx
call fcn.00526615
push eax
call fcn.004ab5c3
add esp, 4
jmp 0x4f5b1e
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [edi + 0x288]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
push eax
mov eax, dword [esp + 0x18]
push eax
call edx
jmp 0x4f5ba5
mov ecx, edi
call eax
jmp 0x43862a
push 0
push 0
push 0
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
neg eax
sbb eax, eax
neg eax
and bl, al
je 0x438655
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
cmp byte [edi + 0x1f1], 0
jne 0x4f5b3f
jmp 0x438651
push 0x561320
push ebx
call fcn.005266cf
test al, al
je 0x4f5ba5
push 0x561320
push ebx
call fcn.00526615
push eax
call fcn.004ab5c3
add esp, 4
lea eax, [esp + 0x3c]
call fcn.004a43a0
lea ecx, [esp + 0x7c]
call fcn.00416880
xor eax, eax
jmp 0x43867b