Function at 0x401050
Capabilities:
Accept command line arguments
Check mutex on windows
Enumerate gui resources

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x80
mov rax, qword [0x0040a008]
xor rax, rsp
mov qword [rsp + 0x70], rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rbx, rax
test rax, rax
jne 0x401091
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rbx, rax
xor r12d, r12d
lea rcx, str.DSound.dll
mov rsi, r12
mov rbp, r12
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
lea r13d, [r12 + 1]
test rax, rax
je 0x4011b1
lea rdx, str.DirectSoundCreate
mov rcx, rax
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x20]
xor r8d, r8d
xor ecx, ecx
call rax
test eax, eax
js 0x4011a8
mov rcx, qword [rsp + 0x20]
mov r8d, r13d
mov rdx, rbx
mov rax, qword [rcx]
call qword [rax + 0x30]
test eax, eax
js 0x40119d
mov rcx, qword [rsp + 0x20]
mov eax, 2
mov word [rsp + 0x28], r13w
mov word [rsp + 0x2a], ax
mov eax, 4
mov dword [rsp + 0x2c], 0x5622
mov word [rsp + 0x34], ax
mov eax, 0x10
mov dword [rsp + 0x30], 0x15888
mov word [rsp + 0x36], ax
mov eax, 0x12
mov dword [rsp + 0x48], 0x28
mov word [rsp + 0x38], ax
lea rax, [rsp + 0x28]
mov dword [rsp + 0x4c], 0x8002
mov qword [rsp + 0x58], rax
xor eax, eax
mov dword [rsp + 0x50], 0x40998
mov dword [rsp + 0x54], r12d
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov rax, qword [rcx]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x48]
xor r9d, r9d
call qword [rax + 0x18]
test eax, eax
js 0x40119d
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov rsi, qword [rax + 0x98]
mov rbp, qword [rax + 0x60]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov r8d, 0x22
mov rbx, rax
mov eax, r12d
cmp r8w, word [rbx]
jne 0x4011d0
mov eax, r13d
add rbx, 2
movsxd rcx, eax
mov edx, 0x20
nop dword [rax + rax]
movzx eax, word [rbx]
cmp r12w, ax
je 0x4011fd
add rbx, 2
test rcx, rcx
jne 0x4011f7
cmp dx, ax
jmp 0x4011fb
cmp r8w, ax
jne 0x4011e0
cmp dx, word [rbx]
jne 0x40120b
add rbx, 2
cmp dx, word [rbx]
je 0x401202
lea r8, str.VolumeControl64
xor edx, edx
mov ecx, 0x1f0001
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
mov rdi, rax
test rax, rax
jne 0x40122c
or eax, 0xffffffff
jmp 0x401273
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.HookDll64.dll_int___cdecl_SetDirectSoundMethods_long_long___int64_____cdecl___void___long_long___int64_____cdecl___void__]
mov rcx, rbx
call qword [sym.imp.HookDll64.dll_int___cdecl_InstallHook_wchar_t____ptr64_]
lea rcx, section..text
xor edx, edx
call qword [sym.imp.USER32.dll_EnumWindows]
or edx, 0xffffffff
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call qword [sym.imp.HookDll64.dll_int___cdecl_UninstallHook_void_]
lea rcx, section..text
xor edx, edx
call qword [sym.imp.USER32.dll_EnumWindows]
xor eax, eax
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.004012b0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rdi
ret