Function at 0x140050d50
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov r15, rcx
call fcn.140049270
cmp qword [r15 + 0x10], 0
jne 0x140050db2
lea r8, str.CustomOther.cpp
mov edx, 0x1ae
lea rcx, str._VCpl__RETURN_ON_FALSE:_Line___d__File___s_n
call fcn.140055180
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
lea rsi, [0x140345b70]
or r14, 0xffffffffffffffff
xor r12d, r12d
test byte [r15 + 0x80], 2
je 0x140050f34
cmp dword [0x1403ff444], r12d
jne 0x140050dee
mov dword [0x1403ff440], 0x114
lea rcx, [0x1403ff440]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [0x1403ff444], 6
jne 0x140050f34
cmp dword [0x1403ff448], r12d
jne 0x140050f34
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x140051433
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x38], rax
mov rdx, rsi
lea rcx, [rbp + 0x38]
call fcn.140015a40
test al, al
jne 0x140050e5a
mov rax, r14
nop word [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x140050e40
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp + 0x38]
call fcn.1400105e0
nop
mov rax, qword [r15 + 0x10]
mov rbx, qword [rax + 0x1bd8]
test rbx, rbx
je 0x140050f16
mov rdi, rbx
mov rbx, qword [rbx]
mov rdi, qword [rdi + 0x10]
test rdi, rdi
je 0x140050e65
cmp dword [rdi + 0x168], 0
jne 0x140050e65
mov rax, qword [rdi]
lea rdx, [rbp + 0x38]
mov rcx, rdi
call qword [rax + 0x78]
test eax, eax
je 0x140050e65
lea rcx, [rbp + 0x38]
call fcn.14001c920
mov rcx, qword [rbp + 0x38]
cmp dword [rcx - 0x10], 0
jl 0x140050e65
lea rdx, str.DIGITALMICWAVE
call fcn.14029fa1c
test rax, rax
je 0x140050e65
sub rax, qword [rbp + 0x38]
sar rax, 1
cmp eax, 0xffffffff
je 0x140050e65
mov edx, 5
mov rcx, rdi
call fcn.1400c0350
mov dword [rsp + 0x20], r12d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call fcn.1402c2cf4
mov rdi, rax
test rax, rax
je 0x140050e65
mov rcx, rax
call fcn.140055760
mov rcx, rdi
call fcn.140055830
mov rcx, rdi
call fcn.140055900
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050f34
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test byte [r15 + 0x80], 4
je 0x140050fef
mov rax, qword [r15 + 0x10]
mov rbx, qword [rax + 0x1bd8]
test rbx, rbx
je 0x140050fef
mov rcx, rbx
mov rbx, qword [rbx]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140050f4d
xor edx, edx
call fcn.1400c0350
mov dword [rsp + 0x20], r12d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call fcn.1402c2cf4
mov r8, rax
test rax, rax
je 0x140050f4d
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x140050fb2
lea r8, str.SpkSetting.cpp
lea edx, [rcx + 0x4d]
lea rcx, str._VCpl__RETURN_FALSE_ON_FALSE:_Line___d__File___s_n
call fcn.140055180
jmp 0x140050f4d
test byte [rcx + 0x3a0], 4
je 0x140050f4d
mov eax, r12d
lea rdx, [0x1403de640]
mov rcx, rdx
cmp dword [rcx], 4
je 0x140050fdd
inc eax
add rcx, 0x18
cmp eax, 7
jb 0x140050fc8
mov rdx, r12
jmp 0x140050fe7
cdqe
lea rcx, [rax + rax*2]
lea rdx, [rdx + rcx*8]
mov rcx, r8
call fcn.1400d62e0
test dword [r15 + 0x80], 0x100
je 0x1400510ae
cmp dword [0x1403ff444], 0
jne 0x140051020
mov dword [0x1403ff440], 0x114
lea rcx, [0x1403ff440]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [0x1403ff444], 6
jne 0x1400510ae
cmp dword [0x1403ff448], 0
jne 0x1400510ae
mov rax, qword [r15 + 0x10]
mov rbx, qword [rax + 0x1bd8]
test rbx, rbx
je 0x1400510ae
mov rcx, rbx
mov rbx, qword [rbx]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140051041
cmp dword [rcx + 0x168], 0
je 0x140051041
cmp dword [rcx + 0x1d8], 8
jne 0x140051041
mov edx, 5
call fcn.1400c0350
mov dword [rsp + 0x20], r12d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call fcn.1402c2cf4
mov rdi, rax
test rax, rax
je 0x140051041
mov rcx, rax
call fcn.140055760
mov rcx, rdi
call fcn.140055830
mov rcx, rdi
call fcn.140055900
test dword [r15 + 0x80], 0x130000
je 0x140051305
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x14005143e
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x30], rax
mov rdx, rsi
lea rcx, [rbp + 0x30]
call fcn.140015a40
test al, al
jne 0x14005110b
mov rax, r14
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400510f1
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp + 0x30]
call fcn.1400105e0
nop
mov rax, qword [r15 + 0x10]
mov rsi, qword [rax + 0x1bd8]
test rsi, rsi
je 0x1400512e8
mov rbx, rsi
mov rsi, qword [rsi]
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140051116
cmp dword [rbx + 0x168], 0
jne 0x140051116
cmp dword [rbx + 0x1d8], 4
jne 0x140051116
mov rax, qword [rbx]
lea rdx, [rbp + 0x30]
mov rcx, rbx
call qword [rax + 0x78]
test eax, eax
je 0x140051116
mov edx, 2
mov rcx, rbx
call fcn.1400c0350
mov dword [rsp + 0x20], r12d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call fcn.1402c2cf4
mov rdi, rax
test rax, rax
je 0x140051116
mov rcx, qword [rbp + 0x30]
movsxd rbx, dword [rcx - 0x10]
test ebx, ebx
js 0x140051454
mov r8d, 1
sub r8d, dword [rcx - 8]
mov edx, dword [rcx - 0xc]
sub edx, ebx
or edx, r8d
jge 0x1400511b6
mov edx, ebx
lea rcx, [rbp + 0x30]
call fcn.14000ddb0
mov rcx, qword [rbp + 0x30]
lea eax, [rbx + 1]
movsxd rdx, eax
call fcn.1402a6f14
mov rax, qword [rbp + 0x30]
cmp ebx, dword [rax - 0xc]
jg 0x140051449
mov dword [rax - 0x10], ebx
mov rax, qword [rbp + 0x30]
mov word [rax + rbx*2], r12w
mov eax, dword [r15 + 0x80]
bt eax, 0x10
jae 0x140051242
mov rcx, qword [rbp + 0x30]
cmp dword [rcx - 0x10], 0
jge 0x1400511f6
mov eax, r14d
jmp 0x140051213
lea rdx, str.DIGITALMICWAVE
call fcn.14029fa1c
test rax, rax
jne 0x14005120c
mov eax, r14d
jmp 0x140051213
sub rax, qword [rbp + 0x30]
sar rax, 1
mov ebx, r12d
cmp eax, 0xffffffff
setne bl
mov rax, qword [rdi]
mov edx, ebx
mov rcx, rdi
call qword [rax + 0x38]
mov rax, qword [rdi]
mov edx, ebx
mov rcx, rdi
call qword [rax + 0x48]
mov edx, ebx
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x140051116
bt eax, 0x11
jae 0x140051298
mov rcx, qword [rbp + 0x30]
cmp dword [rcx - 0x10], 0
jge 0x140051257
mov eax, r14d
jmp 0x140051274
lea rdx, str.FRONTMICINWAVE
call fcn.14029fa1c
test rax, rax
jne 0x14005126d
mov eax, r14d
jmp 0x140051274
sub rax, qword [rbp + 0x30]
sar rax, 1
mov ebx, r12d
cmp eax, 0xffffffff
sete bl
mov rax, qword [rdi]
mov edx, ebx
mov rcx, rdi
call qword [rax + 0x38]
mov edx, ebx
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x140051116
bt eax, 0x14
jae 0x140051116
mov rcx, qword [rbp + 0x30]
cmp dword [rcx - 0x10], 0
jge 0x1400512b1
mov ecx, r14d
jmp 0x1400512d1
lea rdx, str.DIGITALMICWAVE
call fcn.14029fa1c
mov rcx, rax
test rax, rax
jne 0x1400512ca
mov ecx, r14d
jmp 0x1400512d1
sub rcx, qword [rbp + 0x30]
sar rcx, 1
mov edx, r12d
cmp ecx, 0xffffffff
setne dl
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x140051116
mov rdx, qword [rbp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x140051305
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dword [r15 + 0x80], 0x40000
je 0x140050d99
mov rcx, qword [r15 + 0x10]
movzx esi, word [rcx + 0x44a]
shl esi, 0x10
movzx eax, word [rcx + 0x448]
or esi, eax
mov rdi, qword [rcx + 0x1bd8]
test rdi, rdi
je 0x140050d99
nop dword [rax]
mov rcx, rdi
test rdi, rdi
je 0x14005145f
mov rdi, qword [rdi]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140051425
mov edx, 0xa
call fcn.1400c0350
mov dword [rsp + 0x20], r12d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call fcn.1402c2cf4
mov rbx, rax
test rax, rax
je 0x140051425
cmp esi, 0x14c0004b
je 0x1400513a3
cmp esi, 0x14c000ce
jne 0x140051425
cmp dword [rax + 0x3c], 0
je 0x1400513bd
mov r9d, 2
lea r8, [0x1403421c8]
call fcn.1400e4b90
jmp 0x1400513d6
mov r9d, 1
lea r8d, [r9 + 1]
lea rdx, [0x140342540]
mov rcx, rbx
call fcn.14000f4d0
mov r9d, 1
cmp dword [rbx + 0x3c], 0
je 0x1400513f0
lea r8, [0x1403421e0]
call fcn.1400e4b90
jmp 0x140051402
mov r8d, r9d
lea rdx, [0x140342558]
mov rcx, rbx
call fcn.14000f4d0
xor edx, edx
mov rcx, rbx
call fcn.14000fe30
mov r9d, 1
lea r8d, [r9 + 0x63]
lea rdx, [0x140342438]
mov rcx, rbx
call fcn.14000f4d0
test rdi, rdi
jne 0x140051340
jmp 0x140050d99
mov ecx, 0x80004005
call fcn.14000de90
int3
mov ecx, 0x80004005
call fcn.14000de90
nop
mov ecx, 0x80070057
call fcn.14000de90
int3
mov ecx, 0x80070057
call fcn.14000de90
nop
call fcn.1400f91a0
int3