I can't read the code after decompile, can somebody tell me the how to read the CMEN_compute() & CMWRite_options() function.Many thanks~
void proc1(); void CMPA_init(); void CMPA_yyparse(); void CMEN_get_header_string(); void CMEN_compute(); void CMWRite_options();
// address: 0x1143c int main(int argc, char *argv, char *envp) { __size32 fp; // r30 __size32 g0; // r0 __size32 g1; // r1 int i0; // r24 char * *i1; // r25 char * *i2; // r26 __size32 i3; // r27 __size32 i4; // r28 __size32 i5; // r29 __size32 i7; // r31 __size32 l0; // r16 union { void * x3; int x4; } l0_1; // r16 __size32 l1; // r17 __size32 l2; // r18 __size32 l3; // r19 __size32 l3_1; // r19{281} __size32 l3_2; // r19{50} __size32 l3_3; // r19{41} __size32 l3_4; // r19{35} __size32 l3_5; // r19{30} __size32 l4; // r20 __size32 l4_1; // r20{282} __size32 l4_2; // r20{50} __size32 l4_3; // r20{41} __size32 l4_4; // r20{35} __size32 l4_5; // r20{30} __size32 l5; // r21 __size32 l5_1; // r21{283} __size32 l5_2; // r21{50} __size32 l5_3; // r21{41} __size32 l5_4; // r21{35} __size32 l5_5; // r21{30} __size32 l6; // r22 __size32 l6_1; // r22{284} __size32 l6_2; // r22{50} __size32 l6_3; // r22{41} __size32 l6_4; // r22{35} __size32 l6_5; // r22{30} __size32 l7; // r23 __size32 local0; // m __size32 local1; // m __size32 local10; // m __size32 local11; // m __size32 local12; // m __size32 local13; // m __size32 local14; // m int local15; // m{50} int local16; // m{50} int local17; // m{50} int local18; // m{50} int local19; // m{50} __size32 local2; // m int local20; // m{50} int local21; // m{50} int local22; // m{50} int local23; // m{50} int local24; // m{50} int local25; // m{50} int local26; // m{50} int local27; // m{50} int local28; // m{50} int local29; // m{50} __size32 local3; // m int local30; // %flags{50} int local31; // %flags{30} int local32; // %ZF{50} int local33; // %ZF{30} int local34; // %CF{50} int local35; // %CF{30} __size32 local36; // l3_1{281} __size32 local37; // l4_1{282} __size32 local38; // l5_1{283} __size32 local39; // l6_1{284} __size32 local4; // m __size32 local5; // m __size32 local6; // m __size32 local7; // m __size32 local8; // m __size32 local9; // m int o0; // r8 union { void * x1; int x2; } o0_1; // r8 char *o0_2; // r8 FILE *o0_3; // r8 int o1; // r9 char *o1_1; // r9 int o2; // r10 int o2_1; // r10 int o3; // r11 int o4; // r12 int o4_1; // r12{309} int o5; // r13 int o6; // r14 int o7; // r15
g0 = proc1(argc, argv, envp, o3, o4, o5, o7, l0, l1, l2, l3, l4, l5, l6, 0x1a568, argc, argv, envp, o3, o4, o5, o6, o7, l1, l2, l3, l4, l5, l6, l7, i0, i1, i2, i3, i4, i5, fp, i7); /* Warning: also results in o1, o2, o3, o4, o5, o7, l0, l1, l3_5, l4_5, l5_5, l6_5, l7, i0, i1, i2, i3, i4, i5, fp, i7 */ o0 = *(l7 + 428); o0 = CMPA_init(o0, o1, o2, o3, o4, o5, g0, 428, o7, l0, l1, 0, l3_5, l4_5, l5_5, l6_5, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, local31, local33, local35); /* Warning: also results in o1, o2, o3, o4, o5, o7, l0, l1, l2, l3_4, l4_4, l5_4, l6_4, l7, i0, i1, i2, i3, i4, i5, fp, i7 */ if (o0 != 0) { o0 = CMPA_yyparse(o0, o1, o2, o3, o4, o5, o0, 0, o7, l0, l1, l2, l3_4, l4_4, l5_4, l6_4, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, SUBFLAGS(o0, 0, o0), o0 == 0, o0 < 0); /* Warning: also results in o1, o2, o3, o4, o5, o7, l0, l1, l2, l3_3, l4_3, l5_3, l6_3, l7, i0, i1, i2, i3, i4, i5, fp, i7 */ if (o0 == 0) { g0 = CMEN_get_header_string(fp - 104, o1, o2, o3, o4, o5, o0, 0, o7, fp - 104, l1, l2, l3_3, l4_3, l5_3, l6_3, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, SUBFLAGS(o0, 0, o0), o0 == 0, o0 < 0); /* Warning: also results in g1, o2, o3, o4, o5, o7, l0, l2, l3_2, l4_2, l5_2, l6_2, l7, i0, i1, i2, i3, i4, i5, fp, i7 */ l0 = CMEN_compute(l0, fp - 160, o2, o3, o4, o5, g0, g1, o7, l0, fp - 160, l2, l3_2, l4_2, l5_2, l6_2, l7, i0, i1, i2, i3, i4, i5, fp, i7, local15, local16, local17, local18, local19, local20, local21, local22, local23, local24, local25, local26, local27, local28, local29, <all>, local30, local32, local34); /* Warning: also results in l1, l2, l3_1, l4_1, l5_1, l6_1, l7, i0, i1, i2, i3, i4, i5, fp, i7 */ local36 = l3_1; local37 = l4_1; local38 = l5_1; local39 = l6_1; o1_1 = *(l7 + 460); strcmp(l1, o1_1); if (o0 != 0) { o0 = *(l7 + 448); o1 = *(l7 + 24); fprintf(o0 + 32, o1); L17: l2 = 1; local36 = l3; local37 = l4; local38 = l5; local39 = l6; } l3_1 = local36; l4_1 = local37; l5_1 = local38; l6_1 = local39; if (l2 == 0) { g1 = *(l7 + 488); *(__size32*)g1 = 0; o0_2 = *(l7 + 416); o1 = *(l7 + 480); strcpy(o0_2, o1); o0 = *(l7 + 452); o1 = *(l7 + 408); strcpy(o0, o1); o1 = *(l7 + 476); strcpy(fp - 368, o1); o4 = 0; g1 = (int) *(fp - 368); if (g1 == 32) { o4 = 1; g1 = (int) *(fp - 367); } o5 = *(l7 + 476); *(__size8*)o5 = 32; g1 = (int) *(fp + o4 - 368); g0 = g1; flags = SUBFLAGS(g1, 0, g1); o2 = 1; if (g1 != 0) { do { o4_1 = o4; g1 = *(unsigned char*)(fp + o4_1 - 368); *(__size8*)(o5 + o2) = (char) g1; o4 = o4_1 + 1; o2++; g1 = (int) *(fp + o4_1 - 367); g0 = g1; flags = SUBFLAGS(g1, 0, g1); } while (g1 != 0); } g1 = *(l7 + 476); *(__size8*)(g1 + o2) = 0; o0 = *(l7 + 36); printf(o0); o0 = CMWRite_options(o0, o1, o2, o3, o4, o5, g0, 36, o7, l0, l1, l2, l3_1, l4_1, l5_1, l6_1, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, flags, ZF, CF); /* Warning: also results in l2, l7 */ if (o0 != 0) { o0 = *(l7 + 448); o1 = *(l7 + 40); fprintf(o0 + 32, o1); l2 = 1; } if (l2 != 0) { goto L0; } exit(0); } L0: exit(1); } o0 = *(l7 + 448); o1 = *(l7 + 28); fprintf(o0 + 32, o1); goto L17; } o0 = *(l7 + 448); o1 = *(l7 + 32); fprintf(o0 + 32, o1); goto L17; }
I can't read the code after decompile, can somebody tell me the how to read the CMEN_compute() & CMWRite_options() function.Many thanks~
void proc1();
void CMPA_init();
void CMPA_yyparse();
void CMEN_get_header_string();
void CMEN_compute();
void CMWRite_options();
// address: 0x1143c
int main(int argc, char *argv, char *envp) {
__size32 fp; // r30
__size32 g0; // r0
__size32 g1; // r1
int i0; // r24
char * *i1; // r25
char * *i2; // r26
__size32 i3; // r27
__size32 i4; // r28
__size32 i5; // r29
__size32 i7; // r31
__size32 l0; // r16
union { void * x3; int x4; } l0_1; // r16
__size32 l1; // r17
__size32 l2; // r18
__size32 l3; // r19
__size32 l3_1; // r19{281}
__size32 l3_2; // r19{50}
__size32 l3_3; // r19{41}
__size32 l3_4; // r19{35}
__size32 l3_5; // r19{30}
__size32 l4; // r20
__size32 l4_1; // r20{282}
__size32 l4_2; // r20{50}
__size32 l4_3; // r20{41}
__size32 l4_4; // r20{35}
__size32 l4_5; // r20{30}
__size32 l5; // r21
__size32 l5_1; // r21{283}
__size32 l5_2; // r21{50}
__size32 l5_3; // r21{41}
__size32 l5_4; // r21{35}
__size32 l5_5; // r21{30}
__size32 l6; // r22
__size32 l6_1; // r22{284}
__size32 l6_2; // r22{50}
__size32 l6_3; // r22{41}
__size32 l6_4; // r22{35}
__size32 l6_5; // r22{30}
__size32 l7; // r23
__size32 local0; // m
__size32 local1; // m
__size32 local10; // m
__size32 local11; // m
__size32 local12; // m
__size32 local13; // m
__size32 local14; // m
int local15; // m{50}
int local16; // m{50}
int local17; // m{50}
int local18; // m{50}
int local19; // m{50}
__size32 local2; // m
int local20; // m{50}
int local21; // m{50}
int local22; // m{50}
int local23; // m{50}
int local24; // m{50}
int local25; // m{50}
int local26; // m{50}
int local27; // m{50}
int local28; // m{50}
int local29; // m{50}
__size32 local3; // m
int local30; // %flags{50}
int local31; // %flags{30}
int local32; // %ZF{50}
int local33; // %ZF{30}
int local34; // %CF{50}
int local35; // %CF{30}
__size32 local36; // l3_1{281}
__size32 local37; // l4_1{282}
__size32 local38; // l5_1{283}
__size32 local39; // l6_1{284}
__size32 local4; // m
__size32 local5; // m
__size32 local6; // m
__size32 local7; // m
__size32 local8; // m
__size32 local9; // m
int o0; // r8
union { void * x1; int x2; } o0_1; // r8
char *o0_2; // r8
FILE *o0_3; // r8
int o1; // r9
char *o1_1; // r9
int o2; // r10
int o2_1; // r10
int o3; // r11
int o4; // r12
int o4_1; // r12{309}
int o5; // r13
int o6; // r14
int o7; // r15
g0 = proc1(argc, argv, envp, o3, o4, o5, o7, l0, l1, l2, l3, l4, l5, l6, 0x1a568, argc, argv, envp, o3, o4, o5, o6, o7, l1, l2, l3, l4, l5, l6, l7, i0, i1, i2, i3, i4, i5, fp, i7); /* Warning: also results in o1, o2, o3, o4, o5, o7, l0, l1, l3_5, l4_5, l5_5, l6_5, l7, i0, i1, i2, i3, i4, i5, fp, i7 */
o0 = *(l7 + 428);
o0 = CMPA_init(o0, o1, o2, o3, o4, o5, g0, 428, o7, l0, l1, 0, l3_5, l4_5, l5_5, l6_5, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, local31, local33, local35); /* Warning: also results in o1, o2, o3, o4, o5, o7, l0, l1, l2, l3_4, l4_4, l5_4, l6_4, l7, i0, i1, i2, i3, i4, i5, fp, i7 */
if (o0 != 0) {
o0 = CMPA_yyparse(o0, o1, o2, o3, o4, o5, o0, 0, o7, l0, l1, l2, l3_4, l4_4, l5_4, l6_4, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, SUBFLAGS(o0, 0, o0), o0 == 0, o0 < 0); /* Warning: also results in o1, o2, o3, o4, o5, o7, l0, l1, l2, l3_3, l4_3, l5_3, l6_3, l7, i0, i1, i2, i3, i4, i5, fp, i7 */
if (o0 == 0) {
g0 = CMEN_get_header_string(fp - 104, o1, o2, o3, o4, o5, o0, 0, o7, fp - 104, l1, l2, l3_3, l4_3, l5_3, l6_3, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, SUBFLAGS(o0, 0, o0), o0 == 0, o0 < 0); /* Warning: also results in g1, o2, o3, o4, o5, o7, l0, l2, l3_2, l4_2, l5_2, l6_2, l7, i0, i1, i2, i3, i4, i5, fp, i7 */
l0 = CMEN_compute(l0, fp - 160, o2, o3, o4, o5, g0, g1, o7, l0, fp - 160, l2, l3_2, l4_2, l5_2, l6_2, l7, i0, i1, i2, i3, i4, i5, fp, i7, local15, local16, local17, local18, local19, local20, local21, local22, local23, local24, local25, local26, local27, local28, local29, <all>, local30, local32, local34); /* Warning: also results in l1, l2, l3_1, l4_1, l5_1, l6_1, l7, i0, i1, i2, i3, i4, i5, fp, i7 */
local36 = l3_1;
local37 = l4_1;
local38 = l5_1;
local39 = l6_1;
o1_1 = *(l7 + 460);
strcmp(l1, o1_1);
if (o0 != 0) {
o0 = *(l7 + 448);
o1 = *(l7 + 24);
fprintf(o0 + 32, o1);
L17:
l2 = 1;
local36 = l3;
local37 = l4;
local38 = l5;
local39 = l6;
}
l3_1 = local36;
l4_1 = local37;
l5_1 = local38;
l6_1 = local39;
if (l2 == 0) {
g1 = *(l7 + 488);
*(__size32*)g1 = 0;
o0_2 = *(l7 + 416);
o1 = *(l7 + 480);
strcpy(o0_2, o1);
o0 = *(l7 + 452);
o1 = *(l7 + 408);
strcpy(o0, o1);
o1 = *(l7 + 476);
strcpy(fp - 368, o1);
o4 = 0;
g1 = (int) *(fp - 368);
if (g1 == 32) {
o4 = 1;
g1 = (int) *(fp - 367);
}
o5 = *(l7 + 476);
*(__size8*)o5 = 32;
g1 = (int) *(fp + o4 - 368);
g0 = g1;
flags = SUBFLAGS(g1, 0, g1);
o2 = 1;
if (g1 != 0) {
do {
o4_1 = o4;
g1 = *(unsigned char*)(fp + o4_1 - 368);
*(__size8*)(o5 + o2) = (char) g1;
o4 = o4_1 + 1;
o2++;
g1 = (int) *(fp + o4_1 - 367);
g0 = g1;
flags = SUBFLAGS(g1, 0, g1);
} while (g1 != 0);
}
g1 = *(l7 + 476);
*(__size8*)(g1 + o2) = 0;
o0 = *(l7 + 36);
printf(o0);
o0 = CMWRite_options(o0, o1, o2, o3, o4, o5, g0, 36, o7, l0, l1, l2, l3_1, l4_1, l5_1, l6_1, l7, i0, i1, i2, i3, i4, i5, fp, i7, local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, <all>, flags, ZF, CF); /* Warning: also results in l2, l7 */
if (o0 != 0) {
o0 = *(l7 + 448);
o1 = *(l7 + 40);
fprintf(o0 + 32, o1);
l2 = 1;
}
if (l2 != 0) {
goto L0;
}
exit(0);
}
L0:
exit(1);
}
o0 = *(l7 + 448);
o1 = *(l7 + 28);
fprintf(o0 + 32, o1);
goto L17;
}
o0 = *(l7 + 448);
o1 = *(l7 + 32);
fprintf(o0 + 32, o1);
goto L17;
}