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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x4f67c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
xor ebx, ebx
push ebx
push eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x8c], ecx
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x6c], 0
movq qword [ebp - 0x74], xmm0
mov dword [ebp - 0x90], 0
call dword [sym.imp.SETUPAPI.dll_SetupDiCreateDeviceInfoList]
mov esi, eax
cmp esi, 0xffffffff
jne 0x465121
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupDiCreateDeviceInfoList_err_d
call fcn.00469520
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00472286
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x84]
mov dword [ebp - 0x84], 0x1c
push eax
push 1
push 0
push 0
push dword [ebp - 0x88]
push edi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiCreateDeviceInfoA]
test eax, eax
jne 0x465163
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupDiCreateDeviceInfo_err_d
call fcn.00469520
add esp, 8
jmp 0x465306
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 2
push eax
push edi
push 1
lea eax, [ebp - 0x84]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceRegistryPropertyA]
test eax, eax
jne 0x46519c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupDiSetDeviceRegistryProperty_hardware_id_err_d
call fcn.00469520
add esp, 8
jmp 0x465306
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x84]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiRegisterDeviceInfo]
test eax, eax
jne 0x4651cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupDiRegisterDeviceInfo_err_d
call fcn.00469520
add esp, 8
jmp 0x465306
lea eax, [ebp - 0x90]
push eax
push 1
push dword [ebp - 0x8c]
push edi
push 0
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesA
test eax, eax
jne 0x465237
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDriverForPlugAndPlayDevices_err0x_x
call fcn.00469520
add esp, 8
lea eax, [ebp - 0x84]
push eax
push esi
push 5
call dword [sym.imp.SETUPAPI.dll_SetupDiCallClassInstaller]
cmp dword [ebp - 0x90], ebx
je 0x465306
push 0x40
push str.Driver_Installed
push str.At_the_end_of_the_installation_please_reboot_your_computer_first_before_connecting_PdaNet.
push dword [0x4f7c70]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x465306
cmp dword [ebp + 0x14], ebx
je 0x465301
push 0x20019
push 2
push 0
push 1
lea eax, [ebp - 0x84]
push eax
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov edi, eax
cmp edi, 0xffffffff
je 0x465301
push 0x64
lea eax, [ebp - 0x68]
push 0
push eax
call fcn.004768d0
add esp, 0xc
mov dword [ebp - 0x8c], 0x64
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.NetCfgInstanceId
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x4652fe
push 0
lea eax, [ebp - 0x88]
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwarePdaNetAndroid
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4652fe
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x68]
push eax
push 1
push 0
push str.NetCfgInstanceId
push dword [ebp - 0x88]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x88]
call ebx
push edi
call ebx
mov ebx, 1
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00472286
mov esp, ebp
pop ebp
ret