Function at 0x1400f9120
Capabilities:
Check mutex on windows
Create process on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2e8
xor r12d, r12d
xor r15d, r15d
xor r14d, r14d
xor r13d, r13d
lea rdi, [0x1400fe25c]
mov esi, ecx
mov rbx, rdx
lea rbp, [rsp + 0x90]
call dbg.__main
lea rax, str.async
mov dword [rsp + 0x98], 0
mov qword [rsp + 0x90], rax
lea rax, str.debug
mov qword [rsp + 0xb0], rax
lea rax, str.width
mov qword [rsp + 0xd0], rax
lea rax, str.height
mov qword [rsp + 0xf0], rax
lea rax, [0x1400fe12c]
mov qword [rsp + 0xa0], 0
mov dword [rsp + 0xa8], 0x61
mov dword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xc8], 0x64
mov dword [rsp + 0xd8], 1
mov qword [rsp + 0xe0], 0
mov dword [rsp + 0xe8], 0x78
mov dword [rsp + 0xf8], 1
mov qword [rsp + 0x100], 0
mov dword [rsp + 0x108], 0x79
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x118], 1
mov qword [rsp + 0x120], 0
mov dword [rsp + 0x128], 0x72
mov qword [rsp + 0x130], 0
mov dword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
mov dword [rsp + 0x148], 0
mov dword [rsp + 0x58], 0
mov r9, rbp
lea r8, str.adx:y:r:
mov rdx, rbx
mov ecx, esi
mov qword [rsp + 0x20], 0
call dbg.getopt_long
cmp eax, 0xffffffff
je 0x1400f92b6
sub eax, 0x61
cmp eax, 0x18
ja case.0x1400f92b4.98
movsxd rax, dword [rdi + rax*4]
add rax, rdi
jmp rax
test r15d, r15d
sete al
test r12d, r12d
sete dl
or al, dl
je 0x1400f938e
nop word [rax + rax]
mov r12, qword [0x140101c70]
mov r8d, 6
lea rdx, str.Usage:
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rdx, qword [rbx]
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov r8d, 0x35
lea rdx, str.__async___width__width____height__height____fps__fps_
mov r12, rax
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov ecx, 1
call sym.exit
nop dword [rax]
mov rax, qword [0x140102420]
mov rcx, qword [rax]
call sym.atoi
mov r12d, eax
jmp 0x1400f9283
mov rax, qword [0x140102420]
mov rcx, qword [rax]
call sym.atoi
mov r15d, eax
jmp 0x1400f9283
mov rax, qword [0x140102420]
mov rcx, qword [rax]
call sym.atoi
mov dword [rsp + 0x58], eax
jmp 0x1400f9283
mov r13d, 1
jmp 0x1400f9283
mov r14d, 1
jmp 0x1400f9283
cmp dword [rsp + 0x58], 0
je case.0x1400f92b4.98
test r13b, r13b
jne 0x1400f94a3
lea rbp, [rsp + 0x150]
lea r13, [rsp + 0x160]
mov rcx, rbp
call fcn.1400ddc90
mov r8d, 7
lea rdx, str.__async
mov rcx, r13
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov r8d, 9
lea rdx, str.___width
mov rcx, r13
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov edx, r15d
mov rcx, r13
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
mov r8d, 0xa
lea rdx, str.___height
mov rcx, rax
mov r13, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov edx, r12d
mov rcx, r13
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
mov r8d, 7
lea rdx, str.___fps
mov rcx, rax
mov r12, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov edx, dword [rsp + 0x58]
mov rcx, r12
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
shl r14d, 0x1f
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x168]
sar r14d, 0x1f
and r14d, 5
call method.std::__cxx11::basic_stringbuf_char__std::char_traits_char___std::allocator_char___.str___const
mov dword [rsp + 0x28], r14d
mov r9, qword [rsp + 0x70]
lea rdx, str.open
xor ecx, ecx
mov qword [rsp + 0x20], 0
mov r8, qword [rbx]
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x80]
cmp rcx, rax
je 0x1400f949c
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
xor ecx, ecx
call sym.exit
xor ecx, ecx
lea r8, str.586291D7_3993_5607_8C32_F2E7569E1DCA
mov edx, 1
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov qword [rsp + 0x40], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x48], rax
call rax
cmp eax, 0xb7
je 0x1400f95fd
lea rbp, [rsp + 0x150]
xor eax, eax
xor r8d, r8d
xor edx, edx
mov ecx, 8
mov rdi, rbp
mov r9d, 2
mov r14d, 1
rep stosd dword [rdi], eax
mov rax, qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
lea rcx, [0x1400fe360]
mov dword [rsp + 0x150], 0x20
mov qword [rsp + 0x50], rax
call rax
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x1400f9648
mov r14d, 1
mov dword [rsp + 0x5c], r12d
mov ebx, 1
mov edi, r14d
jmp 0x1400f953f
add ebx, 1
lea edx, [rbx - 1]
mov r8, rbp
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x1400f96a4
lea rsi, [rsp + 0x64]
xor r9d, r9d
mov rdx, rbp
mov rcx, r13
mov dword [rsp + 0x64], 0
mov r8d, 1
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
mov r14d, dword [rsp + 0x64]
test r14d, r14d
je 0x1400f953c
mov edx, r14d
mov ecx, 1
mov dword [rsp + 0x68], 0
call sym.calloc
mov qword [rsp + 0x30], rsi
mov rdx, rbp
mov rcx, r13
mov dword [rsp + 0x28], r14d
mov r12, rax
lea r9, [rsp + 0x68]
mov r8d, 1
mov qword [rsp + 0x20], rax
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
je 0x1400f95f0
mov eax, dword [rsp + 0x68]
cmp eax, 1
je 0x1400f96bd
cmp eax, 7
je 0x1400f96bd
mov rcx, r12
call sym.free
jmp 0x1400f953c
mov r12, qword [0x140101c70]
mov r8d, 0x35
lea rdx, str.You_can_only_run_one_vddswitcherd_instance_at_a_time.
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400f949c
mov rcx, rdi
call sym.free
mov rcx, r13
mov r14d, 8
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov r12, qword [0x140101c70]
mov r8d, 0x27
lea rdx, str.Parsec_VDD_device_is_not_OK__got_status
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov edx, r14d
mov rcx, r12
call method.std::ostream.operator___int_
mov r8d, 1
lea rdx, [0x1400fe230]
mov r12, rax
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rcx, r12
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov rbx, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x40]
call rbx
xor ecx, ecx
call sym.exit
mov rax, qword [rsp + 0x48]
mov r14d, edi
call rax
test eax, eax
jne 0x1400f9639
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
jmp 0x1400f9648
mov rdi, qword [sym.imp.KERNEL32.dll_lstrcmpA]
mov rsi, qword [sym.imp.KERNEL32.dll_lstrlenA]
mov r14, r12
jmp 0x1400f96ff
cmp byte [r14], 0
je 0x1400f9704
mov eax, dword [rsp + 0x64]
add rax, r12
cmp r14, rax
jae 0x1400f9704
mov rdx, r14
lea rcx, str.RootParsecVDA
call rdi
test eax, eax
je 0x1400f9716
mov rcx, r14
call rsi
add eax, 1
cdqe
add r14, rax
test r14, r14
jne 0x1400f96d0
mov rcx, r12
mov edi, 8
call sym.free
jmp 0x1400f953c
lea rsi, [rsp + 0x70]
mov rdi, r12
lea rcx, [rsp + 0x6c]
xor r9d, r9d
mov r12d, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x164]
mov rdx, rsi
call qword [sym.imp.SETUPAPI.dll_CM_Get_DevNode_Status]
mov r14d, eax
test eax, eax
jne 0x1400f9631
mov eax, dword [rsp + 0x6c]
test al, 0xa
jne 0x1400f9786
mov r14d, 2
test ah, 4
je 0x1400f9786
mov eax, dword [rsp + 0x70]
cmp eax, 0x1d
je 0x1400f9986
ja 0x1400f9963
mov r14d, 6
cmp eax, 0xe
je 0x1400f9786
xor r14d, r14d
cmp eax, 0x16
sete r14b
add r14d, 3
mov rcx, rdi
call sym.free
mov rax, qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov rcx, r13
mov qword [rsp + 0x48], rax
call rax
test r14d, r14d
jne 0x1400f9648
mov rax, qword [rsp + 0x50]
mov r9d, 0x12
xor r8d, r8d
xor edx, edx
lea rbx, [0x1400fe370]
mov rcx, rbx
call rax
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x1400f992c
mov ecx, 8
mov rdi, rbp
mov eax, r14d
mov dword [rsp + 0x50], r15d
rep stosd dword [rdi], eax
mov dword [rsp + 0x5c], r12d
or rdi, 0xffffffffffffffff
mov dword [rsp + 0x150], 0x20
jmp 0x1400f98b1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbp
mov rcx, r13
mov dword [rsp + 0x70], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
mov edx, dword [rsp + 0x70]
mov ecx, 1
mov r15, rdx
call sym.calloc
mov r9d, r15d
mov rdx, rbp
mov rcx, r13
mov dword [rax], 8
mov r12, rax
mov r8, rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
test eax, eax
je 0x1400f98a5
mov dword [rsp + 0x28], 0xe0000080
lea rcx, [r12 + 4]
xor r9d, r9d
mov r8d, 3
mov qword [rsp + 0x30], 0
mov edx, 0xc0000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
lea rax, [rax - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x1400f9945
mov rcx, r12
add r14d, 1
call sym.free
xor edx, edx
mov qword [rsp + 0x20], rbp
mov r9d, r14d
mov r8, rbx
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x1400f97fc
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x5c]
mov rcx, r13
mov rax, qword [rsp + 0x48]
call rax
lea rax, [rdi - 1]
mov qword [rsp + 0x150], rdi
cmp rax, 0xfffffffffffffffd
ja 0x1400f992c
mov r9d, dword [rsp + 0x58]
mov rcx, rbp
mov r8d, r12d
mov edx, r15d
call sym.start_void_const__unsigned_long__unsigned_long__unsigned_long_
mov rcx, qword [rsp + 0x150]
mov rbx, qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400f9696
call rbx
jmp 0x1400f9696
mov r12, qword [0x140101c70]
mov r8d, 0x23
lea rdx, str.Failed_to_obtain_the_device_handle.
jmp 0x1400f967f
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x5c]
mov rcx, r13
mov rax, qword [rsp + 0x48]
call rax
mov qword [rsp + 0x150], rdi
jmp 0x1400f98f5
mov r14d, 7
cmp eax, 0x20
je 0x1400f9786
xor r14d, r14d
cmp eax, 0x2b
sete r14b
lea r14d, [r14 + r14 + 3]
jmp 0x1400f9786
mov r14d, 4
jmp 0x1400f9786