Function at 0x14002cbb0
Capabilities:
Enumerate files on windows

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x2770
call fcn.1400ec240
sub rsp, rax
mov qword [rsp + 0x138], 0xfffffffffffffffe
mov qword [rsp + 0x27a8], rbx
mov qword [rsp + 0x27b0], rbp
mov qword [rsp + 0x27b8], rsi
mov rax, qword [0x140134780]
xor rax, rsp
mov qword [rsp + 0x2760], rax
mov rbx, rcx
mov qword [rsp + 0x48], rcx
call fcn.14003c3f0
mov rdx, rax
xor ebp, ebp
mov ecx, ebp
test rax, rax
setne cl
test ecx, ecx
jne 0x14002cc26
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xb8], rax
lea rsi, str.FUNC_01VEN_10EC
mov rdi, rsi
shr rdi, 0x10
jne 0x14002cc74
movzx ebx, si
mov ecx, ebx
call fcn.14003c170
test rax, rax
je 0x14002cc86
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0xb8]
call fcn.1400060c0
mov rbx, qword [rsp + 0x48]
jmp 0x14002cc8b
mov rdx, rsi
lea rcx, [rsp + 0xb8]
call fcn.140006560
jmp 0x14002cc8b
mov rbx, qword [rsp + 0x48]
call fcn.14003c3f0
mov rdx, rax
mov ecx, ebp
test rax, rax
setne cl
test ecx, ecx
jne 0x14002ccaa
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xb0], rax
test rdi, rdi
jne 0x14002cce8
movzx edi, si
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x14002ccf9
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.1400060c0
jmp 0x14002ccf9
mov rdx, rsi
lea rcx, [rsp + 0xb0]
call fcn.140006560
nop
mov word [rsp + 0x910], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x912]
call fcn.1400a09f0
mov word [rsp + 0x1f60], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x1f62]
call fcn.1400a09f0
mov word [rsp + 0x1950], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x1952]
call fcn.1400a09f0
call fcn.14003c3f0
mov rdx, rax
xor esi, esi
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002cd77
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xd0], rax
lea rdx, [0x1400ee798]
or rbp, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x14002cdc4
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x14002cde4
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400060c0
jmp 0x14002cde4
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0xd0]
call fcn.140006310
nop
mov dword [rsp + 0x7c], esi
mov dword [rsp + 0x60], esi
mov r12d, esi
mov r13d, esi
call fcn.14003c3f0
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002ce11
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xe8], rax
call fcn.14003c3f0
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002ce45
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x40], rax
call fcn.14003c3f0
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002ce76
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rax, [0x1400eeb50]
test rax, 0xffffffffffff0000
jne 0x14002ceb8
movzx edi, ax
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x14002cec6
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.1400060c0
jmp 0x14002cec6
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140006560
nop
mov r15d, esi
mov dword [rsp + 0x64], esi
mov r14d, esi
mov dword [rsp + 0x78], esi
call fcn.14003c3f0
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002cef3
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rax, [fcn.1400049c0]
mov qword [rsp + 0x20], rax
lea r9, [0x140004980]
mov edx, 8
lea r8d, [rdx + 0x5c]
lea rcx, [rsp + 0x160]
call fcn.1400a2a50
nop
lea rcx, [rsp + 0x160]
call fcn.1400071e0
nop
mov dword [rsp + 0x68], esi
lea rdx, [rsp + 0x130]
mov rcx, rbx
call fcn.140012700
nop
lea r8, [0x1400ef048]
mov rdx, rax
lea rcx, [rsp + 0x120]
call fcn.140006cd0
mov r8, qword [rax]
mov edx, 0x200
lea rcx, [rsp + 0x1130]
call fcn.1400a1bd0
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002cfa2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x130]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002cfc5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dword [rsp + 0xc0], esi
lea rdx, [rsp + 0x108]
mov rcx, rbx
call fcn.140012700
mov r8, qword [rax]
mov edx, 0x200
lea rcx, [rsp + 0x2360]
call fcn.1400a1bd0
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002d014
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0xd8]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0xa8], rax
call fcn.14003c3f0
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002d053
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xd8], rax
lea rdx, str.RTKVHD64.sys
test rdx, 0xffffffffffff0000
jne 0x14002d09c
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x14002d0aa
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.1400060c0
jmp 0x14002d0aa
lea rcx, [rsp + 0xd8]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002d0c9
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x2360]
lea rax, [rsp + 0x2360]
test rax, 0xffffffffffff0000
jne 0x14002d11a
movzx edi, cx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x14002d147
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.1400060c0
jmp 0x14002d147
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x2360]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rsp + 0x2360]
lea rcx, [rsp + 0xc8]
call fcn.140006310
nop
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xd8]
lea r8, [rsp + 0xc8]
lea rdx, [rsp + 0xf0]
mov rcx, rbx
call fcn.140018ec0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x58]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14002d1d4
cmp dword [rdi + 0x10], 0
jl 0x14002d1c5
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002d1c5
call fcn.140004470
mov rbx, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14002d1ba
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x58], rax
jmp 0x14002d1d4
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.140006310
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002d1f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [rsp + 0xc0], 0
je 0x14002d252
lea r8, [0x1400ef048]
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x128]
call fcn.140006cd0
mov r8, qword [rax]
mov edx, 0x200
lea rcx, [rsp + 0x1130]
call fcn.1400a1bd0
mov rdx, qword [rsp + 0x128]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002d252
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x14002f0f2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov r9d, 6
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x490], 0x20
mov dword [rsp + 0xa8], esi
lea r8, [rsp + 0x490]
xor edx, edx
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
mov ecx, 1
test eax, eax
je 0x14002e70e
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
xor edi, edi
mov qword [rsp + 0x20], rdi
mov r9d, 0x104
lea r8, [rsp + 0xd10]
lea rdx, [rsp + 0x490]
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdW]
mov edx, 0x104
lea rcx, [rsp + 0xd10]
call fcn.14009fd30
lea rdx, str.HDAUDIO
lea rcx, [rsp + 0xd10]
call fcn.14009f5d0
test rax, rax
jne 0x14002d3a6
lea rdx, str.INTELAUDIO
lea rcx, [rsp + 0xd10]
call fcn.14009f5d0
test rax, rax
je 0x14002e64c
lea rdx, str.HDAUDIO
lea rcx, [rsp + 0xd10]
call fcn.14009f5d0
test rax, rax
mov eax, 1
cmovne edi, eax
lea rdx, str.INTELAUDIO
lea rcx, [rsp + 0xd10]
call fcn.14009f5d0
xor r15d, r15d
test rax, rax
mov eax, 1
cmovne r15d, eax
mov rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0xd10]
call fcn.14009f5d0
test rax, rax
je 0x14002e645
lea r8, [rsp + 0xd10]
mov edx, 0x104
lea rcx, [rsp + 0xf20]
call fcn.1400a1bd0
lea r8, [rsp + 0xd10]
mov edx, 0x104
lea rcx, [rsp + 0x1530]
call fcn.1400a1bd0
test r15d, r15d
je 0x14002d44b
mov word [rsp + 0x15aa], 0
jmp 0x14002d455
mov word [rsp + 0x15a4], 0
add r13d, 1
mov dword [rsp + 0x50], r13d
mov r13d, 1
mov dword [rsp + 0x98], r13d
test r15d, r15d
jne 0x14002d66d
test edi, edi
je 0x14002d666
mov rdi, qword [rsp + 0x48]
cmp dword [rdi + 0x3b118], r15d
je 0x14002d672
lea r8, [rsp + 0xd10]
mov edx, 0x104
lea rcx, [rsp + 0x1740]
call fcn.1400a1bd0
mov word [rsp + 0x17a2], r15w
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x1740]
repne scasw ax, word [rdi]
not rcx
sub rcx, r13
mov rdi, rcx
test ecx, ecx
jne 0x14002d52b
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14002d5b3
cmp dword [rdx + 0x10], eax
jge 0x14002d4f8
cmp dword [rsi - 0xc], eax
jl 0x14002e686
mov dword [rsi - 0x10], eax
mov word [rsi], ax
jmp 0x14002d5b3
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002d50f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x58], rax
mov rbx, qword [rsp + 0x40]
jmp 0x14002d5b3
mov ebp, dword [rsi - 0x10]
lea r12, [rsp + 0x1740]
sub r12, rsi
sar r12, 1
mov ecx, r13d
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002d55c
mov edx, edi
lea rcx, [rsp + 0x58]
call fcn.140004410
mov rsi, qword [rsp + 0x58]
cmp r12, rbp
ja 0x14002d57c
movsxd rax, edi
lea rbp, [rax + rax]
lea r8, [rsi + r12*2]
mov r9, rbp
mov rdx, rbp
mov rcx, rsi
call fcn.14009f850
jmp 0x14002d599
movsxd rax, edi
lea rbp, [rax + rax]
mov r9, rbp
lea r8, [rsp + 0x1740]
mov rdx, rbp
mov rcx, rsi
call fcn.14009f640
test edi, edi
js 0x14002e697
cmp edi, dword [rsi - 0xc]
jg 0x14002e697
mov dword [rsi - 0x10], edi
mov word [rsi + rbp], 0
lea r8, str.INTELAUDIO
lea rdx, str.HDAUDIO
lea rcx, [rsp + 0x58]
call fcn.1400066a0
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi - 8], 0
jl 0x14002d5fe
cmp rax, qword [rsi - 0x18]
jne 0x14002d5fe
lea rbp, [rsi - 0x18]
lock add dword [rsi - 8], r13d
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
jmp 0x14002d63a
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rsi - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
je 0x14002e691
mov ecx, dword [rsi - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rsi - 0x10]
add ecx, r13d
movsxd rdx, ecx
lea r9, [rdx + rdx]
mov r8, rsi
add rdx, rdx
lea rcx, [rax + 0x18]
call fcn.14009f640
lea rax, [rbp + 0x18]
mov qword [rsp + 0x118], rax
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x160]
call fcn.140008310
or rbp, 0xffffffffffffffff
mov rdi, qword [rsp + 0x48]
jmp 0x14002d672
mov rdi, qword [rsp + 0x48]
jmp 0x14002d672
mov rdi, qword [rsp + 0x48]
xor r14d, r14d
test r15d, r15d
je 0x14002d685
mov word [rsp + 0xf88], r14w
jmp 0x14002d68e
mov word [rsp + 0xf82], r14w
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x14002da3b
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
lea r8, [rsp + 0x4dc]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14002da13
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002da0a
xor esi, esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x104
lea r8, [rsp + 0x700]
lea edx, [rsi + 1]
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002da0a
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x700]
mov rdx, r12
mov rcx, rdi
call fcn.140003280
test eax, eax
jne 0x14002d7f8
mov dword [rsp + 0x68], 1
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x14002da1d
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, [rsp + 0x700]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002da0a
nop
mov qword [rsp + 0x20], rsi
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edx, 2
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002d9c7
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x700]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x14002d8c3
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14002d953
cmp dword [rdx + 0x10], eax
jge 0x14002d895
cmp dword [rbx - 0xc], eax
jl 0x14002e6a2
mov dword [rbx - 0x10], esi
mov word [rbx], ax
jmp 0x14002d953
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002d8ac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
jmp 0x14002d953
mov esi, dword [rbx - 0x10]
lea rbp, [rsp + 0x700]
sub rbp, rbx
sar rbp, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002d8f6
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.140004410
mov rbx, qword [rsp + 0x40]
cmp rbp, rsi
ja 0x14002d916
movsxd rax, edi
lea rsi, [rax + rax]
lea r8, [rbx + rbp*2]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.14009f850
jmp 0x14002d933
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x700]
mov rdx, rsi
mov rcx, rbx
call fcn.14009f640
test edi, edi
js 0x14002e6b8
cmp edi, dword [rbx - 0xc]
jg 0x14002e6b8
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
or rbp, 0xffffffffffffffff
xor esi, esi
movsxd rdi, dword [rbx - 0x10]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002d979
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.140004410
mov rbx, qword [rsp + 0x40]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.14009fd30
test edi, edi
js 0x14002e6ad
cmp edi, dword [rbx - 0xc]
jg 0x14002e6ad
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], 0
cmp dword [rbx - 0x10], 0
jl 0x14002d9c7
lea rdx, [rsp + 0xf20]
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002d9c7
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x14002d9e6
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x14002da0a
jmp 0x14002d820
mov dword [rsp + 0x68], esi
lea r8, [rsp + 0x910]
mov edx, 0x200
lea rcx, [rsp + 0x1f60]
call fcn.1400a1bd0
mov r14d, 1
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r14d, r14d
jne 0x14002da36
mov rdi, qword [rsp + 0x48]
lea rdx, [rsp + 0x4b0]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14002d712
mov rsi, qword [rsp + 0x58]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
test r14d, r14d
jne 0x14002e25d
test r15d, r15d
je 0x14002da5d
mov word [rsp + 0xf68], r14w
jmp 0x14002da67
mov word [rsp + 0xf62], 0
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x14002de3b
nop
nop
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
lea r8, [rsp + 0x4dc]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14002de18
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002de0f
xor esi, esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edi, 1
mov edx, edi
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002de0f
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x700]
mov rdx, r12
mov rcx, qword [rsp + 0x48]
call fcn.140003280
test eax, eax
jne 0x14002dbd8
mov dword [rsp + 0x68], edi
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x14002de1d
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, [rsp + 0x700]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002de0f
nop
mov qword [rsp + 0x20], rsi
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edx, 2
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002ddcc
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x700]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x14002dca3
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14002dd33
cmp dword [rdx + 0x10], eax
jge 0x14002dc75
cmp dword [rbx - 0xc], eax
jl 0x14002e6c3
mov dword [rbx - 0x10], esi
mov word [rbx], ax
jmp 0x14002dd33
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002dc8c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
jmp 0x14002dd33
mov esi, dword [rbx - 0x10]
lea rbp, [rsp + 0x700]
sub rbp, rbx
sar rbp, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002dcd6
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.140004410
mov rbx, qword [rsp + 0x40]
cmp rbp, rsi
ja 0x14002dcf6
movsxd rax, edi
lea rsi, [rax + rax]
lea r8, [rbx + rbp*2]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.14009f850
jmp 0x14002dd13
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x700]
mov rdx, rsi
mov rcx, rbx
call fcn.14009f640
test edi, edi
js 0x14002e6d9
cmp edi, dword [rbx - 0xc]
jg 0x14002e6d9
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
or rbp, 0xffffffffffffffff
xor esi, esi
movsxd rdi, dword [rbx - 0x10]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002dd59
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.140004410
mov rbx, qword [rsp + 0x40]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.14009fd30
test edi, edi
js 0x14002e6ce
cmp edi, dword [rbx - 0xc]
jg 0x14002e6ce
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], 0
cmp dword [rbx - 0x10], 0
jl 0x14002ddcc
lea rdx, [rsp + 0xf20]
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002ddcc
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14002ddcc
cmp dword [rbx - 0x10], 0
jl 0x14002ddeb
lea rdx, [0x1400f0320]
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002ddeb
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14002ddeb
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x14002de0f
jmp 0x14002dc00
mov dword [rsp + 0x68], esi
lea r8, [rsp + 0x910]
mov edx, 0x200
lea rcx, [rsp + 0x1f60]
call fcn.1400a1bd0
mov r14d, 1
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r14d, r14d
jne 0x14002de36
lea rdx, [rsp + 0x4b0]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14002daf0
mov rsi, qword [rsp + 0x58]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
test r14d, r14d
jne 0x14002e25d
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
call fcn.14003c3f0
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
je 0x14002e6fa
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xe0], rax
lea rax, str..inf
test rax, 0xffffffffffff0000
jne 0x14002dec8
movzx edi, ax
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x14002ded9
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1400060c0
jmp 0x14002ded9
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.140006560
nop
lea r8, [rsp + 0xe0]
lea rdx, [0x1401398f8]
lea rcx, [rsp + 0x100]
call fcn.140006b70
mov r8, qword [rax]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
mov rdx, qword [rsp + 0x100]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002df2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002df51
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x14002e22b
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002e211
mov qword [rsp + 0x20], r12
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edi, 1
mov edx, edi
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002e211
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x700]
mov rdx, r13
mov rcx, qword [rsp + 0x48]
call fcn.140003280
test eax, eax
jne 0x14002e021
mov dword [rsp + 0x68], edi
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
mov r12d, edi
mov r13d, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x78]
mov r15d, dword [rsp + 0x64]
xor edi, edi
jmp 0x14002e64c
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, [rsp + 0x700]
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002e211
mov rsi, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x20], r12
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edx, 2
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002e1cb
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x700]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x14002e0fe
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14002e18f
cmp dword [rdx + 0x10], eax
jge 0x14002e0c8
cmp dword [rbx - 0xc], eax
jl 0x14002e6e4
mov dword [rbx - 0x10], r12d
mov word [rbx], ax
jmp 0x14002e18f
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002e0df
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rsi, qword [rsp + 0xb0]
jmp 0x14002e18f
mov ebp, dword [rbx - 0x10]
lea r12, [rsp + 0x700]
sub r12, rbx
sar r12, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002e131
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.140004410
mov rbx, qword [rsp + 0x40]
cmp r12, rbp
ja 0x14002e151
movsxd rax, edi
lea rbp, [rax + rax]
lea r8, [rbx + r12*2]
mov r9, rbp
mov rdx, rbp
mov rcx, rbx
call fcn.14009f850
jmp 0x14002e16e
movsxd rax, edi
lea rbp, [rax + rax]
mov r9, rbp
lea r8, [rsp + 0x700]
mov rdx, rbp
mov rcx, rbx
call fcn.14009f640
test edi, edi
js 0x14002e6ef
cmp edi, dword [rbx - 0xc]
jg 0x14002e6ef
mov dword [rbx - 0x10], edi
mov word [rbx + rbp], 0
or rbp, 0xffffffffffffffff
xor r12d, r12d
lea rcx, [rsp + 0x40]
call fcn.140006ac0
test rsi, rsi
je 0x14002e1c6
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0x10], 0
jl 0x14002e1cb
mov rdx, rsi
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002e1cb
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x14002e1ea
jmp 0x14002e1cb
mov rbx, qword [rsp + 0x40]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x14002e216
jmp 0x14002e052
mov dword [rsp + 0x68], r12d
lea r8, [rsp + 0x910]
mov edx, 0x200
lea rcx, [rsp + 0x1f60]
call fcn.1400a1bd0
mov r14d, 1
jmp 0x14002e216
mov rbx, qword [rsp + 0x40]
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r14d, r14d
je 0x14002e230
mov rsi, qword [rsp + 0x58]
jmp 0x14002e25d
mov rbx, qword [rsp + 0x40]
mov r12d, dword [rsp + 0x98]
mov r13d, dword [rsp + 0x50]
test r13d, r13d
mov edi, 0
cmove r12d, edi
mov rsi, qword [rsp + 0x58]
mov r14d, dword [rsp + 0x78]
mov r15d, dword [rsp + 0x64]
jmp 0x14002e64c
xor eax, eax
mov ebp, eax
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x20], rax
mov r14d, 1
mov r9d, r14d
lea r8, [rsp + 0x1f60]
lea rdx, [rsp + 0x1530]
xor ecx, ecx
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesW
test eax, eax
jne 0x14002e2dd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 0x5b4
jne 0x14002e2c4
lea r8, [rsp + 0x490]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
call fcn.140004840
test eax, eax
je 0x14002e2c4
mov dword [rsp + 0x60], r14d
mov ebp, r14d
mov edx, edi
mov rcx, qword [rsp + 0x48]
call fcn.14000c1e0
test ebp, ebp
je 0x14002e62f
jmp 0x14002e5e2
mov r12d, r14d
mov dword [rsp + 0x60], r14d
lea r8, [rsp + 0x490]
mov r13, qword [rsp + 0xa0]
mov rdx, r13
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
call fcn.140004840
test eax, eax
jne 0x14002e5e2
cmp dword [rbp + 0x3b110], eax
je 0x14002e42f
cmp dword [rbp + 0x3b114], eax
jne 0x14002e42f
lea rdx, [0x1400eeb50]
lea rcx, [rsp + 0x70]
call fcn.140006560
lea r9, [rsp + 0x490]
mov r8, r13
lea rdx, [rsp + 0x110]
mov rcx, rbp
call fcn.14000c010
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140007c80
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002e384
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [0x1400eeb50]
lea rcx, [rsp + 0x70]
call fcn.14000e9a0
test al, al
je 0x14002e41e
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x150]
call fcn.140005b50
mov rdx, rax
mov rcx, rbp
call fcn.1400183d0
mov edi, eax
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x20], rax
mov r9d, r14d
xor r8d, r8d
lea rdx, [rsp + 0x490]
mov rcx, r13
call fcn.1400025e0
test eax, eax
je 0x14002e41e
test edi, edi
je 0x14002e41e
movsxd rax, dword [rbp + 0x3b0e0]
imul rax, rax, 0x12c8
mov dword [rax + rbp + 0x5cc], r14d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x148]
call fcn.140005b50
mov rdx, rax
mov rcx, rbp
call fcn.140025050
add dword [rbp + 0x3b0e0], 0xffffffff
mov dword [rbp + 0x5cc], r14d
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
cmp dword [rbp + 0x3b114], 0
je 0x14002e5e2
xor edx, edx
lea rcx, str.audiosrv
call fcn.140002bd0
lea rdx, [rsp + 0x7c]
mov qword [rsp + 0x20], rdx
mov r9d, r14d
lea r8, [rsp + 0x1f60]
lea rdx, [rsp + 0x1530]
xor ecx, ecx
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesW
test eax, eax
jne 0x14002e4ae
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 0x5b4
jne 0x14002e49f
lea r8, [rsp + 0x490]
mov rdx, r13
mov rcx, rbp
call fcn.140004840
test eax, eax
cmovne r12d, r14d
mov dword [rsp + 0x60], r12d
mov edx, edi
mov rcx, rbp
call fcn.14000c1e0
jmp 0x14002e5d3
lea r8, [rsp + 0x490]
mov rdx, r13
mov rcx, rbp
call fcn.140004840
test eax, eax
jne 0x14002e5d3
lea rdx, [0x1400eeb50]
lea rcx, [rsp + 0x70]
call fcn.140006560
lea r9, [rsp + 0x490]
mov r8, r13
lea rdx, [rsp + 0xf8]
mov rcx, rbp
call fcn.14000c010
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140007c80
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002e528
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [0x1400eeb50]
lea rcx, [rsp + 0x70]
call fcn.14000e9a0
test al, al
je 0x14002e5c2
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x158]
call fcn.140005b50
mov rdx, rax
mov rcx, rbp
call fcn.1400183d0
mov edi, eax
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x20], rax
mov r9d, r14d
xor r8d, r8d
lea rdx, [rsp + 0x490]
mov rcx, r13
call fcn.1400025e0
test eax, eax
je 0x14002e5c2
test edi, edi
je 0x14002e5c2
movsxd rax, dword [rbp + 0x3b0e0]
imul rax, rax, 0x12c8
mov dword [rax + rbp + 0x5cc], r14d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x140]
call fcn.140005b50
mov rdx, rax
mov rcx, rbp
call fcn.140025050
add dword [rbp + 0x3b0e0], 0xffffffff
mov dword [rbp + 0x5cc], r14d
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
mov edx, r14d
lea rcx, str.audiosrv
call fcn.140002bd0
test r15d, r15d
je 0x14002e60b
mov r14d, dword [rsp + 0x78]
add r14d, 1
mov dword [rsp + 0x78], r14d
mov r12d, dword [rsp + 0x98]
mov r13d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x64]
xor edi, edi
jmp 0x14002e64c
mov r15d, dword [rsp + 0x64]
add r15d, 1
mov dword [rsp + 0x64], r15d
mov r12d, dword [rsp + 0x98]
mov r13d, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x78]
xor edi, edi
jmp 0x14002e64c
mov r12d, r14d
mov r13d, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x78]
mov r15d, dword [rsp + 0x64]
xor edi, edi
jmp 0x14002e64c
mov r15d, dword [rsp + 0x64]
xor edi, edi
mov eax, dword [rsp + 0xa8]
add eax, 1
mov dword [rsp + 0xa8], eax
lea r8, [rsp + 0x490]
mov edx, eax
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x14002e705
or rbp, 0xffffffffffffffff
jmp 0x14002d335
mov ecx, 0x80070057
call fcn.140001120
int3
call fcn.140002f80
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80004005
call fcn.140001120
int3
or rbp, 0xffffffffffffffff
lea ecx, [rbp + 2]
jmp 0x14002e718
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
xor eax, eax
mov edi, eax
mov dword [rsp + 0x50], eax
test r12d, r12d
jne 0x14002e72d
mov edi, ecx
mov dword [rsp + 0x50], ecx
jmp 0x14002e737
test r14d, r14d
jne 0x14002e74e
test r15d, r15d
jne 0x14002e747
mov r13, qword [rsp + 0x48]
cmp dword [r13 + 0x3b118], eax
jne 0x14002e769
jmp 0x14002e753
mov r13, qword [rsp + 0x48]
jmp 0x14002e753
mov r13, qword [rsp + 0x48]
test r12d, r12d
jne 0x14002e85a
cmp dword [r13 + 0x3b118], eax
jne 0x14002e863
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, str.Rt.inf
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x14002e853
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x104
lea rax, [rsp + 0x1d50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r15d, 1
mov r8d, r15d
xor edx, edx
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfW]
test eax, eax
jne 0x14002e844
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r13
call fcn.14000c1e0
xor eax, eax
jmp 0x14002e855
mov dword [rsp + 0x60], r15d
xor eax, eax
mov edi, eax
mov dword [rsp + 0x50], eax
jmp 0x14002e855
xor eax, eax
test r12d, r12d
je 0x14002e863
test r14d, r14d
jne 0x14002edb6
cmp dword [r13 + 0x3b118], 0
je 0x14002eda7
mov r15d, eax
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x480]
test eax, eax
jle 0x14002ecb2
lea r13, [rsp + 0x160]
nop
nop
nop
nop
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
mov qword [rsp + 0x98], rax
cmp rax, 0xffffffffffffffff
je 0x14002ec53
xor esi, esi
nop
mov r14d, esi
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
lea r8, [rsp + 0x4dc]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14002ec3a
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002ec2c
mov qword [rsp + 0x20], rsi
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edx, 1
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002ec2c
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x700]
mov rdx, r12
mov rcx, qword [rsp + 0x48]
call fcn.140003280
test eax, eax
jne 0x14002ea13
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x14002ec3a
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, [rsp + 0x700]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x14002ec2c
nop
nop
nop
mov qword [rsp + 0x20], rsi
mov r9d, 0x104
lea r8, [rsp + 0x700]
mov edx, 2
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002eb9a
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x700]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x14002eae3
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14002eb73
cmp dword [rdx + 0x10], eax
jge 0x14002eab5
cmp dword [rbx - 0xc], eax
jl 0x14002ec81
mov dword [rbx - 0x10], esi
mov word [rbx], ax
jmp 0x14002eb73
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002eacc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
jmp 0x14002eb73
mov esi, dword [rbx - 0x10]
lea rbp, [rsp + 0x700]
sub rbp, rbx
sar rbp, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002eb16
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.140004410
mov rbx, qword [rsp + 0x40]
cmp rbp, rsi
ja 0x14002eb36
movsxd rax, edi
lea rsi, [rax + rax]
lea r8, [rbx + rbp*2]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.14009f850
jmp 0x14002eb53
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x700]
mov rdx, rsi
mov rcx, rbx
call fcn.14009f640
test edi, edi
js 0x14002ec8c
cmp edi, dword [rbx - 0xc]
jg 0x14002ec8c
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
or rbp, 0xffffffffffffffff
xor esi, esi
mov rdx, qword [r13]
test rdx, rdx
je 0x14002eb9a
cmp dword [rbx - 0x10], 0
jl 0x14002eb9a
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002eb9a
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x14002ebb9
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x80]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x14002ec24
jmp 0x14002ea40
add r15d, 1
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x104
lea rax, [rsp + 0x1d50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov edi, 1
mov r8d, edi
xor edx, edx
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfW]
test eax, eax
jne 0x14002ec0f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, qword [rsp + 0x48]
call fcn.14000c1e0
jmp 0x14002ec17
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x50], esi
mov r14d, edi
mov rdi, qword [rsp + 0x98]
jmp 0x14002ec2c
mov rdi, qword [rsp + 0x98]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r14d, r14d
jne 0x14002ec53
lea rdx, [rsp + 0x4b0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14002e930
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [rsp + 0xa8]
add ecx, 1
mov dword [rsp + 0xa8], ecx
add r13, 8
mov eax, dword [rsp + 0x480]
cmp ecx, eax
jge 0x14002ec97
jmp 0x14002e8a0
mov ecx, 0x80070057
call fcn.140001120
int3
mov ecx, 0x80070057
call fcn.140001120
int3
cmp r15d, eax
jl 0x14002eca7
mov rsi, qword [rsp + 0x58]
mov edi, dword [rsp + 0x50]
jmp 0x14002ecb2
mov rsi, qword [rsp + 0x58]
mov edi, dword [rsp + 0x50]
jmp 0x14002ecba
test eax, eax
jne 0x14002edc5
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, str.SST.inf
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x14002edd4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
xor r12d, r12d
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x104
lea rax, [rsp + 0x1d50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r13d, 1
mov r8d, r13d
xor edx, edx
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfW]
test eax, eax
jne 0x14002ed9d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.14000c1e0
jmp 0x14002ede1
mov dword [rsp + 0x60], r13d
jmp 0x14002efb6
mov rbx, qword [rsp + 0x48]
xor r12d, r12d
lea r13d, [r12 + 1]
jmp 0x14002ede1
mov rbx, qword [rsp + 0x48]
xor r12d, r12d
lea r13d, [r12 + 1]
jmp 0x14002ede1
mov rbx, qword [rsp + 0x48]
xor r12d, r12d
lea r13d, [r12 + 1]
jmp 0x14002ede1
mov rbx, qword [rsp + 0x48]
xor r12d, r12d
lea r13d, [r12 + 1]
test edi, edi
je 0x14002efb6
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x4b0]
call fcn.1400a09f0
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
lea rdx, [rsp + 0x4b0]
lea rcx, [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14002efad
nop
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x1950]
call fcn.1400a1bd0
lea r8, str.Rt.inf
mov edx, 0x200
lea rcx, [rsp + 0x1950]
call fcn.1400a1c80
lea rdx, [rsp + 0x1950]
lea rcx, [rsp + 0x4dc]
call fcn.14009f5d0
test rax, rax
jne 0x14002ef94
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x1950]
call fcn.1400a1bd0
lea r8, [0x1400f1338]
mov edx, 0x200
lea rcx, [rsp + 0x1950]
call fcn.1400a1c80
lea rdx, [rsp + 0x1950]
lea rcx, [rsp + 0x4dc]
call fcn.14009f5d0
test rax, rax
jne 0x14002ef94
lea r8, [rsp + 0x1130]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1bd0
lea r8, [rsp + 0x4dc]
mov edx, 0x200
lea rcx, [rsp + 0x910]
call fcn.1400a1c80
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x104
lea rax, [rsp + 0x1d50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, r13d
xor edx, edx
lea rcx, [rsp + 0x910]
call qword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfW]
test eax, eax
jne 0x14002ef8f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call fcn.14000c1e0
jmp 0x14002ef94
mov dword [rsp + 0x60], r13d
lea rdx, [rsp + 0x4b0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14002ee70
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov edi, dword [rsp + 0x60]
test edi, edi
jne 0x14002efe2
cmp dword [rsp + 0x68], edi
je 0x14002efe2
mov edx, 0xe0000228
mov rcx, qword [rsp + 0x48]
call fcn.14000c1e0
nop
lea r9, [fcn.1400049c0]
mov edx, 8
lea r8d, [rdx + 0x5c]
lea rcx, [rsp + 0x160]
call fcn.1400a29b0
nop
lea rdx, [rsi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f01c
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, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f03d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f05e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f082
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f0a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f0ca
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14002f0eb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, edi
jmp 0x14002f202
lea r9, [fcn.1400049c0]
mov edx, 8
lea r8d, [rdx + 0x5c]
lea rcx, [rsp + 0x160]
call fcn.1400a29b0
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f131
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, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f152
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f173
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f197
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f1bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f1df
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14002f200
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rcx, qword [rsp + 0x2760]
xor rcx, rsp
call fcn.1400a1970
lea r11, [rsp + 0x2770]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret