Function at 0x140024510
Capabilities:
Enumerate files on windows

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1790
call fcn.1400e67f0
sub rsp, rax
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov qword [rsp + 0x17c8], rbx
mov qword [rsp + 0x17d0], rbp
mov qword [rsp + 0x17d8], rsi
mov rax, qword [0x14012e6d8]
xor rax, rsp
mov qword [rsp + 0x1780], rax
mov rsi, rcx
mov qword [rsp + 0x88], rcx
call fcn.140055b68
mov rdx, rax
xor r13d, r13d
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002458b
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xa0], rax
lea rdx, [0x1400ec380]
test rdx, 0xffffffffffff0000
jne 0x1400245d4
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x1400245e2
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.140006090
jmp 0x1400245e2
lea rcx, [rsp + 0xa0]
call fcn.140006510
nop
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x140024602
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x90], rax
lea rdx, [0x1400ec368]
test rdx, 0xffffffffffff0000
jne 0x14002464b
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x140024659
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.140006090
jmp 0x140024659
lea rcx, [rsp + 0x90]
call fcn.140006510
nop
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x140024679
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x80], rax
lea rdx, [0x1400ec350]
test rdx, 0xffffffffffff0000
jne 0x1400246c2
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x1400246d0
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140006090
jmp 0x1400246d0
lea rcx, [rsp + 0x80]
call fcn.140006510
nop
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400246f0
mov ecx, 0x80004005
call fcn.140001610
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, [0x1400ec338]
test rdx, 0xffffffffffff0000
jne 0x140024733
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x14002473e
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140006090
jmp 0x14002473e
lea rcx, [rsp + 0x70]
call fcn.140006510
nop
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002475e
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rdx, [0x1400ec320]
test rdx, 0xffffffffffff0000
jne 0x1400247a1
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x1400247ac
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140006090
jmp 0x1400247ac
lea rcx, [rsp + 0x60]
call fcn.140006510
nop
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400247cc
mov ecx, 0x80004005
call fcn.140001610
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, [0x1400ec308]
test rdx, 0xffffffffffff0000
jne 0x14002480f
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x14002481a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140006090
jmp 0x14002481a
lea rcx, [rsp + 0x58]
call fcn.140006510
nop
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002483a
mov ecx, 0x80004005
call fcn.140001610
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, [0x1400ec2f0]
test rdx, 0xffffffffffff0000
jne 0x14002487d
movzx edi, dx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x140024888
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140006090
jmp 0x140024888
lea rcx, [rsp + 0x78]
call fcn.140006510
nop
mov word [rsp + 0x580], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x582]
call fcn.14009c4e0
mov word [rsp + 0x1380], 0
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rsp + 0x1382]
call fcn.14009c4e0
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400248e6
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xa8], rax
lea rbx, [0x1400e9f40]
mov rdi, rbx
shr rdi, 0x10
jne 0x140024936
movzx ebx, bx
mov ecx, ebx
call fcn.140055990
test rax, rax
je 0x140024948
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0xa8]
call fcn.140006090
lea rbx, [0x1400e9f40]
jmp 0x14002494f
mov rdx, rbx
lea rcx, [rsp + 0xa8]
call fcn.140006510
jmp 0x14002494f
lea rbx, [0x1400e9f40]
mov dword [rsp + 0x68], r13d
mov ebp, r13d
mov dword [rsp + 0x38], r13d
mov r12d, r13d
call fcn.140055b68
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002497f
mov ecx, 0x80004005
call fcn.140001610
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.140055b68
mov r11, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400249b1
mov ecx, 0x80004005
call fcn.140001610
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x48], rax
test rdi, rdi
jne 0x1400249e9
movzx edi, bx
mov ecx, edi
call fcn.140055990
test rax, rax
je 0x1400249f7
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140006090
jmp 0x1400249f7
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.140006510
nop
lea rdx, [rsp + 0xc8]
mov rcx, rsi
call fcn.140012b20
nop
lea r8, [0x1400ea720]
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.140006c80
mov r8, qword [rax]
mov edx, 0x200
lea rcx, [rsp + 0xd80]
call fcn.14009cc40
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 0x140024a5d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
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 0x140024a81
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.14009c4e0
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009cc40
mov r8, qword [0x140131168]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
lea r8, [0x1400ec5c8]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x14002584f
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 qword [rsp + 0x50], rax
mov dword [rsp + 0xf8], SafeArrayDestroyData
mov dword [rsp + 0x98], r13d
lea r8, [rsp + 0xf8]
xor edx, edx
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
mov r15d, 0xa
test eax, eax
je 0x1400256a5
lea edi, [r15 - 5]
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x20], r13
mov r9d, 0x100
lea r8, [rsp + 0x980]
lea rdx, [rsp + 0xf8]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdW]
mov edx, r13d
mov eax, dword [0x1401302c8]
cmp eax, 0x5a
cmovl edx, edi
add eax, edx
mov dword [0x1401302c8], eax
movsxd r8, eax
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [rsi + 0x3b268]
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
mov rcx, rsi
call fcn.140002190
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
jne 0x140024c76
mov rdx, qword [rsp + 0x90]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
jne 0x140024c76
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
jne 0x140024c76
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
jne 0x140024c76
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
jne 0x140024c76
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
jne 0x140024c76
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x980]
call fcn.14009b200
test rax, rax
je 0x14002564a
lea r8, [rsp + 0x980]
mov edx, 0x100
lea rcx, [rsp + 0xb80]
call fcn.14009cc40
lea r8, [rsp + 0x980]
mov edx, 0x100
lea rcx, [rsp + 0x1180]
call fcn.14009cc40
mov word [rsp + 0x11f4], 0
add r12d, 1
mov dword [rsp + 0x3c], r12d
mov edi, r13d
mov dword [rsp + 0x40], r13d
mov eax, r13d
mov ecx, dword [0x1401302c8]
cmp ecx, 0x5a
cmovl eax, r15d
add ecx, eax
mov dword [0x1401302c8], ecx
movsxd r8, ecx
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [rsi + 0x3b268]
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
mov rcx, rsi
call fcn.140002190
mov word [rsp + 0xbe2], di
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x120]
call fcn.14009c4e0
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009cc40
mov r8, qword [0x140131168]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
lea r8, [0x1400ec5c8]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x140025065
nop
nop
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009cc40
lea r8, [rsp + 0x14c]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
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 0x140025048
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 0x14002503f
mov qword [rsp + 0x20], r13
mov r9d, 0x104
lea r8, [rsp + 0x370]
mov edx, 1
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x14002503f
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x370]
mov rdx, r12
mov rcx, rsi
call fcn.140003670
test eax, eax
jne 0x140024e6e
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x14002504c
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 0x14002503f
mov qword [rsp + 0x20], r13
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 0x140024fe7
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 0x140024f37
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x140024fc1
cmp dword [rdx + 0x10], eax
jge 0x140024f08
cmp dword [rbx - 0xc], eax
jl 0x140025679
mov dword [rbx - 0x10], r13d
mov word [rbx], ax
jmp 0x140024fc1
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140024f20
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 0x140024fc1
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 0x140024f6a
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140004670
mov rbx, qword [rsp + 0x30]
cmp rbp, rsi
ja 0x140024f8a
movsxd rax, edi
lea rsi, [rax + rax]
lea r8, [rbx + rbp*2]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.14009b340
jmp 0x140024fa7
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x370]
mov rdx, rsi
mov rcx, rbx
call fcn.14009b270
test edi, edi
js 0x140025684
cmp edi, dword [rbx - 0xc]
jg 0x140025684
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
cmp dword [rbx - 0x10], 0
jl 0x140024fe7
lea rdx, [rsp + 0xb80]
mov rcx, rbx
call fcn.14009b200
test rax, rax
je 0x140024fe7
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x140025006
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x140025033
jmp 0x140024e92
lea r8, [rsp + 0x580]
mov edx, 0x200
lea rcx, [rsp + 0x1380]
call fcn.14009cc40
mov edi, 1
mov dword [rsp + 0x40], edi
mov rsi, qword [rsp + 0x88]
jmp 0x14002503f
mov edi, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x88]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test edi, edi
jne 0x140025065
lea rdx, [rsp + 0x120]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140024d90
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindClose]
test edi, edi
jne 0x14002540d
mov word [rsp + 0xbc2], di
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x120]
call fcn.14009c4e0
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009cc40
mov r8, qword [0x140131168]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
lea r8, [0x1400ec5c8]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x1400253f4
lea r8, [rsp + 0xd80]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009cc40
lea r8, [rsp + 0x14c]
mov edx, 0x200
lea rcx, [rsp + 0x580]
call fcn.14009ccf0
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 0x1400253cf
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 0x1400253c6
mov qword [rsp + 0x20], r13
mov r9d, 0x104
lea r8, [rsp + 0x370]
mov edx, 1
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x1400253c6
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x370]
mov rdx, r12
mov rcx, rsi
call fcn.140003670
test eax, eax
jne 0x1400251e0
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x1400253db
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 0x1400253c6
mov qword [rsp + 0x20], r13
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 0x14002537e
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 0x1400252a9
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x140025333
cmp dword [rdx + 0x10], eax
jge 0x14002527a
cmp dword [rbx - 0xc], eax
jl 0x14002568f
mov dword [rbx - 0x10], r13d
mov word [rbx], ax
jmp 0x140025333
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140025292
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 0x140025333
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 0x1400252dc
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140004670
mov rbx, qword [rsp + 0x30]
cmp rbp, rsi
ja 0x1400252fc
movsxd rax, edi
lea rsi, [rax + rax]
lea r8, [rbx + rbp*2]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.14009b340
jmp 0x140025319
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rsp + 0x370]
mov rdx, rsi
mov rcx, rbx
call fcn.14009b270
test edi, edi
js 0x14002569a
cmp edi, dword [rbx - 0xc]
jg 0x14002569a
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
cmp dword [rbx - 0x10], 0
jl 0x14002537e
lea rdx, [rsp + 0xb80]
mov rcx, rbx
call fcn.14009b200
test rax, rax
je 0x14002537e
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14002537e
cmp dword [rbx - 0x10], 0
jl 0x14002539d
lea rdx, [0x1400eb960]
mov rcx, rbx
call fcn.14009b200
test rax, rax
je 0x14002539d
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14002539d
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
je 0x1400253c2
jmp 0x140025204
lea r8, [rsp + 0x580]
mov edx, 0x200
lea rcx, [rsp + 0x1380]
call fcn.14009cc40
mov edi, 1
mov dword [rsp + 0x40], edi
jmp 0x1400253c6
mov edi, dword [rsp + 0x40]
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test edi, edi
jne 0x1400253f4
mov rsi, qword [rsp + 0x88]
lea rdx, [rsp + 0x120]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140025102
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindClose]
test edi, edi
je 0x140025620
mov rsi, qword [rsp + 0x88]
mov eax, r13d
mov ecx, dword [0x1401302c8]
cmp ecx, 0x5a
mov edx, 0xa
cmovl eax, edx
add ecx, eax
mov dword [0x1401302c8], ecx
movsxd r8, ecx
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [rsi + 0x3b268]
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
mov rcx, rsi
call fcn.140002190
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x20], rdx
mov r15d, 1
mov r9d, r15d
lea r8, [rsp + 0x1380]
lea rdx, [rsp + 0x1180]
xor ecx, ecx
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesW
test eax, eax
jne 0x1400254ce
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 0x5b4
jne 0x1400254ad
lea r8, [rsp + 0xf8]
mov rdx, qword [rsp + 0x50]
mov rcx, rsi
call fcn.140004a90
mov ebp, dword [rsp + 0x38]
test eax, eax
cmovne ebp, r15d
mov dword [rsp + 0x38], ebp
jmp 0x1400254b1
mov ebp, dword [rsp + 0x38]
mov edx, edi
mov rcx, rsi
call fcn.14000c960
mov r12d, dword [rsp + 0x3c]
mov edi, 5
lea r15d, [rdi + 5]
jmp 0x14002564a
mov ebp, r15d
mov dword [rsp + 0x38], r15d
lea r8, [rsp + 0xf8]
mov rdx, qword [rsp + 0x50]
mov rcx, rsi
call fcn.140004a90
test eax, eax
jne 0x14002563c
cmp dword [rsi + 0x3b208], eax
je 0x140025609
lea rdx, [0x1400e9f40]
lea rcx, [rsp + 0x48]
call fcn.140006510
lea r9, [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov r8, rbx
lea rdx, [rsp + 0xd0]
mov rcx, rsi
call fcn.14000c790
nop
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140007fb0
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 0x140025563
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [0x1400e9f40]
lea rcx, [rsp + 0x48]
call fcn.14000f120
test al, al
je 0x140025604
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xf0]
call fcn.140005b20
mov rdx, rax
mov rcx, rsi
call fcn.1400180b0
mov edi, eax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, r15d
xor r8d, r8d
lea rdx, [rsp + 0xf8]
mov rcx, rbx
call fcn.140002b00
test eax, eax
je 0x140025604
test edi, edi
je 0x140025604
movsxd rax, dword [rsi + 0x3b1d8]
imul rax, rax, 0x12c8
mov dword [rax + rsi + 0x6c4], r15d
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xe8]
call fcn.140005b20
mov rdx, rax
mov rcx, rsi
call fcn.140022c00
add dword [rsi + 0x3b1d8], 0xffffffff
mov rbx, qword [rsp + 0x30]
jmp 0x140025609
mov rbx, qword [rsp + 0x30]
mov dword [rsi + 0x6c4], r15d
mov r12d, dword [rsp + 0x3c]
mov edi, 5
lea r15d, [rdi + 5]
jmp 0x14002564a
mov rsi, qword [rsp + 0x88]
mov ebp, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x3c]
mov edi, 5
lea r15d, [rdi + 5]
jmp 0x14002564a
mov r12d, dword [rsp + 0x3c]
mov edi, 5
lea r15d, [rdi + 5]
mov eax, dword [rsp + 0x98]
add eax, 1
mov dword [rsp + 0x98], eax
lea r8, [rsp + 0xf8]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x1400256a5
jmp 0x140024b65
mov ecx, 0x80070057
call fcn.140001610
int3
mov ecx, 0x80070057
call fcn.140001610
int3
mov ecx, 0x80070057
call fcn.140001610
int3
mov ecx, 0x80070057
call fcn.140001610
int3
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov eax, dword [0x1401302c8]
cmp eax, 0x5a
cmovl r13d, r15d
add eax, r13d
mov dword [0x1401302c8], eax
movsxd r8, eax
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [rsi + 0x3b268]
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
mov rcx, rsi
call fcn.140002190
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002570b
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 0x14002572d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140025752
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 0x140025774
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 0x140025796
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400257b8
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 0x1400257da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400257ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140025824
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x140025848
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, ebp
jmp 0x1400259b0
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140025871
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 0x140025893
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400258b8
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 0x1400258da
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 0x1400258fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002591e
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 0x140025940
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140025965
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002598a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x1400259ae
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.14009af10
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