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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x99c
mov dword [ebp - 4], edi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], ebx
mov ebx, 0xffffffff
mov eax, 0x41afc0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x99c], edx
mov edx, dword [eax + 8]
mov dword [ebp - 0x998], ecx
mov dword [ebp - 0x994], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x990], edx
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x98c], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x988], edx
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x984], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x980], edx
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x97c], edx
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x978], edx
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x974], edx
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x970], edx
mov edx, dword [eax + 0x30]
mov dword [ebp - 0x96c], edx
mov edx, dword [eax + 0x34]
mov dword [ebp - 0x968], edx
mov edx, dword [eax + 0x38]
mov dword [ebp - 0x964], edx
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x960], edx
mov edx, dword [eax + 0x40]
mov dword [ebp - 0x95c], edx
mov edx, dword [eax + 0x44]
mov dword [ebp - 0x958], edx
mov edx, dword [eax + 0x48]
mov dword [ebp - 0x954], edx
mov edx, dword [eax + 0x4c]
mov dword [ebp - 0x950], edx
mov edx, dword [eax + 0x50]
mov dword [ebp - 0x94c], edx
mov edx, dword [eax + 0x54]
mov dword [ebp - 0x948], edx
mov edx, dword [eax + 0x58]
mov dword [ebp - 0x944], edx
mov edx, dword [eax + 0x5c]
mov dword [ebp - 0x940], edx
mov edx, dword [eax + 0x60]
mov dword [ebp - 0x93c], edx
mov edx, dword [eax + 0x64]
mov dword [ebp - 0x938], edx
mov edx, dword [eax + 0x68]
mov dword [ebp - 0x934], edx
mov edx, dword [eax + 0x6c]
mov dword [ebp - 0x930], edx
mov edx, dword [eax + 0x70]
mov dword [ebp - 0x92c], edx
mov edx, dword [eax + 0x74]
mov dword [ebp - 0x928], edx
mov edx, dword [eax + 0x78]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x924], edx
mov dword [ebp - 0x920], eax
lea edi, [ebp - 0x91c]
mov esi, 0x41b040
mov ecx, 0x100
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x81c], 0x80
lea edi, [ebp - 0x818]
mov esi, 0x41b140
mov ecx, 0x800
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x18], 0x800
lea eax, [ebp - 0x10]
xor edx, edx
xor edi, edi
mov dword [ebp - 0x14], edx
push eax
mov dword [ebp - 0x10], edx
xor esi, esi
push 0x20019
push edx
push str.HARDWAREOWNERMAP
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404576
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x818]
lea eax, [ebp - 0x18]
push eax
push edx
push ecx
push 0
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x91c]
push eax
push edi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x40453d
mov eax, dword [ebp - 0x18]
cmp eax, 2
jbe 0x404524
mov eax, dword [ebp - 0x14]
cmp eax, 1
jne 0x404524
lea eax, [ebp - 0x818]
push eax
call fcn.00401950
pop ecx
lea eax, [ebp - 0x818]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x404524
push 0x4440dc
lea eax, [ebp - 0x818]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
je 0x404524
test esi, esi
jne 0x404376
mov eax, dword [0x44c3a8]
mov esi, 1
test eax, eax
je 0x40433c
push str.IO_Devices_Details
call fcn.00402db0
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x40434c
mov eax, 0x4434c0
jmp 0x404351
mov eax, str.SUBCOMPONENT
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x404376
je 0x40436a
mov eax, str.ROWSET_TABLE_MGMT_ECM_HW_IOCARD__CONFIG_TRUE_
jmp 0x40436f
mov eax, str.IO_DEVICES
push eax
call fcn.00402e10
pop ecx
lea edx, [ebp - 0x99c]
lea eax, [ebp - 0x91c]
push 0x40
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
push 0x4452d8
xor eax, eax
mov word [ebp - 0x91e], ax
call dword [sym.imp.MSVCR71.dll_wcslen]
lea edx, [ebp - 0x99c]
push eax
push edx
push 0x4452d8
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x1c
test eax, eax
jne 0x4043d6
push 0x4452d8
lea eax, [ebp - 0x99c]
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
mov ebx, 8
jmp 0x404415
push 0x4452e0
call dword [sym.imp.MSVCR71.dll_wcslen]
lea edx, [ebp - 0x99c]
push eax
push edx
push 0x4452e0
call dword [sym.imp.MSVCR71.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x404415
push 0x4452e0
lea eax, [ebp - 0x99c]
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
mov ebx, 0x21
mov eax, dword [0x44e880]
test eax, eax
jne 0x404438
je 0x404427
mov eax, str.ROWSET_TABLE_MGMT_ECM_HW_IOCARD__CONFIG_TRUE_
jmp 0x40442c
mov eax, str.IO_DEVICES
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x404443
mov eax, 0x444940
jmp 0x404448
mov eax, 0x4434c0
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x40445f
mov eax, str.VENDOR_NAME
jmp 0x404464
mov eax, str.VENDOR
push 0x80
push 0
push eax
call fcn.00402e68
lea eax, [ebp - 0x818]
push eax
call fcn.00401a9c
push 0x80
push eax
push str.NAME
call fcn.00402e68
add esp, 0x1c
mov eax, dword [0x44e880]
test eax, eax
je 0x4044a0
mov eax, str.FREQ_IN_MHZ
jmp 0x4044a5
mov eax, str.FREQUENCY_IN_MHZ
push ebx
push eax
call fcn.00403054
add esp, 8
mov eax, dword [0x44e880]
test eax, eax
je 0x4044bf
mov edx, 0x445318
jmp 0x4044c4
mov edx, str.BUS_TYPE
lea eax, [ebp - 0x99c]
push 0x1f4
push eax
push edx
call fcn.00402e68
push 0x7d0
push 0
push str.REVISION
call fcn.00402e68
add esp, 0x18
mov eax, dword [0x44e880]
test eax, eax
je 0x4044fa
mov eax, 0x444940
jmp 0x4044ff
mov eax, 0x4434c0
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
test eax, eax
jne 0x404524
je 0x404518
mov eax, str.ROWSET_TABLE_MGMT_ECM_HW_IOCARD__CONFIG_TRUE_
jmp 0x40451d
mov eax, str.IO_DEVICES
push eax
call fcn.0040322c
pop ecx
mov dword [ebp - 0x81c], 0x80
add edi, 1
mov dword [ebp - 0x18], 0x800
jmp 0x404296
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x404576
mov eax, dword [0x44e880]
test eax, eax
je 0x4046ad
je 0x404560
mov eax, str.ROWSET_TABLE_MGMT_ECM_HW_IOCARD__CONFIG_TRUE_
jmp 0x404565
mov eax, str.IO_DEVICES
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
jmp 0x4046ad
mov eax, dword [0x44c3a8]
test eax, eax
je 0x40458a
push str.IO_Devices_Details
call fcn.00402db0
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x40459a
mov eax, 0x4434c0
jmp 0x40459f
mov eax, str.SUBCOMPONENT
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x4045b6
mov eax, str.ROWSET_TABLE_MGMT_ECM_HW_IOCARD__CONFIG_TRUE_
jmp 0x4045bb
mov eax, str.IO_DEVICES
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x4045d2
mov eax, 0x444940
jmp 0x4045d7
mov eax, 0x4434c0
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x4045ee
mov eax, str.VENDOR_NAME
jmp 0x4045f3
mov eax, str.VENDOR
push 0x80
push 0
push eax
call fcn.00402e68
push 0x80
push str.DeviceVideo0
push str.NAME
call fcn.00402e68
add esp, 0x18
mov eax, dword [0x44e880]
test eax, eax
je 0x404627
mov eax, str.FREQ_IN_MHZ
jmp 0x40462c
mov eax, str.FREQUENCY_IN_MHZ
push 0x21
push eax
call fcn.00403054
add esp, 8
mov eax, dword [0x44e880]
test eax, eax
je 0x404647
mov eax, 0x445318
jmp 0x40464c
mov eax, str.BUS_TYPE
push 0x1f4
push 0x4452e0
push eax
call fcn.00402e68
push 0x7d0
push 0
push str.REVISION
call fcn.00402e68
add esp, 0x18
mov eax, dword [0x44e880]
test eax, eax
je 0x404680
mov eax, 0x444940
jmp 0x404685
mov eax, 0x4434c0
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x40469c
mov eax, str.ROWSET_TABLE_MGMT_ECM_HW_IOCARD__CONFIG_TRUE_
jmp 0x4046a1
mov eax, str.IO_DEVICES
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x4046b8
mov eax, 0x4434c0
jmp 0x4046bd
mov eax, str.SUBCOMPONENT
push eax
call fcn.0040322c
pop ecx
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret