Fix decompilation of init
This function could crash if the compiler optimized the stack--fixedpull/18/head
							parent
							
								
									4bd40e4ffe
								
							
						
					
					
						commit
						f238649103
					
				| 
						 | 
					@ -155,30 +155,29 @@ void __fastcall init_run_office(char *dir)
 | 
				
			||||||
void __fastcall init_disable_screensaver(bool disable)
 | 
					void __fastcall init_disable_screensaver(bool disable)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	bool v1; // al
 | 
						bool v1; // al
 | 
				
			||||||
	BYTE Data; // [esp+4h] [ebp-20h]
 | 
						char Data[16]; // [esp+4h] [ebp-20h]
 | 
				
			||||||
	char v3; // [esp+5h] [ebp-1Fh]
 | 
					 | 
				
			||||||
	DWORD Type; // [esp+14h] [ebp-10h]
 | 
						DWORD Type; // [esp+14h] [ebp-10h]
 | 
				
			||||||
	DWORD cbData; // [esp+18h] [ebp-Ch]
 | 
						DWORD cbData; // [esp+18h] [ebp-Ch]
 | 
				
			||||||
	HKEY phkResult; // [esp+1Ch] [ebp-8h]
 | 
						HKEY phkResult; // [esp+1Ch] [ebp-8h]
 | 
				
			||||||
	bool v7; // [esp+20h] [ebp-4h]
 | 
						bool v6; // [esp+20h] [ebp-4h]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v7 = disable;
 | 
						v6 = disable;
 | 
				
			||||||
	if ( !RegOpenKeyExA(HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, KEY_READ|KEY_WRITE, &phkResult) )
 | 
						if ( !RegOpenKeyExA(HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, KEY_READ|KEY_WRITE, &phkResult) )
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if ( v7 )
 | 
							if ( v6 )
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			cbData = 16;
 | 
								cbData = 16;
 | 
				
			||||||
			if ( !RegQueryValueExA(phkResult, "ScreenSaveActive", 0, &Type, &Data, &cbData) )
 | 
								if ( !RegQueryValueExA(phkResult, "ScreenSaveActive", 0, &Type, (LPBYTE)Data, &cbData) )
 | 
				
			||||||
				screensaver_enabled_prev = Data != '0';
 | 
									screensaver_enabled_prev = Data[0] != '0';
 | 
				
			||||||
			v1 = 0;
 | 
								v1 = 0;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			v1 = screensaver_enabled_prev;
 | 
								v1 = screensaver_enabled_prev;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		v3 = 0;
 | 
							Data[1] = 0;
 | 
				
			||||||
		Data = (v1 != 0) + '0';
 | 
							Data[0] = (v1 != 0) + '0';
 | 
				
			||||||
		RegSetValueExA(phkResult, "ScreenSaveActive", 0, REG_SZ, &Data, 2u);
 | 
							RegSetValueExA(phkResult, "ScreenSaveActive", 0, REG_SZ, (const BYTE *)Data, 2u);
 | 
				
			||||||
		RegCloseKey(phkResult);
 | 
							RegCloseKey(phkResult);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue