Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int32_t Java_com_xiaomi_miio_JNIBridge_hencrypt(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14, int32_t a15, int32_t a16, int32_t a17, int32_t a18, int32_t a19, int32_t a20, int32_t a21) {
- g22 = (int32_t)a1;
- int32_t v1 = *(int32_t *)(*(int32_t *)0x2184 + 0x2018); // 0x2016
- g23 = v1;
- g20 = *(int32_t *)v1;
- _Z6miio_dPKc(*(int32_t *)0x2188 + 0x201e);
- int32_t v2 = g22; // 0x2026
- g15 = a3;
- g14 = v2;
- g3 = false;
- g2 = v2 < 0;
- g4 = v2 == 0;
- g1 = false;
- int32_t v3 = *(int32_t *)(*(int32_t *)v2 + 124); // 0x202c
- g20 = v3;
- g13 = 0x2031;
- ((int32_t (*)(int32_t, int32_t, int32_t))(v3 & -2))(v2, a3, v3);
- int32_t v4 = g22; // 0x2030
- int32_t v5 = g14; // 0x2036
- g24 = v5;
- int32_t v6 = *(int32_t *)(*(int32_t *)v4 + 376); // 0x203a
- g21 = v6;
- int32_t v7 = *(int32_t *)0x218c + 0x2040; // 0x203c
- g19 = v7;
- g15 = v5;
- int32_t v8 = *(int32_t *)0x2190 + 0x2044; // 0x2040
- g20 = v8;
- g14 = v4;
- g3 = false;
- g2 = v4 < 0;
- g4 = v4 == 0;
- g1 = false;
- g13 = 0x2047;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v6 & -2))(v4, v5, v7, v8);
- int32_t v9 = g22; // 0x2046
- int32_t v10 = *(int32_t *)(*(int32_t *)v9 + 376); // 0x204e
- g21 = v10;
- int32_t v11 = g14; // 0x2050
- int32_t v12 = g24; // 0x2052
- g15 = v12;
- int32_t v13 = *(int32_t *)0x2194 + 0x2058; // 0x2054
- g19 = v13;
- int32_t v14 = *(int32_t *)0x2198 + 0x205a; // 0x2056
- g20 = v14;
- g14 = v9;
- g3 = false;
- g2 = v9 < 0;
- g4 = v9 == 0;
- g1 = false;
- g13 = 0x205d;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v10 & -2))(v9, v12, v13, v14, v11);
- int32_t v15 = g22; // 0x205c
- int32_t v16 = *(int32_t *)(*(int32_t *)v15 + 376); // 0x2064
- g21 = v16;
- int32_t v17 = *(int32_t *)0x21a0 + 0x206a; // 0x2066
- g20 = v17;
- int32_t v18 = g24; // 0x2068
- g15 = v18;
- int32_t v19 = g14; // 0x206a
- int32_t v20 = *(int32_t *)0x219c + 0x2070; // 0x206c
- g19 = v20;
- g14 = v15;
- g3 = false;
- g2 = v15 < 0;
- g4 = v15 == 0;
- g1 = false;
- g13 = 0x2073;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v16 & -2))(v15, v18, v20, v17, v19);
- g21 = 128;
- int32_t v21 = g14; // 0x2076
- int32_t v22;
- int32_t v23 = &v22; // 0x207a_0
- function_153c();
- int32_t v24 = g22; // 0x2080
- int32_t v25 = *(int32_t *)(*(int32_t *)v24 + 404); // 0x2086
- g20 = v25;
- g14 = v24;
- g3 = false;
- g2 = v24 < 0;
- g4 = v24 == 0;
- g1 = false;
- g19 = v11;
- g15 = a9;
- g13 = 0x2091;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v25 & -2))(v24, a9, v11, v25);
- int32_t v26 = g14; // 0x2092
- int32_t v27 = g15; // 0x2094
- function_1500();
- int32_t v28 = g22; // 0x20a4
- g24 = v23;
- int32_t v29 = *(int32_t *)(*(int32_t *)v28 + 400); // 0x20ac
- g20 = v29;
- g15 = a9;
- g19 = v19;
- g14 = v28;
- g3 = false;
- g2 = v28 < 0;
- g4 = v28 == 0;
- g1 = false;
- g13 = 0x20b7;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v29 & -2))(v28, a9, v19, v29);
- int32_t v30 = g14; // 0x20b8
- function_1500();
- int32_t v31 = g22; // 0x20c8
- int32_t v32 = *(int32_t *)(*(int32_t *)v31 + 380); // 0x20ce
- g20 = v32;
- g15 = a9;
- g19 = v21;
- g14 = v31;
- g3 = false;
- g2 = v31 < 0;
- g4 = v31 == 0;
- g1 = false;
- g13 = 0x20d9;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v32 & -2))(v31, a9, v21, v32);
- int32_t v33 = g22; // 0x20d8
- int32_t v34 = g14; // 0x20dc
- int32_t v35 = *(int32_t *)(*(int32_t *)v33 + 736); // 0x20e0
- g20 = v35;
- g15 = v34;
- g19 = 0;
- g14 = v33;
- g3 = false;
- g2 = v33 < 0;
- g4 = v33 == 0;
- g1 = false;
- g13 = 0x20eb;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v35 & -2))(v33, v34, 0, v35);
- int32_t v36 = g22; // 0x20ea
- int32_t v37 = *(int32_t *)v36; // 0x20ea
- g19 = v37;
- int32_t v38 = *(int32_t *)(v37 + 684); // 0x20f0
- g20 = v38;
- int32_t v39 = g14; // 0x20f2
- g15 = v34;
- g14 = v36;
- g3 = false;
- g2 = v36 < 0;
- g4 = v36 == 0;
- g1 = false;
- g13 = 0x20fb;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v38 & -2))(v36, v34, v37, v38, v39);
- int32_t v40 = &a16; // 0x20fa_0
- g21 = v40;
- function_153c();
- int32_t v41 = _Z5dehexPKciPci(v39, g14, v40, 16, v26, v27, a7); // 0x2110
- g22 = v41;
- g24 = 32;
- _Z6miio_dPKc(v23);
- function_153e();
- _Z13init_msg_headPcyjPKct((char *)&a20, 0, v26, v27, v30);
- int32_t * v42 = (int32_t *)v41; // 0x2138_0
- int32_t v43 = *v42; // 0x2138
- g19 = v43;
- int32_t v44 = *(int32_t *)(v43 + 704); // 0x213e
- g20 = v44;
- int32_t v45 = g24; // 0x2140
- g15 = v45;
- g14 = v41;
- g3 = false;
- g2 = v41 < 0;
- g4 = v41 == 0;
- g1 = false;
- g13 = 0x2147;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v44 & -2))(v41, v45, v43, v44);
- int32_t v46 = g14; // 0x214e
- int32_t v47 = *(int32_t *)(*v42 + 832); // 0x2152
- g21 = v47;
- g14 = v41;
- g15 = v46;
- g19 = 0;
- int32_t v48 = g24; // 0x215a
- g20 = v48;
- g3 = false;
- g2 = v48 < 0;
- g4 = v48 == 0;
- g1 = false;
- g13 = 0x215f;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v47 & -2))(v41, v46, 0, v48, (int32_t)&a20);
- int32_t v49 = *(int32_t *)(*v42 + 768); // 0x2164
- g21 = v49;
- g14 = v41;
- g3 = false;
- g1 = false;
- g19 = v39;
- g20 = 2;
- g2 = false;
- g4 = false;
- g15 = v34;
- g13 = 0x2171;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v49 & -2))(v41, v34, v39, 2);
- uint32_t v50;
- g19 = v50;
- int32_t v51 = *(int32_t *)g23; // 0x2172
- g20 = v51;
- g14 = v46;
- uint32_t v52 = -2 - v51 + v50; // 0x2176
- g3 = ((v52 ^ v50) & (v52 ^ -v51)) < 0;
- g2 = v50 - v51 < 0;
- g4 = v50 == v51;
- g1 = v52 <= v50;
- if (v50 != v51) {
- // 0x217a
- function_154a();
- // branch -> 0x217e
- }
- // 0x217e
- int32_t v53;
- g21 = v53;
- int32_t v54;
- g22 = v54;
- int32_t v55;
- g23 = v55;
- int32_t v56;
- g24 = v56;
- int32_t v57;
- ((int32_t (*)())v57)();
- return g14;
- }
- // Address range: 0x21ac - 0x235b
- int32_t Java_com_xiaomi_miio_JNIBridge_hdecrypt(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14, int32_t a15, int32_t a16, int32_t a17, int32_t * a18, int32_t a19, int32_t a20, int32_t a21, int32_t a22, int32_t a23, int32_t a24, int32_t a25, int32_t a26, int32_t a27, int32_t a28) {
- g22 = (int32_t)a1;
- int32_t v1 = *(int32_t *)(*(int32_t *)0x2338 + 0x21b8); // 0x21b6
- g23 = v1;
- g20 = *(int32_t *)v1;
- g24 = 0;
- _Z6miio_dPKc(*(int32_t *)0x233c + 0x21be);
- int32_t v2 = g22; // 0x21c8
- int32_t v3 = *(int32_t *)(*(int32_t *)v2 + 736); // 0x21ce
- g20 = v3;
- g15 = a3;
- g19 = 0;
- g14 = v2;
- g3 = false;
- g2 = v2 < 0;
- g4 = v2 == 0;
- g1 = false;
- g13 = 0x21d9;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v3 & -2))(v2, a3, 0, v3);
- int32_t v4 = g22; // 0x21d8
- int32_t v5 = *(int32_t *)v4; // 0x21d8
- g19 = v5;
- int32_t v6 = *(int32_t *)(v5 + 684); // 0x21de
- g20 = v6;
- int32_t v7 = g14; // 0x21e0
- g15 = a13;
- g14 = v4;
- g3 = false;
- g2 = v4 < 0;
- g4 = v4 == 0;
- g1 = false;
- g13 = 0x21e9;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v6 & -2))(v4, a13, v5, v6, v7);
- function_153c();
- function_1502();
- int32_t v8 = &a23; // 0x2202_0
- g21 = v8;
- a21 = 0;
- int32_t v9 = g24; // 0x2210
- int32_t v10 = 0x10000 * v9 / 0x10000;
- a20 = v9;
- function_153e();
- g20 = &a20;
- g15 = &v10;
- g19 = &a21;
- a5 = g21;
- _Z14parse_msg_headPKcRtRyRjPc((char *)v7);
- int32_t v11 = &a27; // 0x2232_0
- function_153c();
- int32_t v12;
- _Z3hexPKciPci(v8, 16, v11, 33, v12, 0, 0, 0, 0, 0);
- a5 = a21;
- function_1502();
- function_1500();
- g21 = &a5;
- g20 = v10 % 0x10000;
- function_1502();
- int32_t v13;
- _Z6miio_dPKc((int32_t)&v13);
- int32_t v14 = g22; // 0x2290
- g14 = v14;
- g3 = false;
- g2 = v14 < 0;
- g4 = v14 == 0;
- g1 = false;
- int32_t v15 = *(int32_t *)(*(int32_t *)v14 + 24); // 0x2296
- g20 = v15;
- int32_t v16 = *(int32_t *)0x2350 + 0x229c; // 0x2298
- g15 = v16;
- g13 = 0x229d;
- ((int32_t (*)(int32_t, int32_t, int32_t))(v15 & -2))(v14, v16, v15);
- int32_t v17 = g22; // 0x229c
- int32_t v18 = g14; // 0x22a2
- int32_t v19 = *(int32_t *)0x2354 + 0x22aa; // 0x22a6
- g19 = v19;
- int32_t v20 = *(int32_t *)0x2358 + 0x22ac; // 0x22a8
- g20 = v20;
- int32_t v21 = *(int32_t *)(*(int32_t *)v17 + 132); // 0x22aa
- g21 = v21;
- g14 = v17;
- g3 = false;
- g2 = v17 < 0;
- g4 = v17 == 0;
- g1 = false;
- g15 = v18;
- g13 = 0x22b3;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v21 & -2))(v17, v18, v19, v20);
- int32_t v22 = g23; // 0x22b6
- int32_t v23 = g14; // 0x22b8
- int32_t v24 = g24; // 0x22bc
- g23 = v24;
- if (a21 != v24) {
- // 0x22c4
- g23 = 0;
- // branch -> 0x22ca
- }
- g21 = a20;
- int32_t v25 = g22; // 0x22cc
- int32_t v26 = *(int32_t *)v25; // 0x22cc
- g19 = v26;
- int32_t v27 = *(int32_t *)(v26 + 704); // 0x22d2
- g20 = v27;
- g15 = 32;
- g14 = v25;
- g3 = false;
- g2 = v25 < 0;
- g4 = v25 == 0;
- g1 = false;
- g13 = 0x22dd;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v27 & -2))(v25, 32, v26, v27, a20);
- int32_t v28 = g22; // 0x22dc
- a5 = v11;
- int32_t v29 = g14; // 0x22e4
- g24 = v29;
- int32_t v30 = *(int32_t *)(*(int32_t *)v28 + 832); // 0x22e8
- g21 = v30;
- g14 = v28;
- g15 = v29;
- g3 = false;
- g1 = false;
- g19 = 0;
- g20 = 32;
- g2 = false;
- g4 = false;
- g13 = 0x22f5;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))(v30 & -2))(v28, v29, 0, 32, v11);
- a5 = a21;
- g21 = a20;
- int32_t v31 = g22; // 0x2300
- g3 = false;
- g2 = v31 < 0;
- g4 = v31 == 0;
- g1 = false;
- _ZN7_JNIEnv9NewObjectEP7_jclassP10_jmethodIDz((int32_t *)v31, v18, v23, 0, a21, g23, a20, g24);
- int32_t v32 = g22; // 0x230e
- int32_t v33 = *(int32_t *)(*(int32_t *)v32 + 768); // 0x2314
- g21 = v33;
- g23 = v31;
- g19 = v7;
- g14 = v32;
- g3 = false;
- g1 = false;
- g20 = 2;
- g2 = false;
- g4 = false;
- g15 = a13;
- g13 = 0x2323;
- ((int32_t (*)(int32_t, int32_t, int32_t, int32_t))(v33 & -2))(v32, a13, v7, 2);
- uint32_t v34;
- g19 = v34;
- g14 = v31;
- int32_t v35 = *(int32_t *)v22; // 0x2328
- g20 = v35;
- uint32_t v36 = -2 - v35 + v34; // 0x232a
- g3 = ((v36 ^ v34) & (v36 ^ -v35)) < 0;
- g2 = v34 - v35 < 0;
- g4 = v34 == v35;
- g1 = v36 <= v34;
- if (v34 != v35) {
- // 0x232e
- function_154a();
- // branch -> 0x2332
- }
- // 0x2332
- int32_t v37;
- g21 = v37;
- int32_t v38;
- g22 = v38;
- int32_t v39;
- g23 = v39;
- int32_t v40;
- g24 = v40;
- int32_t v41;
- ((int32_t (*)())v41)();
- return g14;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement