Function at 0x101c4e0
Capabilities:
Delete registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x47c
mov eax, dword [0x102c22c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
xor esi, esi
cmp eax, 0xffffffff
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x450], ecx
mov dword [ebp - 0x454], esi
mov dword [ebp - 0x45c], esi
mov dword [ebp - 0x458], esi
je 0x101c8d6
push edi
push 0x4a
pop ecx
xor eax, eax
push edx
lea edi, [ebp - 0x12c]
rep stosd dword es:[edi], eax
push 0x104
lea eax, [ebp - 0x108]
push eax
mov dword [ebp - 0x12c], 0x128
mov dword [ebp - 0x124], 0x800
mov dword [ebp - 0x128], 0x830000
call fcn.0100b4e5
call dword [sym.imp.SETUPAPI.dll_SetupOpenFileQueue]
cmp eax, 0xffffffff
mov dword [ebp - 0x460], eax
jne 0x101c591
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1005c1c
call fcn.01015c5a
pop ecx
pop ecx
jmp 0x101c8d5
mov edi, dword [ebp - 0x44c]
or dword [ebp - 0x128], 0x1000008
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x12c]
push eax
push ebx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsA]
test eax, eax
jne 0x101c5c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x100770c
jmp 0x101c5e2
push 2
push ebx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
jne 0x101c5ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10076d4
call fcn.01015c5a
pop ecx
pop ecx
jmp 0x101c88f
lea eax, [ebp - 0x448]
push eax
push esi
push 2
push ebx
push edi
mov dword [ebp - 0x448], 0x31c
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoA]
test eax, eax
jne 0x101c61f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1007688
jmp 0x101c73d
cmp dword [ebp + 0x1c], 3
jne 0x101c65b
push 0x20006
push 2
push esi
push 1
push ebx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov esi, eax
cmp esi, 0xffffffff
je 0x101c65b
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push 0x1007678
push esi
call edi
push 0x1007668
push esi
call edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [sym.imp.SETUPAPI.dll_SetupDiCallClassInstaller]
push ebx
push dword [ebp - 0x44c]
push 0x17
call esi
test eax, eax
jne 0x101c681
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1007630
jmp 0x101c73d
push ebx
push dword [ebp - 0x44c]
push 0x15
call esi
test eax, eax
jne 0x101c6a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10075fc
jmp 0x101c73d
cmp dword [ebp + 0x1c], 2
jne 0x101c6e6
mov eax, dword [0x108f9bc]
mov dword [ebp - 0x468], eax
lea eax, [ebp - 0x47c]
push eax
push dword [ebp - 0x460]
mov dword [ebp - 0x46c], 1
call fcn.0100d9b8
test eax, eax
je 0x101c87f
xor edi, edi
cmp dword [ebp - 0x46c], edi
je 0x101c87f
jmp 0x101c6e8
xor edi, edi
push ebx
push dword [ebp - 0x44c]
push 0x22
call esi
test eax, eax
jne 0x101c705
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10075c4
jmp 0x101c73d
push ebx
push dword [ebp - 0x44c]
push 0x20
call esi
test eax, eax
jne 0x101c722
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1007590
jmp 0x101c73d
push ebx
push dword [ebp - 0x44c]
push 2
call esi
test eax, eax
jne 0x101c749
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1007560
call fcn.01015c5a
pop ecx
pop ecx
jmp 0x101c87f
lea eax, [ebp - 0x12c]
push eax
push ebx
push dword [ebp - 0x44c]
mov dword [ebp - 0x12c], 0x128
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstallParamsA]
test eax, eax
je 0x101c794
test word [ebp - 0x128], 0x180
je 0x101c794
push dword [ebp - 0x450]
mov dword [0x106f768], 1
push 0x1007548
call fcn.01015c5a
pop ecx
pop ecx
jmp 0x101c80d
push edi
push dword [ebx + 0x14]
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x454]
push eax
call dword [sym.imp.SETUPAPI.dll_CM_Get_DevNode_Status]
test eax, eax
mov eax, dword [ebp - 0x45c]
jne 0x101c7bf
test byte [ebp - 0x453], 1
jne 0x101c7df
cmp eax, 0xe
je 0x101c7df
cmp eax, 0x1c
je 0x101c7df
push eax
push dword [ebp - 0x454]
push 0x100750c
call fcn.01015c5a
add esp, 0xc
jmp 0x101c80d
push eax
push dword [ebp - 0x454]
push 0x100750c
call fcn.01015c5a
push dword [ebp - 0x450]
push 0x1007548
call fcn.01015c5a
add esp, 0x14
mov dword [0x106f768], 1
cmp dword [0x102c918], edi
jne 0x101c81f
mov dword [0x106f768], 1
mov eax, dword [0x106e508]
cmp eax, edi
je 0x101c835
push edi
push dword [ebp - 0x450]
push eax
call fcn.01016588
cmp dword [0x106f768], edi
jne 0x101c875
push 0x108
lea eax, [ebp - 0x458]
push eax
push dword [0x102c2d8]
call fcn.01020e92
test eax, eax
je 0x101c875
push edi
push edi
push 0x104
push dword [ebp - 0x458]
push 0xffffffffffffffff
push dword [ebp - 0x450]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [0x102dea0], 1
mov edi, dword [ebp - 0x44c]
push 2
push ebx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDriverInfoList]
lea eax, [ebp - 0x12c]
push eax
push ebx
push edi
mov dword [ebp - 0x12c], 0x128
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstallParamsA]
test eax, eax
je 0x101c8c9
and dword [ebp - 0x128], 0xfffffff7
or dword [ebp - 0x114], 0xffffffff
lea eax, [ebp - 0x12c]
push eax
push ebx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsA]
push dword [ebp - 0x460]
call dword [sym.imp.SETUPAPI.dll_SetupCloseFileQueue]
pop edi
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
inc eax
pop ebx
call fcn.0101439a
leave
ret 0x18