Function at 0x140026960
Capabilities:
Enumerate files on windows

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1790
call fcn.1400ec240
sub rsp, rax
mov qword [rsp + 0xf0], 0xfffffffffffffffe
mov qword [rsp + 0x17c8], rbx
mov qword [rsp + 0x17d0], rbp
mov qword [rsp + 0x17d8], rsi
mov rax, qword [0x140134780]
xor rax, rsp
mov qword [rsp + 0x1780], rax
mov rsi, rcx
mov qword [rsp + 0x48], rcx
call fcn.14003c3f0
mov rcx, rax
xor edx, edx
test rax, rax
setne dl
test edx, edx
jne 0x1400269d4
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x98], rax
lea rdx, [0x1400f0e28]
test rdx, 0xffffffffffff0000
jne 0x140026a1a
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026a28
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.1400060c0
jmp 0x140026a28
lea rcx, [rsp + 0x98]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026a47
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 + 0x88], rax
lea rdx, [0x1400f0e10]
test rdx, 0xffffffffffff0000
jne 0x140026a90
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026a9e
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.1400060c0
jmp 0x140026a9e
lea rcx, [rsp + 0x88]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026abd
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 + 0x78], rax
lea rdx, [0x1400f0df8]
test rdx, 0xffffffffffff0000
jne 0x140026b00
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026b0b
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.1400060c0
jmp 0x140026b0b
lea rcx, [rsp + 0x78]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026b2a
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 + 0x68], rax
lea rdx, [0x1400f0de0]
test rdx, 0xffffffffffff0000
jne 0x140026b6d
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026b78
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1400060c0
jmp 0x140026b78
lea rcx, [rsp + 0x68]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026b97
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 rdx, [0x1400f0dc8]
test rdx, 0xffffffffffff0000
jne 0x140026bda
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026be5
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400060c0
jmp 0x140026be5
lea rcx, [rsp + 0x58]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026c04
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 + 0x50], rax
lea rdx, [0x1400f0db0]
test rdx, 0xffffffffffff0000
jne 0x140026c47
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026c52
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.1400060c0
jmp 0x140026c52
lea rcx, [rsp + 0x50]
call fcn.140006560
nop
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026c71
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 rdx, [0x1400f0d98]
test rdx, 0xffffffffffff0000
jne 0x140026cb4
movzx edi, dx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026cbf
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.1400060c0
jmp 0x140026cbf
lea rcx, [rsp + 0x70]
call fcn.140006560
nop
mov word [rsp + 0x580], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x582]
call fcn.1400a09f0
mov word [rsp + 0x1380], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x1382]
call fcn.1400a09f0
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026d1c
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 + 0xa0], rax
lea rbx, [0x1400eeb50]
mov rdi, rbx
shr rdi, 0x10
jne 0x140026d6c
movzx ebx, bx
mov ecx, ebx
call fcn.14003c170
test rax, rax
je 0x140026d7e
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.1400060c0
lea rbx, [0x1400eeb50]
jmp 0x140026d85
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.140006560
jmp 0x140026d85
lea rbx, [0x1400eeb50]
mov dword [rsp + 0x90], 0
xor r12d, r12d
mov dword [rsp + 0x38], r12d
xor r13d, r13d
call fcn.14003c3f0
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026dba
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 + 0x30], rax
call fcn.14003c3f0
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140026deb
mov ecx, 0x80004005
call fcn.140001120
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x40], rax
test rdi, rdi
jne 0x140026e23
movzx edi, bx
mov ecx, edi
call fcn.14003c170
test rax, rax
je 0x140026e31
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400060c0
jmp 0x140026e31
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140006560
nop
lea rdx, [rsp + 0xd0]
mov rcx, rsi
call fcn.140012700
nop
lea r8, [0x1400ef048]
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.140006cd0
mov r8, qword [rax]
mov edx, 0x200
lea rcx, [rsp + 0xd80]
call fcn.1400a1bd0
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
or r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140026e97
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, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140026ebb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x120]
call fcn.1400a09f0
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x140027bc7
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov r9d, 6
xor r8d, r8d
lea rdx, str.HDAUDIO
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov rbp, rax
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xf8], SafeArrayDestroyData
mov dword [rsp + 0x80], 0
lea r8, [rsp + 0xf8]
xor edx, edx
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x140027a4f
mov edi, 1
mov rbx, qword [rsp + 0x30]
nop
nop
nop
nop
mov qword [rsp + 0x20], 0
mov r9d, 0x100
lea r8, [rsp + 0x980]
lea rdx, [rsp + 0xf8]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdW]
mov rdx, qword [rsp + 0x98]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
jne 0x140027087
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
jne 0x140027087
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
jne 0x140027087
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
jne 0x140027087
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
jne 0x140027087
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
jne 0x140027087
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x980]
call fcn.14009f5d0
test rax, rax
je 0x1400279f6
lea r8, [rsp + 0x980]
mov edx, 0x100
lea rcx, [rsp + 0xb80]
call fcn.1400a1bd0
lea r8, [rsp + 0x980]
mov edx, 0x100
lea rcx, [rsp + 0x1180]
call fcn.1400a1bd0
mov word [rsp + 0x11f4], 0
add r13d, 1
mov dword [rsp + 0x60], r13d
xor ebp, ebp
mov r15d, ebp
mov word [rsp + 0xbe2], bp
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x120]
call fcn.1400a09f0
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x14002742f
nop
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1bd0
lea r8, [rsp + 0x14c]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
lea rcx, [rsp + 0x580]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x140027411
lea r9, [rsp + 0xb0]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x140027408
mov qword [rsp + 0x20], rbp
mov r9d, 0x104
lea r8, [rsp + 0x370]
mov edx, edi
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x140027408
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x370]
mov rdx, r12
mov rcx, rsi
call fcn.140003280
test eax, eax
jne 0x14002723b
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x140027416
lea r9, [rsp + 0xb0]
xor r8d, r8d
lea rdx, [rsp + 0x370]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x140027408
nop
mov qword [rsp + 0x20], rbp
mov r9d, 0x104
lea r8, [rsp + 0x370]
mov edx, 2
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x1400273b6
xor eax, eax
mov rcx, r14
lea rdi, [rsp + 0x370]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x140027304
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x140027390
cmp dword [rdx + 0x10], eax
jge 0x1400272d5
cmp dword [rbx - 0xc], eax
jl 0x140027a23
mov dword [rbx - 0x10], ebp
mov word [rbx], ax
jmp 0x140027390
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400272ed
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 + 0x30], rbx
jmp 0x140027390
mov esi, dword [rbx - 0x10]
lea rbp, [rsp + 0x370]
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 0x140027337
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140004410
mov rbx, qword [rsp + 0x30]
cmp rbp, rsi
ja 0x140027357
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 0x140027374
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x370]
mov rdx, rsi
mov rcx, rbx
call fcn.14009f640
test edi, edi
js 0x140027a2e
cmp edi, dword [rbx - 0xc]
jg 0x140027a2e
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
xor ebp, ebp
cmp dword [rbx - 0x10], 0
jl 0x1400273b6
lea rdx, [rsp + 0xb80]
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x1400273b6
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x1400273d5
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x1400273fe
jmp 0x140027260
lea r8, [rsp + 0x580]
mov edx, 0x200
lea rcx, [rsp + 0x1380]
call fcn.1400a1bd0
mov edi, 1
mov r15d, edi
mov rsi, qword [rsp + 0x48]
jmp 0x140027408
mov rsi, qword [rsp + 0x48]
mov edi, 1
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r15d, r15d
jne 0x14002742f
lea rdx, [rsp + 0x120]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140027160
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
test r15d, r15d
jne 0x1400277d1
mov word [rsp + 0xbc2], r15w
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x120]
call fcn.1400a09f0
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1bd0
mov r8, qword [0x1401398f8]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
lea r8, [0x1400f1068]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x1400277bf
nop
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1bd0
lea r8, [rsp + 0x14c]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.1400a1c80
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
lea rcx, [rsp + 0x580]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14002779c
lea r9, [rsp + 0xb0]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x140027793
mov qword [rsp + 0x20], rbp
mov r9d, 0x104
lea r8, [rsp + 0x370]
mov edx, edi
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x140027793
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x370]
mov rdx, r12
mov rcx, rsi
call fcn.140003280
test eax, eax
jne 0x1400275ab
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x1400277a6
lea r9, [rsp + 0xb0]
xor r8d, r8d
lea rdx, [rsp + 0x370]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x140027793
nop
mov qword [rsp + 0x20], rbp
mov r9d, 0x104
lea r8, [rsp + 0x370]
mov edx, 2
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002774b
xor eax, eax
mov rcx, r14
lea rdi, [rsp + 0x370]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x140027674
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x140027700
cmp dword [rdx + 0x10], eax
jge 0x140027645
cmp dword [rbx - 0xc], eax
jl 0x140027a39
mov dword [rbx - 0x10], ebp
mov word [rbx], ax
jmp 0x140027700
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002765d
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 + 0x30], rbx
jmp 0x140027700
mov esi, dword [rbx - 0x10]
lea rbp, [rsp + 0x370]
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 0x1400276a7
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140004410
mov rbx, qword [rsp + 0x30]
cmp rbp, rsi
ja 0x1400276c7
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 0x1400276e4
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x370]
mov rdx, rsi
mov rcx, rbx
call fcn.14009f640
test edi, edi
js 0x140027a44
cmp edi, dword [rbx - 0xc]
jg 0x140027a44
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
xor ebp, ebp
cmp dword [rbx - 0x10], 0
jl 0x14002774b
lea rdx, [rsp + 0xb80]
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002774b
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14002774b
cmp dword [rbx - 0x10], 0
jl 0x14002776a
lea rdx, [0x1400f0320]
mov rcx, rbx
call fcn.14009f5d0
test rax, rax
je 0x14002776a
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14002776a
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x14002778e
jmp 0x1400275d0
lea r8, [rsp + 0x580]
mov edx, 0x200
lea rcx, [rsp + 0x1380]
call fcn.1400a1bd0
mov edi, 1
mov r15d, edi
jmp 0x140027793
mov edi, 1
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r15d, r15d
jne 0x1400277bf
mov rsi, qword [rsp + 0x48]
lea rdx, [rsp + 0x120]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1400274d0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
test r15d, r15d
je 0x1400279df
mov ecx, reloc.OLEAUT32.dll_SafeArrayLock
call fcn.140001d80
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x20], rdx
mov r9d, edi
lea r8, [rsp + 0x1380]
lea rdx, [rsp + 0x1180]
xor ecx, ecx
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesW
test eax, eax
jne 0x140027872
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 0x5b4
jne 0x14002784c
lea r8, [rsp + 0xf8]
mov rbp, qword [rsp + 0xa8]
mov rdx, rbp
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
call fcn.140004840
mov r12d, dword [rsp + 0x38]
test eax, eax
mov eax, 1
cmovne r12d, eax
mov dword [rsp + 0x38], r12d
jmp 0x14002785e
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xa8]
mov r12d, dword [rsp + 0x38]
mov edx, edi
mov rcx, rsi
call fcn.14000c1e0
mov edi, 1
jmp 0x1400279ce
mov r12d, edi
mov dword [rsp + 0x38], edi
lea r8, [rsp + 0xf8]
mov rbp, qword [rsp + 0xa8]
mov rdx, rbp
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
call fcn.140004840
test eax, eax
jne 0x1400279ce
cmp dword [rsi + 0x3b110], eax
je 0x1400279c8
lea rdx, [0x1400eeb50]
lea rcx, [rsp + 0x40]
call fcn.140006560
lea r9, [rsp + 0xf8]
mov r8, rbp
lea rdx, [rsp + 0xc8]
mov rcx, rsi
call fcn.14000c010
nop
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140007c80
nop
mov rdx, qword [rsp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002790c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [0x1400eeb50]
lea rcx, [rsp + 0x40]
call fcn.14000e9a0
test al, al
je 0x1400279c3
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xe0]
call fcn.140005b50
mov rdx, rax
mov rcx, rsi
call fcn.1400183d0
mov edi, eax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0xf8]
mov rcx, rbp
call fcn.1400025e0
test eax, eax
je 0x1400279b7
test edi, edi
je 0x1400279be
movsxd rax, dword [rsi + 0x3b0e0]
imul rax, rax, 0x12c8
mov edi, 1
mov dword [rax + rsi + 0x5cc], edi
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xe8]
call fcn.140005b50
mov rdx, rax
mov rcx, rsi
call fcn.140025050
add dword [rsi + 0x3b0e0], 0xffffffff
mov rbx, qword [rsp + 0x30]
jmp 0x1400279c8
mov edi, 1
jmp 0x1400279c3
mov edi, 1
mov rbx, qword [rsp + 0x30]
mov dword [rsi + 0x5cc], edi
mov ecx, 0xa
call fcn.140001d80
mov r13d, dword [rsp + 0x60]
jmp 0x1400279f6
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xa8]
mov r12d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x60]
mov eax, dword [rsp + 0x80]
add eax, 1
mov dword [rsp + 0x80], eax
lea r8, [rsp + 0xf8]
mov edx, eax
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x140027a4f
jmp 0x140026fb0
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 rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov ecx, 0x1e
call fcn.140001d80
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027a85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027aa7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027acc
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, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027aee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027b10
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027b32
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027b54
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027b76
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027b9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x140027bbf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r12d
jmp 0x140027d25
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027be9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027c0b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027c30
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, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027c52
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027c74
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027c96
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027cb8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027cda
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140027cff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x140027d23
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rcx, qword [rsp + 0x1780]
xor rcx, rsp
call fcn.1400a1970
lea r11, [rsp + 0x1790]
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