Function at 0x1400016b0
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x3f], rax
xor esi, esi
call fcn.140001310
test eax, eax
je 0x1400016fc
mov edx, eax
lea rcx, str.Parsec_VDD_device_is_not_OK__got_status__d._n
call fcn.140001010
jmp 0x140001b48
mov r14, 0xffffffffffffffff
lea r9d, [r14 + 0x13]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1400035f8]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov rdi, rax
cmp rax, r14
je 0x140001b3c
xorps xmm0, xmm0
movups xmmword [rbp + 0x1f], xmm0
movups xmmword [rbp + 0x2f], xmm0
mov dword [rbp + 0x1f], 0x20
mov r15d, esi
lea rax, [rbp + 0x1f]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [0x1400035f8]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
je 0x14000182c
mov dword [rbp - 0x29], esi
mov qword [rsp + 0x28], rsi
lea rax, [rbp - 0x29]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x1f]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
mov edx, dword [rbp - 0x29]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rbx, rax
mov dword [rax], 8
mov qword [rsp + 0x28], rsi
lea rax, [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp - 0x29]
mov r8, rbx
lea rdx, [rbp + 0x1f]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
test eax, eax
je 0x1400017fa
lea rcx, [rbx + 4]
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0xe0000080
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r14, rax
inc rax
test rax, 0xfffffffffffffffe
jne 0x14000182c
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
inc r15d
lea rax, [rbp + 0x1f]
mov qword [rsp + 0x20], rax
mov r9d, r15d
lea r8, [0x1400035f8]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x140001760
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
test r14, r14
je 0x140001b3c
cmp r14, 0xffffffffffffffff
je 0x140001b3c
mov byte [rbp - 0x25], 1
xorps xmm1, xmm1
movdqu xmmword [rbp + 7], xmm1
mov qword [rbp + 0x17], rsi
lea rax, [rbp - 0x25]
mov qword [rbp - 0x19], rax
mov qword [rbp - 0x11], r14
mov ecx, 0x10
call fcn.140001fc0
movups xmm0, xmmword [rbp - 0x19]
movups xmmword [rax], xmm0
mov qword [rbp - 0x19], rax
lea rcx, [rbp - 1]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], esi
mov r9, rax
lea r8, [0x140001db0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 9], rax
test rax, rax
je 0x140001b2d
cmp dword [rbp - 1], 0
je 0x140001b21
movaps xmm0, xmmword [rbp - 9]
movdqa xmmword [rbp - 0x19], xmm0
lea rcx, [rbp - 0x19]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x140001b21
xorps xmm0, xmm0
movdqa xmmword [rbp - 9], xmm0
lea rcx, str.Press_A_to_add_a_virtual_display._n
call fcn.140001010
lea rcx, str.Press_R_to_remove_the_last_added._n
call fcn.140001010
lea rcx, str.Press_Q_to_quit__then_unplug_all_._n_n
call fcn.140001010
mov rdi, qword [rbp + 0xf]
mov r15, qword [rbp + 7]
cmp byte [rbp - 0x25], 0
je 0x140001a37
nop word [rax + rax]
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
sub eax, 0x61
je 0x14000199a
sub eax, 0x10
je 0x140001a33
cmp eax, 1
jne 0x140001a27
mov rax, rdi
sub rax, r15
sar rax, 2
test rax, rax
je 0x140001989
add rdi, 0xfffffffffffffffc
mov ebx, dword [rdi]
movzx eax, bx
ror ax, 8
mov word [rbp - 0x19], ax
mov r9d, 2
lea r8, [rbp - 0x19]
mov edx, 0x22a008
mov rcx, r14
call fcn.1400015a0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x22a00c
mov rcx, r14
call fcn.1400015a0
mov qword [rbp + 0xf], rdi
mov edx, ebx
lea rcx, str.Removed_the_last_virtual_display__index:__d._n
jmp 0x140001a22
lea rcx, str.No_added_virtual_displays._n
call fcn.140001010
jmp 0x140001a27
mov rax, rdi
sub rax, r15
sar rax, 2
cmp rax, 8
jae 0x140001a16
xor r9d, r9d
xor r8d, r8d
mov edx, 0x22e004
mov rcx, r14
call fcn.1400015a0
mov ebx, eax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x22a00c
mov rcx, r14
call fcn.1400015a0
mov dword [rbp - 0x19], ebx
cmp rdi, rsi
je 0x1400019ef
mov dword [rdi], ebx
add rdi, 4
mov qword [rbp + 0xf], rdi
mov edx, ebx
lea rcx, str.Added_a_new_virtual_display__index:__d._n
jmp 0x140001a22
lea r8, [rbp - 0x19]
mov rdx, rdi
lea rcx, [rbp + 7]
call fcn.140001be0
mov rsi, qword [rbp + 0x17]
mov rdi, qword [rbp + 0xf]
mov r15, qword [rbp + 7]
mov edx, ebx
lea rcx, str.Added_a_new_virtual_display__index:__d._n
jmp 0x140001a22
mov edx, 8
lea rcx, str.Limit_exceeded___d___could_not_add_more_virtual_displays._n
call fcn.140001010
cmp byte [rbp - 0x25], 0
jne 0x140001910
jmp 0x140001a37
mov byte [rbp - 0x25], 0
mov rbx, r15
cmp r15, rdi
je 0x140001a7d
nop
mov eax, dword [rbx]
ror ax, 8
mov word [rbp - 0x19], ax
mov r9d, 2
lea r8, [rbp - 0x19]
mov edx, 0x22a008
mov rcx, r14
call fcn.1400015a0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x22a00c
mov rcx, r14
call fcn.1400015a0
add rbx, 4
cmp rbx, rdi
jne 0x140001a40
cmp dword [rbp - 1], 0
je 0x140001ac7
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 1], eax
jne 0x140001a9a
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
movaps xmm0, xmmword [rbp - 9]
movdqa xmmword [rbp - 0x19], xmm0
xor edx, edx
lea rcx, [rbp - 0x19]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
je 0x140001abf
mov ecx, 2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
xorps xmm0, xmm0
movdqa xmmword [rbp - 9], xmm0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
cmp dword [rbp - 1], 0
je 0x140001ade
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
test r15, r15
je 0x140001b1d
sub rsi, r15
and rsi, 0xfffffffffffffffc
mov rax, r15
cmp rsi, 0x1000
jb 0x140001b12
add rsi, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001b12
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, rsi
mov rcx, r15
call fcn.140001ffc
xor eax, eax
jmp 0x140001b4d
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 1], esi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
lea rcx, str.Failed_to_obtain_the_device_handle._n
call fcn.140001010
mov eax, 1
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.140001fa0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret