Function at 0x10002220
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x10ec
call fcn.1000fbd0
mov eax, dword [0x1002ca30]
xor eax, esp
mov dword [esp + 0x10e8], eax
mov eax, dword [esp + 0x10f8]
push ebx
push str.wlan
lea ecx, [esp + 0x48]
mov dword [esp + 0x84], eax
call fcn.10002050
push str.ethernet
lea ecx, [esp + 0x44]
call fcn.10002050
call fcn.10003fb1
xor ebx, ebx
cmp eax, ebx
jne 0x10002278
push 0x80004005
call fcn.100011c0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
push ebp
call eax
mov ebp, eax
add ebp, 0x10
mov dword [esp + 0x2c], ebp
call fcn.10003fb1
cmp eax, ebx
jne 0x1000229e
push 0x80004005
call fcn.100011c0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
push esi
call eax
add eax, 0x10
push 0x100245a9
lea ecx, [esp + 0x38]
mov dword [esp + 0x3c], eax
call fcn.10002050
lea ecx, [esp + 0x24]
push ecx
call fcn.10002110
mov edx, dword [esp + 0x28]
push 0x5c
push edx
call fcn.1000ed5c
add esp, 0xc
cmp eax, ebx
jne 0x100022df
or esi, 0xffffffff
jmp 0x100022e5
sub eax, dword [esp + 0x24]
mov esi, eax
push esi
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x2c]
call fcn.10001880
push eax
lea ecx, [esp + 0x28]
call fcn.10001e00
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000231e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
push 0x5c
push ecx
call fcn.1000ed5c
add esp, 8
cmp eax, ebx
jne 0x10002336
or eax, 0xffffffff
jmp 0x1000233a
sub eax, dword [esp + 0x24]
push esi
add eax, 1
push eax
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x30]
call fcn.100017d0
push str.vid_
lea ecx, [esp + 0x58]
call fcn.10002050
push str.ven_
lea ecx, [esp + 0x64]
call fcn.10002050
call fcn.10003fb1
cmp eax, ebx
jne 0x1000237c
push 0x80004005
call fcn.100011c0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
xor eax, eax
mov esi, 0x1c
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], ebx
call fcn.10003fb1
cmp eax, ebx
jne 0x100023ef
push 0x80004005
call fcn.100011c0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
push edi
call eax
mov edi, eax
add edi, 0x10
mov dword [esp + 0x24], edi
call fcn.10003fb1
cmp eax, ebx
jne 0x10002415
push 0x80004005
call fcn.100011c0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov ebx, eax
add ebx, 0x10
mov dword [esp + 0x68], ebx
call fcn.10003fb1
test eax, eax
jne 0x1000243a
push 0x80004005
call fcn.100011c0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ecx, [esp + 0x10]
push ecx
push 0xa
lea edx, [esp + 0xb8]
push edx
add eax, 0x10
push 0x10024598
mov dword [esp + 0x3c], eax
call dword [sym.imp.SETUPAPI.dll_SetupDiClassGuidsFromNameA]
test eax, eax
jne 0x1000247e
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x100024b3
push 2
push 0
push 0
lea ecx, [esp + 0xbc]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
cmp eax, 0xffffffff
mov dword [esp + 0x40], eax
jne 0x1000263a
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100024bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100024db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100024f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002517
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002537
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002557
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002577
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002597
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100025b7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100025d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100025f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002613
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002633
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x100029f9
push 0x20019
push 0
mov dword [esp + 0x9c], esi
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenClassRegKey]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x60], esi
je 0x1000284b
mov ecx, dword [esp + 0x5c]
push ecx
lea edx, [esp + 0x444]
push str.SoftwareRtWLan_s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x74]
push str.RTK_HWID.dat
push eax
call fcn.10002110
add esp, 4
push eax
lea ecx, [esp + 0x74]
push ecx
call fcn.10001f30
add esp, 0xc
push eax
lea ecx, [esp + 0x6c]
call fcn.10001e00
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100026c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100026e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x94]
push ecx
push 0
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x10002847
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
xor edi, edi
jmp 0x10002710
mov esi, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
add dword [esp + 0x70], 1
lea eax, [esp + 0x10]
push eax
push 0x3e8
lea ecx, [esp + 0x1f0]
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x24]
push edx
push 1
lea eax, [esp + 0xa8]
push eax
push ecx
call esi
test eax, eax
je 0x1000281f
lea eax, [esp + 0x1e8]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10002755
sub eax, edx
push eax
lea edx, [esp + 0x1ec]
push edx
lea ecx, [esp + 0x3c]
call fcn.10001a00
lea ecx, [esp + 0x34]
call fcn.10001bb0
lea eax, [esp + 0x10]
push eax
push 0x3e8
lea ecx, [esp + 0x31c]
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x24]
push edx
push 9
lea eax, [esp + 0xa8]
push eax
push ecx
call esi
test eax, eax
je 0x1000281b
mov ecx, dword [esp + 0x60]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x318]
push eax
push ecx
call esi
mov eax, dword [esp + 0x14]
or ebp, 0xffffffff
cmp eax, ebp
je 0x1000281b
lea edx, [esp + 0x20]
push edx
push str.Linkage
push eax
call esi
cmp dword [esp + 0x20], ebp
jne 0x100027ec
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1000281b
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x30]
push ecx
push 0x10024568
push edx
call esi
cmp dword [esp + 0x30], ebp
jne 0x10002a12
mov eax, dword [esp + 0x20]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
mov ecx, dword [esp + 0x14]
push ecx
call esi
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x94]
push edx
push eax
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x10002710
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
test esi, esi
je 0x10002861
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002881
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000289d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100028b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100028d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100028f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002919
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002939
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002959
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002979
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10002999
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100029b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100029d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100029f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x10f8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000f47d
add esp, 0x10ec
ret
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x44]
push edx
push str.NDIInterfaces
push eax
call esi
mov eax, dword [esp + 0x44]
cmp eax, ebp
jne 0x10002a49
mov ecx, dword [esp + 0x30]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call esi
mov edx, dword [esp + 0x20]
push edx
call esi
mov eax, dword [esp + 0x14]
push eax
jmp 0x10002819
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x188]
push edx
lea ecx, [esp + 0x20]
push ecx
push edi
push str.LowerRange
push eax
mov dword [esp + 0x28], 0x64
call ebx
lea edx, [esp + 0x184]
push edx
lea ecx, [esp + 0x40]
call fcn.10002010
lea ecx, [esp + 0x50]
call fcn.10001bb0
lea ecx, [esp + 0x4c]
call fcn.10001bb0
lea ecx, [esp + 0x3c]
call fcn.10001bb0
mov eax, dword [esp + 0x50]
cmp eax, edi
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
je 0x10002ac2
cmp dword [esi - 0xc], edi
jl 0x10002ac2
push eax
push esi
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002ac2
sub eax, esi
cmp eax, 0xffffffff
jne 0x10002af4
mov eax, dword [esp + 0x4c]
cmp eax, edi
je 0x10002d0b
cmp dword [esi - 0xc], edi
jl 0x10002d0b
push eax
push esi
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002d0b
sub eax, esi
cmp eax, 0xffffffff
je 0x10002d0b
push 0xbb8
lea eax, [esp + 0x544]
push edi
push eax
mov byte [esp + 0x2b], 0
call fcn.1000e870
add esp, 0xc
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x444]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x10002b71
lea eax, [esp + 0x84]
push eax
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x544]
push ecx
lea edx, [esp + 0x90]
push edx
push edi
push str.DeviceID
push eax
mov dword [esp + 0x9c], 0xbb8
mov dword [esp + 0xa0], 1
call ebx
mov ecx, dword [esp + 0x78]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x58]
cmp eax, edi
je 0x10002b93
cmp dword [ebp - 0xc], edi
jl 0x10002b93
push eax
push ebp
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002b93
sub eax, ebp
cmp eax, 0xffffffff
jne 0x10002bc5
mov eax, dword [esp + 0x64]
cmp eax, edi
je 0x10002d0b
cmp dword [ebp - 0xc], edi
jl 0x10002d0b
push eax
push ebp
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002d0b
sub eax, ebp
cmp eax, 0xffffffff
je 0x10002d0b
cmp byte [esp + 0x540], 0
je 0x10002d5a
cmp byte [esp + 0x541], 0
je 0x10002d5a
lea edx, [esp + 0x540]
push edx
lea eax, [esp + 0x3c]
push 0x1002453c
push eax
call fcn.10001ec0
add esp, 0xc
lea ecx, [esp + 0x38]
call fcn.10001bb0
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x28]
call fcn.10001e00
lea edx, [esp + 0x24]
push 0x100245a9
push edx
call fcn.10001680
add esp, 8
test al, al
je 0x10002d0b
lea esp, [esp]
push 0x3b
lea ecx, [esp + 0x28]
call fcn.100014c0
mov esi, eax
cmp esi, edi
jle 0x10002c8d
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x2c]
call fcn.10001c10
push eax
lea ecx, [esp + 0x4c]
call fcn.10001e00
lea ecx, [esp + 0x74]
call fcn.100015b0
push esi
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x2c]
call fcn.10001880
push eax
lea ecx, [esp + 0x28]
call fcn.10001e00
lea ecx, [esp + 0x7c]
call fcn.100015b0
jmp 0x10002ca9
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x4c]
call fcn.10001e00
push 0x100245a9
lea ecx, [esp + 0x28]
call fcn.10002010
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x10002ccf
cmp dword [ebp - 0xc], edi
jl 0x10002cf1
push eax
push ebp
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002ccf
sub eax, ebp
cmp eax, 0xffffffff
jne 0x10002e5a
cmp dword [ebp - 0xc], edi
jl 0x10002cf1
push str.vwifi
push ebp
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002cf1
sub eax, ebp
cmp eax, 0xffffffff
jne 0x10002e5a
lea ecx, [esp + 0x24]
push 0x100245a9
push ecx
call fcn.10001680
add esp, 8
test al, al
jne 0x10002c30
mov eax, dword [esp + 0x44]
cmp eax, edi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x10002d20
push eax
call esi
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x10002d2f
push eax
call esi
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x10002d3e
push eax
call esi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x1000281f
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x14], edi
jmp 0x1000281f
cmp dword [ebp - 0xc], edi
jl 0x10002d7c
push str.vwifi
push ebp
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002d7c
sub eax, ebp
cmp eax, 0xffffffff
jne 0x10002e5a
mov edx, dword [esp + 0x68]
push 0x10024530
push edx
call fcn.1000fbbb
mov esi, eax
add esp, 8
cmp esi, edi
je 0x10002d0b
push esi
call fcn.1000fac8
add esp, 4
test eax, eax
jne 0x10002e46
lea esp, [esp]
push 0x32
lea eax, [esp + 0x154]
push edi
push eax
call fcn.1000e870
push esi
lea ecx, [esp + 0x160]
push 0x32
push ecx
call fcn.1000f941
add esp, 0x18
lea edx, [esp + 0x150]
push edx
lea ecx, [esp + 0x30]
call fcn.10002010
lea ecx, [esp + 0x2c]
call fcn.10001ee0
lea ecx, [esp + 0x2c]
call fcn.10001bb0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x30]
call fcn.10001900
cmp eax, edi
je 0x10002e2e
cmp dword [ebp - 0xc], edi
jl 0x10002e2e
push eax
push ebp
call fcn.1000ebbc
add esp, 8
cmp eax, edi
je 0x10002e2e
sub eax, ebp
cmp eax, 0xffffffff
je 0x10002e2e
mov ecx, dword [esp + 0x2c]
cmp dword [ecx - 0xc], edi
jne 0x10002e41
push esi
call fcn.1000fac8
add esp, 4
test eax, eax
je 0x10002db0
jmp 0x10002e46
mov byte [esp + 0x1f], 1
push esi
call fcn.1000f8c5
add esp, 4
cmp byte [esp + 0x1f], 0
je 0x10002d0b
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x1100]
jge 0x10002d0b
mov eax, dword [esp + 0xa8]
push edi
push eax
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x78]
push edx
mov dword [esp + 0x90], 0xc8
call dword [sym.imp.CFGMGR32.dll_CM_Get_DevNode_Status]
test eax, eax
je 0x10002ebd
mov eax, dword [esp + 0x44]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
mov ecx, dword [esp + 0x30]
push ecx
call esi
mov edx, dword [esp + 0x20]
push edx
call esi
mov eax, dword [esp + 0x14]
push eax
call esi
jmp 0x1000281f
test dword [esp + 0x6c], 0x40000000
jne 0x10003124
lea ecx, [esp + 0x98]
push ecx
call fcn.100010f0
add esp, 4
test eax, eax
jne 0x10003124
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x8c]
imul edx, edx, 0x8bc
mov ecx, dword [esp + 0x6c]
lea esi, [edx + eax]
shr ecx, 3
lea edx, [esp + 0x80]
push edx
and cl, 1
lea ebp, [esi + 0x1f6]
push ebp
lea eax, [esp + 0x9c]
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x48]
push eax
push ecx
mov byte [esi], 0
call fcn.10001420
add esp, 0x10
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x2be]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0
push str.DriverDesc
mov edi, 0xc8
push edx
mov dword [esp + 0x28], edi
call ebx
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esi + 0x386]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
push str.DriverVersion
push eax
mov dword [esp + 0x28], 0x1e
call ebx
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esi + 0x12e]
push edx
lea eax, [esp + 0x20]
push eax
push 0
push str.MatchingDeviceID
push ecx
mov dword [esp + 0x28], edi
call ebx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x3a4]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0
push str.ProviderName
push edx
mov dword [esp + 0x28], 0x64
call ebx
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
lea edi, [esi + 0x854]
push edi
lea ecx, [esp + 0x20]
push ecx
push 0
push str.NetCfgInstanceId
push edx
mov dword [esp + 0x28], 0x32
call ebx
test eax, eax
je 0x10003006
lea eax, [esp + 0x314]
push eax
push 0x1002453c
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esi + 0x660]
push edx
lea eax, [esp + 0x20]
push eax
push 0
push str.Export
mov edi, 0x12c
push ecx
mov dword [esp + 0x28], edi
call ebx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x24]
lea eax, [esi + 0x534]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0
push str.RootDevice
push edx
mov dword [esp + 0x28], edi
call ebx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
lea edi, [esi + 0x78c]
push edi
lea ecx, [esp + 0x20]
push ecx
push 0
push str.UpperBind
push edx
mov dword [esp + 0x28], 0xc8
call ebx
mov ecx, dword [esp + 0x10]
xor eax, eax
test ecx, ecx
jbe 0x1000309a
lea edx, [ecx - 2]
cmp eax, edx
jae 0x10003093
cmp byte [edi + eax], 0
jne 0x10003093
mov byte [edi + eax], 0x2c
add eax, 1
cmp eax, ecx
jb 0x10003085
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
push str.Service
push eax
mov dword [esp + 0x28], 0x64
call ebx
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x1e8]
push ecx
lea edx, [esi + 0x66]
push 0x1002453c
push edx
call edi
lea eax, [esp + 0x320]
push eax
lea ecx, [esi + 0x408]
push 0x1002453c
push ecx
call edi
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x111c]
push edi
push ebp
push edx
lea eax, [esp + 0xb8]
push eax
add esi, 0x888
push esi
call fcn.10001010
mov ebp, dword [esp + 0x60]
add edi, 1
add esp, 0x2c
mov dword [esp + 0x54], edi
xor edi, edi
jmp 0x10002d0b
mov ecx, dword [esp + 0x44]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call esi
mov edx, dword [esp + 0x30]
push edx
call esi
mov eax, dword [esp + 0x20]
push eax
call esi
mov ecx, dword [esp + 0x14]
push ecx
call esi
jmp 0x1000281f