Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HMODULE __usercall sub_405A58@<eax>(const CHAR *a1@<eax>)
- {
- LCID v1; // eax@8
- HMODULE v2; // ebx@8
- unsigned __int32 v4; // [sp-Ch] [bp-134h]@4
- CHAR *v5; // [sp-8h] [bp-130h]@4
- int v6; // [sp-4h] [bp-12Ch]@4
- CHAR Filename[261]; // [sp+7h] [bp-121h]@1
- LPSTR lpString1; // [sp+10Ch] [bp-1Ch]@11
- DWORD cbData; // [sp+110h] [bp-18h]@4
- BYTE Data; // [sp+116h] [bp-12h]@1
- char v11; // [sp+11Ah] [bp-Eh]@7
- CHAR LCData; // [sp+11Bh] [bp-Dh]@8
- char v13; // [sp+11Dh] [bp-Bh]@21
- HKEY phkResult; // [sp+120h] [bp-8h]@1
- LPCSTR lpString2; // [sp+124h] [bp-4h]@1
- int savedregs; // [sp+128h] [bp+0h]@4
- lpString2 = a1;
- GetModuleFileNameA(0, Filename, 0x105u);
- Data = 0;
- if ( !RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Borland\\Locales", 0, 0xF0019u, &phkResult)
- || !RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Borland\\Locales", 0, 0xF0019u, &phkResult)
- || !RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Borland\\Delphi\\Locales", 0, 0xF0019u, &phkResult) )
- {
- v6 = (int)&savedregs;
- v5 = (CHAR *)&loc_405B5C;
- v4 = __readfsdword(0);
- __writefsdword(0, (unsigned int)&v4);
- cbData = 5;
- sub_405880(Filename, 261);
- if ( RegQueryValueExA(phkResult, Filename, 0, 0, &Data, &cbData)
- && RegQueryValueExA(phkResult, ValueName, 0, 0, &Data, &cbData) )
- Data = 0;
- v11 = 0;
- __writefsdword(0, v4);
- v6 = (int)&loc_405B63;
- RegCloseKey(phkResult);
- }
- lstrcpynA(Filename, lpString2, 261);
- v6 = 5;
- v5 = &LCData;
- v4 = 3;
- v1 = GetThreadLocale();
- GetLocaleInfoA(v1, v4, v5, v6);
- v2 = 0;
- if ( Filename[0] && (LCData || Data) )
- {
- for ( lpString1 = &Filename[lstrlenA(Filename)]; *lpString1 != 46 && Filename != lpString1; --lpString1 )
- ;
- if ( Filename != lpString1 )
- {
- ++lpString1;
- if ( Data )
- {
- lstrcpynA(lpString1, (LPCSTR)&Data, 261 - (lpString1 - Filename));
- v2 = LoadLibraryExA(Filename, 0, 2u);
- }
- if ( !v2 )
- {
- if ( LCData )
- {
- lstrcpynA(lpString1, &LCData, 261 - (lpString1 - Filename));
- v2 = LoadLibraryExA(Filename, 0, 2u);
- if ( !v2 )
- {
- v13 = 0;
- lstrcpynA(lpString1, &LCData, 261 - (lpString1 - Filename));
- v2 = LoadLibraryExA(Filename, 0, 2u);
- }
- }
- }
- }
- }
- return v2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement