Function at 0x10001da9
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x378
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x210], 0x100
cmp dword [ebp + 8], 2
jne 0x100020d3
push str.SYSTEMCurrentControlSetEnumUSBVid_058fPid_9720
lea eax, [ebp - 0x100]
push eax
call fcn.10011b5c
add esp, 8
push 0x1e
push 0
push 0x10019e04
call fcn.100118f0
add esp, 0xc
mov dword [ebp - 0x318], 0
lea ecx, [ebp - 0x314]
push ecx
push 8
push 0
lea edx, [ebp - 0x100]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
je 0x10001e32
xor eax, eax
jmp 0x10002417
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x310]
push ecx
mov edx, dword [ebp - 0x20c]
push edx
mov eax, dword [ebp - 0x314]
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0x103
je 0x100020c1
cmp dword [ebp - 0x104], 0
je 0x10001e7d
jmp 0x10001e32
lea ecx, [ebp - 0x310]
push ecx
lea edx, [ebp - 0x100]
push edx
push 0x1001908c
lea eax, [ebp - 0x208]
push eax
call fcn.10011b5c
add esp, 0x10
lea ecx, [ebp - 0x328]
push ecx
push 9
push 0
lea edx, [ebp - 0x208]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x324], eax
cmp dword [ebp - 0x324], 0
je 0x10001edf
mov eax, dword [ebp - 0x314]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x10002417
lea ecx, [ebp - 0x32c]
push ecx
push 0
lea edx, [ebp - 0x320]
push edx
push 0
push 0x10019094
mov eax, dword [ebp - 0x328]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x330], eax
cmp dword [ebp - 0x330], 0
jne 0x10002096
mov ecx, dword [ebp - 0x32c]
push ecx
call fcn.10011ad0
add esp, 4
mov dword [ebp - 0x31c], eax
lea edx, [ebp - 0x32c]
push edx
mov eax, dword [ebp - 0x31c]
push eax
push 0
push 0
push str.FriendlyName
mov ecx, dword [ebp - 0x328]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x330], eax
mov edx, dword [ebp - 0x31c]
push edx
push 0x100190b4
lea eax, [ebp - 0x208]
push eax
call fcn.10011b5c
add esp, 0xc
push 0x100190b8
lea ecx, [ebp - 0x208]
push ecx
call fcn.10011a50
add esp, 8
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
jne 0x10001fb4
mov edx, dword [ebp - 0x328]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x314]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x10002417
push str._COM
call fcn.100119d0
add esp, 4
mov ecx, dword [ebp - 0x338]
add ecx, eax
mov dword [ebp - 0x338], ecx
mov dword [ebp - 0x334], 0
mov edx, dword [ebp - 0x338]
movsx eax, byte [edx]
cmp eax, 0x29
je 0x1000201c
mov ecx, dword [ebp - 0x334]
mov edx, dword [ebp - 0x338]
mov al, byte [edx]
mov byte [ebp + ecx - 0x340], al
mov ecx, dword [ebp - 0x334]
add ecx, 1
mov dword [ebp - 0x334], ecx
mov edx, dword [ebp - 0x338]
add edx, 1
mov dword [ebp - 0x338], edx
jmp 0x10001fd9
mov eax, dword [ebp - 0x334]
mov byte [ebp + eax - 0x340], 0
lea ecx, [ebp - 0x344]
push ecx
push 0x100190c8
lea edx, [ebp - 0x340]
push edx
call fcn.10011990
add esp, 0xc
cmp dword [ebp - 0x344], 0x100
jg 0x10002087
cmp dword [ebp - 0x344], 0
jle 0x10002087
mov eax, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x344]
mov dword [eax*4 + 0x10019e04], ecx
mov edx, dword [ebp - 0x318]
add edx, 1
mov dword [ebp - 0x318], edx
mov eax, dword [ebp - 0x318]
mov dword [0x1001a2c4], eax
mov ecx, dword [ebp - 0x31c]
push ecx
call fcn.10011948
add esp, 4
mov edx, dword [ebp - 0x328]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x20c]
add eax, 1
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x210], 0x100
jmp 0x10001e32
mov ecx, dword [ebp - 0x314]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10002412
cmp dword [ebp + 8], 1
jne 0x1000240e
push str.EnumUSBAU9720
lea edx, [ebp - 0x100]
push edx
call fcn.10011b5c
add esp, 8
push 0x1e
push 0
push 0x10019e04
call fcn.100118f0
add esp, 0xc
mov dword [ebp - 0x348], 0
lea eax, [ebp - 0x314]
push eax
push 8
push 0
lea ecx, [ebp - 0x100]
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
je 0x1000213f
xor eax, eax
jmp 0x10002417
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x210]
push edx
lea eax, [ebp - 0x310]
push eax
mov ecx, dword [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x314]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0x103
je 0x100023ff
cmp dword [ebp - 0x104], 0
je 0x1000218a
jmp 0x1000213f
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x100]
push ecx
push str._s_s
lea edx, [ebp - 0x208]
push edx
call fcn.10011b5c
add esp, 0x10
lea eax, [ebp - 0x358]
push eax
push 9
push 0
lea ecx, [ebp - 0x208]
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x100021ec
mov edx, dword [ebp - 0x314]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x10002417
lea eax, [ebp - 0x35c]
push eax
push 0
lea ecx, [ebp - 0x350]
push ecx
push 0
push 0x100190e4
mov edx, dword [ebp - 0x358]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x360], eax
cmp dword [ebp - 0x360], 0
jne 0x100023d4
mov eax, dword [ebp - 0x35c]
push eax
call fcn.10011ad0
add esp, 4
mov dword [ebp - 0x34c], eax
lea ecx, [ebp - 0x35c]
push ecx
mov edx, dword [ebp - 0x34c]
push edx
push 0
push 0
push str.PortName
mov eax, dword [ebp - 0x358]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x360], eax
mov ecx, dword [ebp - 0x34c]
push ecx
push 0x100190fc
lea edx, [ebp - 0x208]
push edx
call fcn.10011b5c
add esp, 0xc
push 0x10019100
lea eax, [ebp - 0x208]
push eax
call fcn.10011a50
add esp, 8
mov dword [ebp - 0x368], eax
cmp dword [ebp - 0x368], 0
jne 0x100022c1
mov ecx, dword [ebp - 0x358]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0x314]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x10002417
push 0x10019104
call fcn.100119d0
add esp, 4
mov ecx, dword [ebp - 0x368]
add ecx, eax
mov dword [ebp - 0x368], ecx
mov dword [ebp - 0x364], 0
mov edx, dword [ebp - 0x368]
push edx
call fcn.100119d0
add esp, 4
mov dword [ebp - 0x364], eax
mov dword [ebp - 0x374], 0
jmp 0x10002316
mov eax, dword [ebp - 0x374]
add eax, 1
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
cmp ecx, dword [ebp - 0x364]
jge 0x10002359
mov edx, dword [ebp - 0x374]
mov eax, dword [ebp - 0x368]
mov cl, byte [eax]
mov byte [ebp + edx - 0x370], cl
mov edx, dword [ebp - 0x374]
add edx, 1
mov dword [ebp - 0x374], edx
mov eax, dword [ebp - 0x368]
add eax, 1
mov dword [ebp - 0x368], eax
jmp 0x10002307
mov ecx, dword [ebp - 0x364]
mov byte [ebp + ecx - 0x370], 0
lea edx, [ebp - 0x378]
push edx
push 0x10019108
lea eax, [ebp - 0x370]
push eax
call fcn.10011990
add esp, 0xc
cmp dword [ebp - 0x378], 0x100
jg 0x100023c5
cmp dword [ebp - 0x378], 0
jle 0x100023c5
mov ecx, dword [ebp - 0x348]
mov edx, dword [ebp - 0x378]
mov dword [ecx*4 + 0x10019e04], edx
mov eax, dword [ebp - 0x348]
add eax, 1
mov dword [ebp - 0x348], eax
mov ecx, dword [ebp - 0x348]
mov dword [0x1001a2c4], ecx
mov edx, dword [ebp - 0x34c]
push edx
call fcn.10011948
add esp, 4
mov eax, dword [ebp - 0x358]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x20c]
add ecx, 1
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x210], 0x100
jmp 0x1000213f
mov edx, dword [ebp - 0x314]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10002412
xor eax, eax
jmp 0x10002417
mov eax, 1
mov esp, ebp
pop ebp
ret