Created
February 5, 2022 14:37
-
-
Save ghoulgy/b1eb1e7e2ae4df807eb71aaff2d2337f to your computer and use it in GitHub Desktop.
[RedDev Series #4] LLVM obfuscated psudocode
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| __int64 __fastcall sub_140004430(int a1) | |
| { | |
| unsigned int v1; // edi | |
| int v2; // er12 | |
| unsigned int v3; // er13 | |
| int v5; // eax | |
| unsigned int v6; // edx | |
| bool v7; // bl | |
| unsigned __int8 v8; // cl | |
| bool v9; // dl | |
| int v10; // esi | |
| unsigned int v11; // edx | |
| bool v12; // al | |
| bool v13; // dl | |
| char v14; // cl | |
| char v15; // cl | |
| unsigned int v16; // ecx | |
| bool v17; // dl | |
| char v18; // cl | |
| int v19; // esi | |
| char v20; // cl | |
| unsigned int v21; // ecx | |
| bool v22; // bl | |
| bool v23; // dl | |
| bool v24; // cl | |
| int v25; // ebp | |
| char v26; // cl | |
| unsigned int v27; // edx | |
| char v28; // cl | |
| char v29; // dl | |
| int v30; // ebp | |
| bool v31; // bl | |
| char v32; // dl | |
| int v33; // ebp | |
| int v34; // esi | |
| unsigned __int8 v35; // dl | |
| unsigned int v36; // ebp | |
| unsigned int v37; // edx | |
| bool v38; // al | |
| bool v39; // bl | |
| bool v40; // dl | |
| bool v41; // cl | |
| int v42; // esi | |
| char v43; // cl | |
| unsigned int v44; // edx | |
| bool v45; // al | |
| char v46; // dl | |
| bool v47; // bl | |
| bool v48; // dl | |
| int v49; // esi | |
| int v50; // esi | |
| int v51; // ebp | |
| unsigned int v52; // ecx | |
| bool v54; // [rsp+2Ch] [rbp-5Ch] | |
| bool v55; // [rsp+2Dh] [rbp-5Bh] | |
| bool v56; // [rsp+2Eh] [rbp-5Ah] | |
| bool v57; // [rsp+2Fh] [rbp-59h] | |
| unsigned int v58; // [rsp+30h] [rbp-58h] | |
| bool v59; // [rsp+37h] [rbp-51h] | |
| unsigned int v60; // [rsp+38h] [rbp-50h] | |
| int v61; // [rsp+3Ch] [rbp-4Ch] | |
| v54 = (~(((~(dword_14001214C * (dword_14001214C - 1)) & 0x7B867B2B | (dword_14001214C * (dword_14001214C - 1)) & 0x847984D4) ^ 0x847984D4) & 0xFFFFFFFE | (~(dword_14001214C * (dword_14001214C - 1)) & 0x7B867B2B | (dword_14001214C * (dword_14001214C - 1)) & 0x847984D4) ^ 0x7B867B2A) & 0xFF10192F | ((~(dword_14001214C * (dword_14001214C - 1)) & 0x7B867B2B | (dword_14001214C * (dword_14001214C - 1)) & 0x847984D4) ^ 0x847984D4) & 0xEFE6D0 | ((~(dword_14001214C * (dword_14001214C - 1)) & 0x7B867B2B | (dword_14001214C * (dword_14001214C - 1)) & 0x847984D4) ^ 0x7B867B2A) & 0xEFE6D0) == 0xEFE6D0; | |
| v55 = dword_140012150 < 10; | |
| v5 = 347117341; | |
| while ( 1 ) | |
| { | |
| while ( 1 ) | |
| { | |
| LABEL_5: | |
| while ( v5 <= 439295779 ) | |
| { | |
| if ( v5 <= 209750761 ) | |
| { | |
| if ( v5 == -673838089 ) | |
| goto LABEL_69; | |
| if ( v5 == -345390353 ) | |
| { | |
| v44 = (~(dword_14001214C * (dword_14001214C - 1)) & 0x80C88541 | (dword_14001214C * (dword_14001214C - 1)) & 0x7F377ABE) ^ 0x7F377ABF; | |
| v45 = (v44 & (v44 ^ ~(dword_14001214C * (dword_14001214C - 1)))) != 0; | |
| v28 = ((v44 & (v44 ^ ~(dword_14001214C * (dword_14001214C - 1)))) == 0) ^ (dword_140012150 < 10); | |
| v46 = (v45 && dword_140012150 > 9) | v45 ^ (dword_140012150 > 9); | |
| v5 = -1994909853; | |
| if ( v28 == v46 ) | |
| v5 = -1740198421; | |
| v30 = v5; | |
| if ( !v46 ) | |
| v30 = -1740198421; | |
| goto LABEL_96; | |
| } | |
| if ( v5 != -242721938 ) | |
| goto LABEL_4; | |
| v5 = 295850271; | |
| v2 = 1; | |
| } | |
| else if ( v5 > 347117340 ) | |
| { | |
| if ( v5 == 347117341 ) | |
| { | |
| v50 = -853117837; | |
| v5 = 439295780; | |
| v51 = -853117837; | |
| if ( (((!v55 && !v54) | !v55 ^ !v54) & 1) == 0 ) | |
| v51 = 439295780; | |
| if ( ((v54 ^ v55) & 1) != 0 ) | |
| v50 = v51; | |
| if ( ((v54 ^ v55 ^ ((!v55 && !v54) | !v55 ^ !v54)) & 1) != 0 ) | |
| v5 = v50; | |
| if ( v5 <= -673838090 ) | |
| { | |
| while ( 1 ) | |
| { | |
| while ( 1 ) | |
| { | |
| while ( 1 ) | |
| { | |
| LABEL_10: | |
| while ( v5 > -1405473200 ) | |
| { | |
| if ( v5 <= -1051584166 ) | |
| { | |
| if ( v5 == -1405473199 ) | |
| { | |
| v5 = -1040151695; | |
| if ( v56 ) | |
| goto LABEL_4; | |
| v5 = -673838089; | |
| } | |
| else if ( v5 == -1223443054 ) | |
| { | |
| v5 = 1109154448; | |
| v3 = v58; | |
| } | |
| else | |
| { | |
| v5 = 209750762; | |
| if ( v57 ) | |
| goto LABEL_4; | |
| v5 = 1945631178; | |
| } | |
| goto LABEL_5; | |
| } | |
| if ( v5 > -873674621 ) | |
| { | |
| if ( v5 != -873674620 ) | |
| { | |
| if ( v5 != -853117837 ) | |
| goto LABEL_4; | |
| sub_1400014C0(); | |
| v5 = 439295780; | |
| goto LABEL_5; | |
| } | |
| v5 = -1956409894; | |
| } | |
| else if ( v5 == -1051584165 ) | |
| { | |
| v31 = (~((((~(dword_14001214C * (dword_14001214C - 1)) & 0xDDA5908E | (dword_14001214C | |
| * (dword_14001214C - 1)) & 0x225A6F71) ^ 0xD001808A) & 0xF0018C9B | ((~(dword_14001214C * (dword_14001214C - 1)) & 0xDDA5908E | (dword_14001214C * (dword_14001214C - 1)) & 0x225A6F71) ^ 0x225A6F71) & 0xFFE7364) ^ 0xFFE7365 | ((~(dword_14001214C * (dword_14001214C - 1)) & 0xDDA5908E | (dword_14001214C * (dword_14001214C - 1)) & 0x225A6F71) ^ 0x225A6F71) & 0xFFFFFFFE) & 0xBCC69143 | ((((~(dword_14001214C * (dword_14001214C - 1)) & 0xDDA5908E | (dword_14001214C * (dword_14001214C - 1)) & 0x225A6F71) ^ 0xD001808A) & 0xF0018C9B | ((~(dword_14001214C * (dword_14001214C - 1)) & 0xDDA5908E | (dword_14001214C * (dword_14001214C - 1)) & 0x225A6F71) ^ 0x225A6F71) & 0xFFE7364) ^ 0xFFE7365) & 0x43396EBC | ((~(dword_14001214C * (dword_14001214C - 1)) & 0xDDA5908E | (dword_14001214C * (dword_14001214C - 1)) & 0x225A6F71) ^ 0x225A6F71) & 0x43396EBC) == 0x43396EBC; | |
| v32 = v31 ^ (dword_140012150 > 9); | |
| v33 = 2063599646; | |
| v5 = -1454101977; | |
| v34 = 2063599646; | |
| if ( !(v31 ^ (dword_140012150 < 10) | (!v31 && dword_140012150 >= 10)) ) | |
| v34 = -1454101977; | |
| if ( !v32 ) | |
| v33 = v34; | |
| if ( v32 != (v31 ^ (dword_140012150 < 10) | (!v31 && dword_140012150 >= 10)) ) | |
| goto LABEL_4; | |
| v5 = v33; | |
| if ( v33 > -673838090 ) | |
| goto LABEL_5; | |
| } | |
| else | |
| { | |
| v11 = (~(dword_14001214C * (dword_14001214C - 1)) & 0x1AAAE6C4 | (dword_14001214C | |
| * (dword_14001214C - 1)) & 0xE555193B) ^ 0xE555193A; | |
| v12 = (v11 & (v11 ^ ~(dword_14001214C * (dword_14001214C - 1)))) == 0; | |
| v13 = dword_140012150 < 10 && (v11 & (v11 ^ ~(dword_14001214C * (dword_14001214C - 1)))) != 0 | |
| || v12 && dword_140012150 > 9; | |
| v14 = v12 ^ (dword_140012150 < 10) | (!v12 && dword_140012150 >= 10); | |
| v5 = -1513270377; | |
| if ( !v14 ) | |
| v5 = -1499401733; | |
| v15 = v13 ^ v14; | |
| if ( !v13 ) | |
| v5 = -1513270377; | |
| if ( v15 ) | |
| goto LABEL_4; | |
| LABEL_30: | |
| v5 = -1499401733; | |
| } | |
| } | |
| if ( v5 <= -1740198422 ) | |
| break; | |
| if ( v5 > -1499401734 ) | |
| { | |
| if ( v5 == -1499401733 ) | |
| { | |
| v47 = (~(~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE | (dword_14001214C | |
| * (dword_14001214C - 1)) ^ 1) & 0x45A9F432 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xBA560BCC | ((dword_14001214C * (dword_14001214C - 1)) ^ 1) & 0xBA560BCD) != 0xBA560BCD; | |
| v48 = v47 || dword_140012150 > 9; | |
| v5 = -1513270377; | |
| v49 = 347832864; | |
| if ( (dword_140012150 <= 9 | |
| || (~(~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE | (dword_14001214C | |
| * (dword_14001214C - 1)) ^ 1) & 0x45A9F432 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xBA560BCC | ((dword_14001214C * (dword_14001214C - 1)) ^ 1) & 0xBA560BCD) != 0xBA560BCD) | |
| && (!v47 || dword_140012150 >= 10) ) | |
| { | |
| v49 = -1513270377; | |
| } | |
| if ( !v48 ) | |
| v5 = v49; | |
| if ( v48 != (dword_140012150 > 9 | |
| && (~(~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE | (dword_14001214C | |
| * (dword_14001214C - 1)) ^ 1) & 0x45A9F432 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xBA560BCC | ((dword_14001214C * (dword_14001214C - 1)) ^ 1) & 0xBA560BCD) == 0xBA560BCD | |
| || v47 && dword_140012150 < 10) ) | |
| goto LABEL_4; | |
| v5 = 347832864; | |
| } | |
| else | |
| { | |
| v21 = (~(dword_14001214C * (dword_14001214C - 1)) & 0xD6F8576B | (dword_14001214C | |
| * (dword_14001214C - 1)) & 0x2907A894) ^ 0x2907A895; | |
| v22 = (v21 & (v21 ^ ~(dword_14001214C * (dword_14001214C - 1)))) != 0; | |
| v23 = v22 || dword_140012150 > 9; | |
| v24 = dword_140012150 > 9 && (v21 & (v21 ^ ~(dword_14001214C * (dword_14001214C - 1)))) == 0 | |
| || v22 && dword_140012150 < 10; | |
| v5 = 2063599646; | |
| v25 = 1379758927; | |
| if ( !v24 ) | |
| v25 = 2063599646; | |
| v26 = v23 ^ v24; | |
| if ( !v23 ) | |
| v5 = v25; | |
| if ( v26 ) | |
| goto LABEL_4; | |
| v5 = 1379758927; | |
| } | |
| goto LABEL_5; | |
| } | |
| if ( v5 != -1740198421 ) | |
| goto LABEL_30; | |
| v58 = v60 + 1; | |
| v27 = ~(dword_14001214C * (dword_14001214C - 1)) | (~(dword_14001214C * (dword_14001214C - 1)) & 0x68799B4F | (dword_14001214C * (dword_14001214C - 1)) & 0x978664B0) ^ 0x68799B4E; | |
| v28 = (v27 == -1) ^ (dword_140012150 < 10); | |
| v29 = (v27 != -1 && dword_140012150 > 9) | (v27 != -1) ^ (dword_140012150 > 9); | |
| v5 = -1994909853; | |
| if ( v28 == v29 ) | |
| v5 = -1223443054; | |
| v30 = v5; | |
| if ( !v29 ) | |
| v30 = -1223443054; | |
| LABEL_96: | |
| if ( v28 ) | |
| v5 = v30; | |
| } | |
| if ( v5 != -1994909853 ) | |
| break; | |
| v5 = -1740198421; | |
| } | |
| if ( v5 != -1987620613 ) | |
| break; | |
| v57 = v60 < dword_1400111A0[0]; | |
| v36 = ((dword_14001214C * (dword_14001214C - 1)) & 0x7FC1649C | ~(dword_14001214C * (dword_14001214C - 1)) & 0x803E9B63) ^ 0x803E9B62; | |
| v37 = ~(v36 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE) & 0x75D2E08; | |
| v38 = (v37 | v36 & 0xF8A2D1F7 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xF8A2D1F6) != 0xF8A2D1F7; | |
| v39 = dword_140012150 > 9 | |
| && (v37 | v36 & 0xF8A2D1F7 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xF8A2D1F6) == 0xF8A2D1F7; | |
| v40 = v38 || dword_140012150 > 9; | |
| v41 = v39 || v38 && dword_140012150 < 10; | |
| v5 = 1814130361; | |
| v42 = -1193972481; | |
| if ( !v41 ) | |
| v42 = 1814130361; | |
| v43 = v40 ^ v41; | |
| if ( !v40 ) | |
| v5 = v42; | |
| if ( v43 ) | |
| goto LABEL_4; | |
| v5 = -1193972481; | |
| } | |
| v59 = v61 == 2; | |
| v16 = ~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE | (dword_14001214C * (dword_14001214C - 1)) ^ 1; | |
| v17 = v16 != -1 || dword_140012150 > 9; | |
| v18 = (v16 == -1) ^ (dword_140012150 < 10); | |
| v5 = -873674620; | |
| v19 = 1282247834; | |
| if ( !v18 ) | |
| v19 = -873674620; | |
| v20 = v17 ^ v18; | |
| if ( !v17 ) | |
| v5 = v19; | |
| if ( v20 ) | |
| goto LABEL_4; | |
| v5 = 1282247834; | |
| } | |
| } | |
| else | |
| { | |
| v5 = 1109154448; | |
| v3 = 0; | |
| } | |
| } | |
| else | |
| { | |
| if ( v5 != 209750762 ) | |
| { | |
| v61 = v2; | |
| v6 = ~(dword_14001214C * (dword_14001214C - 1)) | (~(dword_14001214C * (dword_14001214C - 1)) & 0x359CE073 | (dword_14001214C * (dword_14001214C - 1)) & 0xCA631F8C) ^ 0x359CE072; | |
| v7 = v6 != -1; | |
| v8 = v7 || dword_140012150 > 9; | |
| v9 = dword_140012150 > 9 && v6 == -1 || v7 && dword_140012150 < 10; | |
| v10 = -873674620; | |
| v5 = -1956409894; | |
| if ( v9 == v8 ) | |
| v10 = -1956409894; | |
| if ( !v9 ) | |
| v5 = v10; | |
| goto LABEL_2; | |
| } | |
| v5 = -242721938; | |
| if ( dword_1400111A0[2 * v60 + 1] == a1 ) | |
| goto LABEL_4; | |
| v5 = -345390353; | |
| } | |
| } | |
| if ( v5 <= 1379758926 ) | |
| break; | |
| if ( v5 > 1945631177 ) | |
| { | |
| if ( v5 != 1945631178 ) | |
| { | |
| v5 = -1454101977; | |
| goto LABEL_10; | |
| } | |
| v5 = 295850271; | |
| v2 = 2; | |
| } | |
| else | |
| { | |
| if ( v5 != 1379758927 ) | |
| { | |
| v5 = -1987620613; | |
| goto LABEL_10; | |
| } | |
| LABEL_69: | |
| v5 = 855507177; | |
| v1 = -1; | |
| } | |
| } | |
| if ( v5 <= 1109154447 ) | |
| break; | |
| if ( v5 == 1109154448 ) | |
| { | |
| v60 = v3; | |
| v35 = (dword_140012150 < 10) ^ ((((dword_14001214C * (dword_14001214C - 1)) & 0x33532F68 | ~(dword_14001214C | |
| * (dword_14001214C - 1)) & 0xCCACD097) ^ 0xCCACD096 | ~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE) == -1); | |
| v8 = !v35 && dword_140012150 < 10; | |
| v5 = 1814130361; | |
| v10 = -1987620613; | |
| if ( v8 != !v35 ) | |
| goto LABEL_118; | |
| v5 = -1987620613; | |
| if ( v35 ) | |
| goto LABEL_2; | |
| LABEL_119: | |
| v10 = v5; | |
| LABEL_2: | |
| if ( v8 ) | |
| v5 = v10; | |
| LABEL_4: | |
| if ( v5 <= -673838090 ) | |
| goto LABEL_10; | |
| } | |
| else | |
| { | |
| v5 = -1051584165; | |
| if ( !v59 ) | |
| v5 = 855507177; | |
| v1 = v60; | |
| if ( v5 <= -673838090 ) | |
| goto LABEL_10; | |
| } | |
| } | |
| if ( v5 == 439295780 ) | |
| { | |
| v56 = (unsigned int)sub_1400014C0() != 0; | |
| v52 = ~(dword_14001214C * (dword_14001214C - 1)) & 0xFFFFFFFE | (dword_14001214C * (dword_14001214C - 1)) & 1; | |
| v35 = (dword_140012150 < 10) ^ ((v52 & (v52 ^ ~(dword_14001214C * (dword_14001214C - 1)))) == 0); | |
| v8 = !v35 && dword_140012150 < 10; | |
| v5 = -853117837; | |
| v10 = -1405473199; | |
| if ( !(v8 ^ v35 ^ 1) ) | |
| v5 = -1405473199; | |
| LABEL_118: | |
| if ( v35 ) | |
| goto LABEL_2; | |
| goto LABEL_119; | |
| } | |
| return v1; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment