-
Couldn't load subscription status.
- Fork 29
Description
I have a function:
__int64 __fastcall sub_1800043D4(PVOID Parameter)
{
HWND v1; // rdi
char *v2; // rsi
wchar_t *v3; // rbx
HDEVNOTIFY v4; // rax
void *v5; // rax
void **v6; // rbx
void *v7; // rcx
void **v8; // rsi
HDEVNOTIFY *v9; // rbx
_QWORD *v10; // rcx
_QWORD *v11; // rbx
MSG Msg; // [rsp+60h] [rbp-78h] BYREF
char v14[64]; // [rsp+90h] [rbp-48h] BYREF
char v15; // [rsp+D0h] [rbp-8h] BYREF
dword_1800162B0 = 1;
InitializeSListHead(&ListHead);
qword_180016130 = 0i64;
DeviceInfoSet = SetupDiCreateDeviceInfoList(0i64, 0i64);
if ( DeviceInfoSet != (HDEVINFO)-1i64 )
{
CoInitializeEx(0i64, 0);
if ( !CoCreateInstance(&rclsid, 0i64, 1u, &riid, &ppv) )
{
if ( (unsigned int)sub_180002D88() )
{
if ( (unsigned int)sub_180007428() )
{
if ( (unsigned int)sub_180005334() )
{
if ( (unsigned __int16)sub_180004380() )
{
v1 = CreateWindowExW(0, (LPCWSTR)0x7B45, 0i64, 0x80000000, 0, 0, 0, 0, 0i64, 0i64, hModule, 0i64);
if ( v1 )
{
v2 = v14;
v3 = L" ";
do
{
v4 = RegisterDeviceNotificationW(v1, v3, 0);
v3 += 28;
*(_QWORD *)v2 = v4;
v2 += 8;
}
while ( v3 != (wchar_t )&unk_180011A50 );
sub_1800040BC(v1, 65542i64);
sub_1800040BC(v1, 65538i64);
dwCallback = v1;
if ( hObject != (HANDLE)-2i64 )
{
sub_180003D00();
sub_1800036F8();
((void (__fastcall **)(LPVOID, __int64 (__fastcall **)()))((_QWORD )ppv + 48i64))(
ppv,
&off_180016088);
dword_1800162B0 = 2;
sub_180007308(0i64, 0xFFFFFFFFi64, 0i64, 0i64);
SetTimer(v1, 1ui64, 0x14Du, TimerFunc);
while ( (unsigned int)(GetMessageW(&Msg, 0i64, 0, 0) + 1) > 1 )
DispatchMessageW(&Msg);
KillTimer(v1, 1ui64);
((void (__fastcall **)(LPVOID, __int64 (__fastcall **)()))((_QWORD *)ppv + 56i64))(
ppv,
&off_180016088);
while ( 1 )
{
v5 = (void *)sub_180005950(&ListHead);
if ( !v5 )
break;
LocalFree(v5);
}
v6 = (void **)qword_180016118;
if ( qword_180016118 )
{
do
{
v7 = v6[2];
v8 = (void **)v6;
if ( v7 )
((void (__fastcall **)(void ))((_QWORD )v7 + 16i64))(v7);
((void (__fastcall **)(void ))((_QWORD *)v6[1] + 16i64))(v6[1]);
LocalFree(v6);
v6 = v8;
}
while ( v8 );
}
}
dwCallback = 0i64;
v9 = (HDEVNOTIFY *)v14;
do
{
if ( *v9 )
UnregisterDeviceNotification(*v9);
++v9;
}
while ( v9 != (HDEVNOTIFY *)&v15 );
DestroyWindow(v1);
v10 = qword_180016110;
if ( qword_180016110 )
{
do
{
v11 = (_QWORD )v10;
LocalFree(v10);
v10 = v11;
}
while ( v11 );
}
}
UnregisterClassW((LPCWSTR)0x7B45, hModule);
}
sub_1800054A4();
}
sub_1800074B8();
}
sub_180002DB0();
}
((void (__fastcall **)(LPVOID))((_QWORD *)ppv + 16i64))(ppv);
}
CoUninitialize();
SetupDiDestroyDeviceInfoList(DeviceInfoSet);
}
if ( dword_1800162B0 == 1 )
dword_1800162B0 = 4;
return 0i64;
}
qustions: comida has find guid ,but not get updated function?