Advertisement
Guest User

PNG Function

a guest
Jan 22nd, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.04 KB | None | 0 0
  1. int __fastcall bgadCaller5(int *a1, int a2, int a3, intmax_t *a4)
  2. {
  3.   int *v4; // r4
  4.   intmax_t *v5; // r8
  5.   _BYTE *v6; // r1
  6.   void *v7; // r6
  7.   int result; // r0
  8.   void *v9; // r5
  9.   void *v10; // r5
  10.   int v11; // r6
  11.   int v12; // r0
  12.   void *v13; // r5
  13.   void *v14; // r5
  14.   intmax_t v15; // r0
  15.   char *endptr; // [sp+10h] [bp-80h]
  16.   int v17; // [sp+14h] [bp-7Ch]
  17.   std::__ndk1::__shared_weak_count *v18; // [sp+18h] [bp-78h]
  18.   int v19; // [sp+1Ch] [bp-74h]
  19.   std::__ndk1::__shared_weak_count *v20; // [sp+20h] [bp-70h]
  20.   int v21; // [sp+24h] [bp-6Ch]
  21.   std::__ndk1::__shared_weak_count *v22; // [sp+28h] [bp-68h]
  22.   int v23; // [sp+2Ch] [bp-64h]
  23.   std::__ndk1::__shared_weak_count *v24; // [sp+30h] [bp-60h]
  24.   int v25; // [sp+34h] [bp-5Ch]
  25.   std::__ndk1::__shared_weak_count *v26; // [sp+38h] [bp-58h]
  26.   int v27; // [sp+3Ch] [bp-54h]
  27.   std::__ndk1::__shared_weak_count *v28; // [sp+40h] [bp-50h]
  28.   int v29; // [sp+44h] [bp-4Ch]
  29.   std::__ndk1::__shared_weak_count *v30; // [sp+48h] [bp-48h]
  30.   int v31; // [sp+4Ch] [bp-44h]
  31.   std::__ndk1::__shared_weak_count *v32; // [sp+50h] [bp-40h]
  32.   int v33; // [sp+54h] [bp-3Ch]
  33.   std::__ndk1::__shared_weak_count *v34; // [sp+58h] [bp-38h]
  34.   int v35; // [sp+5Ch] [bp-34h]
  35.   std::__ndk1::__shared_weak_count *v36; // [sp+60h] [bp-30h]
  36.   int v37; // [sp+64h] [bp-2Ch]
  37.   std::__ndk1::__shared_weak_count *v38; // [sp+68h] [bp-28h]
  38.   int v39; // [sp+6Ch] [bp-24h]
  39.   std::__ndk1::__shared_weak_count *v40; // [sp+70h] [bp-20h]
  40.   char v41; // [sp+74h] [bp-1Ch]
  41.   _BYTE v42[3]; // [sp+75h] [bp-1Bh]
  42.   void *v43; // [sp+7Ch] [bp-14h]
  43.   int v44; // [sp+80h] [bp-10h]
  44.  
  45.   v4 = a1;
  46.   v5 = a4;
  47.   sub_6123A0(&v41, a3);
  48.   v6 = v43;
  49.   if ( !(v41 & 1) )
  50.     v6 = v42;
  51.   sub_7F02F4(&v39, v6, 0, 0);
  52.   v7 = sub_7F076C();
  53.   v35 = v39;
  54.   v36 = v40;
  55.   if ( v40 )
  56.     std::__ndk1::__shared_weak_count::__add_shared(v40);
  57.   sub_7F0820(&v37, v7, &v35, 0);
  58.   if ( v36 )
  59.     std::__ndk1::__shared_weak_count::__release_shared(v36);
  60.   if ( v37 && !strcmp(*(const char **)(v37 + 4), "/") )
  61.     goto LABEL_17;
  62.   *v4 = 0;
  63.   v4[1] = 0;
  64.   while ( 1 )
  65.   {
  66.     if ( v38 )
  67.       std::__ndk1::__shared_weak_count::__release_shared(v38);
  68.     if ( v40 )
  69.       std::__ndk1::__shared_weak_count::__release_shared(v40);
  70.     if ( v41 & 1 )
  71.       operator delete(v43);
  72.     result = _stack_chk_guard - v44;
  73.     if ( _stack_chk_guard == v44 )
  74.       break;
  75. LABEL_17:
  76.     (*(void (**)(void))(*(_DWORD *)v39 + 12))();
  77.     v9 = sub_7F076C();
  78.     v31 = v39;
  79.     v32 = v40;
  80.     if ( v40 )
  81.       std::__ndk1::__shared_weak_count::__add_shared(v40);
  82.     sub_7F0820(&v33, v9, &v31, 0);
  83.     if ( v32 )
  84.       std::__ndk1::__shared_weak_count::__release_shared(v32);
  85.     if ( v33 && !strcmp(*(const char **)(v33 + 4), "md5") )
  86.     {
  87.       (*(void (__cdecl **)(int))(*(_DWORD *)v39 + 16))(v39);
  88.       sub_612BD8(&v29);
  89.       v10 = sub_7F076C();
  90.       v25 = v39;
  91.       v26 = v40;
  92.       if ( v40 )
  93.         std::__ndk1::__shared_weak_count::__add_shared(v40);
  94.       v11 = v29;
  95.       bgadFunction(&v27, (int)v10, &v25, *(_QWORD *)(v29 + 4), *(_QWORD *)(v29 + 4) >> 32, 1, 0);
  96.       if ( v26 )
  97.         std::__ndk1::__shared_weak_count::__release_shared(v26);
  98.       v12 = v27;
  99.       if ( v27 && *(_DWORD *)(v27 + 8) == 32 )
  100.       {
  101.         if ( v5 )
  102.         {
  103.           (*(void (**)(void))(*(_DWORD *)v39 + 12))();
  104.           v13 = sub_7F076C();
  105.           v21 = v39;
  106.           v22 = v40;
  107.           if ( v40 )
  108.             std::__ndk1::__shared_weak_count::__add_shared(v40);
  109.           sub_7F0820(&v23, v13, &v21, 0);
  110.           if ( v22 )
  111.             std::__ndk1::__shared_weak_count::__release_shared(v22);
  112.           if ( v23 && !strcmp(*(const char **)(v23 + 4), "size") )
  113.           {
  114.             (*(void (__cdecl **)(int))(*(_DWORD *)v39 + 16))(v39);
  115.             v14 = sub_7F076C();
  116.             v17 = v39;
  117.             v18 = v40;
  118.             if ( v40 )
  119.               std::__ndk1::__shared_weak_count::__add_shared(v40);
  120.             bgadFunction(&v19, (int)v14, &v17, *(_QWORD *)(v11 + 4), *(_QWORD *)(v11 + 4) >> 32, 1, 0);
  121.             if ( v18 )
  122.               std::__ndk1::__shared_weak_count::__release_shared(v18);
  123.             if ( v19 )
  124.             {
  125.               v15 = strtoimax((const char *)*(_DWORD *)(v19 + 4), &endptr, 10);
  126.               if ( !HIDWORD(v15) && !*endptr )
  127.                 *v5 = v15;
  128.             }
  129.             if ( v20 )
  130.               std::__ndk1::__shared_weak_count::__release_shared(v20);
  131.           }
  132.           if ( v24 )
  133.             std::__ndk1::__shared_weak_count::__release_shared(v24);
  134.           v12 = v27;
  135.         }
  136.         *v4 = v12;
  137.         v4[1] = (int)v28;
  138.         v27 = 0;
  139.         v28 = 0;
  140.       }
  141.       else
  142.       {
  143.         *v4 = 0;
  144.         v4[1] = 0;
  145.         if ( v28 )
  146.           std::__ndk1::__shared_weak_count::__release_shared(v28);
  147.       }
  148.       if ( v30 )
  149.         std::__ndk1::__shared_weak_count::__release_shared(v30);
  150.     }
  151.     else
  152.     {
  153.       *v4 = 0;
  154.       v4[1] = 0;
  155.     }
  156.     if ( v34 )
  157.       std::__ndk1::__shared_weak_count::__release_shared(v34);
  158.   }
  159.   return result;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement