Advertisement
Guest User

BeavisDoU. Листинг сишный

a guest
Mar 19th, 2023
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.54 KB | None | 0 0
  1. /* Похоже это и есть функция проверки CD */
  2.  
  3. uint __cdecl krnfileDeviceIsResponding(int param_1)
  4.  
  5. {
  6.   bool bVar1;
  7.   uint uVar2;
  8.   uint3 extraout_var;
  9.   int iVar3;
  10.   uint uVar4;
  11.   uint extraout_EAX;
  12.   ushort uVar5;
  13.   HANDLE local_410;
  14.   char local_40c [260];
  15.   char text_error [512];
  16.   undefined4 local_108 [66];
  17.   char *string_error;
  18.  
  19.                     /* 0xf3b0  141  krnfileDeviceIsResponding */
  20.   FUN_0040f6d0(param_1);
  21.   FUN_0041c450(local_40c,(byte *)s_%s\%s_004325c0);
  22.   uVar5 = 0;
  23.   do {
  24.     uVar2 = FUN_004125d0(local_40c,&local_410,local_108);
  25.     FUN_004126b0(local_410);
  26.     uVar4 = (uint)extraout_var << 8;
  27.     if ((short)uVar2 == 0) { // <- здесь JZ поменял на JNZ, чтобы вылететь за пределы цикла (в листинге асм этого изменения нет)
  28.       if (param_1 == 2) {
  29.         string_error = s_You_must_have_the_%s_CD_inserted_00432520;
  30.       }
  31.       else {
  32.         string_error = s_Unable_to_access_drive_%s._Pleas_004324a4;
  33.       }
  34.       FUN_0041c450(text_error,(byte *)string_error);
  35.       iVar3 = TEST_ERROR(text_error,2);
  36.       if (iVar3 == 3) {
  37.         bVar1 = true;
  38.         Sleep(2000);
  39.         uVar4 = extraout_EAX;
  40.       }
  41.       else {
  42.         uVar4 = iVar3 - 4;
  43.         if (uVar4 == 0) {
  44.           bVar1 = false;
  45.         }
  46.         else {
  47.           bVar1 = false;
  48.         }
  49.       }
  50.     }
  51.     else {
  52.       uVar5 = 1;
  53.       bVar1 = false;
  54.     }
  55.   } while (bVar1);
  56.   return uVar4 & 0xffff0000 | (uint)uVar5;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement