Function at 0x14005d670
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe20
mov rax, qword [0x140313918]
xor rax, rsp
mov qword [rsp + 0xe10], rax
mov qword [rsp + 0x200], rdx
mov r13, rcx
xor r12d, r12d
mov dword [rsp + 0x44], r12d
mov qword [rsp + 0x468], r12
movdqa xmm0, xmmword [0x1402cd3d0]
movdqu xmmword [rsp + 0x478], xmm0
mov word [rsp + 0x468], r12w
mov byte [rsp + 0x460], r12b
lea rdx, str.srl::SetupLib::GetNetworkDeviceInfo
lea rcx, [rsp + 0x468]
call fcn.140009b0c
nop
call fcn.14001fce0
cmp dword [rax + 8], 4
jl 0x14005d706
lea rcx, [rsp + 0x460]
call fcn.140015ae0
cmp byte [r13 + 0x28], 0
je 0x14005ea1b
mov qword [rsp + 0x98], r12
lea r8, [rsp + 0x98]
lea rdx, [0x1402b2628]
mov rcx, r13
call fcn.1400608f0
test al, al
je 0x14005e427
mov ebx, r12d
xorps xmm0, xmm0
movups xmmword [rsp + 0x420], xmm0
movups xmmword [rsp + 0x430], xmm0
mov eax, 0x20
mov dword [rsp + 0x420], eax
lea r14d, [rax - 0x1f]
lea r15, str.SYSTEMCurrentControlSetControlClass_
lea r8, [rsp + 0x420]
mov edx, ebx
mov rsi, qword [rsp + 0x98]
mov rcx, rsi
call qword [r13 + 0x40]
test eax, eax
je 0x14005e418
inc ebx
mov dword [rsp + 0x48], ebx
call fcn.140010210
mov rcx, rax
test rax, rax
je 0x14005eab9
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
call fcn.140010210
mov rcx, rax
test rax, rax
je 0x14005eab9
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
call fcn.140010210
mov rcx, rax
test rax, rax
je 0x14005eab9
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x68], 0
mov word [rsp + 0x78], 0
call fcn.140010210
mov rcx, rax
test rax, rax
je 0x14005ea57
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov r8, rsi
lea rdx, [rsp + 0x420]
mov rcx, r13
call fcn.1400601b0
test al, al
je 0x14005d84a
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005d86f
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, rsi
lea rdx, [rsp + 0x420]
mov rcx, r13
call fcn.1400601b0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x58]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005d8d4
cmp dword [rbx + 0x10], 0
jl 0x14005d8c6
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005d8c6
call fcn.140002c68
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005d8b3
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x58], rax
mov rsi, qword [rsp + 0x98]
jmp 0x14005d8d4
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.140002aa8
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rsi
lea rdx, [rsp + 0x420]
mov rcx, r13
call fcn.1400601b0
test al, al
je 0x14005d962
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x60]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005d962
cmp dword [rbx + 0x10], 0
jl 0x14005d954
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005d954
call fcn.140002c68
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005d941
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x60], rax
mov rsi, qword [rsp + 0x98]
jmp 0x14005d962
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140002aa8
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, SafeArrayGetDim
mov r8, rsi
lea rdx, [rsp + 0x420]
mov rcx, r13
call fcn.1400601b0
test al, al
je 0x14005da06
mov rbx, qword [rsp + 0x30]
movsxd rdi, dword [rbx - 0x10]
test edi, edi
js 0x14005ea62
mov ecx, r14d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14005d9ba
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140002a48
mov rbx, qword [rsp + 0x30]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.1402274e8
cmp edi, dword [rbx - 0xc]
jg 0x14005ea78
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], r12w
cmp dword [rbx - 0x10], 0
jl 0x14005da69
lea rdx, str.pci_bus_0
mov rcx, rbx
call fcn.14021a0c8
test rax, rax
je 0x14005da69
sub rax, rbx
sar rax, 1
test eax, eax
js 0x14005da69
mov byte [rsp + 0x68], 1
mov qword [rsp + 0x488], r12
mov qword [rsp + 0x498], r12
mov qword [rsp + 0x4a0], 7
mov word [rsp + 0x488], r12w
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 9
mov r8, rsi
lea rdx, [rsp + 0x420]
mov rcx, r13
call fcn.1400601b0
test al, al
je 0x14005e2e1
call fcn.140010210
mov rcx, rax
test rax, rax
je 0x14005ea6d
jmp 0x14005da70
mov byte [rsp + 0x68], 0
jmp 0x14005da06
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
cmp r15, 0x10000
jae 0x14005da98
movzx edx, r15w
call fcn.140010ac0
jmp 0x14005daa7
mov r8d, 0x27
mov rdx, r15
call fcn.140002aa8
nop
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rsi - 0x10]
mov rdi, rsi
mov rbx, qword [rsp + 0x50]
sub rdi, rbx
sar rdi, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x14005ea83
mov rdx, rax
mov rcx, rsi
call fcn.1402240d0
mov r12, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x14005ea8d
lea r14d, [r15 + rax]
test r14d, r14d
js 0x14005ea97
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x14005db19
mov edx, r14d
lea rcx, [rsp + 0x50]
call fcn.140002a48
mov rbx, qword [rsp + 0x50]
cmp rdi, r15
ja 0x14005db22
lea rsi, [rbx + rdi*2]
lea rcx, [rbx + r15*2]
movsxd r8, r12d
add r8, r8
je 0x14005db59
test rcx, rcx
je 0x14005db49
test rsi, rsi
je 0x14005db42
mov rdx, rsi
call fcn.14021a590
jmp 0x14005db59
xor edx, edx
call fcn.14021ac40
call fcn.14021f174
mov dword [rax], 0x16
call fcn.14021f008
cmp r14d, dword [rbx - 0xc]
jg 0x14005eaae
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
xor r12d, r12d
mov word [rbx + rax*2], r12w
mov r15d, r12d
mov qword [rsp + 0xc8], r12
mov dword [rsp + 0xd0], r12d
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xa8], r12
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14005dbd7
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0xc8], r15
mov dword [rsp + 0xd0], r12d
mov dword [rsp + 0x3c], 0x7d0
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x640]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x88]
xor r8d, r8d
lea rdx, str.DriverVersion
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14005dc33
mov eax, dword [rsp + 0x88]
dec eax
cmp eax, 1
ja 0x14005dc33
cmp dword [rsp + 0x3c], 0
jne 0x14005dc33
mov word [rsp + 0x640], r12w
lea rcx, [rsp + 0x640]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x14005dc42
mov r8d, eax
lea rdx, [rsp + 0x640]
lea rcx, [rsp + 0x70]
call fcn.140002aa8
mov dword [rsp + 0x40], 0x7d0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x640]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x8c]
xor r8d, r8d
lea rdx, str.NetCFGInstanceID
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14005dcbd
mov eax, dword [rsp + 0x8c]
dec eax
cmp eax, 1
ja 0x14005dcbd
cmp dword [rsp + 0x40], 0
jne 0x14005dcbd
mov word [rsp + 0x640], r12w
lea rdx, [rsp + 0x640]
lea rcx, [rsp + 0x400]
call fcn.140009744
nop
lea rdx, str.SYSTEMCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318_
lea rcx, [rsp + 0x360]
call fcn.140009744
nop
lea r9, [rsp + 0x400]
cmp qword [rsp + 0x418], 8
cmovae r9, qword [rsp + 0x400]
mov rsi, qword [rsp + 0x410]
mov r14, qword [rsp + 0x370]
mov rcx, qword [rsp + 0x378]
mov rax, rcx
sub rax, r14
cmp rsi, rax
ja 0x14005dd61
lea rax, [r14 + rsi]
mov qword [rsp + 0x370], rax
lea rdi, [rsp + 0x360]
cmp rcx, 8
cmovae rdi, qword [rsp + 0x360]
lea rcx, [rdi + r14*2]
lea r8, [rsi + rsi]
mov rdx, r9
call fcn.14021a590
lea rax, [r14 + rsi]
mov word [rdi + rax*2], r12w
jmp 0x14005dd76
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x360]
call fcn.140020dd0
mov rsi, qword [rsp + 0x370]
mov rcx, qword [rsp + 0x378]
mov rax, rcx
sub rax, rsi
cmp rax, 0xb
jb 0x14005ddd1
lea rax, [rsi + 0xb]
mov qword [rsp + 0x370], rax
lea rdi, [rsp + 0x360]
cmp rcx, 8
cmovae rdi, qword [rsp + 0x360]
lea rcx, [rdi + rsi*2]
mov r8d, 0x16
lea rdx, str.Connection
call fcn.14021a590
mov word [rdi + rsi*2 + 0x16], r12w
jmp 0x14005ddf3
mov qword [rsp + 0x20], SafeArrayGetDim
lea r9, str.Connection
mov edx, VariantTimeToDosDateTime
lea rcx, [rsp + 0x360]
call fcn.140020dd0
mov dword [rsp + 0x38], r12d
mov rdi, r12
mov qword [rsp + 0xe0], r12
mov dword [rsp + 0xe8], r12d
mov qword [rsp + 0xf0], r12
lea rdx, [rsp + 0x360]
cmp qword [rsp + 0x378], 8
cmovae rdx, qword [rsp + 0x360]
mov qword [rsp + 0xb0], r12
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14005de74
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0xe0], rdi
mov dword [rsp + 0xe8], r12d
mov dword [rsp + 0x90], 4
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.MediaSubType
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rax, [0x1402c62d0]
mov qword [rsp + 0x100], rax
lea rax, [0x1402c62c8]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x1a0], r12
mov qword [rsp + 0x1c8], r12
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x1d0], xmm0
or dword [rsp + 0x44], 1
lea rax, vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rsp + 0x198], rax
mov dword [rsp + 0x194], 0x80
mov qword [rsp + 0x108], r12
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x198]
call fcn.140019ad0
nop
mov rax, qword [rsp + 0x110]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rsp + rcx + 0x110], rax
mov rax, qword [rsp + 0x110]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x10c], edx
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rsp + rcx + 0x100], rax
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rsp + rcx + 0xfc], edx
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rsp + rcx + 0x100], rax
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0xfc], edx
lea rcx, [rsp + 0x118]
call fcn.140019a30
lea rax, vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x180], r12
mov dword [rsp + 0x188], r12d
mov edx, dword [rsp + 0x38]
lea rcx, [rsp + 0x110]
call fcn.140018e50
mov eax, dword [rsp + 0x38]
cmp eax, 2
jne 0x14005e00c
mov sil, 1
xor r14b, r14b
jmp 0x14005e025
cmp eax, 1
jne 0x14005e01a
xor sil, sil
movzx r14d, al
jmp 0x14005e025
movzx esi, byte [rsp + 0x79]
movzx r14d, byte [rsp + 0x78]
mov dword [rsp + 0x80], 0x190
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x4b0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x94]
xor r8d, r8d
lea rdx, str.Name
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14005e08a
mov eax, dword [rsp + 0x94]
dec eax
cmp eax, 1
ja 0x14005e08a
cmp dword [rsp + 0x80], 0
jne 0x14005e08a
mov word [rsp + 0x4b0], r12w
mov word [rsp + 0x4c0], r12w
lea rdx, str.Wi_Fi
lea rcx, [rsp + 0x4b0]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
movzx ecx, sil
test eax, eax
mov eax, 1
cmove ecx, eax
mov byte [rsp + 0x79], cl
lea rdx, str.Ethernet
lea rcx, [rsp + 0x4b0]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
movzx ecx, r14b
test eax, eax
mov r14d, 1
cmove ecx, r14d
mov byte [rsp + 0x78], cl
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rsp + rcx + 0x100], rax
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0xfc], edx
lea rcx, [rsp + 0x118]
call fcn.14001a720
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rsp + rcx + 0x100], rax
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rsp + rcx + 0xfc], edx
mov rax, qword [rsp + 0x110]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rsp + rcx + 0x110], rax
mov rax, qword [rsp + 0x110]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x10c], edx
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rsp + rcx + 0x100], rax
mov rax, qword [rsp + 0x100]
movsxd rdx, dword [rax + 4]
lea r8d, [rdx - 0x18]
mov dword [rsp + rdx + 0xfc], r8d
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x198], rax
lea rcx, [rsp + 0x198]
call fcn.140218640
nop
test rdi, rdi
je 0x14005e1e5
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rsp + 0x378]
cmp rdx, 8
jb 0x14005e22d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x360]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e228
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eaa2
call fcn.14000410c
mov qword [rsp + 0x370], r12
mov qword [rsp + 0x378], 7
mov word [rsp + 0x360], r12w
mov rdx, qword [rsp + 0x418]
cmp rdx, 8
jb 0x14005e292
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x400]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e28d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eaa8
call fcn.14000410c
mov qword [rsp + 0x410], r12
mov qword [rsp + 0x418], 7
mov word [rsp + 0x400], r12w
test r15, r15
je 0x14005e2be
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005e2da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r15, str.SYSTEMCurrentControlSetControlClass_
mov rsi, qword [rsp + 0x200]
mov rbx, qword [rsi + 8]
cmp rbx, qword [rsi + 0x10]
je 0x14005e375
mov qword [rsp + 0x210], rbx
mov rcx, qword [rsp + 0x58]
add rcx, 0xffffffffffffffe8
call fcn.140002c68
add rax, 0x18
mov qword [rbx], rax
lea rdi, [rbx + 8]
mov qword [rsp + 0xb8], rdi
mov rcx, qword [rsp + 0x60]
add rcx, 0xffffffffffffffe8
call fcn.140002c68
add rax, 0x18
mov qword [rdi], rax
movzx eax, byte [rsp + 0x68]
mov byte [rbx + 0x10], al
lea rdi, [rbx + 0x18]
mov qword [rsp + 0xb8], rdi
mov rcx, qword [rsp + 0x70]
add rcx, 0xffffffffffffffe8
call fcn.140002c68
add rax, 0x18
mov qword [rdi], rax
movzx eax, byte [rsp + 0x78]
mov byte [rbx + 0x20], al
movzx eax, byte [rsp + 0x79]
mov byte [rbx + 0x21], al
add qword [rsi + 8], 0x28
jmp 0x14005e386
lea r8, [rsp + 0x58]
mov rdx, rbx
mov rcx, rsi
call fcn.140062340
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005e3a8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005e3c9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005e3ea
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
mov ebx, dword [rsp + 0x48]
jg 0x14005d765
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005d765
mov rcx, rsi
call qword [r13 + 0x88]
jmp 0x14005ea1b
call fcn.14001fce0
cmp dword [rax + 8], 2
jl 0x14005ea1b
call fcn.14001fce0
mov rdi, rax
lea rcx, [rsp + 0x260]
call fcn.140018c50
nop
mov qword [rsp + 0x3f8], 7
mov qword [rsp + 0x3f0], 4
movabs rax, 0x4e005200410057
mov qword [rsp + 0x3e0], rax
mov word [rsp + 0x3e8], r12w
mov qword [rsp + 0x380], r12
mov rdx, r12
mov qword [rsp + 0x390], rdx
mov r8d, 7
mov qword [rsp + 0x398], r8
mov word [rsp + 0x380], r12w
mov ebx, r12d
nop dword [rax]
cmp ebx, dword [rdi + 0x10]
jge 0x14005e543
cmp ebx, 0xa
jge 0x14005e543
mov rax, r8
sub rax, rdx
lea rcx, [rsp + 0x380]
cmp rax, 2
jb 0x14005e512
lea rax, [rdx + 2]
mov qword [rsp + 0x390], rax
cmp r8, 8
cmovae rcx, qword [rsp + 0x380]
mov eax, dword [0x1402c66c0]
mov dword [rcx + rdx*2], eax
mov word [rcx + rdx*2 + 4], r12w
inc ebx
mov r8, qword [rsp + 0x398]
mov rdx, qword [rsp + 0x390]
jmp 0x14005e4b0
mov qword [rsp + 0x20], 2
lea r9, [0x1402c66c0]
mov edx, 2
call fcn.140020dd0
inc ebx
mov r8, qword [rsp + 0x398]
mov rdx, qword [rsp + 0x390]
jmp 0x14005e4b0
mov qword [rsp + 0x3c0], r12
mov qword [rsp + 0x3d0], r12
mov qword [rsp + 0x3d8], 7
mov word [rsp + 0x3c0], r12w
mov qword [rsp + 0x3a0], r12
mov qword [rsp + 0x3b0], r12
mov qword [rsp + 0x3b8], 7
mov word [rsp + 0x3a0], r12w
lea r8, [rsp + 0x3a0]
lea rdx, [rsp + 0x3c0]
mov rcx, rdi
call fcn.14001fe30
lea rdi, [rsp + 0x380]
cmp qword [rsp + 0x398], 8
cmovae rdi, qword [rsp + 0x380]
mov edx, 0x2040
lea rcx, [rsp + 0x200]
call fcn.140218738
mov rcx, qword [rsp + 0x270]
movsxd rdx, dword [rcx + 4]
lea rcx, [rsp + 0x270]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x3c0]
cmp qword [rsp + 0x3d8], 8
cmovae rdx, qword [rsp + 0x3c0]
mov r8, qword [rsp + 0x3d0]
lea rcx, [rsp + 0x270]
call fcn.140016420
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rsp + 0x98]
call fcn.140218738
mov rsi, rax
lea rdx, [0x1402c61f8]
mov rcx, rbx
call fcn.140016160
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov edx, dword [rsi + 8]
call qword [rsi]
mov edx, 6
lea rcx, [rsp + 0x218]
call fcn.140218760
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov eax, 0x30
mov word [rcx + rbx + 0x58], ax
lea edx, [rax - 0x2d]
lea rcx, [rsp + 0x228]
call fcn.14021874c
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x3a0]
cmp qword [rsp + 0x3b8], 8
cmovae rdx, qword [rsp + 0x3a0]
mov r8, qword [rsp + 0x3b0]
mov rcx, rbx
call fcn.140016420
mov rbx, rax
mov edx, 5
lea rcx, [rsp + 0x238]
call fcn.140218760
mov rsi, rax
lea rdx, [0x1402c61f8]
mov rcx, rbx
call fcn.140016160
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rsi + 8]
call qword [rsi]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov eax, 0x20
mov word [rcx + rbx + 0x58], ax
lea edx, [rax + 0x20]
lea rcx, [rsp + 0x248]
call fcn.140218738
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x3e0]
cmp qword [rsp + 0x3f8], 8
cmovae rdx, qword [rsp + 0x3e0]
mov r8, qword [rsp + 0x3f0]
mov rcx, rbx
call fcn.140016420
lea rdx, [0x1402c66f0]
mov rcx, rax
call fcn.140016160
mov rdx, rdi
mov rcx, rax
call fcn.140016160
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x140323034], eax
jg 0x14005eac4
lea rdx, [rsp + 0x440]
lea rcx, [rsp + 0x278]
call fcn.140019820
nop
mov rdx, qword [reloc.OLEAUT32.dll_VariantInit]
cmp rdx, 8
jb 0x14005e7fc
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x1403145d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e7f7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eb12
call fcn.14000410c
movups xmm0, xmmword [rsp + 0x440]
movups xmmword [0x1403145d0], xmm0
movups xmm1, xmmword [rsp + 0x450]
movups xmmword [0x1403145e0], xmm1
mov qword [rsp + 0x450], r12
mov qword [rsp + 0x458], 7
mov word [rsp + 0x440], r12w
mov rdx, qword [rsp + 0x3b8]
cmp rdx, 8
jb 0x14005e87f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x3a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e87a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eb18
call fcn.14000410c
mov qword [rsp + 0x3b0], r12
mov qword [rsp + 0x3b8], 7
mov word [rsp + 0x3a0], r12w
mov rdx, qword [rsp + 0x3d8]
cmp rdx, 8
jb 0x14005e8e4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x3c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e8df
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eb1e
call fcn.14000410c
mov qword [rsp + 0x3d0], r12
mov qword [rsp + 0x3d8], 7
mov word [rsp + 0x3c0], r12w
mov rdx, qword [rsp + 0x398]
cmp rdx, 8
jb 0x14005e949
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x380]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e944
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eb24
call fcn.14000410c
mov qword [rsp + 0x390], r12
mov qword [rsp + 0x398], 7
mov word [rsp + 0x380], r12w
mov rdx, qword [rsp + 0x3f8]
cmp rdx, 8
jb 0x14005e9ae
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x3e0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005e9a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005eb2a
call fcn.14000410c
mov qword [rsp + 0x3f0], r12
mov qword [rsp + 0x3f8], 7
mov word [rsp + 0x3e0], r12w
lea rcx, [rsp + 0x260]
call fcn.140018b40
call fcn.14001fce0
lea rdx, [0x1403145d0]
cmp qword [reloc.OLEAUT32.dll_VariantInit], 8
cmovae rdx, qword [0x1403145d0]
mov r8, qword [0x1403145e0]
mov rcx, rax
call fcn.140016420
lea rdx, str.Failed_call_to_GetDeviceSet_for_GetSoundInfo
mov rcx, rax
call fcn.140016160
mov rcx, rax
call fcn.140017370
nop
lea rcx, [rsp + 0x460]
call fcn.140017400
xor al, al
mov rcx, qword [rsp + 0xe10]
xor rcx, rsp
call fcn.140215e10
lea r11, [rsp + 0xe20]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov ecx, 0x80004005
call fcn.140002d2c
nop
mov ecx, 0x80070057
call fcn.140002d2c
nop
mov ecx, 0x80004005
call fcn.140002d2c
nop
mov ecx, 0x80070057
call fcn.140002d2c
nop
mov ecx, 0x80070057
call fcn.140002d2c
mov ecx, 0x80070057
call fcn.140002d2c
mov ecx, 0x80070057
call fcn.140002d2c
nop
call fcn.14021f028
nop
call fcn.14021f028
nop
mov ecx, 0x80070057
call fcn.140002d2c
nop
mov ecx, 0x80004005
call fcn.140002d2c
nop
lea rcx, [0x140323034]
call fcn.140216234
cmp dword [0x140323034], 0xffffffff
jne 0x14005e7a0
mov qword [0x1403145d0], r12
movdqa xmm0, xmmword [0x1402cd3d0]
movdqu xmmword [0x1403145e0], xmm0
lea rcx, [0x1402657c0]
call fcn.140216068
lea rcx, [0x140323034]
call fcn.1402161d4
nop
jmp 0x14005e7a0
call fcn.14021f028
nop
call fcn.14021f028
nop
call fcn.14021f028
nop
call fcn.14021f028
nop
call fcn.14021f028
int3