Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed int __fastcall Aska::TriListComp::EncodeBySimpleLossLessCompression(__int64 this, signed __int8 *a2, unsigned __int16 *a3, unsigned int a4, unsigned int *a5)
- {
- unsigned int v5; // r9
- signed __int8 *v6; // r8
- unsigned __int16 *v7; // r7
- unsigned int v8; // r10
- signed int v9; // r12
- __int64 *v10; // r5
- unsigned int v11; // r4
- int v12; // r0
- int v13; // r3
- int v14; // r6
- unsigned int v15; // r2
- bool v16; // zf
- signed int v17; // lr
- int v18; // r1
- int v19; // r7
- int v20; // r8
- bool v21; // zf
- unsigned int v22; // r7
- __int16 v23; // r1
- __int16 v24; // r0
- int v25; // r6
- signed int v26; // r7
- int v27; // r11
- bool v28; // zf
- bool v29; // zf
- bool v30; // zf
- bool v31; // zf
- bool v32; // zf
- signed int v33; // r6
- signed int v34; // r6
- signed int v35; // r7
- unsigned int v36; // r0
- int v37; // r2
- unsigned int v38; // r1
- unsigned int v39; // r2
- int v40; // r7
- bool v41; // nf
- int *v42; // r1
- unsigned int *v43; // r0
- int *v44; // r1
- unsigned int *v45; // r0
- unsigned int *v46; // r0
- __int64 v48; // [sp+0h] [bp-B0h]
- Aska::TSharedPointerCode *v49; // [sp+8h] [bp-A8h]
- __int64 v50; // [sp+Ch] [bp-A4h]
- __int64 v51; // [sp+18h] [bp-98h]
- __int64 v52; // [sp+20h] [bp-90h]
- _DWORD (__fastcall **v53)(Aska::StaticStream *__hidden); // [sp+2Ch] [bp-84h]
- __int64 v54; // [sp+30h] [bp-80h]
- __int64 v55; // [sp+38h] [bp-78h]
- int v56; // [sp+40h] [bp-70h]
- int (**v57)(); // [sp+54h] [bp-5Ch]
- __int64 v58; // [sp+58h] [bp-58h]
- __int64 v59; // [sp+60h] [bp-50h]
- int v60; // [sp+68h] [bp-48h]
- int v61; // [sp+6Ch] [bp-44h]
- __int16 v62; // [sp+70h] [bp-40h]
- __int16 v63; // [sp+72h] [bp-3Eh]
- __int16 v64; // [sp+74h] [bp-3Ch]
- __int16 v65; // [sp+76h] [bp-3Ah]
- v5 = HIDWORD(this);
- v6 = a2;
- v7 = a3;
- v57 = &off_1FE0FC0;
- v58 = 0LL;
- v59 = 0LL;
- v60 = 8;
- v61 = 0;
- if ( (_DWORD)this )
- {
- v58 = this;
- LODWORD(v59) = HIDWORD(this);
- }
- else
- {
- Aska::TArray<unsigned short,false>::Resize(&v57, HIDWORD(this), 0);
- }
- v8 = 0;
- v53 = off_1FE09A0;
- v54 = 0LL;
- v55 = 0LL;
- v56 = 0;
- Aska::StaticStream::Open((Aska::StaticStream *)&v53, v6, (unsigned int)v7);
- v10 = &v48;
- *(__int64 *)((char *)&v48 + 4) = 0LL;
- v50 = 0LL;
- v48 = (unsigned int)off_203130C;
- if ( v7 )
- v10 = (__int64 *)&v53;
- if ( v6 )
- v10 = (__int64 *)&v53;
- v51 = 0LL;
- v52 = 0LL;
- if ( v5 )
- {
- while ( 1 )
- {
- v11 = v8 + 3;
- if ( v8 + 3 >= (unsigned int)v59 )
- goto LABEL_68;
- v12 = v58 + 2 * v8;
- v13 = *(unsigned __int16 *)(v58 + 2 * v8);
- v14 = *(unsigned __int16 *)(v12 + 2);
- if ( v13 == v14 )
- goto LABEL_68;
- v15 = *(unsigned __int16 *)(v12 + 4);
- v16 = v14 == v15;
- if ( v14 != v15 )
- v16 = v15 == v13;
- if ( v16 )
- goto LABEL_68;
- v17 = 2;
- v18 = v58 + 2 * v11;
- v19 = *(unsigned __int16 *)(v58 + 2 * v11);
- v20 = *(unsigned __int16 *)(v18 + 2);
- v21 = v19 == v14;
- if ( v19 == v14 )
- v21 = v20 == v13;
- if ( v21 )
- {
- v22 = *(unsigned __int16 *)(v12 + 2);
- v15 = *(unsigned __int16 *)(v58 + 2 * v8);
- v9 = 2;
- goto LABEL_19;
- }
- v27 = *(unsigned __int16 *)(v18 + 4);
- v28 = v20 == v14;
- if ( v20 == v14 )
- v28 = v27 == v13;
- if ( v28 )
- {
- v22 = *(unsigned __int16 *)(v12 + 2);
- v15 = *(unsigned __int16 *)(v58 + 2 * v8);
- v9 = 2;
- LABEL_33:
- v17 = 0;
- goto LABEL_19;
- }
- v29 = v19 == v13;
- if ( v19 == v13 )
- v29 = v27 == v14;
- if ( v29 )
- break;
- v30 = v19 == v15;
- if ( v19 == v15 )
- {
- v9 = 0;
- v30 = v20 == v14;
- }
- if ( !v30 )
- {
- v31 = v20 == v15;
- v9 = 0;
- if ( v20 == v15 )
- v31 = v27 == v14;
- if ( v31 )
- {
- v22 = *(unsigned __int16 *)(v12 + 4);
- v15 = *(unsigned __int16 *)(v12 + 2);
- goto LABEL_33;
- }
- v32 = v19 == v14;
- if ( v19 == v14 )
- v32 = v27 == v15;
- if ( !v32 )
- {
- v33 = 0;
- if ( v20 != v15 )
- v33 = 1;
- v9 = 1;
- if ( v19 == v13 && v33 != 1 )
- goto LABEL_106;
- v34 = 0;
- if ( v27 != v15 )
- v34 = 1;
- v17 = 0;
- if ( v20 != v13 || v34 == 1 )
- {
- v16 = v19 == v15;
- v35 = 0;
- if ( !v16 )
- v35 = 1;
- if ( v27 != v13 )
- goto LABEL_68;
- v16 = v35 == 0;
- v9 = 1;
- v22 = *(unsigned __int16 *)(v58 + 2 * v8);
- v17 = 1;
- if ( !v16 )
- goto LABEL_68;
- }
- else
- {
- LABEL_106:
- v22 = *(unsigned __int16 *)(v58 + 2 * v8);
- }
- goto LABEL_19;
- }
- v22 = *(unsigned __int16 *)(v12 + 4);
- v15 = *(unsigned __int16 *)(v12 + 2);
- goto LABEL_39;
- }
- v22 = *(unsigned __int16 *)(v12 + 4);
- v15 = *(unsigned __int16 *)(v12 + 2);
- LABEL_19:
- v23 = *(_WORD *)(v18 + 2 * v17);
- v24 = *(_WORD *)(v12 + 2 * v9);
- if ( v15 >= v22 )
- {
- v62 = v22;
- v63 = v15;
- v64 = v23;
- v65 = v24;
- }
- else
- {
- v62 = v15;
- v63 = v22;
- v64 = v24;
- v65 = v23;
- }
- v25 = 4;
- if ( (*(int (__fastcall **)(__int64 *, __int16 *, signed int, signed int, _DWORD))(*(_DWORD *)v10 + 24))(
- v10,
- &v62,
- 2,
- 4,
- v48) != 4 )
- {
- v25 = (*(int (__fastcall **)(__int64 *))(*(_DWORD *)v10 + 40))(v10);
- if ( v25 >= 0 )
- v25 = -961;
- }
- v26 = 0;
- if ( v25 < 0 )
- goto LABEL_79;
- if ( v25 >= 1 )
- {
- v11 = v8 + 6;
- goto LABEL_77;
- }
- LABEL_68:
- v37 = v58 + 2 * v8;
- v36 = *(unsigned __int16 *)(v58 + 2 * v8);
- v38 = *(unsigned __int16 *)(v37 + 4);
- v39 = *(unsigned __int16 *)(v37 + 2);
- if ( v36 >= v39 )
- {
- v62 = *(_WORD *)(v58 + 2 * v8);
- v63 = v39;
- v64 = v38;
- }
- else if ( v39 >= v38 )
- {
- v62 = v39;
- v63 = v38;
- v64 = v36;
- }
- else
- {
- v62 = v38;
- v63 = v36;
- v64 = v39;
- }
- v40 = 3;
- if ( (*(int (__fastcall **)(__int64 *, __int16 *, signed int, signed int, _DWORD))(*(_DWORD *)v10 + 24))(
- v10,
- &v62,
- 2,
- 3,
- v48) != 3 )
- {
- v40 = (*(int (__fastcall **)(__int64 *))(*(_DWORD *)v10 + 40))(v10);
- if ( v40 >= 0 )
- v40 = -961;
- }
- v41 = v40 < 0;
- v26 = 0;
- if ( v41 )
- goto LABEL_79;
- LABEL_77:
- v8 = v11;
- if ( v11 >= v5 )
- goto LABEL_78;
- }
- v22 = *(unsigned __int16 *)(v12 + 2);
- v15 = *(unsigned __int16 *)(v58 + 2 * v8);
- v9 = 2;
- LABEL_39:
- v17 = 1;
- goto LABEL_19;
- }
- LABEL_78:
- *(_DWORD *)a4 = (*(int (__fastcall **)(__int64 *))(*(_DWORD *)v10 + 12))(v10);
- v26 = 1;
- LABEL_79:
- v42 = (int *)0xFFFFD4E4;
- LODWORD(v48) = off_1FDEAFC;
- v43 = (unsigned int *)v49;
- if ( !v49 )
- goto LABEL_107;
- __dmb(0xBu);
- do
- v42 = (int *)__ldrex(v43);
- while ( __strex((unsigned int)v42 - 1, v43) );
- __dmb(0xBu);
- if ( v42 == (int *)((char *)&dword_0 + 1) )
- {
- LABEL_107:
- if ( HIDWORD(v48) )
- (*(void (__cdecl **)(_DWORD))(*(_DWORD *)HIDWORD(v48) + 4))(HIDWORD(v48));
- if ( v49 )
- Aska::TSharedPointerCode::DeleteCounter(v49, v42);
- }
- v44 = 0;
- HIDWORD(v48) = 0;
- v53 = off_1FE09A0;
- v45 = (unsigned int *)HIDWORD(v55);
- if ( !HIDWORD(v55) )
- goto LABEL_108;
- __dmb(0xBu);
- do
- v44 = (int *)__ldrex(v45);
- while ( __strex((unsigned int)v44 - 1, v45) );
- __dmb(0xBu);
- if ( v44 == (int *)((char *)&dword_0 + 1) )
- {
- LABEL_108:
- if ( (_DWORD)v55 )
- operator delete[]((void *)v55);
- if ( HIDWORD(v55) )
- Aska::TSharedPointerCode::DeleteCounter((Aska::TSharedPointerCode *)HIDWORD(v55), v44);
- }
- v55 = 0LL;
- v46 = (unsigned int *)HIDWORD(v54);
- if ( !HIDWORD(v54) )
- goto LABEL_109;
- __dmb(0xBu);
- do
- v44 = (int *)__ldrex(v46);
- while ( __strex((unsigned int)v44 - 1, v46) );
- __dmb(0xBu);
- if ( v44 == (int *)((char *)&dword_0 + 1) )
- {
- LABEL_109:
- if ( (_DWORD)v54 )
- operator delete[]((void *)v54);
- if ( HIDWORD(v54) )
- Aska::TSharedPointerCode::DeleteCounter((Aska::TSharedPointerCode *)HIDWORD(v54), v44);
- }
- return v26;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement