[*] Binary protection state of image2d
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of image2d
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x27f08 */
| #include <stdint.h>
|
; (fcn) fcn.00027f08 () | void fcn_00027f08 () {
0x00027f08 lui gp, 0x22 |
0x00027f0c addiu gp, gp, 0x73c8 |
0x00027f10 addu gp, gp, t9 | gp += t9;
0x00027f14 addiu sp, sp, -0x28 |
0x00027f18 addiu v0, sp, 0x2c | v0 = sp + 0x2c;
0x00027f1c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00027f20 lw s0, -0x5f08(gp) | s0 = *((gp - 6082));
0x00027f24 sw a2, 0x30(sp) | *(arg_30h) = a2;
0x00027f28 move a2, a0 | a2 = a0;
0x00027f2c lw a0, -0x607c(gp) | a0 = *((gp - 6175));
0x00027f30 lw v1, (s0) | v1 = *(s0);
0x00027f34 lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x00027f38 lw a0, (a0) | a0 = *(a0);
0x00027f3c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00027f40 sw a1, 0x2c(sp) | *(arg_2ch) = a1;
0x00027f44 sw a3, 0x34(sp) | *(arg_34h) = a3;
0x00027f48 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00027f4c sw ra, 0x24(sp) | *(var_24h) = ra;
0x00027f50 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00027f54 move a3, v0 | a3 = v0;
0x00027f58 addiu a1, zero, 1 | a1 = 1;
0x00027f5c jalr t9 | t9 ();
0x00027f60 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x00027f64 lw v0, (s0) | v0 = *(s0);
0x00027f68 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x00027f6c bne v1, v0, 0x27f80 |
0x00027f70 lw ra, 0x24(sp) | ra = *(var_24h);
0x00027f74 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00027f78 addiu sp, sp, 0x28 |
0x00027f7c jr ra | return v1;
| }
0x00027f80 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x00027f84 jalr t9 | t9 ();
0x00027f88 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x27f8c */
| #include <stdint.h>
|
; (fcn) fcn.00027f8c () | void fcn_00027f8c () {
0x00027f8c lui gp, 0x22 |
0x00027f90 addiu gp, gp, 0x7344 |
0x00027f94 addu gp, gp, t9 | gp += t9;
0x00027f98 addiu sp, sp, -0x30 |
0x00027f9c lw v1, -0x5e6c(gp) | v1 = *((gp - 6043));
0x00027fa0 sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x00027fa4 lw s1, -0x5f08(gp) | s1 = *((gp - 6082));
0x00027fa8 lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x00027fac sw s2, 0x28(sp) | *(var_28h) = s2;
0x00027fb0 lw v0, (s1) | v0 = *(s1);
0x00027fb4 move s2, a0 | s2 = a0;
0x00027fb8 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x00027fbc lw a0, (v1) | a0 = *(v1);
0x00027fc0 addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x00027fc4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00027fc8 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00027fcc sw a1, 0x34(sp) | *(var_34h) = a1;
0x00027fd0 sw a2, 0x38(sp) | *(var_38h) = a2;
0x00027fd4 addiu a1, zero, 1 | a1 = 1;
0x00027fd8 move a2, s2 | a2 = s2;
0x00027fdc sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x00027fe0 sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x00027fe4 move a3, s0 | a3 = s0;
0x00027fe8 sw v0, 0x1c(sp) | *(var_1ch_2) = v0;
0x00027fec jalr t9 | t9 ();
0x00027ff0 nop |
0x00027ff4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00027ff8 addiu a0, zero, 0x3f | a0 = 0x3f;
0x00027ffc lw t9, -0x5c54(gp) | t9 = *(gp);
0x00028000 sll s0, v0, 0 | s0 = v0 << 0;
0x00028004 invalid |
0x00028008 invalid |
0x0002800c invalid |
0x00028010 nop |
0x00028014 lw zero, (t8) | 0 = *(t8);
0x00028018 lw t9, -0x5d9c(gp) | t9 = *(gp);
| /* str.image2d_startup */
0x0002801c addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x00028020 jalr t9 | t9 ();
0x00028024 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00028028 move a3, s0 | a3 = s0;
0x0002802c move a2, s2 | a2 = s2;
0x00028030 lw t9, -0x5fac(gp) | t9 = sym.imp.__vsyslog_chk;
0x00028034 addiu a1, zero, 1 | a1 = 1;
0x00028038 addiu a0, zero, 3 | a0 = 3;
0x0002803c jalr t9 | t9 ();
0x00028040 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00028044 lw t9, -0x6164(gp) | t9 = *(gp);
0x00028048 jalr t9 | t9 ();
0x0002804c nop |
0x00028050 lw v1, 0x1c(sp) | v1 = *(var_1ch_2);
0x00028054 lw v0, (s1) | v0 = *(s1);
0x00028058 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v1 == v0) {
0x0002805c bne v1, v0, 0x28078 |
0x00028060 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00028064 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00028068 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x0002806c lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00028070 addiu sp, sp, 0x30 |
0x00028074 jr ra | return v1;
| }
0x00028078 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002807c jalr t9 | t9 ();
0x00028080 nop |
0x00028084 lui gp, 0x22 |
0x00028088 addiu gp, gp, 0x724c |
0x0002808c addu gp, gp, t9 | gp += t9;
0x00028090 addiu sp, sp, -0x20 |
0x00028094 lw t9, -0x7e60(gp) | t9 = *(gp);
0x00028098 sw s0, 0x18(sp) | *(var_18h_3) = s0;
0x0002809c move s0, a1 | s0 = a1;
0x000280a0 move a1, a0 | a1 = a0;
0x000280a4 lw a0, -0x7f24(gp) | a0 = *(gp);
0x000280a8 sw ra, 0x1c(sp) | *(var_1ch_3) = ra;
0x000280ac sw gp, 0x10(sp) | *(var_10h_3) = gp;
| /* fcn.00027f08 */
0x000280b0 addiu t9, t9, 0x7f08 | t9 += aav.0x00007f08;
| /* str.Cfg_group___s_n */
0x000280b4 addiu a0, a0, 0x5ebc | a0 += 0x5ebc;
0x000280b8 bal 0x27f08 | fcn_00027f08 ();
0x000280bc lw gp, 0x10(sp) | gp = *(var_10h_3);
0x000280c0 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x000280c4 move a0, s0 | a0 = s0;
0x000280c8 lw a1, -0x7d70(gp) | a1 = *(gp);
0x000280cc lw s0, 0x18(sp) | s0 = *(var_18h_3);
0x000280d0 lw t9, -0x5e54(gp) | t9 = sym.imp.g_hash_table_foreach;
0x000280d4 move a2, zero | a2 = 0;
0x000280d8 addiu a1, a1, -0x7f1c | a1 += -0x7f1c;
0x000280dc addiu sp, sp, 0x20 |
0x000280e0 jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x31690 */
| #include <stdint.h>
|
; (fcn) fcn.00031690 () | void fcn_00031690 () {
0x00031690 lui gp, 0x22 |
0x00031694 addiu gp, gp, -0x23c0 |
0x00031698 addu gp, gp, t9 | gp += t9;
0x0003169c addiu sp, sp, -0x30 |
0x000316a0 lw v1, -0x5e6c(gp) | v1 = *((gp - 6043));
0x000316a4 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000316a8 lw s1, -0x5f08(gp) | s1 = *((gp - 6082));
0x000316ac lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x000316b0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000316b4 lw v0, (s1) | v0 = *(s1);
0x000316b8 move s2, a0 | s2 = a0;
0x000316bc sw s0, 0x20(sp) | *(var_20h) = s0;
0x000316c0 lw a0, (v1) | a0 = *(v1);
0x000316c4 addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x000316c8 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000316cc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000316d0 sw a1, 0x34(sp) | *(arg_34h) = a1;
0x000316d4 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x000316d8 addiu a1, zero, 1 | a1 = 1;
0x000316dc move a2, s2 | a2 = s2;
0x000316e0 sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x000316e4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000316e8 move a3, s0 | a3 = s0;
0x000316ec sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000316f0 jalr t9 | t9 ();
0x000316f4 nop |
0x000316f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000316fc addiu a0, zero, 0x3f | a0 = 0x3f;
0x00031700 lw t9, -0x5c54(gp) | t9 = *(gp);
0x00031704 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00031708 jalr t9 | t9 ();
0x0003170c lw gp, 0x10(sp) | gp = *(var_10h);
0x00031710 addiu a2, zero, 0x88 | a2 = 0x88;
0x00031714 addiu a1, zero, 0xb | a1 = 0xb;
0x00031718 lw a0, -0x7f24(gp) | a0 = *(gp);
0x0003171c lw t9, -0x5d9c(gp) | t9 = *(gp);
| /* str.image2d_startup */
0x00031720 addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x00031724 jalr t9 | t9 ();
0x00031728 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003172c move a3, s0 | a3 = s0;
0x00031730 move a2, s2 | a2 = s2;
0x00031734 lw t9, -0x5fac(gp) | t9 = sym.imp.__vsyslog_chk;
0x00031738 addiu a1, zero, 1 | a1 = 1;
0x0003173c addiu a0, zero, 3 | a0 = 3;
0x00031740 jalr t9 | t9 ();
0x00031744 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031748 lw t9, -0x6164(gp) | t9 = *(gp);
0x0003174c jalr t9 | t9 ();
0x00031750 nop |
0x00031754 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x00031758 lw v0, (s1) | v0 = *(s1);
0x0003175c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x00031760 bne v1, v0, 0x3177c |
0x00031764 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00031768 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0003176c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00031770 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00031774 addiu sp, sp, 0x30 |
0x00031778 jr ra | return v0;
| }
0x0003177c lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x00031780 jalr t9 | t9 ();
0x00031784 nop |
0x00031788 lui gp, 0x22 |
0x0003178c addiu gp, gp, -0x24b8 |
0x00031790 addu gp, gp, t9 | gp += t9;
0x00031794 addiu sp, sp, -0x28 |
0x00031798 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x0003179c sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x000317a0 sw ra, 0x24(sp) | *(var_24h_2) = ra;
0x000317a4 move s0, a0 | s0 = a0;
0x000317a8 lw a0, (a0) | a0 = *(a0);
| if (a1 <= 0) {
0x000317ac blez a1, 0x31828 | goto label_2;
| }
0x000317b0 move v0, a1 | v0 = a1;
| if (a0 == 0) {
0x000317b4 beqz a0, 0x31848 | goto label_3;
| }
0x000317b8 lw t9, -0x5d84(gp) | t9 = sym.imp.g_malloc0_n;
| label_0:
0x000317bc addiu a0, v0, 1 | a0 = v0 + 1;
0x000317c0 addiu a1, zero, 4 | a1 = 4;
0x000317c4 jalr t9 | t9 ();
0x000317c8 lw a0, (s0) | a0 = *(s0);
0x000317cc lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (a0 == 0) {
0x000317d0 beqz a0, 0x3185c | goto label_4;
| }
0x000317d4 move a1, v0 | a1 = v0;
0x000317d8 move v1, a0 | v1 = a0;
0x000317dc move a2, zero | a2 = 0;
| do {
0x000317e0 lw a3, (v1) | a3 = *(v1);
0x000317e4 addiu a2, a2, 1 | a2++;
0x000317e8 sw a3, (a1) | *(a1) = a3;
0x000317ec lw v1, 4(v1) | v1 = *((v1 + 1));
0x000317f0 addiu a1, a1, 4 | a1 += 4;
0x000317f4 bnez v1, 0x317e0 |
| } while (v1 != 0);
0x000317f8 sll a2, a2, 2 | a2 <<= 2;
0x000317fc addu a2, v0, a2 | a2 = v0 + a2;
| label_1:
0x00031800 lw t9, -0x5cb4(gp) | t9 = sym.imp.g_list_free;
0x00031804 sw v0, 0x1c(sp) | *(var_1ch_2) = v0;
0x00031808 sw zero, (a2) | *(a2) = 0;
0x0003180c jalr t9 | t9 ();
0x00031810 lw ra, 0x24(sp) | ra = *(var_24h_2);
0x00031814 lw v0, 0x1c(sp) | v0 = *(var_1ch_2);
0x00031818 sw zero, (s0) | *(s0) = 0;
0x0003181c lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00031820 addiu sp, sp, 0x28 |
0x00031824 jr ra | return v0;
| label_2:
0x00031828 lw t9, -0x5d94(gp) | t9 = sym.imp.g_list_length;
0x0003182c jalr t9 | t9 ();
0x00031830 nop |
0x00031834 lw v1, (s0) | v1 = *(s0);
0x00031838 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v1 == 0) {
0x0003183c beqz v1, 0x31848 | goto label_3;
| }
0x00031840 lw t9, -0x5d84(gp) | t9 = sym.imp.g_malloc0_n;
| if (v0 != 0) {
0x00031844 bnez v0, 0x317bc | goto label_0;
| }
| label_3:
0x00031848 lw ra, 0x24(sp) | ra = *(var_24h_2);
0x0003184c lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00031850 move v0, zero | v0 = 0;
0x00031854 addiu sp, sp, 0x28 |
0x00031858 jr ra | return v0;
| label_4:
0x0003185c move a2, v0 | a2 = v0;
0x00031860 b 0x31800 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x318e4 */
| #include <stdint.h>
|
; (fcn) fcn.000318e4 () | void fcn_000318e4 () {
0x000318e4 lui gp, 0x22 |
0x000318e8 addiu gp, gp, -0x2614 |
0x000318ec addu gp, gp, t9 | gp += t9;
0x000318f0 addiu sp, sp, -0x30 |
0x000318f4 lw v1, -0x5e6c(gp) | v1 = *((gp - 6043));
0x000318f8 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000318fc lw s1, -0x5f08(gp) | s1 = *((gp - 6082));
0x00031900 lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x00031904 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00031908 lw v0, (s1) | v0 = *(s1);
0x0003190c move s2, a0 | s2 = a0;
0x00031910 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00031914 lw a0, (v1) | a0 = *(v1);
0x00031918 addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x0003191c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00031920 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00031924 sw a1, 0x34(sp) | *(arg_34h) = a1;
0x00031928 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x0003192c addiu a1, zero, 1 | a1 = 1;
0x00031930 move a2, s2 | a2 = s2;
0x00031934 sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x00031938 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003193c move a3, s0 | a3 = s0;
0x00031940 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00031944 jalr t9 | t9 ();
0x00031948 nop |
0x0003194c lw gp, 0x10(sp) | gp = *(var_10h);
0x00031950 addiu a0, zero, 0x3f | a0 = 0x3f;
0x00031954 lw t9, -0x5c54(gp) | t9 = *(gp);
0x00031958 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003195c jalr t9 | t9 ();
0x00031960 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031964 addiu a2, zero, 0x88 | a2 = 0x88;
0x00031968 addiu a1, zero, 0xb | a1 = 0xb;
0x0003196c lw a0, -0x7f24(gp) | a0 = *(gp);
0x00031970 lw t9, -0x5d9c(gp) | t9 = *(gp);
| /* str.image2d_startup */
0x00031974 addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x00031978 jalr t9 | t9 ();
0x0003197c lw gp, 0x10(sp) | gp = *(var_10h);
0x00031980 move a3, s0 | a3 = s0;
0x00031984 move a2, s2 | a2 = s2;
0x00031988 lw t9, -0x5fac(gp) | t9 = sym.imp.__vsyslog_chk;
0x0003198c addiu a1, zero, 1 | a1 = 1;
0x00031990 addiu a0, zero, 4 | a0 = 4;
0x00031994 jalr t9 | t9 ();
0x00031998 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003199c lw t9, -0x6164(gp) | t9 = *(gp);
0x000319a0 jalr t9 | t9 ();
0x000319a4 nop |
0x000319a8 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x000319ac lw v0, (s1) | v0 = *(s1);
0x000319b0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x000319b4 bne v1, v0, 0x319d0 |
0x000319b8 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000319bc lw s2, 0x28(sp) | s2 = *(var_28h);
0x000319c0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000319c4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000319c8 addiu sp, sp, 0x30 |
0x000319cc jr ra | return v1;
| }
0x000319d0 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x000319d4 jalr t9 | t9 ();
0x000319d8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x3994c */
| #include <stdint.h>
|
; (fcn) fcn.0003994c () | void fcn_0003994c () {
0x0003994c lui gp, 0x21 |
0x00039950 addiu gp, gp, 0x5984 |
0x00039954 addu gp, gp, t9 | gp += t9;
0x00039958 addiu sp, sp, -0x30 |
0x0003995c lw v1, -0x5e6c(gp) | v1 = *((gp - 6043));
0x00039960 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00039964 lw s1, -0x5f08(gp) | s1 = *((gp - 6082));
0x00039968 lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x0003996c sw s2, 0x28(sp) | *(var_28h) = s2;
0x00039970 lw v0, (s1) | v0 = *(s1);
0x00039974 move s2, a0 | s2 = a0;
0x00039978 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003997c lw a0, (v1) | a0 = *(v1);
0x00039980 addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x00039984 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00039988 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003998c sw a1, 0x34(sp) | *(arg_34h) = a1;
0x00039990 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x00039994 addiu a1, zero, 1 | a1 = 1;
0x00039998 move a2, s2 | a2 = s2;
0x0003999c sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x000399a0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000399a4 move a3, s0 | a3 = s0;
0x000399a8 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000399ac jalr t9 | t9 ();
0x000399b0 nop |
0x000399b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000399b8 addiu a0, zero, 0x3f | a0 = 0x3f;
0x000399bc lw t9, -0x5c54(gp) | t9 = *(gp);
0x000399c0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000399c4 jalr t9 | t9 ();
0x000399c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000399cc addiu a2, zero, 0x88 | a2 = 0x88;
0x000399d0 addiu a1, zero, 0xb | a1 = 0xb;
0x000399d4 lw a0, -0x7f24(gp) | a0 = *(gp);
0x000399d8 lw t9, -0x5d9c(gp) | t9 = *(gp);
| /* str.image2d_startup */
0x000399dc addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x000399e0 jalr t9 | t9 ();
0x000399e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000399e8 move a3, s0 | a3 = s0;
0x000399ec move a2, s2 | a2 = s2;
0x000399f0 lw t9, -0x5fac(gp) | t9 = sym.imp.__vsyslog_chk;
0x000399f4 addiu a1, zero, 1 | a1 = 1;
0x000399f8 addiu a0, zero, 3 | a0 = 3;
0x000399fc jalr t9 | t9 ();
0x00039a00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00039a04 lw t9, -0x6164(gp) | t9 = *(gp);
0x00039a08 jalr t9 | t9 ();
0x00039a0c nop |
0x00039a10 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x00039a14 lw v0, (s1) | v0 = *(s1);
0x00039a18 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x00039a1c bne v1, v0, 0x39a38 |
0x00039a20 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00039a24 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00039a28 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00039a2c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00039a30 addiu sp, sp, 0x30 |
0x00039a34 jr ra | return v1;
| }
0x00039a38 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x00039a3c jalr t9 | t9 ();
0x00039a40 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x3c920 */
| #include <stdint.h>
|
; (fcn) fcn.0003c920 () | void fcn_0003c920 () {
0x0003c920 lui gp, 0x21 |
0x0003c924 addiu gp, gp, 0x29b0 |
0x0003c928 addu gp, gp, t9 | gp += t9;
0x0003c92c addiu sp, sp, -0x30 |
0x0003c930 lw v1, -0x5e6c(gp) | v1 = *((gp - 6043));
0x0003c934 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0003c938 lw s1, -0x5f08(gp) | s1 = *((gp - 6082));
0x0003c93c lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x0003c940 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x0003c944 lw v0, (s1) | v0 = *(s1);
0x0003c948 move s2, a0 | s2 = a0;
0x0003c94c sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003c950 lw a0, (v1) | a0 = *(v1);
0x0003c954 addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x0003c958 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0003c95c sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x0003c960 sw a1, 0x34(sp) | *(var_34h) = a1;
0x0003c964 sw a2, 0x38(sp) | *(var_38h) = a2;
0x0003c968 addiu a1, zero, 1 | a1 = 1;
0x0003c96c move a2, s2 | a2 = s2;
0x0003c970 sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x0003c974 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003c978 move a3, s0 | a3 = s0;
0x0003c97c sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0003c980 jalr t9 | t9 ();
0x0003c984 nop |
0x0003c988 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003c98c addiu a0, zero, 0x3f | a0 = 0x3f;
0x0003c990 lw t9, -0x5c54(gp) | t9 = *(gp);
0x0003c994 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003c998 jalr t9 | t9 ();
0x0003c99c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003c9a0 addiu a2, zero, 0x88 | a2 = 0x88;
0x0003c9a4 addiu a1, zero, 0xb | a1 = 0xb;
0x0003c9a8 lw a0, -0x7f24(gp) | a0 = *(gp);
0x0003c9ac lw t9, -0x5d9c(gp) | t9 = *(gp);
| /* str.image2d_startup */
0x0003c9b0 addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x0003c9b4 jalr t9 | t9 ();
0x0003c9b8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003c9bc move a3, s0 | a3 = s0;
0x0003c9c0 move a2, s2 | a2 = s2;
0x0003c9c4 lw t9, -0x5fac(gp) | t9 = sym.imp.__vsyslog_chk;
0x0003c9c8 addiu a1, zero, 1 | a1 = 1;
0x0003c9cc addiu a0, zero, 3 | a0 = 3;
0x0003c9d0 jalr t9 | t9 ();
0x0003c9d4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003c9d8 lw t9, -0x6164(gp) | t9 = *(gp);
0x0003c9dc jalr t9 | t9 ();
0x0003c9e0 nop |
0x0003c9e4 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x0003c9e8 lw v0, (s1) | v0 = *(s1);
0x0003c9ec lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v1 == v0) {
0x0003c9f0 bne v1, v0, 0x3ca0c |
0x0003c9f4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0003c9f8 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0003c9fc lw s1, 0x24(sp) | s1 = *(var_24h);
0x0003ca00 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003ca04 addiu sp, sp, 0x30 |
0x0003ca08 jr ra | return v1;
| }
0x0003ca0c lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003ca10 jalr t9 | t9 ();
0x0003ca14 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x3cb34 */
| #include <stdint.h>
|
; (fcn) fcn.0003cb34 () | void fcn_0003cb34 () {
0x0003cb34 lui gp, 0x21 |
0x0003cb38 addiu gp, gp, 0x279c |
0x0003cb3c addu gp, gp, t9 | gp += t9;
0x0003cb40 addiu sp, sp, -0x28 |
0x0003cb44 lw a0, -0x607c(gp) | a0 = *((gp - 6175));
0x0003cb48 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003cb4c lw s0, -0x5f08(gp) | s0 = *((gp - 6082));
0x0003cb50 lw a0, (a0) | a0 = *(a0);
0x0003cb54 addiu v0, sp, 0x2c | v0 = sp + 0x2c;
0x0003cb58 lw v1, (s0) | v1 = *(s0);
0x0003cb5c sw a2, 0x30(sp) | *(arg_30h) = a2;
0x0003cb60 lw a2, -0x7da8(gp) | a2 = *(gp);
0x0003cb64 lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x0003cb68 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003cb6c sw a1, 0x2c(sp) | *(arg_2ch) = a1;
0x0003cb70 sw a3, 0x34(sp) | *(arg_34h) = a3;
0x0003cb74 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x0003cb78 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0003cb7c sw v0, 0x18(sp) | *(var_18h) = v0;
0x0003cb80 move a3, v0 | a3 = v0;
| /* str.No_calibration_data_in_head__d_n */
0x0003cb84 addiu a2, a2, -0x53f0 | a2 += -0x53f0;
0x0003cb88 addiu a1, zero, 1 | a1 = 1;
0x0003cb8c jalr t9 | t9 ();
0x0003cb90 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x0003cb94 lw v0, (s0) | v0 = *(s0);
0x0003cb98 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x0003cb9c bne v1, v0, 0x3cbb0 |
0x0003cba0 lw ra, 0x24(sp) | ra = *(var_24h);
0x0003cba4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003cba8 addiu sp, sp, 0x28 |
0x0003cbac jr ra | return v1;
| }
0x0003cbb0 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003cbb4 jalr t9 | t9 ();
0x0003cbb8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/image2d @ 0x3cbbc */
| #include <stdint.h>
|
; (fcn) fcn.0003cbbc () | void fcn_0003cbbc () {
0x0003cbbc lui gp, 0x21 |
0x0003cbc0 addiu gp, gp, 0x2714 |
0x0003cbc4 addu gp, gp, t9 | gp += t9;
0x0003cbc8 addiu sp, sp, -0x30 |
0x0003cbcc lw v1, -0x5e6c(gp) | v1 = *((gp - 6043));
0x0003cbd0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0003cbd4 lw s1, -0x5f08(gp) | s1 = *((gp - 6082));
0x0003cbd8 lw t9, -0x5df0(gp) | t9 = sym.imp.__vfprintf_chk
0x0003cbdc sw s2, 0x28(sp) | *(var_28h) = s2;
0x0003cbe0 lw v0, (s1) | v0 = *(s1);
0x0003cbe4 move s2, a0 | s2 = a0;
0x0003cbe8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0003cbec lw a0, (v1) | a0 = *(v1);
0x0003cbf0 addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x0003cbf4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0003cbf8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003cbfc sw a1, 0x34(sp) | *(arg_34h) = a1;
0x0003cc00 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x0003cc04 addiu a1, zero, 1 | a1 = 1;
0x0003cc08 move a2, s2 | a2 = s2;
0x0003cc0c sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x0003cc10 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003cc14 move a3, s0 | a3 = s0;
0x0003cc18 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0003cc1c jalr t9 | t9 ();
0x0003cc20 nop |
0x0003cc24 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cc28 addiu a0, zero, 0x3f | a0 = 0x3f;
0x0003cc2c lw t9, -0x5c54(gp) | t9 = *(gp);
0x0003cc30 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003cc34 jalr t9 | t9 ();
0x0003cc38 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cc3c addiu a2, zero, 0x88 | a2 = 0x88;
0x0003cc40 addiu a1, zero, 0xb | a1 = 0xb;
0x0003cc44 lw a0, -0x7f24(gp) | a0 = *(gp);
0x0003cc48 lw t9, -0x5d9c(gp) | t9 = *(gp);
| /* str.image2d_startup */
0x0003cc4c addiu a0, a0, 0x5e84 | a0 += 0x5e84;
0x0003cc50 jalr t9 | t9 ();
0x0003cc54 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cc58 move a3, s0 | a3 = s0;
0x0003cc5c move a2, s2 | a2 = s2;
0x0003cc60 lw t9, -0x5fac(gp) | t9 = sym.imp.__vsyslog_chk;
0x0003cc64 addiu a1, zero, 1 | a1 = 1;
0x0003cc68 addiu a0, zero, 4 | a0 = 4;
0x0003cc6c jalr t9 | t9 ();
0x0003cc70 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cc74 lw t9, -0x6164(gp) | t9 = *(gp);
0x0003cc78 jalr t9 | t9 ();
0x0003cc7c nop |
0x0003cc80 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x0003cc84 lw v0, (s1) | v0 = *(s1);
0x0003cc88 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x0003cc8c bne v1, v0, 0x3cca8 |
0x0003cc90 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0003cc94 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0003cc98 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0003cc9c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003cca0 addiu sp, sp, 0x30 |
0x0003cca4 jr ra | return v1;
| }
0x0003cca8 lw t9, -0x5fc0(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003ccac jalr t9 | t9 ();
0x0003ccb0 nop |
| }
[*] Function fprintf used 9 times image2d