Function at 0x403a20
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f67f6
mov eax, dword fs:[0]
push eax
sub esp, 0x23c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536ed4]
xor eax, esp
push eax
lea eax, [esp + 0x250]
mov dword fs:[0], eax
mov ebp, ecx
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 0x80ff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call dword [sym.imp.USER32.dll_SetProcessDPIAware]
mov ecx, ebp
call fcn.004c443c
push 0x5010c8
mov ecx, ebp
call fcn.004c5295
lea ecx, [esp + 0x30]
call fcn.004c4a8d
mov dword [esp + 0x30], vtable.CCplCommandLine.0
xor edi, edi
mov dword [esp + 0x258], edi
mov ecx, dword [ebp + 0x48]
lea esi, [ebp + 0xa4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], 0xffff
call fcn.00404f10
cmp dword [ebp + 0x104], edi
je 0x403b6b
mov eax, dword [ebp + 0x12c]
test al, 8
je 0x403b19
push 0x7b4
call fcn.004bb012
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, edi
mov byte [esp + 0x258], 1
je 0x403b00
push eax
call fcn.00408680
jmp 0x403b02
xor eax, eax
cmp eax, edi
mov byte [esp + 0x258], 0
mov ecx, eax
je 0x403e6e
jmp 0x403e65
test al, 0x10
je 0x403e6e
push 0x7b4
call fcn.004bb012
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, edi
mov byte [esp + 0x258], 2
je 0x403b57
push eax
call fcn.00408680
mov byte [esp + 0x258], 0
mov dword [esp + 0x1c], eax
cmp eax, edi
jmp 0x403e5f
xor eax, eax
mov byte [esp + 0x258], al
mov dword [esp + 0x1c], eax
cmp eax, edi
jmp 0x403e5f
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexW]
push str.Mutex_B945EE5C_6F0A_4776_94CD_E9C1742AED5A
push 1
push edi
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call edi
cmp eax, 0xb7
jne 0x403b99
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
xor eax, eax
jmp 0x403ba4
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
xor ecx, ecx
test eax, eax
mov eax, dword [ebp + 0x12c]
sete cl
test al, al
mov dword [esp + 0x20], ecx
jns 0x403bf3
push str.WOV_TRAIN_Mutex_C4DEB01C_13FD_48f2_A893_0B70F7A4E324
push 1
push 0
call esi
mov esi, eax
call edi
cmp eax, 0xb7
jne 0x403be1
push esi
call ebx
xor edx, edx
xor eax, eax
test eax, eax
sete dl
mov dword [esp + 0x20], edx
jmp 0x403c24
xor edx, edx
mov eax, 1
test eax, eax
sete dl
mov dword [esp + 0x20], edx
jmp 0x403c24
test al, 1
je 0x403c24
push str.DAEMON_Mode_Mutex_83210F04_84B5_4122_8D27_0BD66FD1D12E
push 1
push 0
call esi
mov esi, eax
call edi
cmp eax, 0xb7
jne 0x403c14
push esi
call ebx
xor eax, eax
jmp 0x403c19
mov eax, 1
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x20], ecx
cmp dword [ebp + 0x100], 0
je 0x403cc9
cmp dword [esp + 0x20], 0
je 0x403c86
cmp dword [ebp + 0xfc], 0
jne 0x403c86
push 0x60
call fcn.004bb012
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x258], 3
je 0x403c63
push eax
call fcn.0044af40
jmp 0x403c65
xor eax, eax
test eax, eax
mov byte [esp + 0x258], 0
mov dword [ebp + 0x138], eax
je 0x403e6e
push ebp
call fcn.004042d0
jmp 0x403e6e
push 0x380
call fcn.004bb012
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x258], 4
je 0x403cab
push eax
call fcn.00448200
jmp 0x403cad
xor eax, eax
test eax, eax
mov byte [esp + 0x258], 0
mov esi, eax
je 0x403e6e
call fcn.004492b0
jmp 0x403e4b
cmp dword [esp + 0x20], 0
jne 0x403e39
lea edi, [esp + 0x54]
call fcn.004043a0
test eax, eax
je 0x403cf2
test byte [esp + 0x144], 4
je 0x403cf2
push 0xffffffffffffffff
call sub.IMM32.dll_ImmDisableIME
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.HDAUDIO
call fcn.00401b10
call fcn.00403f70
test eax, eax
jne 0x403d35
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.INTELAUDIO
call fcn.00401b10
call fcn.00403f70
test eax, eax
jne 0x403d35
push 1
call fcn.0044b3b0
add esp, 4
jmp 0x403e6e
push 0x380
call fcn.004bb012
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x258], 5
je 0x403d5c
push eax
call fcn.00448200
mov edi, eax
jmp 0x403d5e
xor edi, edi
test edi, edi
mov byte [esp + 0x258], 0
mov dword [esp + 0x18], edi
je 0x403e6e
push 0x7b4
call fcn.004bb012
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x258], 6
je 0x403d99
push eax
call fcn.00408680
mov esi, eax
jmp 0x403d9b
xor esi, esi
test esi, esi
mov byte [esp + 0x258], 0
mov dword [esp + 0x1c], esi
je 0x403e47
lea edx, [edi + 0x54]
lea eax, [esi + 0x54]
mov dword [esi + 0x7b0], edx
mov dword [edi + 0x100], eax
mov eax, edi
call fcn.004492b0
test eax, eax
je 0x403ddb
mov ecx, dword [edi + 0xa0]
test dword [ecx + 0x58], 0x80000000
jne 0x403e47
mov eax, esi
call fcn.00408a40
test eax, eax
je 0x403e47
push 0x60
mov dword [ebp + 0x20], esi
call fcn.004bb012
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov byte [esp + 0x258], 7
je 0x403e0b
push eax
call fcn.0044af40
jmp 0x403e0d
xor eax, eax
test eax, eax
mov byte [esp + 0x258], 0
mov dword [ebp + 0x138], eax
je 0x403e47
push eax
mov ecx, esi
call fcn.00404430
mov edx, dword [ebp + 0x138]
mov dword [edx + 0x54], edi
mov eax, dword [ebp + 0x138]
mov dword [eax + 0x58], esi
cmp dword [ebp + 0xe8], 0
je 0x403ec0
call fcn.004041f0
mov esi, dword [esp + 0x18]
test esi, esi
je 0x403e5a
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
cmp dword [esp + 0x1c], 0
je 0x403e6e
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov ecx, dword [ebp + 0x138]
test ecx, ecx
je 0x403e8b
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [ebp + 0x138], 0
mov dword [esp + 0x258], 0xffffffff
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], vtable.CCplCommandLine.0
call fcn.004c4acc
xor eax, eax
mov ecx, dword [esp + 0x250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xec], 0
jne 0x403f21
test dword [esp + 0x144], 0x20000
jne 0x403f21
cmp dword [ebp + 0xf0], 0
je 0x403ee5
push 0
push 2
jmp 0x403f1a
mov eax, dword [ebp + 0xf4]
test al, 1
je 0x403ef5
push 0
push 9
jmp 0x403f1a
test al, 2
je 0x403eff
push 0
push 0xa
jmp 0x403f1a
test al, 4
je 0x403f09
push 0
push 0xb
jmp 0x403f1a
test byte [ebp + 0x12c], 2
je 0x403f16
push 1
jmp 0x403f18
push 0
push 0
mov eax, ebp
call fcn.00404260
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call fcn.004c407d
xor edx, edx
cmp dword [esp + 0x20], edx
mov dword [esp + 0x258], 0xffffffff
sete dl
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], vtable.CCplCommandLine.0
mov esi, edx
call fcn.004c4acc
mov eax, esi
mov ecx, dword [esp + 0x250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret