[*] Binary protection state of policykit_cert
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of policykit_cert
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x5e80 */
| #include <stdint.h>
|
; (fcn) fcn.00005e80 () | void fcn_00005e80 () {
0x00005e80 lui gp, 2 |
0x00005e84 addiu gp, gp, -0x1e70 |
0x00005e88 addu gp, gp, t9 | gp += t9;
0x00005e8c addiu sp, sp, -0x28 |
0x00005e90 lw t9, -0x7edc(gp) | t9 = sym.imp.cert_set_get_uid;
0x00005e94 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00005e98 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00005e9c sw ra, 0x24(sp) | *(var_24h) = ra;
0x00005ea0 sw a0, 0x28(sp) | *(var_28h) = a0;
0x00005ea4 move s0, a1 | s0 = a1;
0x00005ea8 jalr t9 | t9 ();
0x00005eac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s0) {
0x00005eb0 beq v0, s0, 0x5ec8 |
0x00005eb4 lw t9, -0x7ecc(gp) | t9 = sym.imp.cert_util_uid_root;
0x00005eb8 jalr t9 | t9 ();
0x00005ebc nop |
0x00005ec0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s0) {
0x00005ec4 bne v0, s0, 0x5ee4 | goto label_0;
| }
| }
0x00005ec8 lw t9, -0x7d00(gp) | t9 = sym.imp.cert_set_exit_flexible_set;
0x00005ecc addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00005ed0 jalr t9 | t9 ();
0x00005ed4 lw ra, 0x24(sp) | ra = *(var_24h);
0x00005ed8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00005edc addiu sp, sp, 0x28 |
0x00005ee0 jr ra | return v0;
| label_0:
0x00005ee4 lw t9, -0x7edc(gp) | t9 = sym.imp.cert_set_get_uid;
0x00005ee8 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00005eec jalr t9 | t9 ();
0x00005ef0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00005ef4 move a1, s0 | a1 = s0;
0x00005ef8 move a2, v0 | a2 = v0;
0x00005efc lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00005f00 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x00005f04 addiu a0, a0, -0x53b0 | a0 += -0x53b0;
0x00005f08 jalr t9 | t9 ();
0x00005f0c lw gp, 0x18(sp) | gp = *(var_18h);
0x00005f10 addiu a1, zero, 0x10 | a1 = 0x10;
0x00005f14 move a0, zero | a0 = 0;
0x00005f18 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00005f1c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00005f20 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00005f24 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x00005f28 addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x00005f2c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00005f30 move s0, v0 | s0 = v0;
0x00005f34 jalr t9 | t9 ();
0x00005f38 lw gp, 0x18(sp) | gp = *(var_18h);
0x00005f3c lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00005f40 jalr t9 | t9 ();
0x00005f44 nop |
0x00005f48 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00005f4c bnez v0, 0x5f74 |
0x00005f50 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x00005f54 move a1, s0 | a1 = s0;
0x00005f58 addiu a0, zero, 7 | a0 = 7;
0x00005f5c jalr t9 | t9 ();
0x00005f60 lw ra, 0x24(sp) | ra = *(var_24h);
0x00005f64 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00005f68 addiu v0, zero, 1 | v0 = 1;
0x00005f6c addiu sp, sp, 0x28 |
0x00005f70 jr ra | return v0;
| }
0x00005f74 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00005f78 move a0, s0 | a0 = s0;
0x00005f7c jalr t9 | t9 ();
0x00005f80 lw ra, 0x24(sp) | ra = *(var_24h);
0x00005f84 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00005f88 addiu v0, zero, 1 | v0 = 1;
0x00005f8c addiu sp, sp, 0x28 |
0x00005f90 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x4e10 */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_msg_execute () | void policykit_cert_msg_execute () {
0x00004e10 lui gp, 2 |
0x00004e14 addiu gp, gp, -0xe00 |
0x00004e18 addu gp, gp, t9 | gp += t9;
0x00004e1c lw v0, (a1) | v0 = *(a1);
0x00004e20 addiu sp, sp, -0xa8 |
0x00004e24 lw t9, -0x7d34(gp) | t9 = sym.imp.cert_prm_get_int;
0x00004e28 lw v0, (v0) | v0 = *(v0);
0x00004e2c sw fp, 0xa0(sp) | *(var_a0h) = fp;
0x00004e30 lw fp, -0x7d40(gp) | fp = *((gp - 8016));
0x00004e34 lw v0, (v0) | v0 = *(v0);
0x00004e38 sw s6, 0x98(sp) | *(var_98h) = s6;
0x00004e3c lw v1, (fp) | v1 = *(fp);
0x00004e40 move s6, a0 | s6 = a0;
0x00004e44 lw a0, (v0) | a0 = *(v0);
0x00004e48 sw gp, 0x30(sp) | *(var_30h) = gp;
0x00004e4c sw ra, 0xa4(sp) | *(var_a4h) = ra;
0x00004e50 sw s7, 0x9c(sp) | *(var_9ch) = s7;
0x00004e54 sw s1, 0x84(sp) | *(var_84h) = s1;
0x00004e58 sw a2, 0xb0(sp) | *(arg_b0h) = a2;
0x00004e5c sw v1, 0x7c(sp) | *(var_7ch) = v1;
0x00004e60 sw s5, 0x94(sp) | *(var_94h) = s5;
0x00004e64 sw s4, 0x90(sp) | *(var_90h) = s4;
0x00004e68 sw s3, 0x8c(sp) | *(var_8ch) = s3;
0x00004e6c sw s2, 0x88(sp) | *(var_88h) = s2;
0x00004e70 sw s0, 0x80(sp) | *(var_80h) = s0;
0x00004e74 move s1, a1 | s1 = a1;
0x00004e78 jalr t9 | t9 ();
0x00004e7c lw gp, 0x30(sp) | gp = *(var_30h);
0x00004e80 move a0, s1 | a0 = s1;
0x00004e84 lw t9, -0x7ef4(gp) | t9 = sym.imp.cert_msg_no_ops;
0x00004e88 move s7, v0 | s7 = v0;
0x00004e8c jalr t9 | t9 ();
0x00004e90 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00004e94 beqz v0, 0x5cd8 | goto label_4;
| }
0x00004e98 move s4, v0 | s4 = v0;
0x00004e9c addiu v0, v0, 1 | v0++;
0x00004ea0 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00004ea4 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
| if (v0 != 0) {
0x00004ea8 bnez v0, 0x5e60 | goto label_5;
| }
0x00004eac lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00004eb0 sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x00004eb4 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00004eb8 sll s2, s7, 2 | s2 = s7 << 2;
0x00004ebc sw v1, 0x44(sp) | *(var_44h) = v1;
0x00004ec0 lw v1, -0x7fd4(gp) | v1 = *((gp - 8181));
0x00004ec4 addiu v0, v0, -0x5420 | v0 += -0x5420;
0x00004ec8 addiu v1, v1, 0x4d70 | v1 += fcn.00004d70;
0x00004ecc sltiu s5, s7, 0x1a | s5 = (s7 < 0x1a) ? 1 : 0;
0x00004ed0 move s3, zero | s3 = 0;
0x00004ed4 addiu s0, zero, 1 | s0 = 1;
0x00004ed8 sw zero, 0x40(sp) | *(var_40h) = 0;
0x00004edc sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x00004ee0 addu s2, v0, s2 | s2 = v0 + s2;
| if (s5 == 0) {
0x00004ee4 beqz s5, 0x500c | goto label_6;
| }
| do {
0x00004ee8 lw v0, (s2) | v0 = *(s2);
0x00004eec addu v0, v0, gp | v0 += gp;
0x00004ef0 jr v0 | v0 ();
0x00004ef4 nop |
| label_0:
0x00005004 move s0, v0 | s0 = v0;
0x00005008 bnez s5, 0x4ee8 |
| } while (s5 != 0);
| label_6:
0x0000500c lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x00005010 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x00005014 addiu a0, v0, -0x5438 | a0 = v0 + -0x5438;
0x00005018 jalr t9 | t9 ();
0x0000501c lw gp, 0x30(sp) | gp = *(var_30h);
0x00005020 move v1, v0 | v1 = v0;
0x00005024 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00005028 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x0000502c lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00005030 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00005034 sw v1, 0x40(sp) | *(var_40h) = v1;
0x00005038 addiu a3, v0, -0x55fc | a3 = v0 + -0x55fc;
0x0000503c addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x00005040 addiu a1, zero, 0x10 | a1 = 0x10;
0x00005044 move a0, zero | a0 = 0;
0x00005048 jalr t9 | t9 ();
0x0000504c lw gp, 0x30(sp) | gp = *(var_30h);
0x00005050 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00005054 jalr t9 | t9 ();
0x00005058 nop |
0x0000505c lw gp, 0x30(sp) | gp = *(var_30h);
0x00005060 lw v1, 0x40(sp) | v1 = *(var_40h);
| if (v0 != 0) {
0x00005064 bnez v0, 0x5c20 | goto label_7;
| }
0x00005068 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x0000506c move a1, v1 | a1 = v1;
0x00005070 addiu a0, zero, 1 | a0 = 1;
0x00005074 jalr t9 | t9 ();
0x00005078 addiu v0, zero, 1 | v0 = 1;
| label_1:
0x0000507c lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x00005080 sw v0, 0x40(sp) | *(var_40h) = v0;
0x00005084 move a0, s6 | a0 = s6;
0x00005088 jalr t9 | t9 ();
0x0000508c lw gp, 0x30(sp) | gp = *(var_30h);
0x00005090 addiu v0, s0, 1 | v0 = s0 + 1;
| if (s4 != s0) {
0x00005094 bne s4, s0, 0x5004 | goto label_0;
| }
0x00005098 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0000509c or v0, v0, s3 | v0 |= s3;
| do {
| label_3:
0x000050a0 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x000050a4 lw v1, (fp) | v1 = *(fp);
0x000050a8 lw ra, 0xa4(sp) | ra = *(var_a4h);
| if (a0 != v1) {
0x000050ac bne a0, v1, 0x5e68 | goto label_8;
| }
0x000050b0 lw fp, 0xa0(sp) | fp = *(var_a0h);
0x000050b4 lw s7, 0x9c(sp) | s7 = *(var_9ch);
0x000050b8 lw s6, 0x98(sp) | s6 = *(var_98h);
0x000050bc lw s5, 0x94(sp) | s5 = *(var_94h);
0x000050c0 lw s4, 0x90(sp) | s4 = *(var_90h);
0x000050c4 lw s3, 0x8c(sp) | s3 = *(var_8ch);
0x000050c8 lw s2, 0x88(sp) | s2 = *(var_88h);
0x000050cc lw s1, 0x84(sp) | s1 = *(var_84h);
0x000050d0 lw s0, 0x80(sp) | s0 = *(var_80h);
0x000050d4 addiu sp, sp, 0xa8 |
0x000050d8 jr ra | return v0;
| label_7:
0x00005c20 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00005c24 move a0, v1 | a0 = v1;
0x00005c28 jalr t9 | t9 ();
0x00005c2c addiu v0, zero, 1 | v0 = 1;
0x00005c30 b 0x507c | goto label_1;
| label_4:
0x00005cd8 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00005cdc lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x00005ce0 addiu a0, a0, -0x5450 | a0 += -0x5450;
0x00005ce4 jalr t9 | t9 ();
0x00005ce8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00005cec addiu a1, zero, 0x10 | a1 = 0x10;
0x00005cf0 move a0, zero | a0 = 0;
0x00005cf4 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00005cf8 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00005cfc lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00005d00 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x00005d04 addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x00005d08 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00005d0c move s0, v0 | s0 = v0;
0x00005d10 jalr t9 | t9 ();
0x00005d14 lw gp, 0x30(sp) | gp = *(var_30h);
0x00005d18 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00005d1c jalr t9 | t9 ();
0x00005d20 nop |
0x00005d24 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00005d28 bnez v0, 0x5d5c | goto label_9;
| }
0x00005d2c lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x00005d30 move a1, s0 | a1 = s0;
0x00005d34 addiu a0, zero, 1 | a0 = 1;
0x00005d38 jalr t9 | t9 ();
0x00005d3c lw gp, 0x30(sp) | gp = *(var_30h);
| label_2:
0x00005d40 lw t9, -0x7fd4(gp) | t9 = *((gp - 8181));
0x00005d44 addiu t9, t9, 0x4d70 | t9 += fcn.00004d70;
0x00005d48 move a0, s6 | a0 = s6;
0x00005d4c bal 0x4d70 | fcn_00004d70 ();
0x00005d50 lw gp, 0x30(sp) | gp = *(var_30h);
0x00005d54 addiu v0, zero, 1 | v0 = 1;
0x00005d58 b 0x50a0 |
| } while (1);
| label_9:
0x00005d5c lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00005d60 move a0, s0 | a0 = s0;
0x00005d64 jalr t9 | t9 ();
0x00005d68 lw gp, 0x30(sp) | gp = *(var_30h);
0x00005d6c b 0x5d40 | goto label_2;
| label_5:
0x00005e60 move v0, zero | v0 = 0;
0x00005e64 b 0x50a0 | goto label_3;
| label_8:
0x00005e68 lw t9, -0x7e30(gp) | t9 = sym.imp.__stack_chk_fail;
0x00005e6c jalr t9 | t9 ();
0x00005e70 nop |
0x00005e74 nop |
0x00005e78 nop |
0x00005e7c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x645c */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_set_clean_up_sets () | void policykit_cert_set_clean_up_sets () {
0x0000645c lui gp, 2 |
0x00006460 addiu gp, gp, -0x244c |
0x00006464 addu gp, gp, t9 | gp += t9;
0x00006468 addiu sp, sp, -0x48 |
0x0000646c lw t9, -0x7e64(gp) | t9 = sym.imp.cert_set_init_server;
0x00006470 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00006474 sw ra, 0x44(sp) | *(var_44h) = ra;
0x00006478 sw s6, 0x38(sp) | *(var_38h) = s6;
0x0000647c sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x00006480 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00006484 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00006488 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000648c sw fp, 0x40(sp) | *(var_40h) = fp;
0x00006490 sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x00006494 sw s5, 0x34(sp) | *(var_34h) = s5;
0x00006498 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0000649c move s0, a0 | s0 = a0;
0x000064a0 move a0, a3 | a0 = a3;
0x000064a4 move s6, a3 | s6 = a3;
0x000064a8 move s1, a1 | s1 = a1;
0x000064ac move s2, a2 | s2 = a2;
0x000064b0 jalr t9 | t9 ();
0x000064b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000064b8 lw t9, -0x7dc8(gp) | t9 = sym.imp.cert_set_names;
0x000064bc jalr t9 | t9 ();
0x000064c0 nop |
0x000064c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000064c8 move s3, v0 | s3 = v0;
0x000064cc lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
| if (v0 == 0) {
0x000064d0 beqz v0, 0x6620 | goto label_3;
| }
0x000064d4 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000064d8 move a2, s1 | a2 = s1;
0x000064dc addiu a0, a0, -0x52bc | a0 += -0x52bc;
0x000064e0 move a3, s2 | a3 = s2;
0x000064e4 move a1, s0 | a1 = s0;
0x000064e8 jalr t9 | t9 ();
0x000064ec lw a0, (s3) | a0 = *(s3);
0x000064f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000064f4 move s1, v0 | s1 = v0;
| if (a0 == 0) {
0x000064f8 beqz a0, 0x6690 | goto label_4;
| }
0x000064fc lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x00006500 lw s5, -0x7fd4(gp) | s5 = *((gp - 8181));
0x00006504 lw s7, -0x7fdc(gp) | s7 = *((gp - 8183));
0x00006508 move s0, s3 | s0 = s3;
0x0000650c move s2, zero | s2 = 0;
0x00006510 addiu s4, s4, -0x55fc | s4 += -0x55fc;
0x00006514 addiu s5, s5, 0x5e80 | s5 += fcn.00005e80;
0x00006518 b 0x6550 |
| while (v0 != 0) {
0x0000651c jalr t9 | t9 ();
0x00006520 nop |
0x00006524 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006528 move a1, s1 | a1 = s1;
0x0000652c lw t9, -0x7dd4(gp) | t9 = sym.imp.g_str_has_prefix;
0x00006530 move a0, v0 | a0 = v0;
0x00006534 jalr t9 | t9 ();
0x00006538 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000653c bnez v0, 0x6600 | goto label_5;
| }
| label_1:
0x00006540 addiu s0, s0, 4 | s0 += 4;
0x00006544 lw a0, (s0) | a0 = *(s0);
| if (a0 == 0) {
0x00006548 beql a0, zero, 0x65a4 | goto label_6;
| }
0x0000654c lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
| label_0:
0x00006550 lw t9, -0x7dec(gp) | t9 = sym.imp.cert_set_lookup;
0x00006554 jalr t9 | t9 ();
0x00006558 nop |
0x0000655c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006560 move fp, v0 | fp = v0;
0x00006564 move a0, v0 | a0 = v0;
0x00006568 lw t9, -0x7ee8(gp) | t9 = sym.imp.cert_set_get_path;
0x0000656c bnez v0, 0x651c |
| }
0x00006570 lw v0, (s0) | v0 = *(s0);
0x00006574 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00006578 addiu s0, s0, 4 | s0 += 4;
0x0000657c move a0, zero | a0 = 0;
0x00006580 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006584 move a3, s4 | a3 = s4;
0x00006588 addiu a2, s7, -0x52b0 | a2 = s7 + -0x52b0;
0x0000658c addiu a1, zero, 0x10 | a1 = 0x10;
0x00006590 jalr t9 | t9 ();
0x00006594 lw a0, (s0) | a0 = *(s0);
0x00006598 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x0000659c bnez a0, 0x6550 | goto label_0;
| }
| do {
| label_2:
0x000065a0 lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
| label_6:
0x000065a4 jalr t9 | t9 ();
0x000065a8 nop |
0x000065ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000065b0 lw t9, -0x7e24(gp) | t9 = sym.imp.g_strfreev;
0x000065b4 move a0, s3 | a0 = s3;
0x000065b8 jalr t9 | t9 ();
0x000065bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000065c0 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x000065c4 move a0, s1 | a0 = s1;
0x000065c8 jalr t9 | t9 ();
0x000065cc lw ra, 0x44(sp) | ra = *(var_44h);
0x000065d0 move v0, s2 | v0 = s2;
0x000065d4 lw fp, 0x40(sp) | fp = *(var_40h);
0x000065d8 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x000065dc lw s6, 0x38(sp) | s6 = *(var_38h);
0x000065e0 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000065e4 lw s4, 0x30(sp) | s4 = *(var_30h);
0x000065e8 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000065ec lw s2, 0x28(sp) | s2 = *(var_28h);
0x000065f0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000065f4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000065f8 addiu sp, sp, 0x48 |
0x000065fc jr ra | return v0;
| label_5:
0x00006600 move a1, s6 | a1 = s6;
0x00006604 move t9, s5 | t9 = s5;
0x00006608 move a0, fp | a0 = fp;
0x0000660c bal 0x5e80 | fcn_00005e80 ();
0x00006610 addiu v1, zero, 1 | v1 = 1;
0x00006614 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006618 movn s2, v1, v0 | s2 = v1;
| }
0x0000661c b 0x6540 | goto label_1;
| label_3:
0x00006620 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00006624 addiu a0, a0, -0x52cc | a0 += -0x52cc;
0x00006628 jalr t9 | t9 ();
0x0000662c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006630 addiu a1, zero, 0x10 | a1 = 0x10;
0x00006634 move a0, zero | a0 = 0;
0x00006638 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x0000663c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00006640 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00006644 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x00006648 addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x0000664c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006650 move s0, v0 | s0 = v0;
0x00006654 jalr t9 | t9 ();
0x00006658 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000665c lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00006660 jalr t9 | t9 ();
0x00006664 nop |
0x00006668 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000666c bnez v0, 0x6698 | goto label_7;
| }
0x00006670 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x00006674 move a1, s0 | a1 = s0;
0x00006678 addiu a0, zero, 1 | a0 = 1;
0x0000667c jalr t9 | t9 ();
0x00006680 move s1, zero | s1 = 0;
0x00006684 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006688 addiu s2, zero, 1 | s2 = 1;
0x0000668c b 0x65a0 |
| } while (1);
| label_4:
0x00006690 move s2, zero | s2 = 0;
0x00006694 b 0x65a0 | goto label_2;
| label_7:
0x00006698 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x0000669c move a0, s0 | a0 = s0;
0x000066a0 jalr t9 | t9 ();
0x000066a4 move s1, zero | s1 = 0;
0x000066a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000066ac addiu s2, zero, 1 | s2 = 1;
0x000066b0 b 0x65a0 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x61bc */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_set_create_set () | void policykit_cert_set_create_set () {
0x000061bc lui gp, 2 |
0x000061c0 addiu gp, gp, -0x21ac |
0x000061c4 addu gp, gp, t9 | gp += t9;
0x000061c8 addiu sp, sp, -0x40 |
0x000061cc lw t9, -0x7e64(gp) | t9 = sym.imp.cert_set_init_server;
0x000061d0 sw s0, 0x28(sp) | *(var_28h) = s0;
0x000061d4 lw s0, -0x7d40(gp) | s0 = *((gp - 8016));
0x000061d8 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x000061dc move s1, a0 | s1 = a0;
0x000061e0 lw v0, (s0) | v0 = *(s0);
0x000061e4 lw a0, 0x50(sp) | a0 = *(arg_50h);
0x000061e8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000061ec sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000061f0 sw s4, 0x38(sp) | *(var_38h) = s4;
0x000061f4 sw s3, 0x34(sp) | *(var_34h) = s3;
0x000061f8 sw s2, 0x30(sp) | *(var_30h) = s2;
0x000061fc sw v0, 0x24(sp) | *(var_24h) = v0;
0x00006200 move s2, a1 | s2 = a1;
0x00006204 move s3, a2 | s3 = a2;
0x00006208 move s4, a3 | s4 = a3;
0x0000620c jalr t9 | t9 ();
0x00006210 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006214 lw t9, -0x7ec8(gp) | t9 = sym.imp.getpwuid;
0x00006218 lw a0, 0x50(sp) | a0 = *(arg_50h);
0x0000621c jalr t9 | t9 ();
0x00006220 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006224 beqz v0, 0x62ac | goto label_1;
| }
0x00006228 lw t9, -0x7eec(gp) | t9 = sym.imp.cert_set_init_set;
0x0000622c move a3, s4 | a3 = s4;
0x00006230 move a2, s3 | a2 = s3;
0x00006234 move a1, s2 | a1 = s2;
0x00006238 move a0, s1 | a0 = s1;
0x0000623c jalr t9 | t9 ();
0x00006240 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006244 beqz v0, 0x62a4 | goto label_2;
| }
0x00006248 lw t9, -0x7e48(gp) | t9 = sym.imp.cert_set_write;
0x0000624c addiu a2, sp, 0x20 | a2 = sp + 0x20;
0x00006250 move a1, v0 | a1 = v0;
0x00006254 move a0, zero | a0 = 0;
0x00006258 jalr t9 | t9 ();
0x0000625c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006260 move s1, v0 | s1 = v0;
| do {
| label_0:
0x00006264 lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
0x00006268 jalr t9 | t9 ();
0x0000626c nop |
0x00006270 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00006274 lw v1, (s0) | v1 = *(s0);
0x00006278 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000627c move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00006280 bne a0, v1, 0x6338 | goto label_3;
| }
0x00006284 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00006288 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0000628c lw s3, 0x34(sp) | s3 = *(var_34h);
0x00006290 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00006294 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00006298 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000629c addiu sp, sp, 0x40 |
0x000062a0 jr ra | return v0;
| label_2:
0x000062a4 addiu s1, zero, 1 | s1 = 1;
0x000062a8 b 0x6264 |
| } while (1);
| label_1:
0x000062ac lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000062b0 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x000062b4 lw a1, 0x50(sp) | a1 = *(arg_50h);
0x000062b8 addiu a0, a0, -0x52f4 | a0 += -0x52f4;
0x000062bc jalr t9 | t9 ();
0x000062c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000062c4 addiu a1, zero, 0x10 | a1 = 0x10;
0x000062c8 move a0, zero | a0 = 0;
0x000062cc lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x000062d0 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000062d4 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x000062d8 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x000062dc addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x000062e0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000062e4 move s1, v0 | s1 = v0;
0x000062e8 jalr t9 | t9 ();
0x000062ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000062f0 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x000062f4 jalr t9 | t9 ();
0x000062f8 nop |
0x000062fc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006300 bnez v0, 0x6320 |
0x00006304 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x00006308 move a1, s1 | a1 = s1;
0x0000630c addiu a0, zero, 0xf | a0 = 0xf;
0x00006310 jalr t9 | t9 ();
0x00006314 addiu s1, zero, 1 | s1 = 1;
0x00006318 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000631c b 0x6264 | goto label_0;
| }
0x00006320 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00006324 move a0, s1 | a0 = s1;
0x00006328 jalr t9 | t9 ();
0x0000632c addiu s1, zero, 1 | s1 = 1;
0x00006330 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006334 b 0x6264 | goto label_0;
| label_3:
0x00006338 lw t9, -0x7e30(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000633c jalr t9 | t9 ();
0x00006340 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x6344 */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_set_delete_set () | void policykit_cert_set_delete_set () {
0x00006344 lui gp, 2 |
0x00006348 addiu gp, gp, -0x2334 |
0x0000634c addu gp, gp, t9 | gp += t9;
0x00006350 addiu sp, sp, -0x30 |
0x00006354 lw t9, -0x7e64(gp) | t9 = sym.imp.cert_set_init_server;
0x00006358 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000635c sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00006360 sw s1, 0x28(sp) | *(var_28h_2) = s1;
0x00006364 sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00006368 move s1, a0 | s1 = a0;
0x0000636c move a0, a1 | a0 = a1;
0x00006370 move s0, a1 | s0 = a1;
0x00006374 jalr t9 | t9 ();
0x00006378 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000637c lw t9, -0x7dec(gp) | t9 = sym.imp.cert_set_lookup;
0x00006380 move a0, s1 | a0 = s1;
0x00006384 jalr t9 | t9 ();
0x00006388 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000638c beqz v0, 0x63d0 | goto label_1;
| }
0x00006390 lw t9, -0x7fd4(gp) | t9 = *((gp - 8181));
0x00006394 move a1, s0 | a1 = s0;
0x00006398 addiu t9, t9, 0x5e80 | t9 += fcn.00005e80;
0x0000639c move a0, v0 | a0 = v0;
0x000063a0 bal 0x5e80 | fcn_00005e80 ();
0x000063a4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000063a8 move s0, v0 | s0 = v0;
| do {
| label_0:
0x000063ac lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
0x000063b0 jalr t9 | t9 ();
0x000063b4 nop |
0x000063b8 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x000063bc move v0, s0 | v0 = s0;
0x000063c0 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x000063c4 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x000063c8 addiu sp, sp, 0x30 |
0x000063cc jr ra | return v0;
| label_1:
0x000063d0 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000063d4 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x000063d8 move a1, s1 | a1 = s1;
0x000063dc addiu a0, a0, -0x5334 | a0 += -0x5334;
0x000063e0 jalr t9 | t9 ();
0x000063e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000063e8 addiu a1, zero, 0x10 | a1 = 0x10;
0x000063ec move a0, zero | a0 = 0;
0x000063f0 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x000063f4 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000063f8 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x000063fc addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x00006400 addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x00006404 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00006408 move s0, v0 | s0 = v0;
0x0000640c jalr t9 | t9 ();
0x00006410 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006414 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00006418 jalr t9 | t9 ();
0x0000641c nop |
0x00006420 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00006424 bnez v0, 0x6444 | goto label_2;
| }
0x00006428 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x0000642c move a1, s0 | a1 = s0;
0x00006430 addiu a0, zero, 0xe | a0 = 0xe;
0x00006434 jalr t9 | t9 ();
0x00006438 addiu s0, zero, 1 | s0 = 1;
0x0000643c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006440 b 0x63ac |
| } while (1);
| label_2:
0x00006444 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00006448 move a0, s0 | a0 = s0;
0x0000644c jalr t9 | t9 ();
0x00006450 addiu s0, zero, 1 | s0 = 1;
0x00006454 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00006458 b 0x63ac | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x68c4 */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_set_get_cert_set_count_for_uid () | void policykit_cert_set_get_cert_set_count_for_uid () {
0x000068c4 lui gp, 2 |
0x000068c8 addiu gp, gp, -0x28b4 |
0x000068cc addu gp, gp, t9 | gp += t9;
0x000068d0 addiu sp, sp, -0x38 |
0x000068d4 lw t9, -0x7e64(gp) | t9 = sym.imp.cert_set_init_server;
0x000068d8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000068dc sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x000068e0 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000068e4 sw s3, 0x30(sp) | *(var_30h) = s3;
0x000068e8 sw s1, 0x28(sp) | *(var_28h) = s1;
0x000068ec sw s0, 0x24(sp) | *(var_24h) = s0;
0x000068f0 move s2, a0 | s2 = a0;
0x000068f4 move a0, zero | a0 = 0;
0x000068f8 jalr t9 | t9 ();
0x000068fc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00006900 bnez v0, 0x6a38 | goto label_2;
| }
0x00006904 lw t9, -0x7dc8(gp) | t9 = sym.imp.cert_set_names;
0x00006908 move s1, v0 | s1 = v0;
0x0000690c jalr t9 | t9 ();
0x00006910 move s3, v0 | s3 = v0;
0x00006914 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006918 beqz v0, 0x6a30 | goto label_3;
| }
0x0000691c lw a0, (v0) | a0 = *(v0);
0x00006920 move s0, v0 | s0 = v0;
| if (a0 == 0) {
0x00006924 beqz a0, 0x69dc | goto label_4;
| }
0x00006928 lw t9, -0x7dec(gp) | t9 = sym.imp.cert_set_lookup;
0x0000692c b 0x6954 |
| while (v0 != 0) {
0x00006930 addiu s0, s0, 4 | s0 += 4;
0x00006934 jalr t9 | t9 ();
0x00006938 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s2) {
0x0000693c bne v0, s2, 0x6944 |
0x00006940 addiu s1, s1, 1 | s1++;
| }
0x00006944 lw a0, (s0) | a0 = *(s0);
| if (a0 == 0) {
0x00006948 beql a0, zero, 0x69e0 | goto label_5;
| }
0x0000694c lw t9, -0x7e24(gp) | t9 = sym.imp.g_strfreev;
0x00006950 lw t9, -0x7dec(gp) | t9 = sym.imp.cert_set_lookup;
0x00006954 jalr t9 | t9 ();
0x00006958 nop |
0x0000695c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006960 move a0, v0 | a0 = v0;
0x00006964 lw t9, -0x7edc(gp) | t9 = sym.imp.cert_set_get_uid;
0x00006968 bnez v0, 0x6930 |
| }
0x0000696c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00006970 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x00006974 lw a1, (s0) | a1 = *(s0);
0x00006978 addiu a0, a0, -0x5244 | a0 += -0x5244;
0x0000697c jalr t9 | t9 ();
0x00006980 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006984 addiu a1, zero, 0x10 | a1 = 0x10;
0x00006988 move a0, zero | a0 = 0;
0x0000698c lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00006990 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00006994 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00006998 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x0000699c addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x000069a0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000069a4 move s0, v0 | s0 = v0;
0x000069a8 jalr t9 | t9 ();
0x000069ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000069b0 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x000069b4 jalr t9 | t9 ();
0x000069b8 nop |
0x000069bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000069c0 bnez v0, 0x6a18 | goto label_6;
| }
0x000069c4 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x000069c8 move a1, s0 | a1 = s0;
0x000069cc addiu a0, zero, 1 | a0 = 1;
0x000069d0 jalr t9 | t9 ();
0x000069d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000069d8 addiu s1, zero, -1 | s1 = -1;
| do {
| label_4:
0x000069dc lw t9, -0x7e24(gp) | t9 = sym.imp.g_strfreev;
| label_5:
0x000069e0 move a0, s3 | a0 = s3;
0x000069e4 jalr t9 | t9 ();
0x000069e8 lw gp, 0x18(sp) | gp = *(var_18h);
| label_0:
0x000069ec lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
0x000069f0 jalr t9 | t9 ();
0x000069f4 nop |
| label_1:
0x000069f8 lw ra, 0x34(sp) | ra = *(var_34h);
0x000069fc move v0, s1 | v0 = s1;
0x00006a00 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00006a04 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00006a08 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00006a0c lw s0, 0x24(sp) | s0 = *(var_24h);
0x00006a10 addiu sp, sp, 0x38 |
0x00006a14 jr ra | return v0;
| label_6:
0x00006a18 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00006a1c move a0, s0 | a0 = s0;
0x00006a20 jalr t9 | t9 ();
0x00006a24 addiu s1, zero, -1 | s1 = -1;
0x00006a28 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006a2c b 0x69dc |
| } while (1);
| label_3:
0x00006a30 addiu s1, zero, -1 | s1 = -1;
0x00006a34 b 0x69ec | goto label_0;
| label_2:
0x00006a38 addiu s1, zero, -1 | s1 = -1;
0x00006a3c b 0x69f8 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x5f94 */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_set_get_path () | void policykit_cert_set_get_path () {
0x00005f94 lui gp, 2 |
0x00005f98 addiu gp, gp, -0x1f84 |
0x00005f9c addu gp, gp, t9 | gp += t9;
0x00005fa0 addiu sp, sp, -0x30 |
0x00005fa4 lw t9, -0x7e64(gp) | t9 = sym.imp.cert_set_init_server;
0x00005fa8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00005fac sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00005fb0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00005fb4 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00005fb8 move s2, a0 | s2 = a0;
0x00005fbc sw s0, 0x20(sp) | *(var_20h) = s0;
0x00005fc0 move a0, a1 | a0 = a1;
0x00005fc4 move s1, a1 | s1 = a1;
0x00005fc8 jalr t9 | t9 ();
0x00005fcc lw gp, 0x18(sp) | gp = *(var_18h);
0x00005fd0 lw t9, -0x7dec(gp) | t9 = sym.imp.cert_set_lookup;
0x00005fd4 move a0, s2 | a0 = s2;
0x00005fd8 jalr t9 | t9 ();
0x00005fdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00005fe0 beqz v0, 0x6108 | goto label_1;
| }
0x00005fe4 lw t9, -0x7edc(gp) | t9 = sym.imp.cert_set_get_uid;
0x00005fe8 move a0, v0 | a0 = v0;
0x00005fec move s0, v0 | s0 = v0;
0x00005ff0 jalr t9 | t9 ();
0x00005ff4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s1) {
0x00005ff8 beq v0, s1, 0x6010 |
0x00005ffc lw t9, -0x7ecc(gp) | t9 = sym.imp.cert_util_uid_root;
0x00006000 jalr t9 | t9 ();
0x00006004 nop |
0x00006008 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s1) {
0x0000600c bne v0, s1, 0x607c | goto label_2;
| }
| }
0x00006010 lw t9, -0x7d74(gp) | t9 = sym.imp.cert_util_get_cert_root_path;
0x00006014 jalr t9 | t9 ();
0x00006018 nop |
0x0000601c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006020 move a0, s0 | a0 = s0;
0x00006024 lw t9, -0x7ee8(gp) | t9 = sym.imp.cert_set_get_path;
0x00006028 move s0, v0 | s0 = v0;
0x0000602c jalr t9 | t9 ();
0x00006030 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006034 move a0, s0 | a0 = s0;
0x00006038 move a2, zero | a2 = 0;
0x0000603c lw t9, -0x7ea4(gp) | t9 = sym.imp.g_strconcat;
0x00006040 move a1, v0 | a1 = v0;
0x00006044 jalr t9 | t9 ();
0x00006048 move s0, v0 | s0 = v0;
0x0000604c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006050 beqz v0, 0x6178 | goto label_3;
| }
| do {
| label_0:
0x00006054 lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
0x00006058 jalr t9 | t9 ();
0x0000605c nop |
0x00006060 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00006064 move v0, s0 | v0 = s0;
0x00006068 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000606c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00006070 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00006074 addiu sp, sp, 0x30 |
0x00006078 jr ra | return v0;
| label_2:
0x0000607c lw t9, -0x7edc(gp) | t9 = sym.imp.cert_set_get_uid;
0x00006080 move a0, s0 | a0 = s0;
0x00006084 jalr t9 | t9 ();
0x00006088 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000608c move a3, v0 | a3 = v0;
0x00006090 move a2, s2 | a2 = s2;
0x00006094 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00006098 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x0000609c move a1, s1 | a1 = s1;
0x000060a0 addiu a0, a0, -0x5374 | a0 += -0x5374;
0x000060a4 jalr t9 | t9 ();
0x000060a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000060ac addiu a1, zero, 0x10 | a1 = 0x10;
0x000060b0 move a0, zero | a0 = 0;
0x000060b4 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x000060b8 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000060bc lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x000060c0 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x000060c4 addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x000060c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000060cc move s0, v0 | s0 = v0;
0x000060d0 jalr t9 | t9 ();
0x000060d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000060d8 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x000060dc jalr t9 | t9 ();
0x000060e0 nop |
0x000060e4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000060e8 bnez v0, 0x6160 | goto label_4;
| }
0x000060ec lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x000060f0 move a1, s0 | a1 = s0;
0x000060f4 addiu a0, zero, 7 | a0 = 7;
0x000060f8 jalr t9 | t9 ();
0x000060fc move s0, zero | s0 = 0;
0x00006100 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006104 b 0x6054 |
| } while (1);
| label_1:
0x00006108 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000610c lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x00006110 move a1, s2 | a1 = s2;
0x00006114 addiu a0, a0, -0x5334 | a0 += -0x5334;
0x00006118 jalr t9 | t9 ();
0x0000611c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006120 addiu a1, zero, 0x10 | a1 = 0x10;
0x00006124 move a0, zero | a0 = 0;
0x00006128 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x0000612c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00006130 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00006134 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x00006138 addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x0000613c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006140 move s0, v0 | s0 = v0;
0x00006144 jalr t9 | t9 ();
0x00006148 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000614c lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00006150 jalr t9 | t9 ();
0x00006154 nop |
0x00006158 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000615c beqz v0, 0x61a0 |
| label_4:
0x00006160 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00006164 move a0, s0 | a0 = s0;
0x00006168 jalr t9 | t9 ();
0x0000616c move s0, zero | s0 = 0;
0x00006170 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006174 b 0x6054 | goto label_0;
| label_3:
0x00006178 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x0000617c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00006180 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00006184 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x00006188 addiu a2, a2, -0x5324 | a2 += -0x5324;
0x0000618c addiu a1, zero, 0x10 | a1 = 0x10;
0x00006190 move a0, zero | a0 = 0;
0x00006194 jalr t9 | t9 ();
0x00006198 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000619c b 0x6054 | goto label_0;
| }
0x000061a0 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x000061a4 move a1, s0 | a1 = s0;
0x000061a8 addiu a0, zero, 2 | a0 = 2;
0x000061ac jalr t9 | t9 ();
0x000061b0 move s0, zero | s0 = 0;
0x000061b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000061b8 b 0x6054 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/policykit_cert @ 0x66b4 */
| #include <stdint.h>
|
; (fcn) sym.policykit_cert_set_update_monolith_cert () | void policykit_cert_set_update_monolith_cert () {
0x000066b4 lui gp, 2 |
0x000066b8 addiu gp, gp, -0x26a4 |
0x000066bc addu gp, gp, t9 | gp += t9;
0x000066c0 addiu sp, sp, -0x48 |
0x000066c4 lw t9, -0x7d88(gp) | t9 = sym.imp.g_strdup;
0x000066c8 sw s0, 0x34(sp) | *(var_34h) = s0;
0x000066cc lw s0, -0x7d40(gp) | s0 = *((gp - 8016));
0x000066d0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000066d4 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000066d8 lw v0, (s0) | v0 = *(s0);
0x000066dc sw s3, 0x40(sp) | *(var_40h) = s3;
0x000066e0 sw s1, 0x38(sp) | *(var_38h) = s1;
0x000066e4 sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x000066e8 sw zero, 0x20(sp) | *(var_20h) = 0;
0x000066ec sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000066f0 move s3, a0 | s3 = a0;
0x000066f4 jalr t9 | t9 ();
0x000066f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000066fc move a0, zero | a0 = 0;
0x00006700 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00006704 lw t9, -0x7e64(gp) | t9 = sym.imp.cert_set_init_server;
0x00006708 sw zero, 0x28(sp) | *(var_28h) = 0;
0x0000670c move s1, v0 | s1 = v0;
0x00006710 jalr t9 | t9 ();
0x00006714 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006718 beqz v0, 0x675c | goto label_3;
| }
0x0000671c lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00006720 move a0, s1 | a0 = s1;
0x00006724 jalr t9 | t9 ();
0x00006728 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000672c addiu s2, zero, 1 | s2 = 1;
| do {
0x00006730 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00006734 lw v1, (s0) | v1 = *(s0);
0x00006738 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0000673c bne a0, v1, 0x68b8 | goto label_4;
| }
0x00006740 lw ra, 0x44(sp) | ra = *(var_44h);
0x00006744 lw s3, 0x40(sp) | s3 = *(var_40h);
0x00006748 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x0000674c lw s1, 0x38(sp) | s1 = *(var_38h);
0x00006750 lw s0, 0x34(sp) | s0 = *(var_34h);
0x00006754 addiu sp, sp, 0x48 |
0x00006758 jr ra | return v0;
| label_3:
0x0000675c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00006760 lw t9, -0x7dec(gp) | t9 = sym.imp.cert_set_lookup;
0x00006764 addiu a0, a0, -0x528c | a0 += -0x528c;
0x00006768 jalr t9 | t9 ();
0x0000676c move s2, v0 | s2 = v0;
0x00006770 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006774 beqz v0, 0x6830 | goto label_5;
| }
0x00006778 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x0000677c lw t9, -0x7d94(gp) | t9 = sym.imp.strcmp;
0x00006780 addiu a1, a1, -0x524c | a1 += -0x524c;
0x00006784 move a0, s3 | a0 = s3;
0x00006788 jalr t9 | t9 ();
0x0000678c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006790 beqz v0, 0x6820 | goto label_6;
| }
0x00006794 lbu v0, (s3) | v0 = *(s3);
| if (v0 != 0) {
0x00006798 beql v0, zero, 0x67a0 |
0x0000679c sw zero, 0x24(sp) | *(var_24h) = 0;
| }
| label_0:
0x000067a0 lw t9, -0x7eac(gp) | t9 = sym.imp.cert_set_copy_set;
0x000067a4 move a0, s2 | a0 = s2;
0x000067a8 jalr t9 | t9 ();
0x000067ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000067b0 addiu a1, sp, 0x24 | a1 = sp + 0x24;
0x000067b4 move a0, s2 | a0 = s2;
0x000067b8 lw t9, -0x7e08(gp) | t9 = sym.imp.cert_set_insert_cert;
0x000067bc move s3, v0 | s3 = v0;
0x000067c0 jalr t9 | t9 ();
0x000067c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000067c8 bnez v0, 0x6828 | goto label_7;
| }
0x000067cc lw t9, -0x7e48(gp) | t9 = sym.imp.cert_set_write;
0x000067d0 move a1, s2 | a1 = s2;
0x000067d4 addiu a2, sp, 0x20 | a2 = sp + 0x20;
0x000067d8 move a0, s3 | a0 = s3;
0x000067dc jalr t9 | t9 ();
0x000067e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000067e4 sltu s2, zero, v0 | s2 = (0 < v0) ? 1 : 0;
| label_1:
0x000067e8 lw t9, -0x7d20(gp) | t9 = sym.imp.cert_set_destroy_set;
| if (s3 != 0) {
0x000067ec beqz s3, 0x67fc |
0x000067f0 move a0, s3 | a0 = s3;
0x000067f4 jalr t9 | t9 ();
0x000067f8 lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_2:
0x000067fc lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x00006800 move a0, s1 | a0 = s1;
0x00006804 jalr t9 | t9 ();
0x00006808 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000680c lw t9, -0x7ed4(gp) | t9 = sym.imp.cert_set_destroy;
0x00006810 jalr t9 | t9 ();
0x00006814 nop |
0x00006818 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000681c b 0x6730 |
| } while (1);
| label_6:
0x00006820 sw zero, 0x24(sp) | *(var_24h) = 0;
0x00006824 b 0x67a0 | goto label_0;
| label_7:
0x00006828 addiu s2, zero, 1 | s2 = 1;
0x0000682c b 0x67e8 | goto label_1;
| label_5:
0x00006830 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00006834 lw t9, -0x7da0(gp) | t9 = sym.imp.g_strdup_printf
0x00006838 addiu a0, a0, -0x527c | a0 += -0x527c;
0x0000683c jalr t9 | t9 ();
0x00006840 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006844 addiu a1, zero, 0x10 | a1 = 0x10;
0x00006848 move a0, zero | a0 = 0;
0x0000684c lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00006850 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00006854 lw t9, -0x7d5c(gp) | t9 = sym.imp.g_log;
0x00006858 addiu a3, a3, -0x55fc | a3 += -0x55fc;
0x0000685c addiu a2, a2, -0x5ae4 | a2 += -0x5ae4;
0x00006860 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00006864 move s2, v0 | s2 = v0;
0x00006868 jalr t9 | t9 ();
0x0000686c lw gp, 0x18(sp) | gp = *(var_18h);
0x00006870 lw t9, -0x7cf8(gp) | t9 = sym.imp.cert_util_error_code;
0x00006874 jalr t9 | t9 ();
0x00006878 nop |
0x0000687c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00006880 bnez v0, 0x68a0 |
0x00006884 lw t9, -0x7d8c(gp) | t9 = sym.imp.cert_util_error_code_msg;
0x00006888 move a1, s2 | a1 = s2;
0x0000688c addiu a0, zero, 1 | a0 = 1;
0x00006890 jalr t9 | t9 ();
0x00006894 addiu s2, zero, 1 | s2 = 1;
0x00006898 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000689c b 0x67fc | goto label_2;
| }
0x000068a0 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x000068a4 move a0, s2 | a0 = s2;
0x000068a8 jalr t9 | t9 ();
0x000068ac addiu s2, zero, 1 | s2 = 1;
0x000068b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000068b4 b 0x67fc | goto label_2;
| label_4:
0x000068b8 lw t9, -0x7e30(gp) | t9 = sym.imp.__stack_chk_fail;
0x000068bc jalr t9 | t9 ();
0x000068c0 nop |
| }
[*] Function printf used 11 times policykit_cert