Function at 0x402f60
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x28
push str.ATK0100_ACPI_UTILITY_Mutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x402f85
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
add esp, 0x28
ret 0x10
push ebx
push edi
push str.ATK0100_ACPI_UTILITY_Mutex
mov ebx, 1
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
mov dword [esp + 0x10], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x402fd0
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0x10], 0
call fcn.0040ded0
add esp, 4
mov dword [0x44174c], eax
call fcn.0040d8c0
test eax, eax
jne 0x402fe1
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
xor eax, eax
pop ebx
add esp, 0x28
ret 0x10
push esi
call fcn.004038c0
mov esi, eax
test esi, esi
je 0x403000
lea ecx, [esp + 0xc]
push ecx
push esi
push 0x5256534f
call fcn.0040da30
add esp, 0xc
cmp esi, 0x10
jg 0x403011
mov edx, dword [0x441758]
push edx
jmp 0x403339
lea eax, [esp + 0xc]
push eax
push 0
push 0x54494e49
call fcn.0040da30
push ebx
call fcn.00401000
lea ecx, [esp + 0x1c]
push ecx
push 0x4e554653
call fcn.0040d970
add esp, 0x18
test eax, eax
je 0x403332
mov eax, dword [esp + 0xc]
test bl, al
je 0x403332
xor esi, esi
test eax, 0xd00
je 0x403064
push ebx
call fcn.00409810
mov eax, dword [esp + 0x10]
add esp, 4
test eax, 0x1000
je 0x40306d
mov esi, ebx
test eax, 0x2000
je 0x403079
call fcn.0040fc80
call fcn.0040ba20
mov dword [0x441754], eax
call fcn.00409910
mov dword [0x441740], eax
mov eax, dword [0x441728]
test eax, eax
je 0x4030af
cmp dword [esp + 0x10], 0
jne 0x4030af
lea edx, [esp + 0x10]
push edx
call fcn.0040e0a0
mov eax, dword [0x441728]
add esp, 4
mov ecx, eax
and ecx, dword [0x441754]
mov edx, eax
neg ecx
sbb ecx, ecx
and edx, dword [esp + 0x10]
add ecx, ebx
neg edx
sbb edx, edx
add edx, ebx
and ecx, edx
xor edx, edx
cmp dword [0x441740], edx
sete dl
and ecx, edx
mov dword [0x441744], ecx
je 0x4030f4
call fcn.00409da0
call fcn.00409fb0
call fcn.00409740
mov eax, dword [0x441728]
cmp dword [0x44172c], 0
je 0x403106
test eax, eax
jne 0x403106
call fcn.0040f420
push esi
call fcn.004072b0
call fcn.0040d740
mov esi, dword [esp + 0x3c]
push esi
call fcn.00402e80
add esp, 8
test eax, eax
jne 0x403149
cmp dword [0x441744], eax
je 0x40312f
call fcn.00409fd0
push 0
call fcn.004073d0
add esp, 4
call fcn.0040c9d0
mov eax, dword [0x441758]
push eax
jmp 0x403339
call fcn.004012c0
call fcn.00403530
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
call fcn.00408520
push 0
push 0
push 0
call fcn.00408ac0
add esp, 0xc
call fcn.00408420
cmp eax, 0xffffffff
je 0x403180
mov dword [0x441738], ebx
call fcn.004084c0
cmp eax, 0xffffffff
je 0x4031a5
mov ecx, dword [section..data]
push ecx
mov dword [0x44173c], ebx
call fcn.004086b0
push eax
call fcn.00408da0
add esp, 8
cmp dword [0x441738], 0
jne 0x4031b7
cmp dword [0x44173c], 0
je 0x4031bc
call fcn.00408fc0
cmp dword [0x441728], 0
jne 0x4031f9
call fcn.004081f0
cmp dword [0x441728], 0
jne 0x4031f9
call fcn.004106c0
mov dword [0x441748], eax
call fcn.004106f0
cmp dword [0x441748], 0
je 0x4031f0
call fcn.00410c30
cmp dword [0x441728], 0
je 0x40321e
call fcn.00403480
test eax, eax
jne 0x403207
call fcn.004051e0
cmp dword [0x441728], 0
je 0x40321e
call fcn.004034c0
test eax, eax
jne 0x40321e
call fcn.00405330
call fcn.00410000
call fcn.0040b930
call fcn.0040b040
mov edx, dword [0x441734]
push eax
push edx
call fcn.0040e940
call fcn.0040ed20
push ebx
call fcn.0040b780
call fcn.004072c0
call fcn.0040f6c0
call fcn.0040c740
call fcn.0040d570
push ebx
call fcn.0040ec80
push 0
call fcn.0040f880
add esp, 0x14
cmp dword [0x441754], 0
je 0x40328c
call fcn.004040a0
cmp eax, 2
jne 0x40328c
push ebx
push 0
push str.InstAsHidSrv.exe__i
call fcn.00403ba0
add esp, 0xc
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040c9f0
test eax, eax
je 0x4032a9
push esi
call fcn.00401600
add esp, 4
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call esi
test eax, eax
je 0x403309
mov edi, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
push ebp
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x1c]
push ecx
push 0
push edx
call edi
test eax, eax
jne 0x4032f3
lea eax, [esp + 0x1c]
push eax
call ebx
lea ecx, [esp + 0x1c]
push ecx
call ebp
push 0
push 0
push 0
lea edx, [esp + 0x28]
push edx
call esi
test eax, eax
jne 0x4032d3
mov edi, dword [esp + 0x18]
pop ebp
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.00401390
mov eax, dword [0x441758]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
push edi
call esi
mov eax, dword [esp + 0x20]
pop esi
pop edi
pop ebx
add esp, 0x28
ret 0x10
mov ecx, dword [0x441758]
push ecx
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push edi
call esi
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x28
ret 0x10