Function at 0x42c9f0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x463616
mov eax, dword fs:[0]
push eax
mov eax, 0x1b24
call fcn.0045db90
mov eax, dword [0x4920c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov dword [ebp - 0x1ae8], 7
mov dword [ebp - 0x1aec], 0
mov word [ebp - 0x1afc], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1b00], 7
mov dword [ebp - 0x1b04], eax
mov word [ebp - 0x1b14], ax
mov byte [ebp - 4], 1
push dword [ebp - 0x1adc]
mov edx, dword [0x495c98]
push ecx
mov ecx, dword [0x495c94]
call fcn.004099d0
mov eax, dword [0x495c94]
mov esi, dword [0x495c88]
xor ecx, ecx
mov dword [0x495c98], eax
mov dword [ebp - 0x1b28], ecx
mov ecx, dword [0x495c8c]
sub ecx, esi
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 8
test eax, eax
jle 0x42cf8a
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
xor ebx, ebx
mov dword [ebp - 0x1b20], ebx
cmp byte [ebx + esi + 0x30], 0
je 0x42cf54
push 0x27
push str.SYSTEMCurrentControlSetControlClass_
lea ecx, [ebp - 0x1afc]
call fcn.004023a0
mov eax, dword [0x495c88]
add eax, 0x18
add eax, ebx
cmp dword [eax + 0x14], 8
jb 0x42caf0
mov eax, dword [eax]
push eax
lea eax, [ebp - 0xd8]
push 0x64
push eax
call fcn.004513ee
add esp, 0xc
cmp word [ebp - 0xd8], 0
jne 0x42cb10
xor ecx, ecx
jmp 0x42cb2f
lea ecx, [ebp - 0xd8]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42cb20
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x1afc]
call fcn.00409480
lea eax, [ebp - 0xd8]
push 0x64
push eax
call fcn.00451b0d
cmp dword [ebp - 0x1ae8], 8
lea eax, [ebp - 0x1afc]
cmovae eax, dword [ebp - 0x1afc]
push 0
push eax
lea eax, [ebp - 0x1ad8]
push str._s_04d
push eax
mov dword [ebp - 0x1b2c], 0
call fcn.00409980
add esp, 0x18
lea eax, [ebp - 0x1b18]
push eax
push 0x20119
push 0
lea eax, [ebp - 0x1ad8]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42cf4e
lea ecx, [ecx]
mov dword [ebp - 0x1ae4], 0x400
mov ecx, 0x400
lea eax, [ebp - 0x8d8]
mov byte [eax], 0
lea eax, [eax + 1]
dec ecx
jne 0x42cbc5
lea eax, [ebp - 0x1ae4]
push eax
lea eax, [ebp - 0x8d8]
push eax
push ecx
push ecx
push str.InfPath
push dword [ebp - 0x1b18]
call edi
test eax, eax
jne 0x42ceec
lea eax, [ebp - 0x8d8]
push 0x200
push eax
mov byte [ebp - 0x1b19], 1
call fcn.00451b0d
add esp, 8
mov dword [ebp - 0x1ae0], 0x400
mov ecx, 0x400
lea eax, [ebp - 0x4d8]
mov byte [eax], 0
lea eax, [eax + 1]
dec ecx
jne 0x42cc23
lea eax, [ebp - 0x1ae0]
push eax
lea eax, [ebp - 0x4d8]
push eax
push ecx
push ecx
push str.MatchingDeviceId
push dword [ebp - 0x1b18]
call edi
test eax, eax
je 0x42cc56
xor eax, eax
mov word [ebp - 0x4d8], ax
lea eax, [ebp - 0x4d8]
push 0x200
push eax
call fcn.00451b0d
add esp, 8
mov dword [ebp - 0x1adc], 0x800
mov ecx, 0x800
lea eax, [ebp - 0x10d8]
nop
mov byte [eax], 0
lea eax, [eax + 1]
dec ecx
jne 0x42cc80
lea eax, [ebp - 0x1adc]
push eax
lea eax, [ebp - 0x10d8]
push eax
push ecx
push ecx
push str.DriverDesc
push dword [ebp - 0x1b18]
call edi
test eax, eax
je 0x42ccb3
xor eax, eax
mov word [ebp - 0x10d8], ax
lea eax, [ebp - 0x10d8]
push 0x400
push eax
call fcn.00451b0d
mov ecx, dword [0x495c88]
add esp, 8
cmp byte [ebx + ecx + 0x34], 0
je 0x42ce45
mov eax, dword [ebx + ecx + 0x38]
mov ecx, dword [ebx + ecx + 0x3c]
cmp eax, ecx
je 0x42cd98
jmp 0x42ccf0
cmp word [ebp - 0x8d8], 0
jne 0x42ccfe
xor esi, esi
jmp 0x42cd16
lea esi, [ebp - 0x8d8]
lea edi, [esi + 2]
mov dx, word [esi]
add esi, 2
test dx, dx
jne 0x42cd07
sub esi, edi
sar esi, 1
cmp dword [eax + 0x14], 8
mov ebx, dword [eax + 0x10]
jb 0x42cd23
mov edi, dword [eax]
jmp 0x42cd25
mov edi, eax
cmp ebx, esi
mov edx, esi
cmovb edx, ebx
mov dword [ebp - 0x1b24], edx
test edx, edx
je 0x42cd59
lea ebx, [ebp - 0x8d8]
lea esp, [esp]
mov dx, word [edi]
cmp dx, word [ebx]
jne 0x42cd79
add edi, 2
add ebx, 2
dec dword [ebp - 0x1b24]
jne 0x42cd40
mov ebx, dword [eax + 0x10]
xor edx, edx
test edx, edx
jne 0x42cd6c
cmp ebx, esi
jb 0x42cd6c
cmp ebx, esi
setne dl
test edx, edx
je 0x42cd8a
add eax, 0x18
cmp eax, ecx
jne 0x42ccf0
jmp 0x42cd92
movzx edx, word [edi]
cmp dx, word [ebx]
mov ebx, dword [eax + 0x10]
sbb edx, edx
and edx, 0xfffffffe
inc edx
jmp 0x42cd5b
xor al, al
mov byte [ebp - 0x1b19], al
mov ebx, dword [ebp - 0x1b20]
mov ecx, dword [0x495c88]
mov eax, dword [ebx + ecx + 0x44]
mov ecx, dword [ebx + ecx + 0x48]
cmp eax, ecx
je 0x42ce3f
mov edi, edi
cmp word [ebp - 0x4d8], 0
jne 0x42cdbe
xor edx, edx
jmp 0x42cdd6
lea edx, [ebp - 0x4d8]
lea edi, [edx + 2]
mov si, word [edx]
add edx, 2
test si, si
jne 0x42cdc7
sub edx, edi
sar edx, 1
cmp dword [eax + 0x14], 8
mov ebx, dword [eax + 0x10]
jb 0x42cde3
mov edi, dword [eax]
jmp 0x42cde5
mov edi, eax
cmp ebx, edx
mov esi, edx
cmovb esi, ebx
mov dword [ebp - 0x1b24], esi
test esi, esi
je 0x42ce1a
lea ebx, [ebp - 0x4d8]
lea esp, [esp]
mov si, word [edi]
cmp si, word [ebx]
jne 0x42cfbd
add edi, 2
add ebx, 2
dec dword [ebp - 0x1b24]
jne 0x42ce00
xor ebx, ebx
test ebx, ebx
jne 0x42ce34
mov esi, dword [eax + 0x10]
cmp esi, edx
jb 0x42ce34
cmp esi, edx
setne bl
test ebx, ebx
je 0x42cfc8
add eax, 0x18
cmp eax, ecx
jne 0x42cdb0
mov ecx, dword [0x495c88]
mov bl, byte [ebp - 0x1b19]
mov eax, dword [ebp - 0x1b20]
add eax, ecx
cmp dword [eax + 0x14], 8
jb 0x42ce5b
mov eax, dword [eax]
lea ecx, [ebp - 0x10d8]
push ecx
lea ecx, [ebp - 0x4d8]
push ecx
lea ecx, [ebp - 0x8d8]
push ecx
push dword [ebp - 0x1b2c]
mov ecx, 0x47ca04
push eax
mov eax, 0x47c9fc
test bl, bl
cmove eax, ecx
push eax
push str.____s__s__04d:__s___s___s
push 0x494648
call fcn.00409980
add esp, 0x20
mov edx, 4
mov ecx, 0x494648
call fcn.0040da30
test bl, bl
mov ebx, dword [ebp - 0x1b20]
je 0x42cee6
mov eax, dword [0x495c88]
sub esp, 0x5c
add eax, ebx
mov ecx, esp
push eax
call fcn.0042cfe0
lea eax, [ebp - 0x4d8]
push eax
lea eax, [ebp - 0x10d8]
push eax
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0x8d8]
call fcn.0042bef0
add esp, 0x64
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x1b18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x1b2c]
inc eax
push eax
lea ecx, [ebp - 0x1afc]
mov dword [ebp - 0x1b2c], eax
call fcn.00402090
push eax
lea eax, [ebp - 0x1ad8]
push str._s_04d
push eax
call fcn.00409980
add esp, 0x10
lea eax, [ebp - 0x1b18]
push eax
push 0x20119
push 0
lea eax, [ebp - 0x1ad8]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x42cbb0
mov esi, dword [0x495c88]
mov ecx, dword [0x495c8c]
inc dword [ebp - 0x1b28]
sub ecx, esi
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add ebx, 0x5c
add eax, edx
mov dword [ebp - 0x1b20], ebx
cmp dword [ebp - 0x1b28], eax
jl 0x42cac1
cmp dword [ebp - 0x1ae8], 8
jb 0x42cfa1
push dword [ebp - 0x1afc]
call fcn.00450920
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044fdac
mov esp, ebp
pop ebp
ret
sbb ebx, ebx
and ebx, 0xfffffffe
inc ebx
jmp 0x42ce1c
mov ecx, dword [0x495c88]
xor bl, bl
jmp 0x42ce4b