Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## D55AC511052632411F960256325C3850
- signed int __fastcall LGE_Check_Function(int a1, int a2, int a3, int a4, int a5, int a6, char *a7, int a8, int a9, int a10)
- {
- int v10; // r7@1
- int v11; // r11@1
- int v12; // r12@3
- int v13; // r6@4
- int v14; // r1@5
- int v16; // r1@15
- int v17; // r2@15
- int v18; // r3@15
- int v19; // r1@17
- int v20; // r2@17
- int v21; // r3@17
- int v22; // ST00_4@18
- int v23; // r2@19
- int v24; // r3@19
- unsigned int v25; // r3@22
- char v26; // zf@22
- int v27; // r2@27
- int v28; // r3@27
- unsigned int v29; // r3@31
- char v30; // zf@31
- int v31; // r0@36
- int v32; // [sp+4h] [bp-2BCh]@1
- int v33; // [sp+8h] [bp-2B8h]@1
- int v34; // [sp+Ch] [bp-2B4h]@4
- int v35; // [sp+10h] [bp-2B0h]@5
- int v36; // [sp+14h] [bp-2ACh]@4
- int v37; // [sp+18h] [bp-2A8h]@5
- int v38; // [sp+1Ch] [bp-2A4h]@5
- int v39; // [sp+20h] [bp-2A0h]@5
- int v40; // [sp+24h] [bp-29Ch]@13
- unsigned __int8 v41; // [sp+2Ch] [bp-294h]@1
- unsigned __int8 v42; // [sp+2Dh] [bp-293h]@2
- char v43; // [sp+30h] [bp-290h]@2
- char v44; // [sp+50h] [bp-270h]@2
- char v45; // [sp+70h] [bp-250h]@2
- char v46; // [sp+90h] [bp-230h]@15
- int v47; // [sp+B0h] [bp-210h]@2
- char *v48; // [sp+B4h] [bp-20Ch]@2
- int v49; // [sp+B8h] [bp-208h]@19
- char *v50; // [sp+BCh] [bp-204h]@19
- int v51; // [sp+D8h] [bp-1E8h]@3
- int v52; // [sp+DCh] [bp-1E4h]@4
- int v53; // [sp+E0h] [bp-1E0h]@4
- char *v54; // [sp+E4h] [bp-1DCh]@2
- int v55; // [sp+E8h] [bp-1D8h]@5
- char *v56; // [sp+ECh] [bp-1D4h]@2
- int v57; // [sp+F0h] [bp-1D0h]@4
- char *v58; // [sp+F4h] [bp-1CCh]@2
- int v59; // [sp+F8h] [bp-1C8h]@5
- char *v60; // [sp+FCh] [bp-1C4h]@2
- int v61; // [sp+100h] [bp-1C0h]@11
- char *v62; // [sp+104h] [bp-1BCh]@2
- int v63; // [sp+108h] [bp-1B8h]@11
- char *v64; // [sp+10Ch] [bp-1B4h]@2
- char v65; // [sp+118h] [bp-1A8h]@2
- char v66; // [sp+198h] [bp-128h]@2
- char v67; // [sp+218h] [bp-A8h]@2
- v10 = a2;
- v11 = a1;
- v33 = a3;
- v32 = a4;
- v41 = 64;
- if ( a10 )
- {
- v48 = a7;
- v42 = 19;
- v47 = a8;
- v62 = &v45;
- v54 = &v43;
- v56 = &v65;
- v58 = &v44;
- v60 = &v66;
- v64 = &v67;
- }
- else
- {
- v47 = a8;
- v42 = 9;
- v48 = a7;
- v54 = &v43;
- v56 = &v65;
- v58 = &v44;
- v60 = &v66;
- }
- v12 = sub_F71FD90(&v41, &v47, &v51); // What is this?? If v51 gets set to 1734742343 we get an unlock. If it's set to 1734742343 we get kernel crypto verify...
- if ( v12 )
- goto LABEL_17;
- v13 = v52;
- v34 = v53;
- v36 = v57;
- if ( a10 ) // If this is 1, we get unlock
- {
- v35 = v55;
- v38 = v61;
- v14 = v59;
- v39 = v63;
- v37 = v59;
- if ( v51 != 1734742343 )
- goto LABEL_6;
- LABEL_12:
- sub_F71CED4((int)"Device UnLock\n", v14, v51, 1734742343);
- return 0;
- }
- v14 = v55;
- v38 = 0;
- v37 = v59;
- v35 = v55;
- v39 = 0;
- if ( v51 == 1734742343 )
- goto LABEL_12;
- LABEL_6:
- sub_F71CED4((int)"FEATURE_LGE_QCT_HW_CRYPTO kernel verify start!!! [%d] \n", 232, v51, 1734742343);
- if ( v13 != 2 && v13 != 1 )
- return 13;
- v40 = -a9;
- if ( v10 != (-a9 & (v10 - 1 + a9)) )
- v10 = (v10 & 0xFFFFFFF8) + 8;
- sub_F71E150((int)&v46, 0, 32);
- sub_F7116EC(v11, v10, (int)&v46, v13);
- if ( sub_F71E230((int)&v43, (int)&v46, 32) )
- {
- LABEL_16:
- sub_F71CED4((int)"hash verify Error\n", v16, v17, v18);
- return 19;
- }
- sub_F71CED4((int)"FEATURE_LGE_QCT_HW_CRYPTO kernel verify end [%d] \n", 251, v17, v18);
- v41 = 64;
- v42 = 14;
- v48 = &v43;
- v50 = &v65;
- v47 = v34;
- v49 = v35;
- v12 = sub_F71FD90(&v41, &v47, &v51);
- if ( v12 )
- goto LABEL_17;
- sub_F71CED4((int)"FEATURE_LGE_QCT_HW_CRYPTO ramdisk verify start!!! [%d] \n", 341, v23, v24);
- if ( v13 == 2 || v13 == 1 )
- {
- v25 = (v32 - 1 + a9) & v40;
- v26 = v32 == v25;
- if ( v32 != v25 )
- v25 = v32 & 0xFFFFFFF8;
- if ( !v26 )
- v32 = v25 + 8;
- sub_F71E150((int)&v46, 0, 32);
- sub_F7116EC(v33, v32, (int)&v46, v13);
- if ( sub_F71E230((int)&v44, (int)&v46, 32) )
- goto LABEL_16;
- sub_F71CED4((int)"FEATURE_LGE_QCT_HW_CRYPTO ramdisk verify end [%d] \n", 360, v17, v18);
- v41 = 64;
- v42 = 14;
- v48 = &v44;
- v50 = &v66;
- v47 = v36;
- v49 = v37;
- v12 = sub_F71FD90(&v41, &v47, &v51);
- if ( !v12 )
- {
- if ( !a10 )
- return v12;
- sub_F71CED4((int)"FEATURE_LGE_QCT_HW_CRYPTO device-tree verify start!!! [%d] \n", 453, v27, v28);
- if ( v13 != 2 && v13 != 1 )
- return 13;
- v29 = (a6 - 1 + a9) & v40;
- v30 = a6 == v29;
- if ( a6 != v29 )
- v29 = a6 & 0xFFFFFFF8;
- if ( !v30 )
- a6 = v29 + 8;
- sub_F71E150((int)&v46, 0, 32);
- sub_F7116EC(a5, a6, (int)&v46, v13);
- if ( sub_F71E230((int)&v45, (int)&v46, 32) )
- goto LABEL_16;
- sub_F71CED4((int)"FEATURE_LGE_QCT_HW_CRYPTO device-tree verify end [%d] \n", 472, v17, v18);
- v41 = 64;
- v42 = 14;
- v48 = &v45;
- v47 = v38;
- v49 = v39;
- v50 = &v67;
- v31 = sub_F71FD90(&v41, &v47, &v51);
- v12 = 0;
- if ( !v31 )
- return v12;
- v19 = v41;
- v20 = v31;
- v21 = v42;
- v12 = v31;
- LABEL_18:
- v22 = v12;
- sub_F71CED4((int)"security_interface_command = 0x%X result = %d\n", v19 + v21, v20, v21);
- return v22;
- }
- LABEL_17:
- v19 = v41;
- v20 = v12;
- v21 = v42;
- goto LABEL_18;
- }
- return 13;
- }
Advertisement
Add Comment
Please, Sign In to add comment