Function at 0x100b24f
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xfd4
push ebx
push 0x104
lea eax, [ebp - 0xcb4]
push eax
push 0x10029c8
push 0x1022660
call fcn.0100777d
xor ebx, ebx
push ebx
push 2
push ebx
lea eax, [ebp - 0xcb4]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
jne 0x100b2a7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10029a4
call fcn.0100a99e
pop ecx
pop ecx
jmp 0x100b9ea
push 4
push ebx
push ebx
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
jne 0x100b2d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1002978
call fcn.0100a99e
pop ecx
pop ecx
jmp 0x100b9e1
push edi
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x34]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x34]
push eax
push ebx
push dword [ebp - 4]
mov dword [ebp - 0x34], 0x1c
mov dword [ebp - 0x14], ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x100b9e0
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
inc dword [ebp - 0x14]
push 0x4a
pop ecx
xor eax, eax
push 0x41
lea edi, [ebp - 0x28c]
rep stosd dword es:[edi], eax
mov ecx, 0xc7
lea edi, [ebp - 0x5a8]
rep stosd dword es:[edi], eax
pop ecx
push ebx
lea edi, [ebp - 0x164]
rep stosd dword es:[edi], eax
push 0x104
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
mov dword [ebp - 0x28c], 0x128
mov dword [ebp - 0x5a8], 0x31c
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstallParamsA]
test eax, eax
jne 0x100b392
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002938
call fcn.0100a99e
add esp, 0xc
jmp 0x100b9c7
push 0x2001f
push 2
push ebx
push 1
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x100b9b9
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0x268]
push ecx
lea ecx, [ebp - 0xc]
push ecx
push ebx
push 0x1002930
push eax
mov dword [ebp - 8], 0x104
call esi
test eax, eax
jne 0x100b99e
cmp dword [ebp - 0xc], 1
jne 0x100b99e
push ebx
push ebx
push ebx
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0100774e
push eax
push ebx
push dword [ebp - 0x18]
call dword [sym.imp.SETUPAPI.dll_SetupGetSourceFileLocationA]
test eax, eax
jne 0x100b420
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002908
jmp 0x100b9b1
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x9b0]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
push 0x10028f8
push dword [ebp - 0x10]
mov edi, 0x100
mov dword [ebp - 8], edi
call esi
test eax, eax
jne 0x100b989
cmp dword [ebp - 0xc], 1
jne 0x100b989
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xbb0]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
push 0x10028ec
push dword [ebp - 0x10]
mov dword [ebp - 8], edi
call esi
test eax, eax
jne 0x100b974
cmp dword [ebp - 0xc], 1
jne 0x100b974
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x8b0]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
push 0x10028e0
push dword [ebp - 0x10]
mov dword [ebp - 8], edi
call esi
test eax, eax
jne 0x100b95f
cmp dword [ebp - 0xc], 1
jne 0x100b95f
push ebx
push edi
lea eax, [ebp - 0xab0]
push eax
push ebx
push 0xb
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x100b4e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x10028b0
jmp 0x100b9b1
or byte [ebp - 0x286], 1
or byte [ebp - 0x283], 8
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsA]
test eax, eax
jne 0x100b525
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002868
jmp 0x100b9b1
push 2
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
jne 0x100b550
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002834
jmp 0x100b9b1
lea eax, [ebp - 0x5a8]
push eax
xor edi, edi
push ebx
jmp 0x100b689
lea esi, [ebp - 0xab0]
lea eax, [ebp - 0x49c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100b58d
cmp cl, bl
je 0x100b589
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100b58d
inc eax
inc eax
inc esi
inc esi
cmp cl, bl
jne 0x100b56b
xor eax, eax
jmp 0x100b592
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100b680
lea esi, [ebp - 0x9b0]
lea eax, [ebp - 0x39c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100b5c8
cmp cl, bl
je 0x100b5c4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100b5c8
inc eax
inc eax
inc esi
inc esi
cmp cl, bl
jne 0x100b5a6
xor eax, eax
jmp 0x100b5cd
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100b680
push ebx
mov eax, 0x31d
push eax
mov dword [ebp - 0xfd4], eax
lea eax, [ebp - 0xfd4]
push eax
lea eax, [ebp - 0x5a8]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDriverInfoDetailA]
test eax, eax
jne 0x100b612
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x7a
jne 0x100b6d8
lea esi, [ebp - 0xbb0]
lea eax, [ebp - 0xfbc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100b640
cmp cl, bl
je 0x100b63c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100b640
inc eax
inc eax
inc esi
inc esi
cmp cl, bl
jne 0x100b61e
xor eax, eax
jmp 0x100b645
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100b680
lea esi, [ebp - 0x8b0]
lea eax, [ebp - 0xdb8]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100b677
cmp cl, bl
je 0x100b673
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100b677
inc eax
inc eax
inc esi
inc esi
cmp cl, bl
jne 0x100b655
xor eax, eax
jmp 0x100b67c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x100b6fb
lea eax, [ebp - 0x5a8]
inc edi
push eax
push edi
push 2
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoA]
test eax, eax
jne 0x100b55f
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x100280c
call fcn.0100a99e
lea eax, [ebp - 0x49c]
push eax
lea eax, [ebp - 0x59c]
push eax
push 0x10027dc
call fcn.0100a99e
add esp, 0x18
jmp 0x100b948
call esi
push eax
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002798
call fcn.0100a99e
add esp, 0x10
jmp 0x100b948
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
mov edi, 0x1002788
push edi
push dword [ebp - 0x10]
mov dword [ebp - 8], 8
call esi
test eax, eax
je 0x100b73c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x59c]
push eax
push 0x1002748
jmp 0x100b940
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x6ac]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
push 0x100273c
push dword [ebp - 0x10]
mov dword [ebp - 8], 0x104
call esi
test eax, eax
jne 0x100b92d
cmp dword [ebp - 0xc], 1
jne 0x100b92d
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
je 0x100b948
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x49c]
push eax
lea eax, [ebp - 0x59c]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002704
call fcn.0100a99e
mov esi, dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
add esp, 0x14
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x29c]
push eax
call esi
test eax, eax
je 0x100b80a
movzx eax, word [ebp - 0x3e]
push eax
movzx eax, word [ebp - 0x42]
push eax
movzx eax, word [ebp - 0x44]
push eax
lea eax, [ebp - 0x7b0]
push 0x10026f4
push eax
call sub.ntdll.dll_sprintf
lea eax, [ebp - 0x7b0]
push eax
lea eax, [ebp - 0x59c]
push eax
lea eax, [ebp - 0x268]
push eax
push 0x10026d4
call fcn.0100a99e
add esp, 0x24
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4c]
push eax
call esi
test eax, eax
je 0x100b853
movzx eax, word [ebp - 0x3e]
push eax
movzx eax, word [ebp - 0x42]
push eax
movzx eax, word [ebp - 0x44]
push eax
lea eax, [ebp - 0x7b0]
push 0x10026f4
push eax
call sub.ntdll.dll_sprintf
lea eax, [ebp - 0x7b0]
push eax
lea eax, [ebp - 0x59c]
push eax
push 0x10026a8
call fcn.0100a99e
add esp, 0x20
push 8
lea eax, [ebp - 0x29c]
push eax
push 3
push ebx
push edi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x100b888
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x59c]
push eax
push 0x1002668
call fcn.0100a99e
add esp, 0xc
push 0x41
pop ecx
xor eax, eax
lea edi, [ebp - 0x6ac]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x29c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x100b918
movzx eax, word [ebp - 0x5c]
push eax
movzx eax, word [ebp - 0x56]
push eax
movzx eax, word [ebp - 0x5a]
push eax
lea eax, [ebp - 0x6ac]
push 0x100265c
push eax
call sub.ntdll.dll_sprintf
lea eax, [ebp - 0x6ac]
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100b8d6
sub eax, edx
inc eax
push eax
lea eax, [ebp - 0x6ac]
push eax
push 1
push ebx
push 0x100273c
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x100b918
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x59c]
push eax
push 0x1002620
call fcn.0100a99e
add esp, 0xc
lea eax, [ebp - 0x59c]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002600
jmp 0x100b940
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x59c]
push eax
push 0x10025c4
call fcn.0100a99e
add esp, 0xc
push 1
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDriverInfoList]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
jmp 0x100b9b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x100258c
jmp 0x100b9b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002558
jmp 0x100b9b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x1002520
jmp 0x100b9b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x10024ec
call fcn.0100a99e
add esp, 0xc
cmp dword [ebp - 0x10], ebx
je 0x100b9c7
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x14]
push dword [ebp - 4]
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x100b304
pop esi
pop edi
push dword [ebp - 0x18]
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
pop ebx
leave
ret