Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.64 KB | None | 0 0
  1. int __cdecl fptr_get_model_name(SceMsif_subctx *subctx, char *name)
  2. {
  3.         SceMsif_subctx *subctx_1; // r8@1
  4.         char *name_1; // r4@1
  5.         int v4; // r0@1
  6.         signed int v5; // r2@3
  7.         int v6; // r3@3
  8.         uint32_t v7; // r0@8
  9.         int v8; // r2@11
  10.         int v9; // r1@11
  11.         int v10; // r1@12
  12.         unsigned int v11; // r2@12
  13.         unsigned int v12; // r2@12
  14.         char v13; // r0@13
  15.         char v14; // r1@13
  16.         uint32_t v15; // r3@17
  17.         int v21; // r6@22
  18.         char v23; // r0@27
  19.         char v24; // r1@27
  20.         char v25; // r2@27
  21.         int v28; // r1@4
  22.         int v29; // r2@4
  23.         int v30; // r3@4
  24.         signed int v31; // r5@4
  25.         char v32; // r1@38
  26.         int v33; // [sp+0h] [bp-38h]@22
  27.         unsigned __int64 v34; // [sp+4h] [bp-34h]@22
  28.         int v35; // [sp+Ch] [bp-2Ch]@1
  29.  
  30.         subctx_1 = subctx;
  31.         name_1 = name;
  32.         v4 = LOBYTE(subctx->unk_004[0x280]);
  33.         v35 = vA6A004;
  34.         if ( v4 )
  35.         {
  36.                 if ( LOBYTE(subctx_1->unk_004[0x285]) == 0x15 )
  37.                 {
  38.                         v28 = 0x11;
  39.                         v29 = 0x12;
  40.                         v30 = 0x13;
  41.                         v31 = 0x10;
  42.                 }
  43.                 else
  44.                 {
  45.                         v5 = 0x10;
  46.                         v6 = 0;
  47.                         do
  48.                         {
  49.                                 ++v6;
  50.                                 v5 += 0xC;
  51.                                 if ( v6 >= v4 )
  52.                                         goto LABEL_7;
  53.                                 v31 = v5;
  54.                         }
  55.                         while ( LOBYTE(subctx_1->unk_004[v5 / 4u + 0x281]) != 0x15 );
  56.                         v30 = v5 + 3;
  57.                         v28 = v5 + 1;
  58.                         v29 = v5 + 2;
  59.                 }
  60.                 v21 = *((_BYTE *)&subctx_1->unk_004[0x27F] + v30) | (*((_BYTE *)&subctx_1->unk_004[0x27F] + v29) << 8) | ((*((_BYTE *)&subctx_1->unk_004[0x27F] + v28) | (*((_BYTE *)&subctx_1->unk_004[0x27F] + v31) << 8)) << 0x10);
  61.                 get_paddr(subctx_1, (uintptr_t *)&v33);
  62.                 v34 = 0x8007010000000000LL;
  63.                 dcache_and_l2_inv_range(subctx_1, 0x400);
  64.                 JUMPOUT(loc_C29AFA);
  65.         }
  66. LABEL_7:
  67.         name[1] = 'e';
  68.         name[9] = 'i';
  69.         *name = 'M';
  70.         name[2] = 'm';
  71.         name[3] = 'o';
  72.         name[4] = 'r';
  73.         name[5] = 'y';
  74.         name[6] = ' ';
  75.         name[7] = 'S';
  76.         name[8] = 't';
  77.         name[0xA] = 'c';
  78.         name[0xB] = 'k';
  79.         if ( subctx_1->unk_C08 & 0x100 )
  80.         {
  81.                 name[0xD] = 'X';
  82.                 name[0xC] = ' ';
  83.                 name[0xE] = 'C';
  84.                 v7 = subctx_1->unk_C08;
  85.                 if ( v7 & 4 )
  86.                 {
  87.                         name[0x11] = ' ';
  88.                         name[0x14] = 'o';
  89.                         name[0x15] = ' ';
  90.                         name[0x16] = ' ';
  91.                         name[0x17] = ' ';
  92.                         name[0xF] = '-';
  93.                         name[0x10] = 'R';
  94.                         name[0x12] = 'D';
  95.                         name[0x13] = 'u';
  96.                 }
  97.                 else if ( v7 & 2 )
  98.                 {
  99.                         name[0x12] = 'M';
  100.                         name[0x13] = ' ';
  101.                         name[0x16] = 'o';
  102.                         name[0x17] = ' ';
  103.                         name[0xF] = '-';
  104.                         name[0x10] = 'R';
  105.                         name[0x11] = 'O';
  106.                         name[0x14] = 'D';
  107.                         name[0x15] = 'u';
  108.                 }
  109.                 else
  110.                 {
  111.                         name[0xF] = ' ';
  112.                         name[0x12] = 'o';
  113.                         name[0x13] = ' ';
  114.                         name[0x14] = ' ';
  115.                         name[0x15] = ' ';
  116.                         name[0x16] = ' ';
  117.                         name[0x17] = ' ';
  118.                         name[0x10] = 'D';
  119.                         name[0x11] = 'u';
  120.                 }
  121.                 v8 = subctx_1->unk_BC3 | (subctx_1->unk_BC2 << 8) | ((subctx_1->unk_BC1 | (subctx_1->unk_BC0 << 8)) << 0x10);
  122.                 v9 = subctx_1->cluster_count2_1 | (subctx_1->cluster_count2_0 << 8) | ((subctx_1->cluster_count1_3 | (subctx_1->cluster_count1_2 << 8)) << 0x10);
  123.         }
  124.         else
  125.         {
  126.                 name[0xC] = ' ';
  127.                 name[0xD] = 'P';
  128.                 name[0xE] = 'R';
  129.                 name[0xF] = 'O';
  130.                 v15 = subctx_1->unk_C08;
  131.                 if ( v15 & 0x8800 )
  132.                 {
  133.                         __asm { VLDR            D16, aRDuoHgDuoRomDuoDuoS+8; "-HG Duo -ROM Duo Duo    -T" }
  134.                         _R3 = name + 0x10;
  135.                         __asm { VST1.8          {D16}, [R3] }
  136.                 }
  137.                 else if ( v15 & 4 )
  138.                 {
  139.                         __asm { VLDR            D16, aRDuoHgDuoRomDuoDuoS; "-R Duo  -HG Duo -ROM Duo Duo    -T" }
  140.                         _R3 = name + 0x10;
  141.                         __asm { VST1.8          {D16}, [R3] }
  142.                 }
  143.                 else if ( v15 & 2 )
  144.                 {
  145.                         __asm { VLDR            D16, aRDuoHgDuoRomDuoDuoS+0x10; "-ROM Duo Duo    -T" }
  146.                         _R3 = name + 0x10;
  147.                         __asm { VST1.8          {D16}, [R3] }
  148.                 }
  149.                 else
  150.                 {
  151.                         __asm { VLDR            D16, aRDuoHgDuoRomDuoDuoS+0x18; " Duo    -T" }
  152.                         _R3 = name + 0x10;
  153.                         __asm { VST1.8          {D16}, [R3] }
  154.                 }
  155.                 v8 = subctx_1->unk_BA3 | (subctx_1->unk_BA2 << 8);
  156.                 v9 = subctx_1->cluster_count1_3 | (subctx_1->cluster_count1_2 << 8);
  157.         }
  158.         v10 = v8 * v9;
  159.         name_1[0x18] = ' ';
  160.         v11 = subctx_1->unk_BCC;
  161.         name_1[0x19] = 0x28;
  162.         name_1[0x1A] = ' ';
  163.         v12 = v10 * (v11 >> 1);
  164.         if ( v12 >= 0x10000 )
  165.         {
  166.                 if ( v12 >= 0x20000 )
  167.                 {
  168.                         if ( v12 >= 0x40000 )
  169.                         {
  170.                                 if ( v12 < 0x80000 )
  171.                                 {
  172.                                         v23 = '2';
  173.                                         v24 = '5';
  174.                                         v25 = '6';
  175.                                 }
  176.                                 else
  177.                                 {
  178.                                         if ( v12 >= 0x100000 )
  179.                                         {
  180.                                                 if ( v12 >= 0x200000 )
  181.                                                 {
  182.                                                         if ( v12 >= 0x400000 )
  183.                                                         {
  184.                                                                 if ( v12 >= 0x800000 )
  185.                                                                 {
  186.                                                                         if ( v12 >= 0x1000000 )
  187.                                                                                 JUMPOUT(&loc_C29BFC);
  188.                                                                         v32 = '8';
  189.                                                                 }
  190.                                                                 else
  191.                                                                 {
  192.                                                                         v32 = '4';
  193.                                                                 }
  194.                                                         }
  195.                                                         else
  196.                                                         {
  197.                                                                 v32 = '2';
  198.                                                         }
  199.                                                 }
  200.                                                 else
  201.                                                 {
  202.                                                         v32 = '1';
  203.                                                 }
  204.                                                 name_1[0x1B] = ' ';
  205.                                                 name_1[0x1C] = ' ';
  206.                                                 name_1[0x1D] = v32;
  207.                                                 name_1[0x1E] = 'G';
  208.                                                 JUMPOUT(&loc_C29A2A);
  209.                                         }
  210.                                         v23 = '5';
  211.                                         v24 = '1';
  212.                                         v25 = '2';
  213.                                 }
  214.                         }
  215.                         else
  216.                         {
  217.                                 v23 = '1';
  218.                                 v24 = '2';
  219.                                 v25 = '8';
  220.                         }
  221.                         name_1[0x1B] = v23;
  222.                         name_1[0x1C] = v24;
  223.                         name_1[0x1D] = v25;
  224.                         name_1[0x1E] = 'M';
  225.                         JUMPOUT(&loc_C29A2A);
  226.                 }
  227.                 v13 = '6';
  228.                 v14 = '4';
  229.         }
  230.         else
  231.         {
  232.                 v13 = '3';
  233.                 v14 = '2';
  234.         }
  235.         name_1[0x1B] = ' ';
  236.         name_1[0x1C] = v13;
  237.         name_1[0x1D] = v14;
  238.         name_1[0x1E] = 'M';
  239.         JUMPOUT(loc_C29A2A);
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement