Advertisement
Guest User

bio2 pseudo time

a guest
Jun 18th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 9.00 KB | None | 0 0
  1. int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
  2. {
  3.   char *v4; // esi
  4.   void (__stdcall *v5)(UINT, UINT, PVOID, UINT); // edi
  5.   void *v6; // eax
  6.   int v7; // eax
  7.   bool v8; // zf
  8.   char v9; // bl
  9.   int v10; // edi
  10.   DWORD v11; // eax
  11.   int v12; // ecx
  12.   int v13; // esi
  13.   bool v14; // sf
  14.   unsigned __int8 v15; // of
  15.   HWND v17; // [esp-Ch] [ebp-40h]
  16.   int v18; // [esp+8h] [ebp-2Ch]
  17.   int v19; // [esp+Ch] [ebp-28h]
  18.   int v20; // [esp+10h] [ebp-24h]
  19.   int v21; // [esp+14h] [ebp-20h]
  20.   struct tagMSG Msg; // [esp+18h] [ebp-1Ch]
  21.  
  22.   dword_680578 = OpenMutexA(0x1F0001u, 0, Name);
  23.   if ( dword_680578 )
  24.   {
  25.     dword_680530 = 18;
  26.     goto LABEL_85;
  27.   }
  28.   dword_680578 = CreateMutexA(0, 0, Name);
  29.   if ( !(unsigned __int8)sub_509BB0() )
  30.   {
  31.     dword_680530 = 19;
  32.     goto LABEL_85;
  33.   }
  34.   nullsub_1(&unk_6633D8);
  35.   unknown_libname_19();
  36.   v4 = lpCmdLine;
  37.   byte_524E7C = sub_4418D0(lpCmdLine, 9);
  38.   byte_524E7D = sub_441850(v4, 11, 1);
  39.   if ( sub_441850(v4, 12, 1) != -1 )
  40.     byte_680549 = 1;
  41.   v5 = (void (__stdcall *)(UINT, UINT, PVOID, UINT))SystemParametersInfoA;
  42.   SystemParametersInfoA(0x10u, 0, &byte_680540, 0);
  43.   if ( byte_680540 )
  44.     SystemParametersInfoA(0x11u, 0, 0, 2u);
  45.   if ( sub_441D50(hInstance, (int)hPrevInstance) )
  46.   {
  47.     ImmAssociateContext(hWnd, 0);
  48.     if ( j__malloc((size_t)&unk_8C8470) )
  49.       v6 = (void *)sub_405320(hWnd, 320, 240);
  50.     else
  51.       v6 = 0;
  52.     dword_680568 = v6;
  53.     if ( *(int *)((char *)&dword_8C8338 + (_DWORD)v6) )
  54.     {
  55.       if ( sub_402530(v6) )
  56.         goto LABEL_18;
  57.       v17 = hWnd;
  58.     }
  59.     else
  60.     {
  61.       v17 = hWnd;
  62.     }
  63.     dword_680530 = 13;
  64.     DestroyWindow(v17);
  65.     hWnd = 0;
  66. LABEL_18:
  67.     sub_442B20();
  68.     *(int *)((char *)&dword_8C83F4 + (_DWORD)dword_680568) |= 8u;
  69.     sub_442B70();
  70.     v7 = *(int *)((char *)&dword_8C83F4 + (_DWORD)dword_680568);
  71.     if ( v7 & 0x2000 )
  72.       byte_524E81 = 1;
  73.     else
  74.       byte_524E81 = (v7 & 3) != 0 ? 0 : 2;
  75.     sub_442770();
  76. LABEL_22:
  77.     byte_67C994 = 0;
  78.     while ( 1 )
  79.     {
  80.       while ( 1 )
  81.       {
  82.         do
  83.         {
  84.           while ( 1 )
  85.           {
  86.             do
  87.             {
  88.               while ( PeekMessageA(&Msg, 0, 0, 0, 1u) )
  89.               {
  90.                 if ( Msg.message == 18 )
  91.                 {
  92.                   v5 = (void (__stdcall *)(UINT, UINT, PVOID, UINT))SystemParametersInfoA;
  93.                   goto LABEL_82;
  94.                 }
  95.                 TranslateMessage(&Msg);
  96.                 DispatchMessageA(&Msg);
  97.               }
  98.             }
  99.             while ( !hWnd );
  100.             if ( dword_680530 < 10 && dword_680530 != 255 )
  101.               break;
  102.             DestroyWindow(hWnd);
  103.             hWnd = 0;
  104.           }
  105.         }
  106.         while ( !byte_680565 || !dword_680568 );
  107.         v19 = 333;
  108.         v18 = 166;
  109.         v21 = 166;
  110.         v20 = 666;
  111.         lpCmdLine = (LPSTR)17039873;
  112.         if ( !byte_67C994 )
  113.           break;
  114.         if ( byte_67C994 == 1 )
  115.         {
  116.           v10 = dword_680520;
  117.           goto LABEL_65;
  118.         }
  119.         if ( byte_67C994 == 2 )
  120.         {
  121.           dword_680520 = timeGetTime();
  122.           if ( 10 * (dword_680520 - dword_67C9A4) >= *(&v18 + byte_680534 / 2) )
  123.             byte_67C994 = 1;
  124.         }
  125.       }
  126.       if ( byte_68053E )
  127.         break;
  128.       if ( byte_68053F )
  129.       {
  130.         ((void (*)(void))sub_402290)();
  131.         sub_440210();
  132.         *(int *)((char *)&dword_8C83F4 + (_DWORD)dword_680568) |= 8u;
  133.         sub_442910();
  134.         sub_404D20(dword_680568);
  135. LABEL_38:
  136.         sub_402BC0(dword_680568);
  137.         sub_402A80(dword_680568);
  138.       }
  139.       else
  140.       {
  141.         ((void (*)(void))sub_402290)();
  142.         sub_440210();
  143.         byte_680564 = 0;
  144.         *(int *)((char *)&dword_8C83F4 + (_DWORD)dword_680568) &= 0xFFFFFFF7;
  145.         byte_680536 = 0;
  146.         sub_431070();
  147.         if ( byte_680547 & 1 )
  148.           byte_680547 |= 2u;
  149.         sub_4C3BB0();
  150.         v15 = __OFSUB__(byte_680537 + 1, 100);
  151.         v8 = byte_680537 == 99;
  152.         v14 = (char)(byte_680537++ - 99) < 0;
  153.         if ( !((unsigned __int8)(v14 ^ v15) | v8) )
  154.           byte_680537 = 100;
  155.         v9 = byte_680534;
  156.         byte_68053C += *((_BYTE *)&lpCmdLine + byte_680534 / 2);
  157.         if ( byte_68053C > 60 )
  158.         {
  159.           byte_68053C = 0;
  160.           ++dword_680538;
  161.         }
  162.         v10 = dword_680520;
  163.         if ( (dword_680520 & 0x80000000) < (dword_67C9A4 & 0x80000000) )
  164.         {
  165.           sub_442770();
  166.           v9 = byte_680534;
  167.           v10 = dword_680520;
  168.         }
  169.         dword_68050C += *(&v18 + v9 / 2);
  170.         if ( byte_680535 )
  171.           goto LABEL_55;
  172.         v11 = timeGetTime();
  173.         v9 = byte_680534;
  174.         v10 = v11;
  175.         dword_680520 = v11;
  176.         v12 = 10 * (v11 - dword_67C9A4);
  177.         v13 = *(&v18 + byte_680534 / 2);
  178.         if ( v12 >= v13 )
  179.         {
  180.           if ( !byte_680536 && v12 > 3 * v13 )
  181.             dword_68050C += v13 * (v12 / v13 - 2);
  182. LABEL_55:
  183.           byte_680535 = 0;
  184.           if ( v9 )
  185.           {
  186.             if ( byte_680537 >= 15 )
  187.             {
  188.               v15 = __OFSUB__(dword_68050C + 10000, 10 * v10);
  189.               v14 = dword_68050C + 10000 - 10 * v10 < 0;
  190.               goto LABEL_60;
  191.             }
  192.           }
  193.           else if ( byte_680537 >= 30 )
  194.           {
  195.             v15 = __OFSUB__(dword_68050C + 10000, 10 * v10);
  196.             v14 = dword_68050C + 10000 - 10 * v10 < 0;
  197. LABEL_60:
  198.             if ( v14 ^ v15 )
  199.             {
  200.               sub_442770();
  201.               v10 = dword_680520;
  202.             }
  203.           }
  204.           if ( 10 * v10 > dword_68050C )
  205.           {
  206.             byte_680535 = 1;
  207.             goto LABEL_22;
  208.           }
  209. LABEL_65:
  210.           byte_680537 = 0;
  211.           dword_67C9A4 = v10;
  212.           unknown_libname_8();
  213.           if ( dword_680568 )
  214.           {
  215.             if ( dword_680570 )
  216.             {
  217.               --dword_680570;
  218.             }
  219.             else
  220.             {
  221.               if ( !byte_680564 && !byte_680548 )
  222.                 *(int *)((char *)&dword_8C83F4 + (_DWORD)dword_680568) |= 8u;
  223.               if ( (int (*)())dword_68A1E8 == sub_4BF6A0 )
  224.               {
  225.                 byte_680543 = byte_680542;
  226.                 byte_680542 |= 1u;
  227.                 sub_442B70();
  228.                 byte_680542 = byte_680543;
  229.               }
  230.               else
  231.               {
  232.                 sub_442B70();
  233.                 dword_67C9B0 = 15872;
  234.                 if ( *(int *)((char *)&dword_8C832C + (_DWORD)dword_680568) == 640 )
  235.                 {
  236.                   dword_67C9CC = 0x40000000;
  237.                   dword_67C9C8 = 0x40000000;
  238.                 }
  239.                 else
  240.                 {
  241.                   dword_67C9CC = 1065353216;
  242.                   dword_67C9C8 = 1065353216;
  243.                 }
  244.                 dword_67C9B4 = dword_526210;
  245.                 dword_67C9B8 = dword_68056C;
  246.                 dword_67C9C0 = dword_67C974 + 160;
  247.                 dword_67C9C4 = dword_67C978 + 120;
  248.                 sub_402210(&unk_67C9AC, 4095);
  249.               }
  250.               sub_404D20(dword_680568);
  251.               sub_402BC0(dword_680568);
  252.               if ( byte_68053D )
  253.               {
  254.                 sub_4427E0((unsigned __int8)byte_68053D);
  255.                 sub_402290(dword_680568);
  256.                 sub_4DD280();
  257.                 sub_4CCFE0();
  258.                 sub_4C8C1A();
  259.                 sub_402BC0(dword_680568);
  260.                 byte_68053D = 0;
  261.               }
  262.               sub_4310B0();
  263.               sub_411320((char *)&dword_8C8340 + (_DWORD)dword_680568);
  264.               sub_402A80(dword_680568);
  265.             }
  266.           }
  267.           goto LABEL_22;
  268.         }
  269.         byte_67C994 = 2;
  270.       }
  271.     }
  272.     ((void (*)(void))sub_402290)();
  273.     sub_440210();
  274.     *(int *)((char *)&dword_8C83F4 + (_DWORD)dword_680568) &= 0xFFFFFFF7;
  275.     sub_4CAEE0();
  276.     sub_404D20(dword_680568);
  277.     sub_401F70(dword_680568);
  278.     goto LABEL_38;
  279.   }
  280. LABEL_82:
  281.   sub_441960();
  282.   unknown_libname_20();
  283.   if ( byte_680562 == 1 )
  284.   {
  285.     byte_680562 = 0;
  286.     ShowCursor(1);
  287.   }
  288.   v5(0x11u, byte_680540, 0, 2u);
  289. LABEL_85:
  290.   if ( dword_680530 > 16 )
  291.   {
  292.     switch ( dword_680530 )
  293.     {
  294.       case 17:
  295.         MessageBoxA(0, (LPCSTR)&unk_525060, Caption, 0x30u);
  296.         break;
  297.       case 18:
  298.       case 255:
  299.         break;
  300.       case 19:
  301.         MessageBoxA(0, (LPCSTR)&unk_525034, Caption, 0x30u);
  302.         break;
  303.       default:
  304. LABEL_93:
  305.         MessageBoxA(0, aFatalError, Caption, 0x30u);
  306.         break;
  307.     }
  308.   }
  309.   else if ( dword_680530 == 16 )
  310.   {
  311.     MessageBoxA(0, aPleaseInsertBi, Caption, 0x30u);
  312.   }
  313.   else
  314.   {
  315.     switch ( dword_680530 )
  316.     {
  317.       case 0:
  318.       case 1:
  319.       case 2:
  320.       case 11:
  321.         break;
  322.       case 13:
  323.         MessageBoxA(0, aFailedToInitia_0, Caption, 0x30u);
  324.         break;
  325.       default:
  326.         goto LABEL_93;
  327.     }
  328.   }
  329.   unknown_libname_23();
  330.   if ( dword_680578 )
  331.     CloseHandle(dword_680578);
  332.   return dword_680530;
  333. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement