[*] Binary protection state of focusd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of focusd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x8b98 */
| #include <stdint.h>
|
; (fcn) fcn.00008b98 () | void fcn_00008b98 () {
0x00008b98 lui gp, 6 |
0x00008b9c addiu gp, gp, 0x5fe8 |
0x00008ba0 addu gp, gp, t9 | gp += t9;
0x00008ba4 addiu sp, sp, -0x60 |
0x00008ba8 sw s6, 0x50(sp) | *(var_50h) = s6;
0x00008bac lw s6, -0x7a04(gp) | s6 = *((gp - 7809));
0x00008bb0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00008bb4 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x00008bb8 lw v0, (s6) | v0 = *(s6);
0x00008bbc sw fp, 0x58(sp) | *(var_58h) = fp;
0x00008bc0 sw s7, 0x54(sp) | *(var_54h) = s7;
0x00008bc4 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x00008bc8 sw s4, 0x48(sp) | *(var_48h) = s4;
0x00008bcc sw s3, 0x44(sp) | *(var_44h) = s3;
0x00008bd0 sw s2, 0x40(sp) | *(var_40h) = s2;
0x00008bd4 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x00008bd8 sw s0, 0x38(sp) | *(var_38h) = s0;
0x00008bdc sw zero, 0x30(sp) | *(var_30h) = 0;
0x00008be0 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00008be4 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x00008be8 beqz a0, 0x8ee4 | goto label_17;
| }
0x00008bec move s3, a1 | s3 = a1;
| if (a1 == 0) {
0x00008bf0 beqz a1, 0x8f18 | goto label_18;
| }
0x00008bf4 lw t9, -0x78cc(gp) | t9 = sym.imp.std2parser_opencfg;
0x00008bf8 jalr t9 | t9 ();
0x00008bfc nop |
0x00008c00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008c04 bnez v0, 0x8c70 |
0x00008c08 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00008c0c move a0, zero | a0 = 0;
0x00008c10 jalr t9 | t9 ();
0x00008c14 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008c18 move s1, zero | s1 = 0;
0x00008c1c addiu s0, zero, 1 | s0 = 1;
| label_2:
0x00008c20 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00008c24 move a0, s1 | a0 = s1;
0x00008c28 jalr t9 | t9 ();
0x00008c2c lw a0, 0x34(sp) | a0 = *(var_34h);
0x00008c30 lw v1, (s6) | v1 = *(s6);
0x00008c34 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008c38 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00008c3c bne a0, v1, 0x8fcc | goto label_19;
| }
0x00008c40 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x00008c44 lw fp, 0x58(sp) | fp = *(var_58h);
0x00008c48 lw s7, 0x54(sp) | s7 = *(var_54h);
0x00008c4c lw s6, 0x50(sp) | s6 = *(var_50h);
0x00008c50 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00008c54 lw s4, 0x48(sp) | s4 = *(var_48h);
0x00008c58 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00008c5c lw s2, 0x40(sp) | s2 = *(var_40h);
0x00008c60 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00008c64 lw s0, 0x38(sp) | s0 = *(var_38h);
0x00008c68 addiu sp, sp, 0x60 |
0x00008c6c jr ra | return v0;
| }
0x00008c70 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00008c74 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x00008c78 move a1, s3 | a1 = s3;
| /* str._s_override */
0x00008c7c addiu a0, a0, -0x7610 | a0 += -0x7610;
0x00008c80 jalr t9 | t9 ();
0x00008c84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008c88 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x00008c8c move s1, v0 | s1 = v0;
0x00008c90 jalr t9 | t9 ();
0x00008c94 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008c98 move s5, v0 | s5 = v0;
0x00008c9c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00008ca0 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x00008ca4 sw v0, 0x20(sp) | *(var_20h_2) = v0;
| /* str.default_position */
0x00008ca8 addiu v0, s7, -0x762c | v0 = s7 + -0x762c;
0x00008cac sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x00008cb0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00008cb4 lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* str._4_Duplicated_override__s_for_group__s._n */
0x00008cb8 addiu v0, v0, -0x7604 | v0 += -0x7604;
0x00008cbc sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x00008cc0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00008cc4 addiu s4, s4, -0x64a8 | s4 += -0x64a8;
0x00008cc8 sw v0, 0x28(sp) | *(var_28h_2) = v0;
| do {
| label_0:
0x00008ccc lw t9, -0x7714(gp) | t9 = sym.imp.std2parser_getcfg;
0x00008cd0 jalr t9 | t9 ();
0x00008cd4 nop |
0x00008cd8 move fp, v0 | fp = v0;
0x00008cdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008ce0 beqz v0, 0x8dc4 | goto label_20;
| }
| label_1:
0x00008ce4 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
0x00008ce8 lw a1, (fp) | a1 = *(fp);
0x00008cec lw s0, 8(fp) | s0 = *(arg_8h);
0x00008cf0 move a0, s1 | a0 = s1;
0x00008cf4 jalr t9 | t9 ();
| if (s0 != 0) {
0x00008cf8 movz s0, s4, s0 | s0 = s4;
| }
0x00008cfc lw gp, 0x18(sp) | gp = *(var_18h);
0x00008d00 bnez v0, 0x8ccc |
| } while (v0 != 0);
0x00008d04 lw a1, 4(fp) | a1 = *(arg_4h);
0x00008d08 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
| if (a1 == 0) {
0x00008d0c beqz a1, 0x8ccc | goto label_0;
| }
0x00008d10 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00008d14 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x00008d18 addiu s7, v0, 0x5ac8 | s7 = v0 + 0x5ac8;
0x00008d1c jalr t9 | t9 ();
0x00008d20 addiu s2, s7, 0x10 | s2 = s7 + 0x10;
0x00008d24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008d28 beqz v0, 0x8d4c | goto label_21;
| }
| do {
0x00008d2c addiu s7, s7, 4 | s7 += 4;
0x00008d30 lw a1, 4(fp) | a1 = *(arg_4h);
| if (s7 == s2) {
0x00008d34 beq s7, s2, 0x8e90 | goto label_22;
| }
0x00008d38 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
0x00008d3c lw a0, (s7) | a0 = *(s7);
0x00008d40 jalr t9 | t9 ();
0x00008d44 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008d48 bnez v0, 0x8d2c |
| } while (v0 != 0);
| label_21:
0x00008d4c lb s2, (s0) | s2 = *(s0);
0x00008d50 addiu v0, zero, 0x27 | v0 = 0x27;
0x00008d54 lw t9, -0x79ac(gp) | t9 = sym.imp.strlen;
| if (s2 == v0) {
0x00008d58 beq s2, v0, 0x8e38 | goto label_23;
| }
| label_3:
0x00008d5c move s2, zero | s2 = 0;
| label_4:
0x00008d60 lw t9, -0x7728(gp) | t9 = sym.imp.g_key_file_has_key;
0x00008d64 lw a2, 4(fp) | a2 = *(arg_4h);
0x00008d68 move a3, zero | a3 = 0;
0x00008d6c move a1, s3 | a1 = s3;
0x00008d70 move a0, s5 | a0 = s5;
0x00008d74 jalr t9 | t9 ();
0x00008d78 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00008d7c bnez v0, 0x8ebc | goto label_24;
| }
| label_5:
0x00008d80 lw a2, 4(fp) | a2 = *(arg_4h);
0x00008d84 lw t9, -0x77f8(gp) | t9 = sym.imp.g_key_file_set_string;
0x00008d88 move a3, s0 | a3 = s0;
0x00008d8c move a1, s3 | a1 = s3;
0x00008d90 move a0, s5 | a0 = s5;
0x00008d94 jalr t9 | t9 ();
0x00008d98 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008d9c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00008da0 move a0, s2 | a0 = s2;
0x00008da4 jalr t9 | t9 ();
0x00008da8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008dac lw t9, -0x7714(gp) | t9 = sym.imp.std2parser_getcfg;
0x00008db0 jalr t9 | t9 ();
0x00008db4 nop |
0x00008db8 move fp, v0 | fp = v0;
0x00008dbc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00008dc0 bnez v0, 0x8ce4 | goto label_1;
| }
| label_20:
0x00008dc4 lw t9, -0x79f0(gp) | t9 = sym.imp.std2parser_closecfg;
0x00008dc8 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00008dcc jalr t9 | t9 ();
0x00008dd0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008dd4 move a2, s0 | a2 = s0;
0x00008dd8 move a1, zero | a1 = 0;
0x00008ddc lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x00008de0 move a0, s5 | a0 = s5;
0x00008de4 jalr t9 | t9 ();
0x00008de8 move s2, v0 | s2 = v0;
0x00008dec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008df0 beqz v0, 0x8f34 | goto label_25;
| }
0x00008df4 lw t9, -0x7eac(gp) | t9 = sym.settings_load_data;
0x00008df8 move a0, v0 | a0 = v0;
0x00008dfc jalr t9 | t9 ();
0x00008e00 move s0, v0 | s0 = v0;
0x00008e04 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008e08 beqz v0, 0x8f80 | goto label_26;
| }
0x00008e0c addiu s0, zero, 1 | s0 = 1;
| label_6:
0x00008e10 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00008e14 move a0, s2 | a0 = s2;
0x00008e18 jalr t9 | t9 ();
0x00008e1c lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == 0) {
0x00008e20 beqz s5, 0x8c20 | goto label_2;
| }
0x00008e24 lw t9, -0x78b0(gp) | t9 = sym.imp.g_key_file_unref;
0x00008e28 move a0, s5 | a0 = s5;
0x00008e2c jalr t9 | t9 ();
0x00008e30 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008e34 b 0x8c20 | goto label_2;
| label_23:
0x00008e38 move a0, s0 | a0 = s0;
0x00008e3c jalr t9 | t9 ();
0x00008e40 sltiu a0, v0, 2 | a0 = (v0 < 2) ? 1 : 0;
0x00008e44 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x00008e48 bnez a0, 0x8d5c | goto label_3;
| }
0x00008e4c addu v0, s0, v0 | v0 = s0 + v0;
0x00008e50 lb v0, -1(v0) | v0 = *((v0 - 1));
0x00008e54 move s2, zero | s2 = 0;
| if (v0 == s2) {
0x00008e58 bnel v0, s2, 0x8d60 | goto label_4;
| }
0x00008e5c lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
0x00008e60 addiu a0, s0, 1 | a0 = s0 + 1;
0x00008e64 jalr t9 | t9 ();
0x00008e68 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008e6c move a0, v0 | a0 = v0;
0x00008e70 move s0, v0 | s0 = v0;
0x00008e74 lw t9, -0x79ac(gp) | t9 = sym.imp.strlen;
0x00008e78 move s2, s0 | s2 = s0;
0x00008e7c jalr t9 | t9 ();
0x00008e80 addu v0, s0, v0 | v0 = s0 + v0;
0x00008e84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008e88 sb zero, -1(v0) | *((v0 - 1)) = 0;
0x00008e8c b 0x8d60 | goto label_4;
| label_22:
0x00008e90 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00008e94 sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x00008e98 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00008e9c lw a0, (v0) | a0 = *(v0);
0x00008ea0 lw v0, 0x28(sp) | v0 = *(var_28h_2);
0x00008ea4 move a3, a1 | a3 = a1;
0x00008ea8 addiu a2, v0, -0x754c | a2 = v0 + -0x754c;
0x00008eac addiu a1, zero, 1 | a1 = 1;
0x00008eb0 jalr t9 | t9 ();
0x00008eb4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008eb8 b 0x8ccc | goto label_0;
| label_24:
0x00008ebc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00008ec0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00008ec4 lw a3, 4(fp) | a3 = *(arg_4h);
0x00008ec8 lw a0, (v0) | a0 = *(v0);
0x00008ecc lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
0x00008ed0 sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x00008ed4 addiu a1, zero, 1 | a1 = 1;
0x00008ed8 jalr t9 | t9 ();
0x00008edc lw gp, 0x18(sp) | gp = *(var_18h);
0x00008ee0 b 0x8d80 | goto label_5;
| label_17:
0x00008ee4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00008ee8 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* esilref: 'file' */
0x00008eec addiu a2, a2, 0x1f44 | a2 += 0x1f44;
| /* str.load_group_override_settings */
0x00008ef0 addiu a1, a1, -0x6910 | a1 += -0x6910;
| do {
0x00008ef4 move s1, zero | s1 = 0;
0x00008ef8 jalr t9 | t9 ();
0x00008efc lw gp, 0x18(sp) | gp = *(var_18h);
0x00008f00 move a0, zero | a0 = 0;
0x00008f04 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00008f08 move s0, zero | s0 = 0;
0x00008f0c jalr t9 | t9 ();
0x00008f10 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008f14 b 0x8c20 | goto label_2;
| label_18:
0x00008f18 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00008f1c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00008f20 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.group */
0x00008f24 addiu a2, a2, -0x7618 | a2 += -0x7618;
| /* str.load_group_override_settings */
0x00008f28 addiu a1, a1, -0x6910 | a1 += -0x6910;
0x00008f2c move a0, zero | a0 = 0;
0x00008f30 b 0x8ef4 |
| } while (1);
| label_25:
0x00008f34 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00008f38 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00008f3c lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x00008f40 beqz v0, 0x8fa8 |
0x00008f44 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00008f48 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00008f4c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00008f50 move a3, s3 | a3 = s3;
| /* str._3_Could_not_store_override_group__s:__s_n */
0x00008f54 addiu a2, a2, -0x75d4 | a2 += -0x75d4;
0x00008f58 addiu a1, zero, 1 | a1 = 1;
0x00008f5c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00008f60 jalr t9 | t9 ();
0x00008f64 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008f68 move a0, s0 | a0 = s0;
0x00008f6c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00008f70 move s0, zero | s0 = 0;
0x00008f74 jalr t9 | t9 ();
0x00008f78 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008f7c b 0x8e10 | goto label_6;
| label_26:
0x00008f80 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00008f84 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00008f88 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00008f8c lw a0, (v0) | a0 = *(v0);
0x00008f90 move a3, s3 | a3 = s3;
| /* str._3_Could_not_load_override_group__s_to_settings._n */
0x00008f94 addiu a2, a2, -0x7580 | a2 += -0x7580;
0x00008f98 addiu a1, zero, 1 | a1 = 1;
0x00008f9c jalr t9 | t9 ();
0x00008fa0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008fa4 b 0x8e10 | goto label_6;
| }
0x00008fa8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00008fac lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00008fb0 move a3, s3 | a3 = s3;
| /* str._3_Could_not_store_override_group__s_n */
0x00008fb4 addiu a2, a2, -0x75a8 | a2 += -0x75a8;
0x00008fb8 addiu a1, zero, 1 | a1 = 1;
0x00008fbc jalr t9 | t9 ();
0x00008fc0 move s0, zero | s0 = 0;
0x00008fc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008fc8 b 0x8e10 | goto label_6;
| label_19:
0x00008fcc lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00008fd0 jalr t9 | t9 ();
0x00008fd4 nop |
0x00008fd8 lui gp, 6 |
0x00008fdc addiu gp, gp, 0x5ba8 |
0x00008fe0 addu gp, gp, t9 | gp += t9;
0x00008fe4 addiu sp, sp, -0x38 |
0x00008fe8 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x00008fec sw s2, 0x24(sp) | *(var_24h) = s2;
0x00008ff0 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00008ff4 addiu s2, a0, 0x20 | s2 = a0 + 0x20;
0x00008ff8 move s0, a0 | s0 = a0;
0x00008ffc sw gp, 0x10(sp) | *(var_10h) = gp;
0x00009000 sw ra, 0x34(sp) | *(var_34h_2) = ra;
0x00009004 sw s5, 0x30(sp) | *(var_30h_2) = s5;
0x00009008 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x0000900c sw s3, 0x28(sp) | *(var_28h) = s3;
0x00009010 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00009014 move a0, s2 | a0 = s2;
0x00009018 jalr t9 | t9 ();
0x0000901c lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00009020 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00009024 bnez v0, 0x9194 | goto label_15;
| }
0x00009028 lw t9, -0x7ea8(gp) | t9 = sym.api_disable;
0x0000902c addiu v0, zero, 1 | v0 = 1;
0x00009030 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x00009034 bal 0xf0f0 | sym_api_disable ();
0x00009038 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000903c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00009040 beqz v0, 0x90f4 | goto label_27;
| }
0x00009044 lui s5, 1 | s5 = 0x10000;
0x00009048 move s4, zero | s4 = 0;
0x0000904c move s3, zero | s3 = 0;
0x00009050 ori s5, s5, 0x86a0 | s5 |= 0x86a0;
0x00009054 b 0x908c |
| while (v0 == 0) {
0x00009058 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| label_7:
0x0000905c addiu a0, zero, 4 | a0 = 4;
0x00009060 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009064 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00009068 beqz v0, 0x9078 |
0x0000906c lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x00009070 lw t9, -0x7fa8(gp) | t9 = sym.focusd_optics_motorized_stop;
| if (a0 != 0) {
0x00009074 bnez a0, 0x91c8 | goto label_28;
| }
| }
0x00009078 lw v0, 0xc(s0) | v0 = *((s0 + 3));
| label_8:
0x0000907c addiu s3, s3, 1 | s3++;
0x00009080 sltu v0, s3, v0 | v0 = (s3 < v0) ? 1 : 0;
0x00009084 addiu s4, s4, 0x1c | s4 += 0x1c;
| if (v0 == 0) {
0x00009088 beqz v0, 0x90f4 | goto label_27;
| }
0x0000908c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009090 lw s1, 8(s0) | s1 = *((s0 + 2));
0x00009094 addiu a0, zero, 3 | a0 = 3;
0x00009098 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000909c addu s1, s1, s4 | s1 += s4;
0x000090a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000090a4 beqz v0, 0x9058 |
| }
0x000090a8 lw a0, 8(s1) | a0 = *((s1 + 2));
| if (a0 == 0) {
0x000090ac beql a0, zero, 0x905c | goto label_7;
| }
0x000090b0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x000090b4 lw t9, -0x7fa8(gp) | t9 = sym.focusd_optics_motorized_stop;
0x000090b8 bal 0x256c8 | sym_focusd_optics_motorized_stop ();
0x000090bc nop |
0x000090c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000090c4 b 0x90d4 |
| while (v0 != 0) {
0x000090c8 move a0, s5 | a0 = s5;
0x000090cc jalr t9 | t9 ();
0x000090d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000090d4 lw t9, -0x7ea4(gp) | t9 = sym.focusd_optics_motorized_operation_running;
0x000090d8 lw a0, 8(s1) | a0 = *((s1 + 2));
0x000090dc bal 0x25554 | sym_focusd_optics_motorized_operation_running ();
0x000090e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000090e4 lw t9, -0x7b30(gp) | t9 = sym.imp.g_usleep;
0x000090e8 bnez v0, 0x90c8 |
| }
0x000090ec lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x000090f0 b 0x905c | goto label_7;
| label_27:
0x000090f4 lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
0x000090f8 bal 0xe9c0 | sym_api_cleanup ();
0x000090fc nop |
0x00009100 lw gp, 0x10(sp) | gp = *(var_10h);
0x00009104 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009108 addiu a0, zero, 0xd | a0 = 0xd;
0x0000910c bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009110 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00009114 bnez v0, 0x9280 | goto label_29;
| }
| label_11:
0x00009118 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000911c addiu a0, zero, 4 | a0 = 4;
0x00009120 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009124 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00009128 bnez v0, 0x9204 | goto label_12;
| }
| label_9:
0x0000912c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| label_13:
0x00009130 addiu a0, zero, 2 | a0 = 2;
0x00009134 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009138 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0000913c bnez v0, 0x9388 | goto label_30;
| }
| label_10:
0x00009140 lw t9, -0x7e9c(gp) | t9 = sym.assistant_close;
| label_16:
0x00009144 bal 0xf3cc | sym_assistant_close ();
0x00009148 nop |
0x0000914c lw gp, 0x10(sp) | gp = *(var_10h);
0x00009150 lw t9, -0x7e98(gp) | t9 = sym.focusd_dbus_cleanup;
0x00009154 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00009158 bal 0x15640 | sym_focusd_dbus_cleanup ();
0x0000915c lw gp, 0x10(sp) | gp = *(var_10h);
0x00009160 lw t9, -0x7e94(gp) | t9 = sym.temperature_ctrld_cleanup;
0x00009164 jalr t9 | t9 ();
0x00009168 nop |
0x0000916c lw gp, 0x10(sp) | gp = *(var_10h);
0x00009170 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009174 addiu a0, zero, 1 | a0 = 1;
0x00009178 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000917c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00009180 bnez v0, 0x9328 | goto label_31;
| }
| label_14:
0x00009184 lw t9, -0x7784(gp) | t9 = sym.imp.g_main_loop_quit;
0x00009188 lw a0, (s0) | a0 = *(s0);
0x0000918c jalr t9 | t9 ();
0x00009190 lw gp, 0x10(sp) | gp = *(var_10h);
| label_15:
0x00009194 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00009198 move a0, s2 | a0 = s2;
0x0000919c jalr t9 | t9 ();
0x000091a0 lw ra, 0x34(sp) | ra = *(var_34h_2);
0x000091a4 lw s5, 0x30(sp) | s5 = *(var_30h_2);
0x000091a8 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x000091ac lw s3, 0x28(sp) | s3 = *(var_28h);
0x000091b0 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000091b4 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000091b8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000091bc move v0, zero | v0 = 0;
0x000091c0 addiu sp, sp, 0x38 |
0x000091c4 jr ra | return v0;
| label_28:
0x000091c8 bal 0x256c8 | sym_focusd_optics_motorized_stop ();
0x000091cc nop |
0x000091d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000091d4 b 0x91e4 |
| while (v0 != 0) {
0x000091d8 move a0, s5 | a0 = s5;
0x000091dc jalr t9 | t9 ();
0x000091e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000091e4 lw t9, -0x7ea4(gp) | t9 = sym.focusd_optics_motorized_operation_running;
0x000091e8 lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x000091ec bal 0x25554 | sym_focusd_optics_motorized_operation_running ();
0x000091f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000091f4 lw t9, -0x7b30(gp) | t9 = sym.imp.g_usleep;
0x000091f8 bnez v0, 0x91d8 |
| }
0x000091fc lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009200 b 0x907c | goto label_8;
| label_12:
0x00009204 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009208 move s4, zero | s4 = 0;
| if (v0 == 0) {
0x0000920c beqz v0, 0x912c | goto label_9;
| }
0x00009210 move s3, zero | s3 = 0;
0x00009214 lw s1, 8(s0) | s1 = *((s0 + 2));
| do {
0x00009218 addiu s3, s3, 1 | s3++;
0x0000921c addu s1, s1, s4 | s1 += s4;
0x00009220 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00009224 lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x00009228 addiu s4, s4, 0x1c | s4 += 0x1c;
| if (a0 != 0) {
0x0000922c beqz a0, 0x923c |
0x00009230 sw zero, 0x10(s1) | *((s1 + 4)) = 0;
0x00009234 jalr t9 | t9 ();
0x00009238 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x0000923c lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x00009240 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 != 0) {
0x00009244 beqz a0, 0x9254 |
0x00009248 sw zero, 0xc(s1) | *((s1 + 3)) = 0;
0x0000924c jalr t9 | t9 ();
0x00009250 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00009254 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009258 sltu v0, s3, v0 | v0 = (s3 < v0) ? 1 : 0;
0x0000925c lw s1, 8(s0) | s1 = *((s0 + 2));
0x00009260 bnel v0, zero, 0x9218 |
| } while (v0 == 0);
0x00009264 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009268 addiu a0, zero, 2 | a0 = 2;
0x0000926c bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009270 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00009274 beqz v0, 0x9140 | goto label_10;
| }
0x00009278 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x0000927c b 0x938c | goto label_32;
| label_29:
0x00009280 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009284 move s4, zero | s4 = 0;
| if (v0 == 0) {
0x00009288 beqz v0, 0x9118 | goto label_11;
| }
0x0000928c move s3, zero | s3 = 0;
0x00009290 lw s1, 8(s0) | s1 = *((s0 + 2));
| do {
0x00009294 addiu s3, s3, 1 | s3++;
0x00009298 addu s1, s1, s4 | s1 += s4;
0x0000929c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x000092a0 lw a0, 8(s1) | a0 = *((s1 + 2));
0x000092a4 addiu s4, s4, 0x1c | s4 += 0x1c;
| if (a0 != 0) {
0x000092a8 beqz a0, 0x92b8 |
0x000092ac sw zero, 8(s1) | *((s1 + 2)) = 0;
0x000092b0 jalr t9 | t9 ();
0x000092b4 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000092b8 lw a0, (s1) | a0 = *(s1);
0x000092bc lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 != 0) {
0x000092c0 beqz a0, 0x92d0 |
0x000092c4 sw zero, (s1) | *(s1) = 0;
0x000092c8 jalr t9 | t9 ();
0x000092cc lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000092d0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x000092d4 addiu a0, zero, 3 | a0 = 3;
0x000092d8 bal 0x17e38 | sym_focusd_feature_enabled ();
0x000092dc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000092e0 beqz v0, 0x92fc |
0x000092e4 lw a0, 4(s1) | a0 = *((s1 + 1));
0x000092e8 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 == 0) {
0x000092ec beqz a0, 0x92fc | goto label_33;
| }
0x000092f0 sw zero, 4(s1) | *((s1 + 1)) = 0;
0x000092f4 jalr t9 | t9 ();
0x000092f8 lw gp, 0x10(sp) | gp = *(var_10h);
| }
| label_33:
0x000092fc lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009300 sltu v0, s3, v0 | v0 = (s3 < v0) ? 1 : 0;
0x00009304 lw s1, 8(s0) | s1 = *((s0 + 2));
0x00009308 bnel v0, zero, 0x9294 |
| } while (v0 == 0);
0x0000930c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009310 addiu a0, zero, 4 | a0 = 4;
0x00009314 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009318 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0000931c bnez v0, 0x9204 | goto label_12;
| }
0x00009320 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009324 b 0x9130 | goto label_13;
| label_31:
0x00009328 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x0000932c move s3, zero | s3 = 0;
| if (v1 == 0) {
0x00009330 beqz v1, 0x9184 | goto label_14;
| }
0x00009334 move s1, zero | s1 = 0;
0x00009338 lw v0, 8(s0) | v0 = *((s0 + 2));
| do {
0x0000933c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00009340 addu v0, v0, s3 | v0 += s3;
0x00009344 addiu s1, s1, 1 | s1++;
0x00009348 lw a1, 0x14(v0) | a1 = *((v0 + 5));
0x0000934c addiu s3, s3, 0x1c | s3 += 0x1c;
0x00009350 move a0, a1 | a0 = a1;
| if (a1 != 0) {
0x00009354 beqz a1, 0x9368 |
0x00009358 sw zero, 0x14(v0) | *((v0 + 5)) = 0;
0x0000935c jalr t9 | t9 ();
0x00009360 lw gp, 0x10(sp) | gp = *(var_10h);
0x00009364 lw v1, 0xc(s0) | v1 = *((s0 + 3));
| }
0x00009368 sltu v0, s1, v1 | v0 = (s1 < v1) ? 1 : 0;
0x0000936c lw v0, 8(s0) | v0 = *((s0 + 2));
0x00009370 bnel v0, zero, 0x933c |
| } while (v0 == 0);
0x00009374 lw t9, -0x7784(gp) | t9 = sym.imp.g_main_loop_quit;
0x00009378 lw a0, (s0) | a0 = *(s0);
0x0000937c jalr t9 | t9 ();
0x00009380 lw gp, 0x10(sp) | gp = *(var_10h);
0x00009384 b 0x9194 | goto label_15;
| label_30:
0x00009388 lw v1, 0xc(s0) | v1 = *((s0 + 3));
| label_32:
0x0000938c move s4, zero | s4 = 0;
| if (v1 == 0) {
0x00009390 beqz v1, 0x9140 | goto label_10;
| }
0x00009394 move s3, zero | s3 = 0;
0x00009398 lw s1, 8(s0) | s1 = *((s0 + 2));
| do {
0x0000939c lw t9, -0x7e90(gp) | t9 = sym.imaged_cleanup;
0x000093a0 addu s1, s1, s4 | s1 += s4;
0x000093a4 addiu s3, s3, 1 | s3++;
0x000093a8 lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x000093ac addiu s4, s4, 0x1c | s4 += 0x1c;
0x000093b0 move a0, v0 | a0 = v0;
| if (v0 != 0) {
0x000093b4 beqz v0, 0x93cc |
0x000093b8 jalr t9 | t9 ();
0x000093bc nop |
0x000093c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000093c4 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x000093c8 sw zero, 0x18(s1) | *((s1 + 6)) = 0;
| }
0x000093cc sltu v0, s3, v1 | v0 = (s3 < v1) ? 1 : 0;
0x000093d0 lw s1, 8(s0) | s1 = *((s0 + 2));
0x000093d4 bnel v0, zero, 0x939c |
| } while (v0 == 0);
0x000093d8 lw t9, -0x7e9c(gp) | t9 = sym.assistant_close;
0x000093dc b 0x9144 | goto label_16;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x11b88 */
| #include <stdint.h>
|
; (fcn) fcn.00011b88 () | void fcn_00011b88 () {
0x00011b88 lui gp, 6 |
0x00011b8c addiu gp, gp, -0x3008 |
0x00011b90 addu gp, gp, t9 | gp += t9;
0x00011b94 addiu sp, sp, -0x28 |
0x00011b98 lw t9, -0x791c(gp) | t9 = sym.imp.dlsym;
0x00011b9c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00011ba0 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00011ba4 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00011ba8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00011bac move s1, a1 | s1 = a1;
0x00011bb0 jalr t9 | t9 ();
0x00011bb4 move s0, v0 | s0 = v0;
0x00011bb8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00011bbc beqz v0, 0x11bd8 | goto label_0;
| }
0x00011bc0 lw ra, 0x24(sp) | ra = *(var_24h);
| do {
0x00011bc4 move v0, s0 | v0 = s0;
0x00011bc8 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00011bcc lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00011bd0 addiu sp, sp, 0x28 |
0x00011bd4 jr ra | return v0;
| label_0:
0x00011bd8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00011bdc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00011be0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00011be4 lw a0, (v0) | a0 = *(v0);
0x00011be8 move a3, s1 | a3 = s1;
| /* str._3_Could_not_locate__s___in_buzzer_plugin_n */
0x00011bec addiu a2, a2, -0x5564 | a2 += -0x5564;
0x00011bf0 addiu a1, zero, 1 | a1 = 1;
0x00011bf4 jalr t9 | t9 ();
0x00011bf8 lw ra, 0x24(sp) | ra = *(var_24h);
0x00011bfc b 0x11bc4 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1a154 */
| #include <stdint.h>
|
; (fcn) fcn.0001a154 () | void fcn_0001a154 () {
0x0001a154 lui gp, 5 |
0x0001a158 addiu gp, gp, 0x4a2c |
0x0001a15c addu gp, gp, t9 | gp += t9;
0x0001a160 addiu sp, sp, -0x90 |
0x0001a164 lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001a168 sw s1, 0x88(sp) | *(var_88h) = s1;
0x0001a16c lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001a170 sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x0001a174 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001a178 lw v0, (s1) | v0 = *(s1);
0x0001a17c sw s0, 0x84(sp) | *(var_84h) = s0;
0x0001a180 sw a0, 0x24(sp) | *(var_24h) = a0;
0x0001a184 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x0001a188 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001a18c nop |
0x0001a190 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a194 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0001a198 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001a19c move a1, v0 | a1 = v0;
0x0001a1a0 jalr t9 | t9 ();
0x0001a1a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a1a8 move s0, v0 | s0 = v0;
0x0001a1ac addiu v0, zero, 4 | v0 = 4;
0x0001a1b0 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x0001a1b4 sw v0, 0x40(sp) | *(var_40h) = v0;
| /* str.FOCUS_STATUS */
0x0001a1b8 addiu v1, v1, -0x2440 | v1 += -0x2440;
0x0001a1bc sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x0001a1c0 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x0001a1c4 sw v0, 0x50(sp) | *(var_50h) = v0;
| /* str.FOCUS_DISTANCE_DIOPT */
0x0001a1c8 addiu v1, v1, -0x2430 | v1 += -0x2430;
0x0001a1cc sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x0001a1d0 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x0001a1d4 sw v0, 0x60(sp) | *(var_60h) = v0;
| /* str.ZOOM_OPT_STATUS */
0x0001a1d8 addiu v1, v1, -0x2418 | v1 += -0x2418;
0x0001a1dc sw v0, 0x70(sp) | *(var_70h) = v0;
0x0001a1e0 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x0001a1e4 addiu a0, zero, 2 | a0 = 2;
0x0001a1e8 sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x0001a1ec sw v0, 0x28(sp) | *(var_28h) = v0;
0x0001a1f0 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x0001a1f4 addiu v0, sp, 0x4c | v0 = sp + 0x4c;
0x0001a1f8 sw a0, 0x58(sp) | *(var_58h) = a0;
0x0001a1fc sw a0, 0x78(sp) | *(var_78h) = a0;
0x0001a200 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0001a204 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001a208 addiu v0, sp, 0x5c | v0 = sp + 0x5c;
0x0001a20c addiu a1, zero, 1 | a1 = 1;
0x0001a210 lw t9, -0x7b9c(gp) | t9 = sym.imp.sc_get_group;
0x0001a214 addiu t1, s0, 0x24 | t1 = s0 + 0x24;
0x0001a218 addiu t0, s0, 0x20 | t0 = s0 + 0x20;
0x0001a21c addiu a3, s0, 0x2c | a3 = s0 + 0x2c;
0x0001a220 addiu a2, s0, 0x28 | a2 = s0 + 0x28;
| /* str.ZOOM_OPT_MAG */
0x0001a224 addiu v1, v1, -0x2408 | v1 += -0x2408;
0x0001a228 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0001a22c addiu v0, sp, 0x6c | v0 = sp + 0x6c;
0x0001a230 sw a1, 0x48(sp) | *(var_48h) = a1;
0x0001a234 sw a1, 0x68(sp) | *(var_68h) = a1;
0x0001a238 sw a2, 0x74(sp) | *(var_74h) = a2;
0x0001a23c sw t1, 0x44(sp) | *(var_44h) = t1;
0x0001a240 sw t0, 0x54(sp) | *(var_54h) = t0;
0x0001a244 sw a3, 0x64(sp) | *(var_64h) = a3;
0x0001a248 sw v1, 0x6c(sp) | *(var_6ch) = v1;
0x0001a24c move a2, zero | a2 = 0;
0x0001a250 addiu a1, sp, 0x28 | a1 = sp + 0x28;
| /* str.OPTICS_STATUS_IS1 */
0x0001a254 addiu a0, a0, -0x23f8 | a0 += -0x23f8;
0x0001a258 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0001a25c sw zero, 0x38(sp) | *(var_38h) = 0;
0x0001a260 jalr t9 | t9 ();
0x0001a264 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x0001a268 blez v0, 0x1a470 | goto label_8;
| }
0x0001a26c lw t9, -0x778c(gp) | t9 = sym.imp.clock_gettime;
0x0001a270 addiu a1, s0, 0x30 | a1 = s0 + 0x30;
0x0001a274 addiu a0, zero, 1 | a0 = 1;
0x0001a278 jalr t9 | t9 ();
0x0001a27c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0001a280 bnez v0, 0x1a434 | goto label_9;
| }
0x0001a284 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0001a288 slti v1, v0, 4 | v1 = (v0 < 4) ? 1 : 0;
0x0001a28c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
| if (v1 != 0) {
0x0001a290 bnez v1, 0x1a3e0 | goto label_7;
| }
| label_6:
0x0001a294 lw v0, 0x50(sp) | v0 = *(var_50h);
0x0001a298 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0001a29c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v0 != 0) {
0x0001a2a0 bnez v0, 0x1a388 | goto label_5;
| }
0x0001a2a4 lw v0, 0x60(sp) | v0 = *(var_60h);
| label_4:
0x0001a2a8 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0001a2ac lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v0 != 0) {
0x0001a2b0 bnez v0, 0x1a330 | goto label_3;
| }
0x0001a2b4 lw v0, 0x70(sp) | v0 = *(var_70h);
| label_2:
0x0001a2b8 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0001a2bc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v0 != 0) {
0x0001a2c0 bnez v0, 0x1a2e8 | goto label_1;
| }
0x0001a2c4 addiu v0, zero, 1 | v0 = 1;
| do {
| label_0:
0x0001a2c8 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x0001a2cc lw v1, (s1) | v1 = *(s1);
0x0001a2d0 lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (a0 != v1) {
0x0001a2d4 bne a0, v1, 0x1a4c4 | goto label_10;
| }
0x0001a2d8 lw s1, 0x88(sp) | s1 = *(var_88h);
0x0001a2dc lw s0, 0x84(sp) | s0 = *(var_84h);
0x0001a2e0 addiu sp, sp, 0x90 |
0x0001a2e4 jr ra | return v0;
| label_1:
0x0001a2e8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a2ec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a2f0 lw a0, (v0) | a0 = *(v0);
0x0001a2f4 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0001a2f8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001a2fc sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0001a300 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.focusd_imaged_proxy_sc_sample */
0x0001a304 addiu a3, a3, -0x1ba0 | a3 += -0x1ba0;
| /* str.zoom_value */
0x0001a308 addiu v0, v0, -0x2244 | v0 += -0x2244;
0x0001a30c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._6__s_could_not_get__s___zd_n */
0x0001a310 addiu a2, a2, -0x2288 | a2 += -0x2288;
0x0001a314 addiu a1, zero, 1 | a1 = 1;
0x0001a318 jalr t9 | t9 ();
0x0001a31c move v0, zero | v0 = 0;
0x0001a320 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a324 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x0001a328 addiu v0, zero, 1 | v0 = 1;
0x0001a32c b 0x1a2c8 |
| } while (1);
| label_3:
0x0001a330 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a334 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a338 lw a0, (v0) | a0 = *(v0);
0x0001a33c lw v0, 0x40(sp) | v0 = *(var_40h);
0x0001a340 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001a344 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0001a348 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.focusd_imaged_proxy_sc_sample */
0x0001a34c addiu a3, a3, -0x1ba0 | a3 += -0x1ba0;
| /* str.zoom_state */
0x0001a350 addiu v0, v0, -0x2250 | v0 += -0x2250;
0x0001a354 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._6__s_could_not_get__s___zd_n */
0x0001a358 addiu a2, a2, -0x2288 | a2 += -0x2288;
0x0001a35c addiu a1, zero, 1 | a1 = 1;
0x0001a360 jalr t9 | t9 ();
0x0001a364 addiu v0, zero, 2 | v0 = 2;
0x0001a368 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a36c sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x0001a370 lw v0, 0x70(sp) | v0 = *(var_70h);
0x0001a374 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
| if (v0 == 0) {
0x0001a378 beql v0, zero, 0x1a2c8 | goto label_0;
| }
0x0001a37c addiu v0, zero, 1 | v0 = 1;
0x0001a380 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001a384 b 0x1a2e8 | goto label_1;
| label_5:
0x0001a388 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a38c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a390 lw a0, (v0) | a0 = *(v0);
0x0001a394 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0001a398 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001a39c sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0001a3a0 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.focusd_imaged_proxy_sc_sample */
0x0001a3a4 addiu a3, a3, -0x1ba0 | a3 += -0x1ba0;
| /* str.focus_value */
0x0001a3a8 addiu v0, v0, -0x225c | v0 += -0x225c;
0x0001a3ac sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._6__s_could_not_get__s___zd_n */
0x0001a3b0 addiu a2, a2, -0x2288 | a2 += -0x2288;
0x0001a3b4 addiu a1, zero, 1 | a1 = 1;
0x0001a3b8 jalr t9 | t9 ();
0x0001a3bc move v0, zero | v0 = 0;
0x0001a3c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a3c4 sw v0, 0x20(s0) | *((s0 + 8)) = v0;
0x0001a3c8 lw v0, 0x60(sp) | v0 = *(var_60h);
0x0001a3cc slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
| if (v0 == 0) {
0x0001a3d0 beql v0, zero, 0x1a2b8 | goto label_2;
| }
0x0001a3d4 lw v0, 0x70(sp) | v0 = *(var_70h);
0x0001a3d8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001a3dc b 0x1a330 | goto label_3;
| label_7:
0x0001a3e0 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a3e4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a3e8 lw a0, (v1) | a0 = *(v1);
0x0001a3ec sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0001a3f0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0001a3f4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str.focus_state */
0x0001a3f8 addiu v0, v0, -0x2268 | v0 += -0x2268;
0x0001a3fc sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.focusd_imaged_proxy_sc_sample */
0x0001a400 addiu a3, a3, -0x1ba0 | a3 += -0x1ba0;
| /* str._6__s_could_not_get__s___zd_n */
0x0001a404 addiu a2, a2, -0x2288 | a2 += -0x2288;
0x0001a408 addiu a1, zero, 1 | a1 = 1;
0x0001a40c jalr t9 | t9 ();
0x0001a410 addiu v0, zero, 2 | v0 = 2;
0x0001a414 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a418 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x0001a41c lw v0, 0x50(sp) | v0 = *(var_50h);
0x0001a420 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
| if (v0 == 0) {
0x0001a424 beql v0, zero, 0x1a2a8 | goto label_4;
| }
0x0001a428 lw v0, 0x60(sp) | v0 = *(var_60h);
0x0001a42c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001a430 b 0x1a388 | goto label_5;
| label_9:
0x0001a434 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001a438 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a43c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a440 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001a444 lw a0, (v0) | a0 = *(v0);
| /* str.focusd_imaged_proxy_sc_sample */
0x0001a448 addiu a3, a3, -0x1ba0 | a3 += -0x1ba0;
| /* str._6__s_could_not_get_time_n */
0x0001a44c addiu a2, a2, -0x22a4 | a2 += -0x22a4;
0x0001a450 addiu a1, zero, 1 | a1 = 1;
0x0001a454 jalr t9 | t9 ();
0x0001a458 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0001a45c slti v1, v0, 4 | v1 = (v0 < 4) ? 1 : 0;
0x0001a460 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 == 0) {
0x0001a464 beqz v1, 0x1a294 | goto label_6;
| }
0x0001a468 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001a46c b 0x1a3e0 | goto label_7;
| label_8:
0x0001a470 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001a474 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0001a478 lw s0, (v0) | s0 = *(v0);
0x0001a47c jalr t9 | t9 ();
0x0001a480 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a484 lw t9, -0x772c(gp) | t9 = sym.imp.strerror;
0x0001a488 lw a0, (v0) | a0 = *(v0);
0x0001a48c jalr t9 | t9 ();
0x0001a490 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a494 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001a498 addiu a1, zero, 1 | a1 = 1;
0x0001a49c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001a4a0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a4a4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str.focusd_imaged_proxy_sc_sample */
0x0001a4a8 addiu a3, a3, -0x1ba0 | a3 += -0x1ba0;
| /* str._4__s_could_not_sample_SC:__s_n */
0x0001a4ac addiu a2, a2, -0x22c4 | a2 += -0x22c4;
0x0001a4b0 move a0, s0 | a0 = s0;
0x0001a4b4 jalr t9 | t9 ();
0x0001a4b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001a4bc move v0, zero | v0 = 0;
0x0001a4c0 b 0x1a2c8 | goto label_0;
| label_10:
0x0001a4c4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001a4c8 jalr t9 | t9 ();
0x0001a4cc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1d1a4 */
| #include <stdint.h>
|
; (fcn) fcn.0001d1a4 () | void fcn_0001d1a4 () {
0x0001d1a4 lw a0, 0x74(sp) | a0 = *(arg_74h);
0x0001d1a8 jalr t9 | t9 ();
0x0001d1ac lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d1b0 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d1b4 lw t9, -0x7f44(gp) | t9 = *(gp);
0x0001d1b8 lw a0, 0x78(sp) | a0 = *(arg_78h);
0x0001d1bc move a1, zero | a1 = 0;
0x0001d1c0 jalr t9 | t9 ();
0x0001d1c4 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x0001d1c8 bltz v0, 0x1d4dc | goto label_6;
| }
0x0001d1cc lw t9, -0x7f84(gp) | t9 = *(gp);
0x0001d1d0 lw a1, -0x5cbc(s3) | a1 = *((s3 - 5935));
0x0001d1d4 lw a0, 0x78(sp) | a0 = *(arg_78h);
0x0001d1d8 jalr t9 | t9 ();
0x0001d1dc lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d1e0 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d1e4 lw t9, -0x7f44(gp) | t9 = *(gp);
0x0001d1e8 lw a0, 0x7c(sp) | a0 = *(arg_7ch);
0x0001d1ec move a1, zero | a1 = 0;
0x0001d1f0 jalr t9 | t9 ();
0x0001d1f4 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x0001d1f8 bltz v0, 0x1d4dc | goto label_6;
| }
0x0001d1fc lw t9, -0x7f84(gp) | t9 = *(gp);
0x0001d200 lw a1, -0x5cbc(s3) | a1 = *((s3 - 5935));
0x0001d204 lw a0, 0x7c(sp) | a0 = *(arg_7ch);
0x0001d208 jalr t9 | t9 ();
0x0001d20c lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d210 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d214 lw t9, -0x7f44(gp) | t9 = *(gp);
0x0001d218 lw a0, 0x80(sp) | a0 = *(arg_80h);
0x0001d21c move a1, zero | a1 = 0;
0x0001d220 jalr t9 | t9 ();
0x0001d224 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x0001d228 bltz v0, 0x1d4dc | goto label_6;
| }
0x0001d22c lw t9, -0x7f84(gp) | t9 = *(gp);
0x0001d230 lw a1, -0x5cbc(s3) | a1 = *((s3 - 5935));
0x0001d234 lw a0, 0x80(sp) | a0 = *(arg_80h);
0x0001d238 jalr t9 | t9 ();
0x0001d23c lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d240 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d244 lw t9, -0x7f84(gp) | t9 = *(gp);
0x0001d248 move a1, s6 | a1 = s6;
0x0001d24c move a0, s2 | a0 = s2;
0x0001d250 jalr t9 | t9 ();
0x0001d254 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d258 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d25c lw t9, -0x7f40(gp) | t9 = *(gp);
0x0001d260 lw a1, 0x70(sp) | a1 = *(arg_70h);
0x0001d264 move a0, s5 | a0 = s5;
0x0001d268 jalr t9 | t9 ();
0x0001d26c lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 != 0) {
0x0001d270 bnez v0, 0x1d4dc | goto label_6;
| }
0x0001d274 lw t9, -0x7f40(gp) | t9 = *(gp);
0x0001d278 lw a1, 0x74(sp) | a1 = *(arg_74h);
0x0001d27c move a0, s6 | a0 = s6;
0x0001d280 jalr t9 | t9 ();
0x0001d284 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 != 0) {
0x0001d288 bnez v0, 0x1d4dc | goto label_6;
| }
0x0001d28c lw t9, -0x7f84(gp) | t9 = *(gp);
0x0001d290 lw a1, 0x78(sp) | a1 = *(arg_78h);
0x0001d294 lw a0, 0x70(sp) | a0 = *(arg_70h);
0x0001d298 jalr t9 | t9 ();
0x0001d29c lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d2a0 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d2a4 lw t9, -0x7f44(gp) | t9 = *(gp);
0x0001d2a8 lw a1, 0x7c(sp) | a1 = *(arg_7ch);
0x0001d2ac lw a0, 0x74(sp) | a0 = *(arg_74h);
0x0001d2b0 jalr t9 | t9 ();
0x0001d2b4 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 < 0) {
0x0001d2b8 bltz v0, 0x1d4dc | goto label_6;
| }
0x0001d2bc lw t9, -0x7f40(gp) | t9 = *(gp);
0x0001d2c0 lw a1, 0x80(sp) | a1 = *(arg_80h);
0x0001d2c4 lw a0, 0x78(sp) | a0 = *(arg_78h);
0x0001d2c8 jalr t9 | t9 ();
0x0001d2cc lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 != 0) {
0x0001d2d0 bnez v0, 0x1d4dc | goto label_6;
| }
0x0001d2d4 lw t9, -0x7f40(gp) | t9 = *(gp);
0x0001d2d8 lw a1, 0x7c(sp) | a1 = *(arg_7ch);
0x0001d2dc move a0, s2 | a0 = s2;
0x0001d2e0 jalr t9 | t9 ();
0x0001d2e4 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 != 0) {
0x0001d2e8 bnez v0, 0x1d4dc | goto label_6;
| }
0x0001d2ec lw t9, -0x7f84(gp) | t9 = *(gp);
0x0001d2f0 lw a1, 0x80(sp) | a1 = *(arg_80h);
0x0001d2f4 move a0, s5 | a0 = s5;
0x0001d2f8 jalr t9 | t9 ();
0x0001d2fc lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 > 0) {
0x0001d300 bgtz v0, 0x1d4dc | goto label_6;
| }
0x0001d304 lw v0, 0x70(sp) | v0 = *(arg_70h);
0x0001d308 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0001d30c sw v0, 0x1c(s7) | *((s7 + 7)) = v0;
0x0001d310 lw v0, 0x74(sp) | v0 = *(arg_74h);
0x0001d314 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x0001d318 sw v0, 0x20(s7) | *((s7 + 8)) = v0;
0x0001d31c lw v0, 0x78(sp) | v0 = *(arg_78h);
0x0001d320 lw a1, -0x15c0(s3) | a1 = *((s3 - 1392));
0x0001d324 sw v0, 0x24(s7) | *((s7 + 9)) = v0;
0x0001d328 lw v0, 0x7c(sp) | v0 = *(arg_7ch);
0x0001d32c move a0, s2 | a0 = s2;
0x0001d330 sw v0, 0x28(s7) | *((s7 + 10)) = v0;
0x0001d334 lw v0, 0x80(sp) | v0 = *(arg_80h);
0x0001d338 sw s2, 0x10(s7) | *((s7 + 4)) = s2;
0x0001d33c sw s5, 0x14(s7) | *((s7 + 5)) = s5;
0x0001d340 sw s6, 0x18(s7) | *((s7 + 6)) = s6;
0x0001d344 sw v0, 0x2c(s7) | *((s7 + 11)) = v0;
0x0001d348 jalr t9 | t9 ();
0x0001d34c lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d350 lw t9, -0x7f38(gp) | t9 = *(gp);
0x0001d354 move a0, v0 | a0 = v0;
0x0001d358 jalr t9 | t9 ();
0x0001d35c slti v1, v0, 0x4001 | v1 = (v0 < 0x4001) ? 1 : 0;
0x0001d360 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v1 == 0) {
0x0001d364 beqz v1, 0x1d720 | goto label_7;
| }
0x0001d368 slti s2, v0, 0 | s2 = (v0 < 0) ? 1 : 0;
| if (s2 == 0) {
0x0001d36c movn v0, zero, s2 | v0 = 0;
| }
0x0001d370 move s2, v0 | s2 = v0;
| label_5:
0x0001d374 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x0001d378 lw a1, -0x15c0(s3) | a1 = *((s3 - 1392));
0x0001d37c move a0, s5 | a0 = s5;
0x0001d380 jalr t9 | t9 ();
0x0001d384 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d388 lw t9, -0x7f38(gp) | t9 = *(gp);
0x0001d38c move a0, v0 | a0 = v0;
0x0001d390 jalr t9 | t9 ();
0x0001d394 slti v1, v0, 0x4001 | v1 = (v0 < 0x4001) ? 1 : 0;
0x0001d398 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v1 == 0) {
0x0001d39c beqz v1, 0x1d718 | goto label_8;
| }
0x0001d3a0 slti s5, v0, 0 | s5 = (v0 < 0) ? 1 : 0;
| if (s5 == 0) {
0x0001d3a4 movn v0, zero, s5 | v0 = 0;
| }
0x0001d3a8 move s5, v0 | s5 = v0;
| label_4:
0x0001d3ac lw t9, -0x7f3c(gp) | t9 = *(gp);
0x0001d3b0 lw a1, -0x15c0(s3) | a1 = *((s3 - 1392));
0x0001d3b4 lw a0, 0x74(sp) | a0 = *(arg_74h);
0x0001d3b8 jalr t9 | t9 ();
0x0001d3bc lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d3c0 lw t9, -0x7f38(gp) | t9 = *(gp);
0x0001d3c4 move a0, v0 | a0 = v0;
0x0001d3c8 jalr t9 | t9 ();
0x0001d3cc slti v1, v0, 0x4001 | v1 = (v0 < 0x4001) ? 1 : 0;
0x0001d3d0 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v1 == 0) {
0x0001d3d4 beqz v1, 0x1d710 | goto label_9;
| }
0x0001d3d8 slti s6, v0, 0 | s6 = (v0 < 0) ? 1 : 0;
| if (s6 == 0) {
0x0001d3dc movn v0, zero, s6 | v0 = 0;
| }
0x0001d3e0 move s6, v0 | s6 = v0;
| label_3:
0x0001d3e4 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x0001d3e8 lw a1, -0x15c0(s3) | a1 = *((s3 - 1392));
0x0001d3ec lw a0, 0x78(sp) | a0 = *(arg_78h);
0x0001d3f0 jalr t9 | t9 ();
0x0001d3f4 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d3f8 lw t9, -0x7f38(gp) | t9 = *(gp);
0x0001d3fc move a0, v0 | a0 = v0;
0x0001d400 jalr t9 | t9 ();
0x0001d404 slti v1, v0, 0x4001 | v1 = (v0 < 0x4001) ? 1 : 0;
0x0001d408 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v1 == 0) {
0x0001d40c beqz v1, 0x1d708 | goto label_10;
| }
0x0001d410 slti v1, v0, 0 | v1 = (v0 < 0) ? 1 : 0;
| if (v1 == 0) {
0x0001d414 movn v0, zero, v1 | v0 = 0;
| }
| label_2:
0x0001d418 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001d41c lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0001d420 move a2, s5 | a2 = s5;
0x0001d424 move a1, s2 | a1 = s2;
0x0001d428 sw v0, 0x10(sp) | *(arg_10h) = v0;
0x0001d42c move a3, s6 | a3 = s6;
| /* str._x:_x__x:_x */
0x0001d430 addiu a0, a0, -0x1904 | a0 += -0x1904;
0x0001d434 jalr t9 | t9 ();
0x0001d438 lw s2, 8(s7) | s2 = *((s7 + 2));
0x0001d43c lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d440 move s5, v0 | s5 = v0;
| if (s2 == 0) {
0x0001d444 beqz s2, 0x1d588 | goto label_11;
| }
0x0001d448 addiu s0, sp, 0x30 | s0 = sp + 0x30;
| label_0:
0x0001d44c lw t9, -0x7900(gp) | t9 = sym.imp.g_variant_new_string;
0x0001d450 move a0, s5 | a0 = s5;
0x0001d454 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0001d458 sw zero, 0x30(sp) | *(arg_30h) = 0;
0x0001d45c jalr t9 | t9 ();
0x0001d460 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d464 move a3, v0 | a3 = v0;
| /* str.CustomFocusArea0 */
0x0001d468 addiu a2, s3, -0x1c7c | a2 = s3 + -0x1c7c;
0x0001d46c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001d470 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001d474 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.com.axis.ImageControlStream */
0x0001d478 addiu a1, a1, -0x293c | a1 += -0x293c;
| /* str._ssv_ */
0x0001d47c addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0001d480 jalr t9 | t9 ();
0x0001d484 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d488 addiu v1, zero, 0x1388 | v1 = 0x1388;
0x0001d48c sw s0, 0x18(sp) | *(arg_18h) = s0;
0x0001d490 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001d494 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001d498 sw zero, 0x14(sp) | *(arg_14h) = 0;
0x0001d49c sw v1, 0x10(sp) | *(arg_10h) = v1;
0x0001d4a0 move a3, zero | a3 = 0;
0x0001d4a4 move a2, v0 | a2 = v0;
| /* esilref: 'Set' */
0x0001d4a8 addiu a1, a1, -0x217c | a1 += -0x217c;
0x0001d4ac move a0, s2 | a0 = s2;
0x0001d4b0 jalr t9 | t9 ();
0x0001d4b4 lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 == 0) {
0x0001d4b8 beqz v0, 0x1d520 | goto label_12;
| }
0x0001d4bc lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001d4c0 move a0, v0 | a0 = v0;
0x0001d4c4 jalr t9 | t9 ();
0x0001d4c8 lw gp, 0x20(sp) | gp = *(arg_20h);
| do {
0x0001d4cc lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001d4d0 move a0, s5 | a0 = s5;
0x0001d4d4 jalr t9 | t9 ();
0x0001d4d8 lw gp, 0x20(sp) | gp = *(arg_20h);
| label_6:
0x0001d4dc lw v1, 0x34(sp) | v1 = *(arg_34h);
0x0001d4e0 lw v0, (s1) | v0 = *(s1);
0x0001d4e4 lw ra, 0x5c(sp) | ra = *(arg_5ch);
| if (v1 == v0) {
0x0001d4e8 bne v1, v0, 0x1d514 |
0x0001d4ec lw s7, 0x58(sp) | s7 = *(arg_58h);
0x0001d4f0 lw s6, 0x54(sp) | s6 = *(arg_54h);
0x0001d4f4 lw s5, 0x50(sp) | s5 = *(arg_50h);
0x0001d4f8 lw s4, 0x4c(sp) | s4 = *(arg_4ch);
0x0001d4fc lw s3, 0x48(sp) | s3 = *(arg_48h);
0x0001d500 lw s2, 0x44(sp) | s2 = *(arg_44h);
0x0001d504 lw s1, 0x40(sp) | s1 = *(arg_40h);
0x0001d508 lw s0, 0x3c(sp) | s0 = *(arg_3ch);
0x0001d50c addiu sp, sp, 0x60 |
0x0001d510 jr ra | return v0;
| }
0x0001d514 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001d518 jalr t9 | t9 ();
0x0001d51c nop |
| label_12:
0x0001d520 lw s2, -0x7990(gp) | s2 = *((gp - 7780));
0x0001d524 lw v0, 0x30(sp) | v0 = *(arg_30h);
0x0001d528 lw a0, (s2) | a0 = *(s2);
| if (v0 == 0) {
0x0001d52c beqz v0, 0x1d680 | goto label_13;
| }
0x0001d530 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001d534 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001d538 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001d53c addiu a3, s3, -0x1c7c | a3 = s3 + -0x1c7c;
| /* str._3_Failed_to_set_datacache_measure_ImageControl_property__s:__s_n */
0x0001d540 addiu a2, a2, -0x1854 | a2 += -0x1854;
0x0001d544 addiu a1, zero, 1 | a1 = 1;
0x0001d548 sw v0, 0x10(sp) | *(arg_10h) = v0;
0x0001d54c jalr t9 | t9 ();
0x0001d550 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d554 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001d558 move a0, s0 | a0 = s0;
0x0001d55c jalr t9 | t9 ();
0x0001d560 lw gp, 0x20(sp) | gp = *(arg_20h);
| label_1:
0x0001d564 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001d568 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001d56c lw a3, 0x18(s4) | a3 = *((s4 + 6));
0x0001d570 lw a0, (s2) | a0 = *(s2);
| /* str._4_Failed_to_set_focus_window_on_datacache_source__u._n */
0x0001d574 addiu a2, a2, -0x17d0 | a2 += -0x17d0;
0x0001d578 addiu a1, zero, 1 | a1 = 1;
0x0001d57c jalr t9 | t9 ();
0x0001d580 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d584 b 0x1d4cc |
| } while (1);
| label_11:
0x0001d588 lw t9, -0x7f54(gp) | t9 = sym.focusd_measure_focus_get_type;
0x0001d58c sw zero, 0x30(sp) | *(arg_30h) = 0;
0x0001d590 bal 0x1c79c | sym_focusd_measure_focus_get_type ();
0x0001d594 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d598 move a1, v0 | a1 = v0;
0x0001d59c lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0001d5a0 move a0, s4 | a0 = s4;
0x0001d5a4 jalr t9 | t9 ();
0x0001d5a8 move t9, s0 | t9 = s0;
0x0001d5ac move s2, v0 | s2 = v0;
0x0001d5b0 bal 0x1cf18 | sym_focusd_measure_focus_datacache_get_type ();
0x0001d5b4 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d5b8 move a1, v0 | a1 = v0;
0x0001d5bc move a0, s4 | a0 = s4;
0x0001d5c0 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001d5c4 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x0001d5c8 jalr t9 | t9 ();
0x0001d5cc lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d5d0 lw a1, 0x18(s2) | a1 = *((s2 + 6));
0x0001d5d4 move s2, v0 | s2 = v0;
0x0001d5d8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001d5dc lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* str._com_axis_ImageControl__u_0 */
0x0001d5e0 addiu a0, a0, -0x18f8 | a0 += -0x18f8;
0x0001d5e4 jalr t9 | t9 ();
0x0001d5e8 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d5ec move s3, v0 | s3 = v0;
0x0001d5f0 move a2, zero | a2 = 0;
0x0001d5f4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0001d5f8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001d5fc lw t9, -0x7ba4(gp) | t9 = sym.imp.g_dbus_proxy_new_for_bus_sync;
| /* str.org.freedesktop.DBus.Properties */
0x0001d600 addiu v0, v0, -0x2918 | v0 += -0x2918;
| /* str.com.axis.ImageControl */
0x0001d604 addiu a3, a3, -0x28dc | a3 += -0x28dc;
0x0001d608 addiu a1, zero, 5 | a1 = 5;
0x0001d60c addiu a0, zero, 1 | a0 = 1;
0x0001d610 sw s0, 0x1c(sp) | *(arg_1ch) = s0;
0x0001d614 sw zero, 0x18(sp) | *(arg_18h) = 0;
0x0001d618 sw v0, 0x14(sp) | *(arg_14h) = v0;
0x0001d61c sw s3, 0x10(sp) | *(arg_10h) = s3;
0x0001d620 jalr t9 | t9 ();
0x0001d624 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d628 sw v0, 8(s2) | *((s2 + 2)) = v0;
0x0001d62c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001d630 move a0, s3 | a0 = s3;
0x0001d634 jalr t9 | t9 ();
0x0001d638 lw v0, 0x30(sp) | v0 = *(arg_30h);
0x0001d63c lw gp, 0x20(sp) | gp = *(arg_20h);
| if (v0 == 0) {
0x0001d640 bnez v0, 0x1d6cc |
0x0001d644 lw a2, -0x7f50(gp) | a2 = *(gp);
0x0001d648 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001d64c lw a0, 8(s2) | a0 = *((s2 + 2));
0x0001d650 lw t9, -0x7a78(gp) | t9 = sym.imp.g_signal_connect_data;
0x0001d654 sw zero, 0x14(sp) | *(arg_14h) = 0;
0x0001d658 sw zero, 0x10(sp) | *(arg_10h) = 0;
0x0001d65c move a3, s4 | a3 = s4;
0x0001d660 addiu a2, a2, -0x28d8 | a2 += -0x28d8;
| /* str.notify::g_name_owner */
0x0001d664 addiu a1, a1, -0x54d8 | a1 += -0x54d8;
0x0001d668 jalr t9 | t9 ();
0x0001d66c lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d670 sw v0, 0xc(s2) | *((s2 + 3)) = v0;
| if (v0 != 0) {
0x0001d674 beqz v0, 0x1d6a0 |
0x0001d678 lw s2, 8(s7) | s2 = *((s7 + 2));
0x0001d67c b 0x1d44c | goto label_0;
| label_13:
0x0001d680 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001d684 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001d688 addiu a3, s3, -0x1c7c | a3 = s3 + -0x1c7c;
| /* str._3_Failed_to_set_datacache_measure_ImageControl_property__s_n */
0x0001d68c addiu a2, a2, -0x1810 | a2 += -aav.0x00001810;
0x0001d690 addiu a1, zero, 1 | a1 = 1;
0x0001d694 jalr t9 | t9 ();
0x0001d698 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d69c b 0x1d564 | goto label_1;
| }
0x0001d6a0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001d6a4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001d6a8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001d6ac lw a3, (v0) | a3 = *(v0);
0x0001d6b0 addiu a2, zero, 0x42 | a2 = 0x42;
0x0001d6b4 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_connect_datacache_measure_ImageControl_g_name_owner._n */
0x0001d6b8 addiu a0, a0, -0x1898 | a0 += -0x1898;
0x0001d6bc jalr t9 | t9 ();
0x0001d6c0 lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d6c4 lw s2, 8(s7) | s2 = *((s7 + 2));
0x0001d6c8 b 0x1d44c | goto label_0;
| }
0x0001d6cc lw a3, 8(v0) | a3 = *((v0 + 2));
0x0001d6d0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001d6d4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001d6d8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001d6dc lw a0, (v0) | a0 = *(v0);
| /* str._3_Failed_to_setup_datacache_focus_measure_ImageControl_proxy:__s_n */
0x0001d6e0 addiu a2, a2, -0x18dc | a2 += -aav.0x000018dc;
0x0001d6e4 addiu a1, zero, 1 | a1 = 1;
0x0001d6e8 jalr t9 | t9 ();
0x0001d6ec lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d6f0 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001d6f4 move a0, s0 | a0 = s0;
0x0001d6f8 jalr t9 | t9 ();
0x0001d6fc lw gp, 0x20(sp) | gp = *(arg_20h);
0x0001d700 lw s2, 8(s7) | s2 = *((s7 + 2));
0x0001d704 b 0x1d44c | goto label_0;
| label_10:
0x0001d708 addiu v0, zero, 0x4000 | v0 = 0x4000;
0x0001d70c b 0x1d418 | goto label_2;
| label_9:
0x0001d710 addiu s6, zero, 0x4000 | s6 = 0x4000;
0x0001d714 b 0x1d3e4 | goto label_3;
| label_8:
0x0001d718 addiu s5, zero, 0x4000 | s5 = 0x4000;
0x0001d71c b 0x1d3ac | goto label_4;
| label_7:
0x0001d720 addiu s2, zero, 0x4000 | s2 = 0x4000;
0x0001d724 b 0x1d374 | goto label_5;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x21128 */
| #include <stdint.h>
|
; (fcn) fcn.00021128 () | void fcn_00021128 () {
| label_9:
0x00021128 lui gp, 5 |
0x0002112c addiu gp, gp, -0x25a8 |
0x00021130 addu gp, gp, t9 | gp += t9;
0x00021134 addiu sp, sp, -0x40 |
0x00021138 lw t9, -0x7f24(gp) | t9 = sym.focusd_motor_get_type;
0x0002113c sw s3, 0x34(sp) | *(var_34h) = s3;
0x00021140 lw s3, -0x7a04(gp) | s3 = *((gp - 7809));
0x00021144 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00021148 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0002114c lw v0, (s3) | v0 = *(s3);
0x00021150 sw s4, 0x38(sp) | *(var_38h) = s4;
0x00021154 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00021158 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0002115c sw s0, 0x28(sp) | *(var_28h) = s0;
0x00021160 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00021164 lw s4, -0x7f5c(gp) | s4 = sym.focusd_motor_image2d_get_type;
0x00021168 move s1, a0 | s1 = a0;
0x0002116c bal 0x1f07c | sym_focusd_motor_get_type ();
0x00021170 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021174 move a1, v0 | a1 = v0;
0x00021178 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0002117c move a0, s1 | a0 = s1;
0x00021180 jalr t9 | t9 ();
0x00021184 move t9, s4 | t9 = s4;
0x00021188 move s2, v0 | s2 = v0;
0x0002118c bal 0x20cac | sym_focusd_motor_image2d_get_type ();
0x00021190 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021194 move a1, v0 | a1 = v0;
0x00021198 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0002119c move a0, s1 | a0 = s1;
0x000211a0 jalr t9 | t9 ();
0x000211a4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000211a8 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x000211ac addiu a2, sp, 0x20 | a2 = sp + 0x20;
0x000211b0 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x000211b4 lw t9, 8(a0) | t9 = *((a0 + 2));
0x000211b8 lw a0, 8(v0) | a0 = *((v0 + 2));
0x000211bc addiu v0, zero, -1 | v0 = -1;
0x000211c0 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000211c4 lw v0, -0x9e8(v1) | v0 = *((v1 - 634));
0x000211c8 addiu a1, sp, 0x1c | a1 = sp + 0x1c;
0x000211cc sw v0, 0x20(sp) | *(var_20h) = v0;
0x000211d0 jalr t9 | t9 ();
0x000211d4 lw a3, 0x1c(sp) | a3 = *(var_1ch);
0x000211d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a3 != 0) {
0x000211dc bnez a3, 0x212e4 | goto label_11;
| }
0x000211e0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000211e4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000211e8 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x000211ec lw a1, -0x15c0(v0) | a1 = *((v0 - 1392));
0x000211f0 move a0, s0 | a0 = s0;
0x000211f4 jalr t9 | t9 ();
0x000211f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000211fc move a0, s0 | a0 = s0;
0x00021200 move a1, zero | a1 = 0;
0x00021204 lw t9, -0x7f84(gp) | t9 = *(gp);
0x00021208 move s0, v0 | s0 = v0;
0x0002120c jalr t9 | t9 ();
0x00021210 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 <= 0) {
0x00021214 blez v0, 0x212c8 | goto label_12;
| }
0x00021218 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002121c lw a1, -0x9f0(v0) | a1 = *((v0 - 636));
| do {
0x00021220 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00021224 move a0, s0 | a0 = s0;
0x00021228 jalr t9 | t9 ();
0x0002122c lw gp, 0x10(sp) | gp = *(var_10h);
0x00021230 lw t9, -0x7f38(gp) | t9 = *(gp);
0x00021234 move a0, v0 | a0 = v0;
0x00021238 jalr t9 | t9 ();
0x0002123c move t9, s4 | t9 = s4;
0x00021240 move s0, v0 | s0 = v0;
0x00021244 bal 0x20cac | sym_focusd_motor_image2d_get_type ();
0x00021248 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002124c move a0, s1 | a0 = s1;
0x00021250 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x00021254 move a1, v0 | a1 = v0;
0x00021258 jalr t9 | t9 ();
0x0002125c lw a0, 0x20(s1) | a0 = *((s1 + 8));
0x00021260 addiu v1, zero, 1 | v1 = 1;
0x00021264 lw gp, 0x10(sp) | gp = *(var_10h);
0x00021268 lw v0, 0xc(v0) | v0 = *((v0 + 3));
| if (a0 == v1) {
0x0002126c beq a0, v1, 0x212dc | goto label_13;
| }
0x00021270 subu v0, s0, v0 | __asm ("subu v0, s0, v0");
| label_1:
0x00021274 sw v0, 0x34(s2) | *((s2 + 13)) = v0;
| if (v0 < 0) {
0x00021278 bltz v0, 0x212d4 | goto label_14;
| }
0x0002127c lw v1, 0x1c(s2) | v1 = *((s2 + 7));
0x00021280 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x00021284 addiu v0, zero, 3 | v0 = 3;
| if (v0 == 0) {
0x00021288 bnez v0, 0x21298 |
0x0002128c addiu v1, v1, -1 | v1 += -1;
0x00021290 sw v1, 0x34(s2) | *((s2 + 13)) = v1;
| label_0:
0x00021294 addiu v0, zero, 3 | v0 = 3;
| }
0x00021298 sw v0, 0x30(s2) | *((s2 + 12)) = v0;
| label_2:
0x0002129c lw v1, 0x24(sp) | v1 = *(var_24h);
0x000212a0 lw v0, (s3) | v0 = *(s3);
0x000212a4 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (v1 != v0) {
0x000212a8 bne v1, v0, 0x21310 | goto label_15;
| }
0x000212ac lw s4, 0x38(sp) | s4 = *(var_38h);
0x000212b0 lw s3, 0x34(sp) | s3 = *(var_34h);
0x000212b4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x000212b8 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x000212bc lw s0, 0x28(sp) | s0 = *(var_28h);
0x000212c0 addiu sp, sp, 0x40 |
0x000212c4 jr ra | return v0;
| label_12:
0x000212c8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000212cc lw a1, -0x9ec(v0) | a1 = *((v0 - 635));
0x000212d0 b 0x21220 |
| } while (1);
| label_14:
0x000212d4 sw zero, 0x34(s2) | *((s2 + 13)) = 0;
0x000212d8 b 0x21294 | goto label_0;
| label_13:
0x000212dc subu v0, v0, s0 | __asm ("subu v0, v0, s0");
0x000212e0 b 0x21274 | goto label_1;
| label_11:
0x000212e4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000212e8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000212ec lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000212f0 lw a0, (v0) | a0 = *(v0);
0x000212f4 addiu v0, zero, 1 | v0 = 1;
0x000212f8 sw v0, 0x30(s2) | *((s2 + 12)) = v0;
| /* str._6_update_position:_motor_status_not_idle___d___motor_state_now_NOT_SYNCHRONIZED_n */
0x000212fc addiu a2, a2, -0xf80 | a2 += -0xf80;
0x00021300 addiu a1, zero, 1 | a1 = 1;
0x00021304 jalr t9 | t9 ();
0x00021308 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002130c b 0x2129c | goto label_2;
| label_15:
0x00021310 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00021314 jalr t9 | t9 ();
0x00021318 nop |
0x0002131c lui gp, 5 |
0x00021320 addiu gp, gp, -0x279c |
0x00021324 addu gp, gp, t9 | gp += t9;
0x00021328 addiu sp, sp, -0x38 |
0x0002132c sw s3, 0x24(sp) | *(var_24h_2) = s3;
0x00021330 lw s3, -0x7f5c(gp) | s3 = sym.focusd_motor_image2d_get_type;
0x00021334 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00021338 sw s6, 0x30(sp) | *(var_30h_2) = s6;
0x0002133c sw s5, 0x2c(sp) | *(var_2ch_2) = s5;
0x00021340 sw s4, 0x28(sp) | *(var_28h_2) = s4;
0x00021344 sw s2, 0x20(sp) | *(var_20h_2) = s2;
0x00021348 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002134c sw ra, 0x34(sp) | *(var_34h_2) = ra;
0x00021350 sw s1, 0x1c(sp) | *(var_1ch_2) = s1;
0x00021354 move s0, a0 | s0 = a0;
0x00021358 move t9, s3 | t9 = s3;
0x0002135c move s4, a1 | s4 = a1;
0x00021360 move s6, a2 | s6 = a2;
0x00021364 move s5, a3 | s5 = a3;
0x00021368 lw s2, 0x48(sp) | s2 = *(var_10h);
0x0002136c bal 0x20cac | sym_focusd_motor_image2d_get_type ();
0x00021370 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s0 == 0) {
0x00021374 beqz s0, 0x214d0 | goto label_16;
| }
0x00021378 lw v1, (s0) | v1 = *(s0);
0x0002137c lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x00021380 beqz v1, 0x21390 |
0x00021384 lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x00021388 beql v1, v0, 0x213a8 | goto label_17;
| }
0x0002138c move t9, s3 | t9 = s3;
| }
0x00021390 move a1, v0 | a1 = v0;
0x00021394 move a0, s0 | a0 = s0;
0x00021398 jalr t9 | t9 ();
0x0002139c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x000213a0 beqz v0, 0x214d0 | goto label_16;
| }
0x000213a4 move t9, s3 | t9 = s3;
| label_17:
0x000213a8 bal 0x20cac | sym_focusd_motor_image2d_get_type ();
0x000213ac nop |
0x000213b0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000213b4 move a1, v0 | a1 = v0;
0x000213b8 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x000213bc move a0, s0 | a0 = s0;
0x000213c0 jalr t9 | t9 ();
0x000213c4 move s1, v0 | s1 = v0;
0x000213c8 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s5 != 0) {
0x000213cc bnez s5, 0x21558 | goto label_18;
| }
| label_4:
0x000213d0 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x000213d4 move a0, s1 | a0 = s1;
0x000213d8 jalr t9 | t9 ();
0x000213dc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000213e0 sw zero, 0x14(s1) | *((s1 + 5)) = 0;
0x000213e4 lw t9, -0x7f64(gp) | t9 = sym.focusd_motor_invalidate_position_file;
0x000213e8 move a0, s0 | a0 = s0;
0x000213ec bal 0x20610 | sym_focusd_motor_invalidate_position_file ();
0x000213f0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000213f4 addiu v0, zero, 1 | v0 = 1;
| if (s2 != 0) {
0x000213f8 bnez s2, 0x2151c | goto label_19;
| }
| if (s6 == v0) {
0x000213fc beql s6, v0, 0x215e8 | goto label_20;
| }
0x00021400 lw v0, -0x7fd8(gp) | v0 = *(gp);
| label_3:
0x00021404 lw t9, -0x7f38(gp) | t9 = *(gp);
0x00021408 move a0, s4 | a0 = s4;
0x0002140c jalr t9 | t9 ();
0x00021410 move s2, v0 | s2 = v0;
| label_5:
0x00021414 lw v0, 0x14(s0) | v0 = *((s0 + 5));
| if (s2 >= 0) {
0x00021418 bltz s2, 0x21428 |
0x0002141c sltu v1, s2, v0 | v1 = (s2 < v0) ? 1 : 0;
| if (v1 == 0) {
0x00021420 beql v1, zero, 0x21640 | goto label_21;
| }
0x00021424 lw v0, 0x18(s0) | v0 = *((s0 + 6));
| }
0x00021428 move s2, v0 | s2 = v0;
| label_8:
0x0002142c move t9, s3 | t9 = s3;
0x00021430 bal 0x20cac | sym_focusd_motor_image2d_get_type ();
0x00021434 nop |
0x00021438 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0002143c move a1, v0 | a1 = v0;
0x00021440 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x00021444 move a0, s0 | a0 = s0;
0x00021448 jalr t9 | t9 ();
0x0002144c lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x00021450 addiu v1, zero, 1 | v1 = 1;
0x00021454 lw a1, 0xc(v0) | a1 = *((v0 + 3));
| if (a0 == v1) {
0x00021458 beq a0, v1, 0x21638 | goto label_22;
| }
0x0002145c addu a1, s2, a1 | a1 = s2 + a1;
| label_7:
0x00021460 lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x00021464 lw a0, 8(s1) | a0 = *((s1 + 2));
0x00021468 lw t9, (v0) | t9 = *(v0);
0x0002146c addiu v0, zero, 4 | v0 = 4;
0x00021470 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
0x00021474 jalr t9 | t9 ();
0x00021478 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x0002147c beqz v0, 0x21620 | goto label_23;
| }
0x00021480 lw v0, 0x14(s1) | v0 = *((s1 + 5));
0x00021484 addiu v1, zero, 3 | v1 = 3;
0x00021488 sw v1, 0x30(s0) | *((s0 + 12)) = v1;
| if (v0 != 0) {
0x0002148c bnez v0, 0x21680 | goto label_24;
| }
0x00021490 sw s2, 0x34(s0) | *((s0 + 13)) = s2;
0x00021494 addiu s0, zero, 1 | s0 = 1;
| do {
| label_6:
0x00021498 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0002149c move a0, s1 | a0 = s1;
0x000214a0 jalr t9 | t9 ();
0x000214a4 lw ra, 0x34(sp) | ra = *(var_34h_2);
0x000214a8 move v0, s0 | v0 = s0;
0x000214ac lw s6, 0x30(sp) | s6 = *(var_30h_2);
0x000214b0 lw s5, 0x2c(sp) | s5 = *(var_2ch_2);
0x000214b4 lw s4, 0x28(sp) | s4 = *(var_28h_2);
0x000214b8 lw s3, 0x24(sp) | s3 = *(var_24h_2);
0x000214bc lw s2, 0x20(sp) | s2 = *(var_20h_2);
0x000214c0 lw s1, 0x1c(sp) | s1 = *(var_1ch_2);
0x000214c4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000214c8 addiu sp, sp, 0x38 |
0x000214cc jr ra | return v0;
| label_16:
0x000214d0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000214d4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000214d8 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* esilref: 'FOCUSD_IS_MOTOR_IMAGE2D (self)' */
0x000214dc addiu a2, a2, -0xfa0 | a2 += -0xfa0;
| /* str.focusd_motor_image2d_move */
0x000214e0 addiu a1, a1, -0xa5c | a1 += -0xa5c;
0x000214e4 move a0, zero | a0 = 0;
0x000214e8 jalr t9 | t9 ();
0x000214ec lw ra, 0x34(sp) | ra = *(var_34h_2);
0x000214f0 move s0, zero | s0 = 0;
0x000214f4 move v0, s0 | v0 = s0;
0x000214f8 lw s6, 0x30(sp) | s6 = *(var_30h_2);
0x000214fc lw s5, 0x2c(sp) | s5 = *(var_2ch_2);
0x00021500 lw s4, 0x28(sp) | s4 = *(var_28h_2);
0x00021504 lw s3, 0x24(sp) | s3 = *(var_24h_2);
0x00021508 lw s2, 0x20(sp) | s2 = *(var_20h_2);
0x0002150c lw s1, 0x1c(sp) | s1 = *(var_1ch_2);
0x00021510 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00021514 addiu sp, sp, 0x38 |
0x00021518 jr ra | return v0;
| label_19:
0x0002151c move s0, zero | s0 = 0;
0x00021520 bnel s2, v0, 0x21498 |
| } while (s2 == v0);
0x00021524 lw a0, 0x34(s0) | a0 = *((s0 + 13));
| if (s6 != s2) {
0x00021528 beq s6, s2, 0x21584 |
0x0002152c lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00021530 jalr t9 | t9 ();
0x00021534 nop |
0x00021538 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0002153c move a0, s4 | a0 = s4;
0x00021540 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00021544 move a1, v0 | a1 = v0;
0x00021548 jalr t9 | t9 ();
0x0002154c move s4, v0 | s4 = v0;
0x00021550 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00021554 b 0x21404 | goto label_3;
| label_18:
0x00021558 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0002155c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00021560 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00021564 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00021568 lw a0, (v0) | a0 = *(v0);
| /* esilref: 'focusd_motor_image2d_move' */
0x0002156c addiu a3, a3, -0xa78 | a3 += -0xa78;
| /* str._3__s_called_non_blocking__not_supported_n */
0x00021570 addiu a2, a2, -0xf2c | a2 += -0xf2c;
0x00021574 addiu a1, zero, 1 | a1 = 1;
0x00021578 jalr t9 | t9 ();
0x0002157c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00021580 b 0x213d0 | goto label_4;
| }
0x00021584 lw t9, -0x7f20(gp) | t9 = sym.focusd_motor_position_encoding_convert_steps_to_fraction;
0x00021588 move a1, a0 | a1 = a0;
0x0002158c move a0, s0 | a0 = s0;
0x00021590 bal 0x20834 | sym_focusd_motor_position_encoding_convert_steps_to_fraction ();
0x00021594 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00021598 move a0, s4 | a0 = s4;
0x0002159c move s5, v1 | s5 = v1;
0x000215a0 lw t9, -0x7f90(gp) | t9 = *(gp);
0x000215a4 move s4, v0 | s4 = v0;
0x000215a8 jalr t9 | t9 ();
0x000215ac lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000215b0 move a2, s4 | a2 = s4;
0x000215b4 move a3, s5 | a3 = s5;
0x000215b8 lw t9, -0x7f1c(gp) | t9 = *(gp);
0x000215bc move a0, v0 | a0 = v0;
0x000215c0 move a1, v1 | a1 = v1;
0x000215c4 jalr t9 | t9 ();
0x000215c8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000215cc move a0, v0 | a0 = v0;
0x000215d0 lw t9, -0x7f18(gp) | t9 = *(gp);
0x000215d4 move a1, v1 | a1 = v1;
0x000215d8 jalr t9 | t9 ();
0x000215dc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000215e0 move s4, v0 | s4 = v0;
0x000215e4 lw v0, -0x7fd8(gp) | v0 = *(gp);
| label_20:
0x000215e8 lw t9, -0x7f84(gp) | t9 = *(gp);
0x000215ec move a0, s4 | a0 = s4;
0x000215f0 lw a1, -0x5cbc(v0) | a1 = *((v0 - 5935));
0x000215f4 jalr t9 | t9 ();
0x000215f8 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 <= 0) {
0x000215fc blez v0, 0x2164c | goto label_25;
| }
0x00021600 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00021604 lw a2, -0xfb0(v0) | a2 = *((v0 - 1004));
0x00021608 lw a3, -0xfac(v0) | a3 = *((v0 - 1003));
| do {
| label_10:
0x0002160c lw t9, -0x7f14(gp) | t9 = sym.focusd_motor_position_encoding_convert_fraction_to_steps;
0x00021610 move a0, s0 | a0 = s0;
0x00021614 bal 0x20690 | sym_focusd_motor_position_encoding_convert_fraction_to_steps ();
0x00021618 move s2, v0 | s2 = v0;
0x0002161c b 0x21414 | goto label_5;
| label_23:
0x00021620 addiu v0, zero, 1 | v0 = 1;
0x00021624 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
0x00021628 addiu v0, zero, -1 | v0 = -1;
0x0002162c sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x00021630 move s0, zero | s0 = 0;
0x00021634 b 0x21498 | goto label_6;
| label_22:
0x00021638 subu a1, a1, s2 | __asm ("subu a1, a1, s2");
0x0002163c b 0x21460 | goto label_7;
| label_21:
0x00021640 sltu v1, v0, s2 | v1 = (v0 < s2) ? 1 : 0;
| if (v1 == 0) {
0x00021644 movn s2, v0, v1 | s2 = v0;
| }
0x00021648 b 0x2142c | goto label_8;
| label_25:
0x0002164c lw t9, -0x7f44(gp) | t9 = *(gp);
0x00021650 move a1, zero | a1 = 0;
0x00021654 move a0, s4 | a0 = s4;
0x00021658 jalr t9 | t9 ();
0x0002165c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 < 0) {
0x00021660 bltz v0, 0x216bc | goto label_26;
| }
0x00021664 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00021668 move a0, s4 | a0 = s4;
0x0002166c jalr t9 | t9 ();
0x00021670 move a2, v0 | a2 = v0;
0x00021674 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00021678 move a3, v1 | a3 = v1;
0x0002167c b 0x2160c |
| } while (1);
| label_24:
0x00021680 lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.00021128 */
0x00021684 addiu t9, t9, 0x1128 | t9 += 0x1128;
0x00021688 move a0, s0 | a0 = s0;
0x0002168c bal 0x21128 | fcn_00021128 ();
| goto label_9;
0x00021690 lw v0, 0x30(s0) | v0 = *((s0 + 12));
0x00021694 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00021698 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x0002169c bnez v0, 0x216ac |
0x000216a0 sw zero, 0x14(s1) | *((s1 + 5)) = 0;
0x000216a4 addiu s0, zero, 1 | s0 = 1;
0x000216a8 b 0x21498 | goto label_6;
| }
0x000216ac addiu v0, zero, -1 | v0 = -1;
0x000216b0 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x000216b4 move s0, zero | s0 = 0;
0x000216b8 b 0x21498 | goto label_6;
| label_26:
0x000216bc move a2, zero | a2 = 0;
0x000216c0 move a3, zero | a3 = 0;
0x000216c4 b 0x2160c | goto label_10;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x23774 */
| #include <stdint.h>
|
; (fcn) fcn.00023774 () | void fcn_00023774 () {
| label_1:
0x00023774 lui gp, 5 |
0x00023778 addiu gp, gp, -0x4bf4 |
0x0002377c addu gp, gp, t9 | gp += t9;
0x00023780 addiu sp, sp, -0x48 |
0x00023784 lw v0, 0x54(a0) | v0 = *((a0 + 21));
0x00023788 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0002378c lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00023790 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00023794 sw ra, 0x44(sp) | *(var_44h) = ra;
0x00023798 lw v1, (s1) | v1 = *(s1);
0x0002379c sw s4, 0x40(sp) | *(var_40h) = s4;
0x000237a0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x000237a4 sw s2, 0x38(sp) | *(var_38h) = s2;
0x000237a8 sw s0, 0x30(sp) | *(var_30h) = s0;
0x000237ac sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x000237b0 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x000237b4 beqz v0, 0x2385c | goto label_12;
| }
0x000237b8 lw a0, 0x94(a0) | a0 = *((a0 + 37));
0x000237bc lw s2, -0x7fd8(gp) | s2 = *(gp);
| if (a0 == 0) {
0x000237c0 beqz a0, 0x238b0 | goto label_13;
| }
| label_0:
0x000237c4 lw t9, -0x7bc4(gp) | t9 = *(gp);
0x000237c8 jalr t9 | t9 ();
0x000237cc nop |
0x000237d0 move s2, v0 | s2 = v0;
0x000237d4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000237d8 beqz v0, 0x23888 | goto label_14;
| }
0x000237dc lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000237e0 lw v1, 0x9c(s0) | v1 = *((s0 + 39));
0x000237e4 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x000237e8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000237ec lw a1, 0x80(s0) | a1 = *((s0 + 32));
0x000237f0 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.com.axis.Optics.Motorized */
0x000237f4 addiu v0, v0, -0x4f2c | v0 += -0x4f2c;
0x000237f8 sw v1, 0x10(sp) | *(var_10h_3) = v1;
| /* str.com.axis.Optics */
0x000237fc addiu a3, a3, -0x4e20 | a3 += -0x4e20;
0x00023800 move a2, zero | a2 = 0;
| /* str._sbsss_ */
0x00023804 addiu a0, a0, -0x6b0 | a0 += -0x6b0;
0x00023808 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0002380c lw s3, 0x94(s0) | s3 = *((s0 + 37));
0x00023810 jalr t9 | t9 ();
0x00023814 lw gp, 0x20(sp) | gp = *(var_20h);
0x00023818 move a2, v0 | a2 = v0;
0x0002381c addiu v0, zero, -1 | v0 = -1;
0x00023820 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023824 lw t9, -0x7958(gp) | t9 = sym.imp.g_dbus_proxy_call;
0x00023828 move a3, zero | a3 = 0;
| /* str.Register */
0x0002382c addiu a1, a1, -0x6a8 | a1 += -0x6a8;
0x00023830 move a0, s3 | a0 = s3;
0x00023834 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00023838 sw s0, 0x1c(sp) | *(var_1ch_3) = s0;
0x0002383c sw zero, 0x18(sp) | *(var_18h_3) = 0;
0x00023840 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x00023844 jalr t9 | t9 ();
0x00023848 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002384c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00023850 move a0, s2 | a0 = s2;
0x00023854 jalr t9 | t9 ();
0x00023858 lw gp, 0x20(sp) | gp = *(var_20h);
| do {
| label_12:
0x0002385c lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00023860 lw v0, (s1) | v0 = *(s1);
0x00023864 lw ra, 0x44(sp) | ra = *(var_44h);
| if (v1 != v0) {
0x00023868 bne v1, v0, 0x23a14 | goto label_15;
| }
0x0002386c lw s4, 0x40(sp) | s4 = *(var_40h);
0x00023870 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00023874 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00023878 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0002387c lw s0, 0x30(sp) | s0 = *(var_30h);
0x00023880 addiu sp, sp, 0x48 |
0x00023884 jr ra | return v1;
| label_14:
0x00023888 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0002388c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00023890 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00023894 lw a3, (v0) | a3 = *(v0);
0x00023898 addiu a2, zero, 0x2e | a2 = 0x2e;
0x0002389c addiu a1, zero, 1 | a1 = 1;
| /* str._6_Can_not_register_at_powerd:_powerd_is_down_n */
0x000238a0 addiu a0, a0, -0x6e0 | a0 += -0x6e0;
0x000238a4 jalr t9 | t9 ();
0x000238a8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000238ac b 0x2385c |
| } while (1);
| label_13:
0x000238b0 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x000238b4 lw t9, -0x7ba4(gp) | t9 = sym.imp.g_dbus_proxy_new_for_bus_sync;
| /* str.com.axis.PowerControl.Consumer */
0x000238b8 addiu s2, s2, -0x7d0 | s2 += -aav.0x000007d0;
| /* str._com_axis_PowerControl_Consumer */
0x000238bc addiu s3, s3, -0x7b0 | s3 += -0x7b0;
0x000238c0 addiu s4, sp, 0x28 | s4 = sp + 0x28;
0x000238c4 sw s4, 0x1c(sp) | *(var_1ch_3) = s4;
0x000238c8 sw zero, 0x18(sp) | *(var_18h_3) = 0;
0x000238cc sw s2, 0x14(sp) | *(var_14h_2) = s2;
0x000238d0 sw s3, 0x10(sp) | *(var_10h_3) = s3;
0x000238d4 move a3, s2 | a3 = s2;
0x000238d8 move a2, zero | a2 = 0;
0x000238dc addiu a1, zero, 4 | a1 = 4;
0x000238e0 addiu a0, zero, 1 | a0 = 1;
0x000238e4 sw zero, 0x28(sp) | *(var_28h) = 0;
0x000238e8 jalr t9 | t9 ();
0x000238ec lw gp, 0x20(sp) | gp = *(var_20h);
0x000238f0 sw v0, 0x94(s0) | *((s0 + 37)) = v0;
| if (v0 != 0) {
0x000238f4 beqz v0, 0x23960 |
0x000238f8 lw a2, -0x7f50(gp) | a2 = *(gp);
0x000238fc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023900 lw t9, -0x7a78(gp) | t9 = sym.imp.g_signal_connect_data;
0x00023904 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x00023908 sw zero, 0x10(sp) | *(var_10h_3) = 0;
0x0002390c move a3, s0 | a3 = s0;
0x00023910 addiu a2, a2, 0x43d4 | a2 += 0x43d4;
| /* str.notify::g_name_owner */
0x00023914 addiu a1, a1, -0x54d8 | a1 += -0x54d8;
0x00023918 move a0, v0 | a0 = v0;
0x0002391c jalr t9 | t9 ();
0x00023920 lw gp, 0x20(sp) | gp = *(var_20h);
0x00023924 sw v0, 0x98(s0) | *((s0 + 38)) = v0;
| if (v0 != 0) {
0x00023928 beqz v0, 0x23934 |
0x0002392c lw a0, 0x94(s0) | a0 = *((s0 + 37));
0x00023930 b 0x237c4 | goto label_0;
| }
0x00023934 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00023938 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002393c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00023940 lw a3, (v0) | a3 = *(v0);
| /* str._3_Failed_to_connect_to_g_name_owner_n */
0x00023944 addiu a0, a0, -0x54c0 | a0 += -0x54c0;
0x00023948 addiu a2, zero, 0x25 | a2 = 0x25;
0x0002394c addiu a1, zero, 1 | a1 = 1;
0x00023950 jalr t9 | t9 ();
0x00023954 lw gp, 0x20(sp) | gp = *(var_20h);
0x00023958 lw a0, 0x94(s0) | a0 = *((s0 + 37));
0x0002395c b 0x237c4 | goto label_0;
| }
0x00023960 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00023964 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00023968 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002396c beqz v0, 0x239ec | goto label_16;
| }
0x00023970 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00023974 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00023978 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002397c move a3, s2 | a3 = s2;
| /* str._3_Could_not_setup_proxy_for__s__s__s:__s_n */
0x00023980 addiu a2, a2, -0x790 | a2 += -0x790;
0x00023984 addiu a1, zero, 1 | a1 = 1;
0x00023988 sw v0, 0x18(sp) | *(var_18h_3) = v0;
0x0002398c sw s2, 0x14(sp) | *(var_14h_2) = s2;
0x00023990 sw s3, 0x10(sp) | *(var_10h_3) = s3;
0x00023994 jalr t9 | t9 ();
0x00023998 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002399c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x000239a0 move a0, s4 | a0 = s4;
0x000239a4 jalr t9 | t9 ();
0x000239a8 lw gp, 0x20(sp) | gp = *(var_20h);
| do {
0x000239ac lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000239b0 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x000239b4 lw a2, -0x7fd8(gp) | a2 = *(gp);
| /* str.focusd_optics_motorized_setup_powerd_proxy */
0x000239b8 addiu v0, v0, 0x31c | v0 += 0x31c;
0x000239bc lw t9, -0x7bdc(gp) | t9 = sym.imp.g_log;
0x000239c0 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x000239c4 addiu v0, zero, 0x718 | v0 = 0x718;
0x000239c8 move a0, zero | a0 = 0;
0x000239cc sw v0, 0x10(sp) | *(var_10h_3) = v0;
| /* str.focusd_optics_motorized.c */
0x000239d0 addiu a3, a3, -0x72c | a3 += -0x72c;
| /* str.file__s:_line__d___s_:_should_not_be_reached */
0x000239d4 addiu a2, a2, -0x710 | a2 += -aav.0x00000710;
0x000239d8 addiu a1, zero, 8 | a1 = 8;
0x000239dc jalr t9 | t9 ();
0x000239e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000239e4 lw a0, 0x94(s0) | a0 = *((s0 + 37));
0x000239e8 b 0x237c4 | goto label_0;
| label_16:
0x000239ec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000239f0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000239f4 sw s2, 0x14(sp) | *(var_14h_2) = s2;
0x000239f8 sw s3, 0x10(sp) | *(var_10h_3) = s3;
0x000239fc move a3, s2 | a3 = s2;
| /* str._3_Could_not_setup_proxy_for__s__s__s_n */
0x00023a00 addiu a2, a2, -0x75c | a2 += -0x75c;
0x00023a04 addiu a1, zero, 1 | a1 = 1;
0x00023a08 jalr t9 | t9 ();
0x00023a0c lw gp, 0x20(sp) | gp = *(var_20h);
0x00023a10 b 0x239ac |
| } while (1);
| label_15:
0x00023a14 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00023a18 jalr t9 | t9 ();
0x00023a1c nop |
0x00023a20 lui gp, 5 |
0x00023a24 addiu gp, gp, -0x4ea0 |
0x00023a28 addu gp, gp, t9 | gp += t9;
0x00023a2c addiu sp, sp, -0x88 |
0x00023a30 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x00023a34 lw s3, -0x7a04(gp) | s3 = *((gp - 7809));
0x00023a38 sw s0, 0x60(sp) | *(var_60h) = s0;
0x00023a3c move s0, a0 | s0 = a0;
0x00023a40 lw v0, (s3) | v0 = *(s3);
0x00023a44 lw a0, 0x18(a0) | a0 = *((a0 + 6));
0x00023a48 sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x00023a4c sw ra, 0x84(sp) | *(var_84h) = ra;
0x00023a50 sw fp, 0x80(sp) | *(var_80h) = fp;
0x00023a54 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x00023a58 sw s6, 0x78(sp) | *(var_78h) = s6;
0x00023a5c sw s5, 0x74(sp) | *(var_74h) = s5;
0x00023a60 sw s4, 0x70(sp) | *(var_70h) = s4;
0x00023a64 sw s2, 0x68(sp) | *(var_68h) = s2;
0x00023a68 sw s1, 0x64(sp) | *(var_64h) = s1;
0x00023a6c sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x00023a70 sw zero, 0x3c(sp) | *(var_3ch_2) = 0;
| if (a0 == 0) {
0x00023a74 beqz a0, 0x2411c | goto label_17;
| }
0x00023a78 lw t9, -0x7f20(gp) | t9 = sym.focusd_motor_position_encoding_convert_steps_to_fraction;
0x00023a7c move s1, a1 | s1 = a1;
0x00023a80 addiu a1, zero, 1 | a1 = 1;
0x00023a84 bal 0x20834 | sym_focusd_motor_position_encoding_convert_steps_to_fraction ();
0x00023a88 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023a8c move a1, v1 | a1 = v1;
0x00023a90 move a0, v0 | a0 = v0;
0x00023a94 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00023a98 addiu s4, sp, 0x30 | s4 = sp + 0x30;
0x00023a9c jalr t9 | t9 ();
0x00023aa0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023aa4 move a3, zero | a3 = 0;
0x00023aa8 addiu a2, zero, 1 | a2 = 1;
0x00023aac lw a0, -0x7f50(gp) | a0 = *(gp);
0x00023ab0 lw t9, -0x76f8(gp) | t9 = sym.imp.g_thread_pool_new;
0x00023ab4 move a1, s0 | a1 = s0;
0x00023ab8 addiu a0, a0, 0x6608 | a0 += 0x6608;
0x00023abc sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x00023ac0 move s6, v0 | s6 = v0;
0x00023ac4 jalr t9 | t9 ();
0x00023ac8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023acc sw v0, 0x84(s0) | *((s0 + 33)) = v0;
0x00023ad0 move a2, s4 | a2 = s4;
0x00023ad4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023ad8 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
| /* str.default_position */
0x00023adc addiu a1, a1, -0x762c | a1 += -0x762c;
0x00023ae0 move a0, s1 | a0 = s1;
0x00023ae4 bal 0x3c188 | sym_settings_get_int ();
0x00023ae8 addiu s7, s0, 0x28 | s7 = s0 + 0x28;
0x00023aec lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00023af0 beqz v0, 0x24214 | goto label_18;
| }
0x00023af4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023af8 lw v0, 0x30(sp) | v0 = *(var_30h_2);
0x00023afc lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
0x00023b00 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
| /* str.calibrate_target_pos */
0x00023b04 addiu a1, a1, -0x64c | a1 += -0x64c;
0x00023b08 move a0, s1 | a0 = s1;
0x00023b0c bal 0x3c4dc | sym_settings_get_string ();
0x00023b10 move s2, v0 | s2 = v0;
0x00023b14 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023b18 beqz v0, 0x23b6c |
0x00023b1c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023b20 lw t9, -0x7bc0(gp) | t9 = sym.imp.strcmp;
| /* esilref: 'default' */
0x00023b24 addiu a1, a1, -0x13c0 | a1 += -0x13c0;
0x00023b28 move a0, v0 | a0 = v0;
0x00023b2c jalr t9 | t9 ();
0x00023b30 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00023b34 beqz v0, 0x240a8 | goto label_19;
| }
0x00023b38 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023b3c lw t9, -0x7bc0(gp) | t9 = sym.imp.strcmp;
| /* str.prev */
0x00023b40 addiu a1, a1, -0x634 | a1 += -aav.0x00000634;
0x00023b44 move a0, s2 | a0 = s2;
0x00023b48 jalr t9 | t9 ();
0x00023b4c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023b50 bnez v0, 0x24178 | goto label_20;
| }
0x00023b54 addiu v0, zero, 1 | v0 = 1;
0x00023b58 sw v0, 0x50(s0) | *((s0 + 20)) = v0;
| label_3:
0x00023b5c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00023b60 move a0, s2 | a0 = s2;
0x00023b64 jalr t9 | t9 ();
0x00023b68 lw gp, 0x20(sp) | gp = *(var_20h_2);
| }
0x00023b6c lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00023b70 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x00023b74 lw t9, -0x7d20(gp) | t9 = sym.settings_get_string_from_list;
0x00023b78 lw a2, 0x10(v0) | a2 = *((v0 + 4));
| /* str.name */
0x00023b7c addiu a1, s5, -0x69c | a1 = s5 + -0x69c;
0x00023b80 move a0, s1 | a0 = s1;
0x00023b84 bal 0x3c4f8 | sym_settings_get_string_from_list ();
0x00023b88 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023b8c lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x00023b90 move a0, s1 | a0 = s1;
0x00023b94 lw fp, -0x7fd8(gp) | fp = *(gp);
0x00023b98 lw t9, -0x7d20(gp) | t9 = sym.settings_get_string_from_list;
0x00023b9c lw a2, 0x10(v1) | a2 = *((v1 + 4));
| /* str.object_path */
0x00023ba0 addiu a1, fp, -0x694 | a1 = fp + -0x694;
0x00023ba4 sw v0, 0x80(s0) | *((s0 + 32)) = v0;
0x00023ba8 bal 0x3c4f8 | sym_settings_get_string_from_list ();
0x00023bac lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023bb0 sw v0, 0x9c(s0) | *((s0 + 39)) = v0;
0x00023bb4 addiu a2, s0, 0xa0 | a2 = s0 + 0xa0;
0x00023bb8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023bbc lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
| /* str.calibrate_at_startup */
0x00023bc0 addiu a1, a1, -0x5ec | a1 += -aav.0x000005ec;
0x00023bc4 move a0, s1 | a0 = s1;
0x00023bc8 bal 0x3be5c | sym_settings_get_boolean ();
0x00023bcc lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00023bd0 bnez v0, 0x23bd8 |
0x00023bd4 sw zero, 0xa0(s0) | *((s0 + 40)) = 0;
| }
0x00023bd8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023bdc lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x00023be0 addiu s2, sp, 0x34 | s2 = sp + 0x34;
0x00023be4 move a2, s2 | a2 = s2;
| /* str.required_power */
0x00023be8 addiu a1, a1, -0x5d4 | a1 += -0x5d4;
0x00023bec move a0, s1 | a0 = s1;
0x00023bf0 bal 0x3c714 | sym_settings_get_float ();
0x00023bf4 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023bf8 bnez v0, 0x23fd0 | goto label_21;
| }
0x00023bfc lw v0, 0x54(s0) | v0 = *((s0 + 21));
0x00023c00 lw v1, 0x80(s0) | v1 = *((s0 + 32));
| if (v0 == 0) {
0x00023c04 beqz v0, 0x24018 | goto label_22;
| }
| do {
0x00023c08 lw v0, 0x9c(s0) | v0 = *((s0 + 39));
| if (v1 == 0) {
0x00023c0c beqz v1, 0x241e4 | goto label_23;
| }
| /* str.object_path */
0x00023c10 addiu s5, fp, -0x694 | s5 = fp + -0x694;
| if (v0 == 0) {
0x00023c14 beqz v0, 0x241e8 | goto label_24;
| }
| label_2:
0x00023c18 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023c1c lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
0x00023c20 addiu s5, sp, 0x38 | s5 = sp + 0x38;
0x00023c24 move a2, s5 | a2 = s5;
| /* str.fan_heater_present */
0x00023c28 addiu a1, a1, -0x544 | a1 += -0x544;
0x00023c2c move a0, s1 | a0 = s1;
0x00023c30 bal 0x3be5c | sym_settings_get_boolean ();
0x00023c34 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023c38 beqz v0, 0x23c44 |
0x00023c3c lw v0, 0x38(sp) | v0 = *(var_38h_2);
0x00023c40 sw v0, 0x68(s0) | *((s0 + 26)) = v0;
| }
0x00023c44 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023c48 lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x00023c4c move a2, s2 | a2 = s2;
| /* str.bigstep_fraction */
0x00023c50 addiu a1, a1, -0x530 | a1 += -0x530;
0x00023c54 move a0, s1 | a0 = s1;
0x00023c58 bal 0x3c714 | sym_settings_get_float ();
0x00023c5c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023c60 beqz v0, 0x23c84 |
0x00023c64 lw fp, 0x34(sp) | fp = *(var_34h_2);
0x00023c68 lw t9, -0x7f44(gp) | t9 = *(gp);
0x00023c6c move a1, s6 | a1 = s6;
0x00023c70 move a0, fp | a0 = fp;
0x00023c74 jalr t9 | t9 ();
0x00023c78 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 < 0) {
0x00023c7c bltz v0, 0x24288 | goto label_25;
| }
0x00023c80 sw fp, 0x3c(s0) | *((s0 + 15)) = fp;
| }
0x00023c84 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023c88 lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x00023c8c move a2, s2 | a2 = s2;
| /* str.minstep_fraction */
0x00023c90 addiu a1, a1, -0x4d4 | a1 += -0x4d4;
0x00023c94 move a0, s1 | a0 = s1;
0x00023c98 bal 0x3c714 | sym_settings_get_float ();
0x00023c9c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023ca0 beqz v0, 0x23cc4 |
0x00023ca4 lw s2, 0x34(sp) | s2 = *(var_34h_2);
0x00023ca8 lw t9, -0x7f44(gp) | t9 = *(gp);
0x00023cac move a1, s6 | a1 = s6;
0x00023cb0 move a0, s2 | a0 = s2;
0x00023cb4 jalr t9 | t9 ();
0x00023cb8 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 < 0) {
0x00023cbc bltz v0, 0x242e0 | goto label_26;
| }
0x00023cc0 sw s2, 0x40(s0) | *((s0 + 16)) = s2;
| }
0x00023cc4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023cc8 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
0x00023ccc addiu a2, s0, 0x30 | a2 = s0 + 0x30;
| /* str.minimum_temperature */
0x00023cd0 addiu a1, a1, -0x478 | a1 += -0x478;
0x00023cd4 move a0, s1 | a0 = s1;
0x00023cd8 bal 0x3c188 | sym_settings_get_int ();
0x00023cdc lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00023ce0 beqz v0, 0x240b0 | goto label_27;
| }
0x00023ce4 addiu v0, zero, 1 | v0 = 1;
0x00023ce8 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00023cec addiu s6, zero, 1 | s6 = 1;
| label_4:
0x00023cf0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023cf4 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
0x00023cf8 addiu a2, s0, 0x34 | a2 = s0 + 0x34;
| /* str.maximum_temperature */
0x00023cfc addiu a1, a1, -0x464 | a1 += -0x464;
0x00023d00 move a0, s1 | a0 = s1;
0x00023d04 bal 0x3c188 | sym_settings_get_int ();
0x00023d08 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00023d0c beqz v0, 0x240d8 | goto label_28;
| }
0x00023d10 addiu v0, zero, 1 | v0 = 1;
0x00023d14 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00023d18 addiu fp, zero, 1 | fp = 1;
| label_6:
0x00023d1c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023d20 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
0x00023d24 addiu a2, s0, 0xac | a2 = s0 + 0xac;
| /* str.heating_start_temperature */
0x00023d28 addiu a1, a1, -0x450 | a1 += -0x450;
0x00023d2c move a0, s1 | a0 = s1;
0x00023d30 bal 0x3c188 | sym_settings_get_int ();
0x00023d34 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023d38 addiu a2, s0, 0xb0 | a2 = s0 + 0xb0;
0x00023d3c lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
| if (v0 == 0) {
0x00023d40 beqz v0, 0x240b8 | goto label_29;
| }
0x00023d44 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023d48 addiu s2, zero, 1 | s2 = 1;
0x00023d4c sw s2, 0x24(s0) | *((s0 + 9)) = s2;
| /* str.heating_stop_temperature */
0x00023d50 addiu a1, a1, -0x434 | a1 += -0x434;
0x00023d54 move a0, s1 | a0 = s1;
0x00023d58 bal 0x3c188 | sym_settings_get_int ();
0x00023d5c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023d60 beqz v0, 0x23d78 |
0x00023d64 lw v0, 0xac(s0) | v0 = *((s0 + 43));
0x00023d68 lw v1, 0xb0(s0) | v1 = *((s0 + 44));
0x00023d6c slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00023d70 sw s2, 0x24(s0) | *((s0 + 9)) = s2;
| if (v0 != 0) {
0x00023d74 bnez v0, 0x241a8 | goto label_30;
| }
| }
0x00023d78 addiu s2, zero, 1 | s2 = 1;
| label_5:
0x00023d7c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023d80 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
0x00023d84 move a2, s7 | a2 = s7;
| /* str.startup_temperature */
0x00023d88 addiu a1, a1, -0x3f8 | a1 += -0x3f8;
0x00023d8c move a0, s1 | a0 = s1;
0x00023d90 bal 0x3c188 | sym_settings_get_int ();
0x00023d94 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023d98 beqz v0, 0x23da4 |
0x00023d9c addiu v0, zero, 1 | v0 = 1;
0x00023da0 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| }
0x00023da4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023da8 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
0x00023dac move a2, s4 | a2 = s4;
| /* str.startup_delay */
0x00023db0 addiu a1, a1, -0x3e4 | a1 += -0x3e4;
0x00023db4 move a0, s1 | a0 = s1;
0x00023db8 bal 0x3c188 | sym_settings_get_int ();
0x00023dbc lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023dc0 beqz v0, 0x23ddc |
0x00023dc4 lw v0, 0x30(sp) | v0 = *(var_30h_2);
| if (v0 < 0) {
0x00023dc8 bltzl v0, 0x23de0 | goto label_31;
| }
0x00023dcc lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00023dd0 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x00023dd4 addiu v0, zero, 1 | v0 = 1;
0x00023dd8 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| }
0x00023ddc lw v0, 0x18(s0) | v0 = *((s0 + 6));
| label_31:
0x00023de0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023de4 lw t9, -0x7d20(gp) | t9 = sym.settings_get_string_from_list;
0x00023de8 lw a2, 0x10(v0) | a2 = *((v0 + 4));
| /* str.temperature_limit_sensor */
0x00023dec addiu a1, a1, -0x3d4 | a1 += -0x3d4;
0x00023df0 move a0, s1 | a0 = s1;
0x00023df4 bal 0x3c4f8 | sym_settings_get_string_from_list ();
0x00023df8 move s4, v0 | s4 = v0;
0x00023dfc lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023e00 beqz v0, 0x23e24 |
0x00023e04 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_malloc0;
0x00023e08 addiu v0, zero, 1 | v0 = 1;
0x00023e0c sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00023e10 addiu a0, zero, 8 | a0 = 8;
0x00023e14 jalr t9 | t9 ();
0x00023e18 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023e1c sw v0, 0x38(s0) | *((s0 + 14)) = v0;
0x00023e20 sw s4, (v0) | *(v0) = s4;
| }
| if (s6 == 0) {
0x00023e24 beqz s6, 0x240e0 | goto label_32;
| }
0x00023e28 nop |
0x00023e2c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (fp == 0) {
0x00023e30 beqz fp, 0x2423c | goto label_33;
| }
0x00023e34 lw a1, -0x7fd8(gp) | a1 = *(gp);
| label_7:
0x00023e38 lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
0x00023e3c addiu a2, sp, 0x3c | a2 = sp + 0x3c;
| /* str.temperature_limit_sensor_optional */
0x00023e40 addiu a1, a1, -0x358 | a1 += -aav.0x00000358;
0x00023e44 move a0, s1 | a0 = s1;
0x00023e48 bal 0x3be5c | sym_settings_get_boolean ();
0x00023e4c lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
0x00023e50 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023e54 beqz v0, 0x23e90 |
0x00023e58 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x00023e5c sw zero, 0x48(sp) | *(var_48h) = 0;
| if (v0 == 0) {
0x00023e60 beqz v0, 0x24260 | goto label_34;
| }
0x00023e64 lw a0, (v0) | a0 = *(v0);
0x00023e68 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (a0 == 0) {
0x00023e6c beqz a0, 0x24264 | goto label_35;
| }
0x00023e70 lw t9, -0x7d18(gp) | t9 = *(gp);
0x00023e74 addiu a1, sp, 0x48 | a1 = sp + 0x48;
0x00023e78 bal 0x3eab4 | sym_temperature_ctrld_check_valid_name ();
0x00023e7c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x00023e80 beqz v0, 0x23e90 | goto label_36;
| }
0x00023e84 lw v0, 0x48(sp) | v0 = *(var_48h);
| if (v0 == 0) {
0x00023e88 beql v0, zero, 0x23e90 | goto label_36;
| }
0x00023e8c sw zero, 0x24(s0) | *((s0 + 9)) = 0;
| }
| label_36:
0x00023e90 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00023e94 lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
0x00023e98 move a2, s5 | a2 = s5;
| /* str.no_tampering_block */
0x00023e9c addiu a1, a1, -0x308 | a1 += -0x308;
0x00023ea0 move a0, s1 | a0 = s1;
0x00023ea4 bal 0x3be5c | sym_settings_get_boolean ();
0x00023ea8 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x00023eac beqz v0, 0x23eb8 |
0x00023eb0 lw v0, 0x38(sp) | v0 = *(var_38h_2);
0x00023eb4 sw v0, 0xb4(s0) | *((s0 + 45)) = v0;
| }
0x00023eb8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00023ebc lw t9, -0x7f50(gp) | t9 = *(gp);
0x00023ec0 move a0, s0 | a0 = s0;
0x00023ec4 lw v1, 0x384(v0) | v1 = *(v0);
0x00023ec8 lw v0, 0x380(v0) | v0 = *((v0 + 224));
0x00023ecc sw v1, 0x8c(s0) | *((s0 + 35)) = v1;
| /* fcn.00023774 */
0x00023ed0 addiu t9, t9, 0x3774 | t9 += 0x3774;
0x00023ed4 sw v0, 0x88(s0) | *((s0 + 34)) = v0;
0x00023ed8 bal 0x23774 | fcn_00023774 ();
| goto label_1;
0x00023edc lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (s2 != 0) {
0x00023ee0 beqz s2, 0x23f90 |
0x00023ee4 lw v0, -0x7f50(gp) | v0 = *(gp);
0x00023ee8 lw v1, 0x38(s0) | v1 = *((s0 + 14));
0x00023eec addiu v0, v0, 0x34d4 | v0 += 0x34d4;
0x00023ef0 sw zero, 0x50(sp) | *(var_50h) = 0;
0x00023ef4 sw zero, 0x54(sp) | *(var_54h) = 0;
0x00023ef8 sw zero, 0x58(sp) | *(var_58h) = 0;
0x00023efc sw v0, 0x48(sp) | *(var_48h) = v0;
0x00023f00 sw s0, 0x4c(sp) | *(var_4ch) = s0;
| if (v1 == 0) {
0x00023f04 beqz v1, 0x24170 | goto label_37;
| }
0x00023f08 lw v0, (v1) | v0 = *(v1);
| label_10:
0x00023f0c sw v0, 0x58(sp) | *(var_58h) = v0;
0x00023f10 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00023f14 lw v1, 0xac(s0) | v1 = *((s0 + 43));
0x00023f18 lw t9, -0x7d14(gp) | t9 = sym.temperature_ctrld_register_limit;
0x00023f1c addiu s1, sp, 0x48 | s1 = sp + 0x48;
| /* str.Motor_heating_low */
0x00023f20 addiu v0, v0, -0x2f4 | v0 += -0x2f4;
0x00023f24 addiu a1, sp, 0x40 | a1 = sp + 0x40;
0x00023f28 move a0, s1 | a0 = s1;
0x00023f2c sw v1, 0x54(sp) | *(var_54h) = v1;
0x00023f30 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00023f34 bal 0x3e2a4 | sym_temperature_ctrld_register_limit ();
0x00023f38 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023f3c sw v0, 0xa4(s0) | *((s0 + 41)) = v0;
0x00023f40 lw v1, 0xb0(s0) | v1 = *((s0 + 44));
0x00023f44 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00023f48 lw t9, -0x7d14(gp) | t9 = sym.temperature_ctrld_register_limit;
| /* str.Motor_heating_high */
0x00023f4c addiu v0, v0, -0x2e0 | v0 += -0x2e0;
0x00023f50 sw v1, 0x54(sp) | *(var_54h) = v1;
0x00023f54 addiu a1, sp, 0x44 | a1 = sp + 0x44;
0x00023f58 move a0, s1 | a0 = s1;
0x00023f5c sw v0, 0x50(sp) | *(var_50h) = v0;
0x00023f60 bal 0x3e2a4 | sym_temperature_ctrld_register_limit ();
0x00023f64 lw v1, 0x40(sp) | v1 = *(var_40h_2);
0x00023f68 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023f6c sw v0, 0xa8(s0) | *((s0 + 42)) = v0;
| if (v1 == 0) {
0x00023f70 beqz v1, 0x24158 | goto label_38;
| }
0x00023f74 lw v0, 0x44(sp) | v0 = *(var_44h_2);
0x00023f78 lw a0, 0x18(s0) | a0 = *((s0 + 6));
| if (v0 == 0) {
0x00023f7c beqz v0, 0x24144 | goto label_39;
| }
0x00023f80 lw t9, -0x7d24(gp) | t9 = sym.focusd_motor_enable_heating;
0x00023f84 move a1, zero | a1 = 0;
0x00023f88 bal 0x20a24 | sym_focusd_motor_enable_heating ();
0x00023f8c lw gp, 0x20(sp) | gp = *(var_20h_2);
| }
| label_9:
0x00023f90 move v0, zero | v0 = 0;
| label_8:
0x00023f94 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00023f98 lw v1, (s3) | v1 = *(s3);
0x00023f9c lw ra, 0x84(sp) | ra = *(var_84h);
| if (a0 != v1) {
0x00023fa0 bne a0, v1, 0x24338 | goto label_40;
| }
0x00023fa4 lw fp, 0x80(sp) | fp = *(var_80h);
0x00023fa8 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x00023fac lw s6, 0x78(sp) | s6 = *(var_78h);
0x00023fb0 lw s5, 0x74(sp) | s5 = *(var_74h);
0x00023fb4 lw s4, 0x70(sp) | s4 = *(var_70h);
0x00023fb8 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x00023fbc lw s2, 0x68(sp) | s2 = *(var_68h);
0x00023fc0 lw s1, 0x64(sp) | s1 = *(var_64h);
0x00023fc4 lw s0, 0x60(sp) | s0 = *(var_60h);
0x00023fc8 addiu sp, sp, 0x88 |
0x00023fcc jr ra | return v1;
| label_21:
0x00023fd0 lw a2, 0x34(sp) | a2 = *(var_34h_2);
0x00023fd4 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00023fd8 move a0, a2 | a0 = a2;
0x00023fdc sw a2, 0x2c(sp) | *(var_2ch_2) = a2;
0x00023fe0 jalr t9 | t9 ();
0x00023fe4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00023fe8 lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
0x00023fec sw v1, 0x64(s0) | *((s0 + 25)) = v1;
0x00023ff0 lw t9, -0x7f84(gp) | t9 = *(gp);
0x00023ff4 sw v0, 0x60(s0) | *((s0 + 24)) = v0;
0x00023ff8 move a1, zero | a1 = 0;
0x00023ffc move a0, a2 | a0 = a2;
0x00024000 bal 0x43e20 | fcn_00043e20 ();
0x00024004 slt v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x00024008 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0002400c sw v0, 0x54(s0) | *((s0 + 21)) = v0;
0x00024010 lw v1, 0x80(s0) | v1 = *((s0 + 32));
0x00024014 bnez v0, 0x23c08 |
| } while (v0 != 0);
| label_22:
0x00024018 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v1 != 0) {
0x0002401c beqz v1, 0x2405c |
0x00024020 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00024024 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00024028 lw a0, (v0) | a0 = *(v0);
| /* str.name */
0x0002402c addiu s5, s5, -0x69c | s5 += -0x69c;
0x00024030 move a3, s1 | a3 = s1;
| /* str._4_Configuration__s_sets__s_but_does_not_use_PowerControl_n */
0x00024034 addiu a2, a2, -0x584 | a2 += -0x584;
0x00024038 addiu a1, zero, 1 | a1 = 1;
0x0002403c sw s5, 0x10(sp) | *(var_10h_2) = s5;
0x00024040 jalr t9 | t9 ();
0x00024044 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024048 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0002404c lw a0, 0x80(s0) | a0 = *((s0 + 32));
0x00024050 jalr t9 | t9 ();
0x00024054 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024058 sw zero, 0x80(s0) | *((s0 + 32)) = 0;
| }
0x0002405c lw v0, 0x9c(s0) | v0 = *((s0 + 39));
0x00024060 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v0 == 0) {
0x00024064 beqz v0, 0x23c18 | goto label_2;
| }
0x00024068 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002406c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00024070 lw a0, (v0) | a0 = *(v0);
| /* str.object_path */
0x00024074 addiu fp, fp, -0x694 | fp += -0x694;
0x00024078 move a3, s1 | a3 = s1;
| /* str._4_Configuration__s_sets__s_but_does_not_use_PowerControl_n */
0x0002407c addiu a2, a2, -0x584 | a2 += -0x584;
0x00024080 addiu a1, zero, 1 | a1 = 1;
0x00024084 sw fp, 0x10(sp) | *(var_10h_2) = fp;
0x00024088 jalr t9 | t9 ();
0x0002408c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024090 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00024094 lw a0, 0x9c(s0) | a0 = *((s0 + 39));
0x00024098 jalr t9 | t9 ();
0x0002409c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000240a0 sw zero, 0x9c(s0) | *((s0 + 39)) = 0;
0x000240a4 b 0x23c18 | goto label_2;
| label_19:
0x000240a8 sw zero, 0x50(s0) | *((s0 + 20)) = 0;
0x000240ac b 0x23b5c | goto label_3;
| label_27:
0x000240b0 move s6, zero | s6 = 0;
0x000240b4 b 0x23cf0 | goto label_4;
| label_29:
0x000240b8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000240bc move a0, s1 | a0 = s1;
| /* str.heating_stop_temperature */
0x000240c0 addiu a1, a1, -0x434 | a1 += -0x434;
0x000240c4 bal 0x3c188 | sym_settings_get_int ();
0x000240c8 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 != 0) {
0x000240cc bnez v0, 0x241a0 | goto label_41;
| }
0x000240d0 move s2, zero | s2 = 0;
0x000240d4 b 0x23d7c | goto label_5;
| label_28:
0x000240d8 move fp, zero | fp = 0;
0x000240dc b 0x23d1c | goto label_6;
| label_32:
0x000240e0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (fp != 0) {
0x000240e4 bnez fp, 0x2423c | goto label_33;
| }
0x000240e8 lw v0, 0x24(s0) | v0 = *((s0 + 9));
| if (v0 == 0) {
0x000240ec beql v0, zero, 0x23e38 | goto label_7;
| }
0x000240f0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000240f4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000240f8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000240fc lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00024100 lw a3, (v0) | a3 = *(v0);
0x00024104 addiu a2, zero, 0x27 | a2 = 0x27;
0x00024108 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Bad_temperature_limit_configuration_n */
0x0002410c addiu a0, a0, -0x380 | a0 += -0x380;
0x00024110 jalr t9 | t9 ();
0x00024114 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024118 b 0x241cc | goto label_11;
| label_17:
0x0002411c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00024120 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00024124 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.self__motor */
0x00024128 addiu a2, a2, -0x688 | a2 += -0x688;
| /* str.real_focusd_optics_motorized_setup */
0x0002412c addiu a1, a1, 0x348 | a1 += 0x348;
0x00024130 move a0, zero | a0 = 0;
0x00024134 jalr t9 | t9 ();
0x00024138 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0002413c addiu v0, zero, -1 | v0 = -1;
0x00024140 b 0x23f94 | goto label_8;
| label_39:
0x00024144 lw t9, -0x7d24(gp) | t9 = sym.focusd_motor_enable_heating;
0x00024148 addiu a1, zero, 1 | a1 = 1;
0x0002414c bal 0x20a24 | sym_focusd_motor_enable_heating ();
0x00024150 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024154 b 0x23f90 | goto label_9;
| label_38:
0x00024158 lw t9, -0x7d24(gp) | t9 = sym.focusd_motor_enable_heating;
0x0002415c lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00024160 move a1, zero | a1 = 0;
0x00024164 bal 0x20a24 | sym_focusd_motor_enable_heating ();
0x00024168 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0002416c b 0x23f90 | goto label_9;
| label_37:
0x00024170 move v0, zero | v0 = 0;
0x00024174 b 0x23f0c | goto label_10;
| label_20:
0x00024178 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0002417c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00024180 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00024184 lw a3, (v0) | a3 = *(v0);
0x00024188 addiu a2, zero, 0x3f | a2 = 0x3f;
0x0002418c addiu a1, zero, 1 | a1 = 1;
| /* str._4_Unknown_calibrate_target__use_default_initialization_value__n */
0x00024190 addiu a0, a0, -0x62c | a0 += -0x62c;
0x00024194 jalr t9 | t9 ();
0x00024198 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0002419c b 0x23b5c | goto label_3;
| label_41:
0x000241a0 addiu v0, zero, 1 | v0 = 1;
0x000241a4 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| label_30:
0x000241a8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000241ac lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000241b0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000241b4 lw a3, (v0) | a3 = *(v0);
0x000241b8 addiu a2, zero, 0x1f | a2 = 0x1f;
0x000241bc addiu a1, zero, 1 | a1 = 1;
| /* str._3_Wrong_heating_configuration_n */
0x000241c0 addiu a0, a0, -0x418 | a0 += -0x418;
0x000241c4 jalr t9 | t9 ();
0x000241c8 lw gp, 0x20(sp) | gp = *(var_20h_2);
| do {
| label_11:
0x000241cc lw t9, -0x7d10(gp) | t9 = sym.focusd_temperature_limit_reset;
0x000241d0 move a0, s7 | a0 = s7;
0x000241d4 bal 0x9990 | sym_focusd_temperature_limit_reset ();
0x000241d8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000241dc addiu v0, zero, -1 | v0 = -1;
0x000241e0 b 0x23f94 | goto label_8;
| /* str.name */
| label_23:
0x000241e4 addiu s5, s5, -0x69c | s5 += -0x69c;
| label_24:
0x000241e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000241ec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000241f0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000241f4 lw a0, (v0) | a0 = *(v0);
0x000241f8 move a3, s1 | a3 = s1;
0x000241fc sw s5, 0x10(sp) | *(var_10h_2) = s5;
| /* str._3_Configuration__s_uses_PowerControl_but_does_not_set__s_n */
0x00024200 addiu a2, a2, -0x5c4 | a2 += -0x5c4;
0x00024204 addiu a1, zero, 1 | a1 = 1;
0x00024208 jalr t9 | t9 ();
0x0002420c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024210 b 0x241cc |
| } while (1);
| label_18:
0x00024214 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00024218 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002421c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00024220 lw a3, (v0) | a3 = *(v0);
0x00024224 addiu a2, zero, 0x2d | a2 = 0x2d;
0x00024228 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_default_position_parameter_n */
0x0002422c addiu a0, a0, -0x67c | a0 += -0x67c;
0x00024230 jalr t9 | t9 ();
0x00024234 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024238 b 0x241cc | goto label_11;
| label_33:
0x0002423c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00024240 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00024244 lw a3, (v0) | a3 = *(v0);
0x00024248 addiu a2, zero, 0x37 | a2 = 0x37;
0x0002424c addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_both_lower_and_upper_temperate_limit_n */
0x00024250 addiu a0, a0, -0x3b8 | a0 += -0x3b8;
0x00024254 jalr t9 | t9 ();
0x00024258 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0002425c b 0x241cc | goto label_11;
| label_34:
0x00024260 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| label_35:
0x00024264 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00024268 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002426c lw a3, (v0) | a3 = *(v0);
0x00024270 addiu a2, zero, 0x2a | a2 = 0x2a;
0x00024274 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Missing_temperature_limit_sensor_name._n */
0x00024278 addiu a0, a0, -0x334 | a0 += -0x334;
0x0002427c jalr t9 | t9 ();
0x00024280 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024284 b 0x241cc | goto label_11;
| label_25:
0x00024288 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0002428c lw t9, -0x7f90(gp) | t9 = *(gp);
0x00024290 move a0, s6 | a0 = s6;
0x00024294 lw s0, (v0) | s0 = *(v0);
0x00024298 jalr t9 | t9 ();
0x0002429c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000242a0 move a0, fp | a0 = fp;
0x000242a4 sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x000242a8 lw t9, -0x7f90(gp) | t9 = *(gp);
0x000242ac sw v1, 0x1c(sp) | *(var_1ch_2) = v1;
0x000242b0 jalr t9 | t9 ();
0x000242b4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000242b8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x000242bc sw v1, 0x14(sp) | *(var_14h) = v1;
0x000242c0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000242c4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Specified_bigstep_fraction__f_is_less_than_the_motor_resolution__f_n */
0x000242c8 addiu a2, a2, -0x51c | a2 += -0x51c;
0x000242cc addiu a1, zero, 1 | a1 = 1;
0x000242d0 move a0, s0 | a0 = s0;
0x000242d4 jalr t9 | t9 ();
0x000242d8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000242dc b 0x241cc | goto label_11;
| label_26:
0x000242e0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000242e4 lw t9, -0x7f90(gp) | t9 = *(gp);
0x000242e8 move a0, s6 | a0 = s6;
0x000242ec lw s0, (v0) | s0 = *(v0);
0x000242f0 jalr t9 | t9 ();
0x000242f4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x000242f8 move a0, s2 | a0 = s2;
0x000242fc sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x00024300 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00024304 sw v1, 0x1c(sp) | *(var_1ch_2) = v1;
0x00024308 jalr t9 | t9 ();
0x0002430c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024310 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00024314 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00024318 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002431c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Specified_minstep_fraction__f_is_less_than_the_motor_resolution__f_n */
0x00024320 addiu a2, a2, -0x4c0 | a2 += -0x4c0;
0x00024324 addiu a1, zero, 1 | a1 = 1;
0x00024328 move a0, s0 | a0 = s0;
0x0002432c jalr t9 | t9 ();
0x00024330 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00024334 b 0x241cc | goto label_11;
| label_40:
0x00024338 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002433c jalr t9 | t9 ();
0x00024340 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x27020 */
| #include <stdint.h>
|
; (fcn) fcn.00027020 () | void fcn_00027020 () {
0x00027020 lui gp, 4 |
0x00027024 addiu gp, gp, 0x7b60 |
0x00027028 addu gp, gp, t9 | gp += t9;
0x0002702c lw v0, 0xd4(a0) | v0 = *((a0 + 53));
0x00027030 addiu sp, sp, -0x40 |
0x00027034 lw v1, 0x44(v0) | v1 = *((v0 + 17));
0x00027038 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0002703c sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00027040 sw s7, 0x38(sp) | *(var_38h) = s7;
0x00027044 sw s6, 0x34(sp) | *(var_34h) = s6;
0x00027048 sw s5, 0x30(sp) | *(var_30h) = s5;
0x0002704c sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00027050 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00027054 sw s2, 0x24(sp) | *(var_24h) = s2;
0x00027058 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0002705c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00027060 move s1, a0 | s1 = a0;
| if (v1 == 0) {
0x00027064 beqz v1, 0x27224 | goto label_1;
| }
0x00027068 move s0, a1 | s0 = a1;
0x0002706c move s3, a2 | s3 = a2;
0x00027070 move s2, a3 | s2 = a3;
0x00027074 beqz a1, 0x272b4 |
| while (1) {
0x00027078 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0002707c bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x00027080 nop |
0x00027084 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027088 move a1, v0 | a1 = v0;
0x0002708c lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00027090 move a0, s1 | a0 = s1;
0x00027094 jalr t9 | t9 ();
0x00027098 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002709c lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x000270a0 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x000270a4 bal 0x1fc14 | sym_focusd_motor_length ();
0x000270a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000270ac lw t9, -0x7f9c(gp) | t9 = *(gp);
0x000270b0 move a0, v0 | a0 = v0;
0x000270b4 bal 0x44ab0 | fcn_00044ab0 ();
0x000270b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000270bc move a0, v0 | a0 = v0;
0x000270c0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000270c4 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x000270c8 lw a1, -0x5cbc(v0) | a1 = *((v0 - 5935));
0x000270cc bal 0x443a0 | fcn_000443a0 ();
0x000270d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000270d4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000270d8 lw t9, -0x7f9c(gp) | t9 = *(gp);
0x000270dc move s5, v0 | s5 = v0;
0x000270e0 bal 0x44ab0 | fcn_00044ab0 ();
0x000270e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000270e8 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000270ec lw t9, -0x7f9c(gp) | t9 = *(gp);
0x000270f0 move s0, v0 | s0 = v0;
0x000270f4 bal 0x44ab0 | fcn_00044ab0 ();
0x000270f8 move s4, v0 | s4 = v0;
0x000270fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (s3 == 0) {
0x00027100 bnez s3, 0x27154 |
0x00027104 addiu v0, zero, 1 | v0 = 1;
0x00027108 lw t9, -0x7ecc(gp) | t9 = *(gp);
| if (s2 == v0) {
0x0002710c beq s2, v0, 0x27224 | goto label_1;
| }
0x00027110 move a1, s0 | a1 = s0;
0x00027114 move a0, s4 | a0 = s4;
0x00027118 bal 0x443a0 | fcn_000443a0 ();
0x0002711c lw gp, 0x10(sp) | gp = *(var_10h);
0x00027120 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00027124 move a0, v0 | a0 = v0;
0x00027128 jalr t9 | t9 ();
0x0002712c lw gp, 0x10(sp) | gp = *(var_10h);
0x00027130 lw a0, 0x50(sp) | a0 = *(arg_50h);
0x00027134 lw a1, 0x54(sp) | a1 = *(arg_54h);
0x00027138 lw t9, -0x7d68(gp) | t9 = *(gp);
0x0002713c move a2, v0 | a2 = v0;
0x00027140 move a3, v1 | a3 = v1;
0x00027144 bal 0x45520 | fcn_00045520 ();
0x00027148 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002714c sw v0, 0x50(sp) | *(arg_50h) = v0;
0x00027150 sw v1, 0x54(sp) | *(arg_54h) = v1;
| }
0x00027154 addiu v0, zero, 1 | v0 = 1;
| if (s2 == 0) {
0x00027158 beqz s2, 0x272bc | goto label_2;
| }
0x0002715c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (s2 == v0) {
0x00027160 bne s2, v0, 0x27268 |
0x00027164 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x00027168 move a1, s0 | a1 = s0;
0x0002716c move a0, s4 | a0 = s4;
0x00027170 bal 0x443a0 | fcn_000443a0 ();
0x00027174 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027178 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002717c move a0, v0 | a0 = v0;
0x00027180 bal 0x47140 | fcn_00047140 ();
0x00027184 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027188 lw a2, 0x50(sp) | a2 = *(arg_50h);
0x0002718c lw a3, 0x54(sp) | a3 = *(arg_54h);
0x00027190 lw t9, -0x7ec0(gp) | t9 = *(gp);
0x00027194 move a0, v0 | a0 = v0;
0x00027198 move a1, v1 | a1 = v1;
| label_0:
0x0002719c jalr t9 | t9 ();
0x000271a0 nop |
0x000271a4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000271a8 move a0, s5 | a0 = s5;
0x000271ac move s4, v0 | s4 = v0;
0x000271b0 lw t9, -0x7f90(gp) | t9 = *(gp);
0x000271b4 move s5, v1 | s5 = v1;
0x000271b8 bal 0x47140 | fcn_00047140 ();
0x000271bc lw gp, 0x10(sp) | gp = *(var_10h);
0x000271c0 move a0, s4 | a0 = s4;
0x000271c4 move a1, s5 | a1 = s5;
0x000271c8 lw t9, -0x7d68(gp) | t9 = *(gp);
0x000271cc move a2, v0 | a2 = v0;
0x000271d0 move a3, v1 | a3 = v1;
0x000271d4 bal 0x45520 | fcn_00045520 ();
0x000271d8 move s4, v0 | s4 = v0;
0x000271dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000271e0 move s5, v1 | s5 = v1;
| if (s3 == 0) {
0x000271e4 beqz s3, 0x2732c | goto label_3;
| }
0x000271e8 lw v0, 0x58(sp) | v0 = *(arg_58h);
0x000271ec lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000271f0 lw s7, 0x38(sp) | s7 = *(var_38h);
0x000271f4 sw s4, (v0) | *(v0) = s4;
0x000271f8 sw v1, 4(v0) | *((v0 + 1)) = v1;
0x000271fc lw s6, 0x34(sp) | s6 = *(var_34h);
0x00027200 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00027204 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00027208 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0002720c lw s2, 0x24(sp) | s2 = *(var_24h);
0x00027210 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00027214 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00027218 addiu v0, zero, 1 | v0 = 1;
0x0002721c addiu sp, sp, 0x40 |
0x00027220 jr ra | return v0;
| label_1:
0x00027224 lw a0, 0x58(sp) | a0 = *(arg_58h);
0x00027228 lw v0, 0x50(sp) | v0 = *(arg_50h);
0x0002722c lw v1, 0x54(sp) | v1 = *(arg_54h);
0x00027230 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00027234 sw v0, (a0) | *(a0) = v0;
0x00027238 lw s7, 0x38(sp) | s7 = *(var_38h);
0x0002723c lw s6, 0x34(sp) | s6 = *(var_34h);
0x00027240 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00027244 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00027248 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0002724c lw s2, 0x24(sp) | s2 = *(var_24h);
0x00027250 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00027254 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00027258 sw v1, 4(a0) | *((a0 + 1)) = v1;
0x0002725c addiu v0, zero, 1 | v0 = 1;
0x00027260 addiu sp, sp, 0x40 |
0x00027264 jr ra | return v0;
| }
0x00027268 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002726c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00027270 lw a0, (v0) | a0 = *(v0);
0x00027274 move a3, s2 | a3 = s2;
| /* str._3_unknown_movement_reference_type__u_n */
0x00027278 addiu a2, a2, 0x3b4 | a2 += aav.0x000003b4;
0x0002727c addiu a1, zero, 1 | a1 = 1;
0x00027280 jalr t9 | t9 ();
0x00027284 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00027288 lw s7, 0x38(sp) | s7 = *(var_38h);
0x0002728c lw s6, 0x34(sp) | s6 = *(var_34h);
0x00027290 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00027294 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00027298 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0002729c lw s2, 0x24(sp) | s2 = *(var_24h);
0x000272a0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000272a4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000272a8 move v0, zero | v0 = 0;
0x000272ac addiu sp, sp, 0x40 |
0x000272b0 jr ra | return v0;
0x000272b4 addiu s0, v0, 0x11c | s0 = v0 + aav.0x0000011c;
0x000272b8 b 0x27078 |
| }
| label_2:
0x000272bc lw t9, -0x7ecc(gp) | t9 = *(gp);
0x000272c0 move a1, s0 | a1 = s0;
0x000272c4 move a0, s4 | a0 = s4;
0x000272c8 bal 0x443a0 | fcn_000443a0 ();
0x000272cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000272d0 lw t9, -0x7f90(gp) | t9 = *(gp);
0x000272d4 move a0, v0 | a0 = v0;
0x000272d8 bal 0x47140 | fcn_00047140 ();
0x000272dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000272e0 lw a2, 0x50(sp) | a2 = *(arg_50h);
0x000272e4 lw a3, 0x54(sp) | a3 = *(arg_54h);
0x000272e8 lw t9, -0x7ec0(gp) | t9 = *(gp);
0x000272ec move a1, v1 | a1 = v1;
0x000272f0 move a0, v0 | a0 = v0;
0x000272f4 bal 0x46020 | fcn_00046020 ();
0x000272f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000272fc move a0, s0 | a0 = s0;
0x00027300 move s6, v0 | s6 = v0;
0x00027304 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00027308 move s7, v1 | s7 = v1;
0x0002730c bal 0x47140 | fcn_00047140 ();
0x00027310 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027314 move a0, s6 | a0 = s6;
0x00027318 move a1, s7 | a1 = s7;
0x0002731c lw t9, -0x7f1c(gp) | t9 = *(gp);
0x00027320 move a2, v0 | a2 = v0;
0x00027324 move a3, v1 | a3 = v1;
0x00027328 b 0x2719c | goto label_0;
| label_3:
0x0002732c lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x00027330 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x00027334 nop |
0x00027338 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002733c move a1, v0 | a1 = v0;
0x00027340 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00027344 move a0, s1 | a0 = s1;
0x00027348 jalr t9 | t9 ();
0x0002734c lw gp, 0x10(sp) | gp = *(var_10h);
0x00027350 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x00027354 move a2, s4 | a2 = s4;
0x00027358 lw t9, -0x7f14(gp) | t9 = sym.focusd_motor_position_encoding_convert_fraction_to_steps;
0x0002735c move a3, s5 | a3 = s5;
0x00027360 bal 0x20690 | sym_focusd_motor_position_encoding_convert_fraction_to_steps ();
0x00027364 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027368 lw t9, -0x7d6c(gp) | t9 = *(gp);
0x0002736c move a0, v0 | a0 = v0;
0x00027370 bal 0x470a0 | fcn_000470a0 ();
0x00027374 lw a0, 0x58(sp) | a0 = *(arg_58h);
0x00027378 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0002737c lw s7, 0x38(sp) | s7 = *(var_38h);
0x00027380 sw v0, (a0) | *(a0) = v0;
0x00027384 lw s6, 0x34(sp) | s6 = *(var_34h);
0x00027388 lw s5, 0x30(sp) | s5 = *(var_30h);
0x0002738c lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00027390 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00027394 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00027398 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0002739c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000273a0 sw v1, 4(a0) | *((a0 + 1)) = v1;
0x000273a4 addiu v0, zero, 1 | v0 = 1;
0x000273a8 addiu sp, sp, 0x40 |
0x000273ac jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x27630 */
| #include <stdint.h>
|
; (fcn) fcn.00027630 () | void fcn_00027630 () {
0x00027630 lui gp, 4 |
0x00027634 addiu gp, gp, 0x7550 |
0x00027638 addu gp, gp, t9 | gp += t9;
0x0002763c addiu sp, sp, -0x48 |
0x00027640 lw v1, 0x18(a0) | v1 = *((a0 + 6));
0x00027644 sw gp, 0x18(sp) | *(var_10h_6) = gp;
0x00027648 sw ra, 0x44(sp) | *(var_24h_3) = ra;
0x0002764c sw fp, 0x40(sp) | *(var_20h_2) = fp;
0x00027650 sw s7, 0x3c(sp) | *(var_1ch_3) = s7;
0x00027654 sw s6, 0x38(sp) | *(var_18h) = s6;
0x00027658 sw s5, 0x34(sp) | *(var_7ch) = s5;
0x0002765c sw s4, 0x30(sp) | *(var_10h_3) = s4;
0x00027660 sw s3, 0x2c(sp) | *(var_74h) = s3;
0x00027664 sw s2, 0x28(sp) | *(var_70h) = s2;
0x00027668 sw s1, 0x24(sp) | *(var_6ch) = s1;
0x0002766c sw s0, 0x20(sp) | *(var_68h) = s0;
| if (v1 == 0) {
0x00027670 beql v1, zero, 0x279e4 | goto label_3;
| }
0x00027674 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00027678 lw s0, 0xb8(a0) | s0 = *((a0 + 46));
0x0002767c move s3, a0 | s3 = a0;
| if (s0 == 0) {
0x00027680 beqz s0, 0x27a28 | goto label_4;
| }
0x00027684 lw v1, 0xd4(a0) | v1 = *((a0 + 53));
0x00027688 lw a3, 0x64(v1) | a3 = *((v1 + 25));
0x0002768c lw a3, 0xb8(v1) | a3 = *((v1 + 46));
| if (a3 != 0) {
0x00027690 bnel a3, zero, 0x276dc |
0x00027694 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00027698 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0002769c lw ra, 0x44(sp) | ra = *(var_24h_3);
0x000276a0 lw fp, 0x40(sp) | fp = *(var_20h_2);
0x000276a4 lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x000276a8 lw s6, 0x38(sp) | s6 = *(var_18h);
0x000276ac lw s5, 0x34(sp) | s5 = *(var_7ch);
0x000276b0 lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x000276b4 lw s3, 0x2c(sp) | s3 = *(var_74h);
0x000276b8 lw s2, 0x28(sp) | s2 = *(var_70h);
0x000276bc lw s1, 0x24(sp) | s1 = *(var_6ch);
0x000276c0 lw s0, 0x20(sp) | s0 = *(var_68h);
0x000276c4 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.self__priv__ir_corr_offset */
0x000276c8 addiu a2, a2, 0x410 | a2 += 0x410;
| /* str.focusd_optics_motorized_focus_compensate_ir */
0x000276cc addiu a1, a1, 0x1c4c | a1 += 0x1c4c;
0x000276d0 move a0, zero | a0 = 0;
0x000276d4 addiu sp, sp, 0x48 |
0x000276d8 jr t9 | t9 ();
| }
| if (a3 == 0) {
0x000276dc beql a3, zero, 0x279a0 | goto label_5;
| }
0x000276e0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000276e4 lw v1, 0xbc(v1) | v1 = *((v1 + 47));
0x000276e8 lw ra, 0x44(sp) | ra = *(var_24h_3);
| if (v1 == a1) {
0x000276ec beq v1, a1, 0x27b58 | goto label_6;
| }
0x000276f0 move s4, a1 | s4 = a1;
| if (a2 != 0) {
0x000276f4 bnez a2, 0x27a70 | goto label_7;
| }
0x000276f8 lw t9, -0x7fa8(gp) | t9 = sym.focusd_optics_motorized_stop;
0x000276fc bal 0x256c8 | sym_focusd_optics_motorized_stop ();
0x00027700 nop |
0x00027704 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027708 lw t9, -0x7d00(gp) | t9 = sym.focusd_optics_motorized_lock;
0x0002770c move a0, s3 | a0 = s3;
0x00027710 bal 0x25184 | sym_focusd_optics_motorized_lock ();
0x00027714 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027718 move a2, zero | a2 = 0;
0x0002771c move a1, zero | a1 = 0;
0x00027720 lw t9, -0x7cfc(gp) | t9 = sym.focusd_optics_acquire_control;
0x00027724 move a0, s3 | a0 = s3;
0x00027728 bal 0x22cc4 | sym_focusd_optics_acquire_control ();
0x0002772c lw gp, 0x18(sp) | gp = *(var_10h_6);
| if (v0 == 0) {
0x00027730 beqz v0, 0x27968 | goto label_8;
| }
0x00027734 lw t9, -0x7f88(gp) | t9 = sym.focusd_motor_get_position;
0x00027738 lw a0, 0x18(s3) | a0 = *((s3 + 6));
0x0002773c bal 0x1fb0c | sym_focusd_motor_get_position ();
0x00027740 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027744 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00027748 lw t9, -0x7f88(gp) | t9 = sym.focusd_motor_get_position;
0x0002774c move s7, v0 | s7 = v0;
0x00027750 bal 0x1fb0c | sym_focusd_motor_get_position ();
0x00027754 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027758 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0002775c lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x00027760 move s0, v0 | s0 = v0;
0x00027764 bal 0x1fc14 | sym_focusd_motor_length ();
0x00027768 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x0002776c move a0, s0 | a0 = s0;
0x00027770 lw t9, -0x7f9c(gp) | t9 = *(gp);
0x00027774 move s0, v0 | s0 = v0;
0x00027778 bal 0x44ab0 | fcn_00044ab0 ();
0x0002777c lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027780 move a0, s0 | a0 = s0;
0x00027784 lw t9, -0x7f9c(gp) | t9 = *(gp);
0x00027788 move s0, v0 | s0 = v0;
0x0002778c bal 0x44ab0 | fcn_00044ab0 ();
0x00027790 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027794 move a0, v0 | a0 = v0;
0x00027798 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002779c lw t9, -0x7ecc(gp) | t9 = *(gp);
0x000277a0 lw a1, -0x5cbc(v0) | a1 = *((v0 - 5935));
0x000277a4 bal 0x443a0 | fcn_000443a0 ();
0x000277a8 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000277ac move a1, v0 | a1 = v0;
0x000277b0 lw t9, -0x7f30(gp) | t9 = *(gp);
0x000277b4 move a0, s0 | a0 = s0;
0x000277b8 bal 0x439a0 | fcn_000439a0 ();
0x000277bc lw s6, 0xd4(s3) | s6 = *((s3 + 53));
0x000277c0 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000277c4 lw fp, 0xb8(s6) | fp = *((s6 + 46));
0x000277c8 move s5, v0 | s5 = v0;
| if (fp == 0) {
0x000277cc beqz fp, 0x27b50 | goto label_9;
| }
0x000277d0 lw t9, -0x7f84(gp) | t9 = *(gp);
0x000277d4 lw a1, 0x68(s6) | a1 = *((s6 + 26));
0x000277d8 move a0, v0 | a0 = v0;
0x000277dc bal 0x43e20 | fcn_00043e20 ();
0x000277e0 lw gp, 0x18(sp) | gp = *(var_10h_6);
| if (v0 <= 0) {
0x000277e4 blez v0, 0x27b50 | goto label_9;
| }
0x000277e8 addiu s1, s6, 0x6c | s1 = s6 + 0x6c;
0x000277ec move s2, zero | s2 = 0;
0x000277f0 b 0x27808 |
| while (fp != s0) {
0x000277f4 lw a0, -4(s1) | a0 = *((s1 - 1));
0x000277f8 bal 0x43f40 | fcn_00043f40 ();
0x000277fc lw gp, 0x18(sp) | gp = *(var_10h_6);
| if (v0 >= 0) {
0x00027800 bgez v0, 0x27820 | goto label_10;
| }
0x00027804 move s2, s0 | s2 = s0;
0x00027808 addiu s0, s2, 1 | s0 = s2 + 1;
0x0002780c addiu s1, s1, 4 | s1 += 4;
0x00027810 lw t9, -0x7f44(gp) | t9 = *(gp);
0x00027814 move a1, s5 | a1 = s5;
0x00027818 bne fp, s0, 0x277f4 |
| }
0x0002781c move s0, fp | s0 = fp;
| label_10:
0x00027820 addiu fp, fp, -1 | fp += -1;
0x00027824 sltu v0, s0, fp | v0 = (s0 < fp) ? 1 : 0;
| if (v0 == 0) {
0x00027828 movn fp, s0, v0 | fp = s0;
| }
0x0002782c sll s0, fp, 2 | s0 = fp << 2;
0x00027830 addu s0, s6, s0 | s0 = s6 + s0;
0x00027834 lw s1, 0x90(s0) | s1 = *((s0 + 36));
| if (fp != s2) {
0x00027838 beq fp, s2, 0x278f0 |
0x0002783c sll s2, s2, 2 | s2 <<= 2;
0x00027840 addu s2, s6, s2 | s2 = s6 + s2;
0x00027844 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x00027848 lw s6, 0x68(s2) | s6 = *((s2 + 26));
0x0002784c move a0, s5 | a0 = s5;
0x00027850 move a1, s6 | a1 = s6;
0x00027854 lw s2, 0x90(s2) | s2 = *((s2 + 36));
0x00027858 bal 0x443a0 | fcn_000443a0 ();
0x0002785c lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027860 lw a0, 0x68(s0) | a0 = *((s0 + 26));
0x00027864 move a1, s6 | a1 = s6;
0x00027868 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x0002786c move s0, v0 | s0 = v0;
0x00027870 bal 0x443a0 | fcn_000443a0 ();
0x00027874 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027878 move a1, v0 | a1 = v0;
0x0002787c lw t9, -0x7f30(gp) | t9 = *(gp);
0x00027880 move a0, s0 | a0 = s0;
0x00027884 bal 0x439a0 | fcn_000439a0 ();
0x00027888 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x0002788c subu a0, s1, s2 | __asm ("subu a0, s1, s2");
0x00027890 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00027894 move s0, v0 | s0 = v0;
0x00027898 bal 0x44980 | fcn_00044980 ();
0x0002789c lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000278a0 move a1, v0 | a1 = v0;
0x000278a4 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x000278a8 move a0, s0 | a0 = s0;
0x000278ac bal 0x44070 | fcn_00044070 ();
0x000278b0 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000278b4 move a0, s2 | a0 = s2;
0x000278b8 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x000278bc move s0, v0 | s0 = v0;
0x000278c0 bal 0x44980 | fcn_00044980 ();
0x000278c4 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000278c8 move a1, v0 | a1 = v0;
0x000278cc lw t9, -0x7f34(gp) | t9 = *(gp);
0x000278d0 move a0, s0 | a0 = s0;
0x000278d4 bal 0x43490 | fcn_00043490 ();
0x000278d8 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000278dc lw t9, -0x7f38(gp) | t9 = *(gp);
0x000278e0 move a0, v0 | a0 = v0;
0x000278e4 bal 0x448b0 | fcn_000448b0 ();
0x000278e8 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x000278ec move s1, v0 | s1 = v0;
| }
| label_2:
0x000278f0 addiu v0, zero, 1 | v0 = 1;
0x000278f4 negu s1, s1 | __asm ("negu s1, s1");
| if (s4 != v0) {
0x000278f8 bnel s4, v0, 0x278fc |
| }
0x000278fc lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00027900 move a0, s1 | a0 = s1;
0x00027904 bal 0x44980 | fcn_00044980 ();
0x00027908 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x0002790c addiu v1, zero, 1 | v1 = 1;
0x00027910 lw a0, 0x18(s3) | a0 = *((s3 + 6));
0x00027914 lw t9, -0x7f98(gp) | t9 = sym.focusd_motor_move_limited;
0x00027918 sw v1, 0x10(sp) | *(var_58h) = v1;
0x0002791c move a3, zero | a3 = 0;
0x00027920 move a2, zero | a2 = 0;
0x00027924 move a1, v0 | a1 = v0;
0x00027928 bal 0x1fcb4 | sym_focusd_motor_move_limited ();
0x0002792c lw v1, 0xd4(s3) | v1 = *((s3 + 53));
0x00027930 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027934 sw s4, 0xbc(v1) | *((v1 + 47)) = s4;
| if (v0 == 0) {
0x00027938 beqz v0, 0x27b1c | goto label_11;
| }
| label_0:
0x0002793c lw t9, -0x7f88(gp) | t9 = sym.focusd_motor_get_position;
0x00027940 lw a0, 0x18(s3) | a0 = *((s3 + 6));
0x00027944 bal 0x1fb0c | sym_focusd_motor_get_position ();
0x00027948 addu v1, s1, s7 | v1 = s1 + s7;
0x0002794c lw gp, 0x18(sp) | gp = *(var_10h_6);
| if (v1 != v0) {
0x00027950 bne v1, v0, 0x27ad8 | goto label_12;
| }
0x00027954 lw t9, -0x7cf8(gp) | t9 = sym.focusd_optics_release_control;
0x00027958 move a0, s3 | a0 = s3;
0x0002795c move a1, zero | a1 = 0;
0x00027960 bal 0x22cd4 | sym_focusd_optics_release_control ();
0x00027964 lw gp, 0x18(sp) | gp = *(var_10h_6);
| do {
| label_8:
0x00027968 lw t9, -0x7cdc(gp) | t9 = sym.focusd_optics_motorized_unlock;
0x0002796c move a0, s3 | a0 = s3;
| label_1:
0x00027970 lw ra, 0x44(sp) | ra = *(var_24h_3);
0x00027974 lw fp, 0x40(sp) | fp = *(var_20h_2);
0x00027978 lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x0002797c lw s6, 0x38(sp) | s6 = *(var_18h);
0x00027980 lw s5, 0x34(sp) | s5 = *(var_7ch);
0x00027984 lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x00027988 lw s3, 0x2c(sp) | s3 = *(var_74h);
0x0002798c lw s2, 0x28(sp) | s2 = *(var_70h);
0x00027990 lw s1, 0x24(sp) | s1 = *(var_6ch);
0x00027994 lw s0, 0x20(sp) | s0 = *(var_68h);
0x00027998 addiu sp, sp, 0x48 |
0x0002799c jr t9 | t9 ();
| label_5:
0x000279a0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000279a4 lw ra, 0x44(sp) | ra = *(var_24h_3);
0x000279a8 lw fp, 0x40(sp) | fp = *(var_20h_2);
0x000279ac lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x000279b0 lw s6, 0x38(sp) | s6 = *(var_18h);
0x000279b4 lw s5, 0x34(sp) | s5 = *(var_7ch);
0x000279b8 lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x000279bc lw s3, 0x2c(sp) | s3 = *(var_74h);
0x000279c0 lw s2, 0x28(sp) | s2 = *(var_70h);
0x000279c4 lw s1, 0x24(sp) | s1 = *(var_6ch);
0x000279c8 lw s0, 0x20(sp) | s0 = *(var_68h);
0x000279cc lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.self__priv__ir_corr_num_values___0U */
0x000279d0 addiu a2, a2, 0x42c | a2 += 0x42c;
| /* str.focusd_optics_motorized_focus_compensate_ir */
0x000279d4 addiu a1, a1, 0x1c4c | a1 += 0x1c4c;
0x000279d8 move a0, zero | a0 = 0;
0x000279dc addiu sp, sp, 0x48 |
0x000279e0 jr t9 | t9 ();
| label_3:
0x000279e4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000279e8 lw ra, 0x44(sp) | ra = *(var_24h_3);
0x000279ec lw fp, 0x40(sp) | fp = *(var_20h_2);
0x000279f0 lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x000279f4 lw s6, 0x38(sp) | s6 = *(var_18h);
0x000279f8 lw s5, 0x34(sp) | s5 = *(var_7ch);
0x000279fc lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x00027a00 lw s3, 0x2c(sp) | s3 = *(var_74h);
0x00027a04 lw s2, 0x28(sp) | s2 = *(var_70h);
0x00027a08 lw s1, 0x24(sp) | s1 = *(var_6ch);
0x00027a0c lw s0, 0x20(sp) | s0 = *(var_68h);
0x00027a10 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.motorized_focus__motor */
0x00027a14 addiu a2, a2, 0x3dc | a2 += 0x3dc;
| /* str.focusd_optics_motorized_focus_compensate_ir */
0x00027a18 addiu a1, a1, 0x1c4c | a1 += 0x1c4c;
0x00027a1c move a0, zero | a0 = 0;
0x00027a20 addiu sp, sp, 0x48 |
0x00027a24 jr t9 | t9 ();
| label_4:
0x00027a28 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00027a2c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00027a30 lw ra, 0x44(sp) | ra = *(var_24h_3);
0x00027a34 lw fp, 0x40(sp) | fp = *(var_20h_2);
0x00027a38 lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x00027a3c lw s6, 0x38(sp) | s6 = *(var_18h);
0x00027a40 lw s5, 0x34(sp) | s5 = *(var_7ch);
0x00027a44 lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x00027a48 lw s3, 0x2c(sp) | s3 = *(var_74h);
0x00027a4c lw s2, 0x28(sp) | s2 = *(var_70h);
0x00027a50 lw s1, 0x24(sp) | s1 = *(var_6ch);
0x00027a54 lw s0, 0x20(sp) | s0 = *(var_68h);
0x00027a58 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.motorized_focus__my_peer */
0x00027a5c addiu a2, a2, 0x3f4 | a2 += 0x3f4;
| /* str.focusd_optics_motorized_focus_compensate_ir */
0x00027a60 addiu a1, a1, 0x1c4c | a1 += 0x1c4c;
0x00027a64 move a0, zero | a0 = 0;
0x00027a68 addiu sp, sp, 0x48 |
0x00027a6c jr t9 | t9 ();
| label_7:
0x00027a70 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_malloc0;
0x00027a74 addiu a0, zero, 0x10 | a0 = 0x10;
0x00027a78 jalr t9 | t9 ();
0x00027a7c lw v1, 0xd4(s3) | v1 = *((s3 + 53));
0x00027a80 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027a84 lw a0, 0x130(v1) | a0 = *(v1);
0x00027a88 addiu v1, zero, 3 | v1 = 3;
0x00027a8c sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00027a90 sw s4, 8(v0) | *((v0 + 2)) = s4;
| if (a0 == 0) {
0x00027a94 beqz a0, 0x27b44 | goto label_13;
| }
0x00027a98 sw s3, (v0) | *(v0) = s3;
0x00027a9c lw ra, 0x44(sp) | ra = *(var_24h_3);
0x00027aa0 lw fp, 0x40(sp) | fp = *(var_20h_2);
0x00027aa4 lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x00027aa8 lw s6, 0x38(sp) | s6 = *(var_18h);
0x00027aac lw s5, 0x34(sp) | s5 = *(var_7ch);
0x00027ab0 lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x00027ab4 lw s3, 0x2c(sp) | s3 = *(var_74h);
0x00027ab8 lw s2, 0x28(sp) | s2 = *(var_70h);
0x00027abc lw s1, 0x24(sp) | s1 = *(var_6ch);
0x00027ac0 lw s0, 0x20(sp) | s0 = *(var_68h);
0x00027ac4 lw t9, -0x7b98(gp) | t9 = sym.imp.g_thread_pool_push;
0x00027ac8 move a2, zero | a2 = 0;
0x00027acc move a1, v0 | a1 = v0;
0x00027ad0 addiu sp, sp, 0x48 |
0x00027ad4 jr t9 | t9 ();
| label_12:
0x00027ad8 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00027adc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00027ae0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00027ae4 lw a0, (v1) | a0 = *(v1);
0x00027ae8 move a3, s7 | a3 = s7;
| /* str._4_Move_was_clipped___u__u___d__n */
0x00027aec addiu a2, a2, 0x480 | a2 += 0x480;
0x00027af0 addiu a1, zero, 1 | a1 = 1;
0x00027af4 sw s1, 0x14(sp) | *(var_5ch) = s1;
0x00027af8 sw v0, 0x10(sp) | *(var_58h) = v0;
0x00027afc jalr t9 | t9 ();
0x00027b00 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027b04 move a0, s3 | a0 = s3;
0x00027b08 lw t9, -0x7cf8(gp) | t9 = sym.focusd_optics_release_control;
0x00027b0c move a1, zero | a1 = 0;
0x00027b10 bal 0x22cd4 | sym_focusd_optics_release_control ();
0x00027b14 lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027b18 b 0x27968 |
| } while (1);
| label_11:
0x00027b1c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00027b20 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00027b24 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00027b28 lw a3, (v0) | a3 = *(v0);
0x00027b2c addiu a2, zero, 0x2f | a2 = 0x2f;
0x00027b30 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_move_focus_during_ir_compensation_n */
0x00027b34 addiu a0, a0, 0x450 | a0 += 0x450;
0x00027b38 jalr t9 | t9 ();
0x00027b3c lw gp, 0x18(sp) | gp = *(var_10h_6);
0x00027b40 b 0x2793c | goto label_0;
| label_13:
0x00027b44 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00027b48 move a0, v0 | a0 = v0;
0x00027b4c b 0x27970 | goto label_1;
| label_9:
0x00027b50 lw s1, 0x90(s6) | s1 = *((s6 + 36));
0x00027b54 b 0x278f0 | goto label_2;
| label_6:
0x00027b58 lw fp, 0x40(sp) | fp = *(var_20h_2);
0x00027b5c lw s7, 0x3c(sp) | s7 = *(var_1ch_3);
0x00027b60 lw s6, 0x38(sp) | s6 = *(var_18h);
0x00027b64 lw s5, 0x34(sp) | s5 = *(var_7ch);
0x00027b68 lw s4, 0x30(sp) | s4 = *(var_10h_3);
0x00027b6c lw s3, 0x2c(sp) | s3 = *(var_74h);
0x00027b70 lw s2, 0x28(sp) | s2 = *(var_70h);
0x00027b74 lw s1, 0x24(sp) | s1 = *(var_6ch);
0x00027b78 lw s0, 0x20(sp) | s0 = *(var_68h);
0x00027b7c addiu sp, sp, 0x48 |
0x00027b80 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x280bc */
| #include <stdint.h>
|
; (fcn) fcn.000280bc () | void fcn_000280bc () {
0x000280bc lui gp, 4 |
0x000280c0 addiu gp, gp, 0x6ac4 |
0x000280c4 addu gp, gp, t9 | gp += t9;
0x000280c8 addiu sp, sp, -0x40 |
0x000280cc lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x000280d0 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000280d4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000280d8 sw s5, 0x38(sp) | *(var_38h) = s5;
0x000280dc sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x000280e0 sw s1, 0x28(sp) | *(var_28h) = s1;
0x000280e4 sw s0, 0x24(sp) | *(var_24h) = s0;
0x000280e8 sw s4, 0x34(sp) | *(var_34h) = s4;
0x000280ec sw s3, 0x30(sp) | *(var_30h) = s3;
0x000280f0 move s0, a1 | s0 = a1;
0x000280f4 move s2, a0 | s2 = a0;
0x000280f8 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x000280fc lw gp, 0x18(sp) | gp = *(var_18h);
0x00028100 move a1, v0 | a1 = v0;
0x00028104 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00028108 move a0, s2 | a0 = s2;
0x0002810c jalr t9 | t9 ();
0x00028110 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028114 lw s1, (s0) | s1 = *(s0);
0x00028118 move a1, zero | a1 = 0;
0x0002811c lw t9, -0x7f84(gp) | t9 = *(gp);
0x00028120 move a0, s1 | a0 = s1;
0x00028124 move s5, v0 | s5 = v0;
0x00028128 bal 0x43e20 | fcn_00043e20 ();
0x0002812c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x00028130 bltz v0, 0x28150 |
0x00028134 lw s4, -0x7fd8(gp) | s4 = *(gp);
0x00028138 lw t9, -0x7f44(gp) | t9 = *(gp);
0x0002813c move a0, s1 | a0 = s1;
0x00028140 lw a1, -0x5cbc(s4) | a1 = *((s4 - 5935));
0x00028144 bal 0x43f40 | fcn_00043f40 ();
0x00028148 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x0002814c blez v0, 0x28198 | goto label_1;
| }
| }
0x00028150 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00028154 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.limit__near___0__limit__near___1 */
0x00028158 addiu a2, a2, 0x664 | a2 += 0x664;
| do {
| label_0:
0x0002815c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00028160 move a0, zero | a0 = 0;
| /* str.update_trace_limits */
0x00028164 addiu a1, a1, 0x1c38 | a1 += 0x1c38;
0x00028168 jalr t9 | t9 ();
0x0002816c lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00028170 move s3, zero | s3 = 0;
0x00028174 move v0, s3 | v0 = s3;
0x00028178 lw s5, 0x38(sp) | s5 = *(var_38h);
0x0002817c lw s4, 0x34(sp) | s4 = *(var_34h);
0x00028180 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00028184 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00028188 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0002818c lw s0, 0x24(sp) | s0 = *(var_24h);
0x00028190 addiu sp, sp, 0x40 |
0x00028194 jr ra | return v0;
| label_1:
0x00028198 lw s3, 8(s0) | s3 = *((s0 + 2));
0x0002819c lw t9, -0x7f84(gp) | t9 = *(gp);
0x000281a0 move a1, zero | a1 = 0;
0x000281a4 move a0, s3 | a0 = s3;
0x000281a8 bal 0x43e20 | fcn_00043e20 ();
0x000281ac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x000281b0 bltz v0, 0x281cc |
0x000281b4 lw t9, -0x7f44(gp) | t9 = *(gp);
0x000281b8 lw a1, -0x5cbc(s4) | a1 = *((s4 - 5935));
0x000281bc move a0, s3 | a0 = s3;
0x000281c0 bal 0x43f40 | fcn_00043f40 ();
0x000281c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000281c8 blez v0, 0x281dc | goto label_2;
| }
| }
0x000281cc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000281d0 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.limit__far___0__limit__far___1 */
0x000281d4 addiu a2, a2, 0x68c | a2 += 0x68c;
0x000281d8 b 0x2815c |
| } while (1);
| label_2:
0x000281dc lw t9, -0x7f44(gp) | t9 = *(gp);
0x000281e0 move a1, s3 | a1 = s3;
0x000281e4 move a0, s1 | a0 = s1;
0x000281e8 bal 0x43f40 | fcn_00043f40 ();
0x000281ec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000281f0 bgez v0, 0x282d8 |
0x000281f4 lw s1, 4(s0) | s1 = *((s0 + 1));
0x000281f8 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000281fc lw t9, -0x7f9c(gp) | t9 = *(gp);
0x00028200 subu a0, a0, s1 | __asm ("subu a0, a0, s1");
0x00028204 bal 0x44ab0 | fcn_00044ab0 ();
0x00028208 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002820c lw a1, 0xc4(s2) | a1 = *((s2 + 49));
0x00028210 move a0, v0 | a0 = v0;
0x00028214 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x00028218 move s3, v0 | s3 = v0;
0x0002821c bal 0x44070 | fcn_00044070 ();
0x00028220 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028224 lw t9, -0x7ed0(gp) | t9 = *(gp);
0x00028228 move a0, v0 | a0 = v0;
0x0002822c bal 0x44920 | fcn_00044920 ();
0x00028230 lw gp, 0x18(sp) | gp = *(var_18h);
0x00028234 lw a1, 0xcc(s2) | a1 = *((s2 + 51));
0x00028238 move a0, s3 | a0 = s3;
0x0002823c lw t9, -0x7f3c(gp) | t9 = *(gp);
0x00028240 addu s4, v0, s1 | s4 = v0 + s1;
0x00028244 bal 0x44070 | fcn_00044070 ();
0x00028248 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002824c lw t9, -0x7ed0(gp) | t9 = *(gp);
0x00028250 move a0, v0 | a0 = v0;
0x00028254 bal 0x44920 | fcn_00044920 ();
0x00028258 lw gp, 0x18(sp) | gp = *(var_18h);
0x0002825c addu s1, v0, s1 | s1 = v0 + s1;
0x00028260 lw a0, 0x18(s5) | a0 = *((s5 + 6));
0x00028264 lw t9, -0x7ccc(gp) | t9 = sym.focusd_motor_set_limits;
0x00028268 move a2, s1 | a2 = s1;
0x0002826c move a1, s4 | a1 = s4;
0x00028270 bal 0x20158 | sym_focusd_motor_set_limits ();
0x00028274 move s3, v0 | s3 = v0;
0x00028278 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0002827c beqz v0, 0x282e8 | goto label_3;
| }
0x00028280 lw v0, 0xd4(s2) | v0 = *((s2 + 53));
0x00028284 lw a2, (s0) | a2 = *(s0);
0x00028288 lw a1, 4(s0) | a1 = *((s0 + 1));
0x0002828c lw a0, 8(s0) | a0 = *((s0 + 2));
0x00028290 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00028294 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00028298 addiu s3, zero, 1 | s3 = 1;
0x0002829c sw a2, 0x11c(v0) | *(v0) = a2;
0x000282a0 sw a1, 0x120(v0) | *(v0) = a1;
0x000282a4 sw a0, 0x124(v0) | *(v0) = a0;
0x000282a8 sw v1, 0x128(v0) | *(v0) = v1;
0x000282ac lw s5, 0x38(sp) | s5 = *(var_38h);
0x000282b0 sw s4, 0xc8(s2) | *((s2 + 50)) = s4;
0x000282b4 sw s1, 0xd0(s2) | *((s2 + 52)) = s1;
0x000282b8 move v0, s3 | v0 = s3;
0x000282bc lw s4, 0x34(sp) | s4 = *(var_34h);
0x000282c0 lw s3, 0x30(sp) | s3 = *(var_30h);
0x000282c4 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x000282c8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x000282cc lw s0, 0x24(sp) | s0 = *(var_24h);
0x000282d0 addiu sp, sp, 0x40 |
0x000282d4 jr ra | return v0;
| }
0x000282d8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000282dc lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.limit__far___limit__near */
0x000282e0 addiu a2, a2, 0x6b0 | a2 += 0x6b0;
0x000282e4 b 0x2815c | goto label_0;
| label_3:
0x000282e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000282ec lw a3, -0x7fd8(gp) | a3 = *(gp);
0x000282f0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000282f4 lw a0, (v0) | a0 = *(v0);
0x000282f8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000282fc sw s1, 0x14(sp) | *(var_14h) = s1;
0x00028300 sw s4, 0x10(sp) | *(var_10h) = s4;
| /* esilref: 'update_trace_limits' */
0x00028304 addiu a3, a3, 0x1c24 | a3 += aav.0x00001c24;
| /* str._4__s_could_not_set_motor_limits_to__u_and__u_n */
0x00028308 addiu a2, a2, 0x6cc | a2 += 0x6cc;
0x0002830c addiu a1, zero, 1 | a1 = 1;
0x00028310 jalr t9 | t9 ();
0x00028314 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00028318 move v0, s3 | v0 = s3;
0x0002831c lw s5, 0x38(sp) | s5 = *(var_38h);
0x00028320 lw s4, 0x34(sp) | s4 = *(var_34h);
0x00028324 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00028328 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0002832c lw s1, 0x28(sp) | s1 = *(var_28h);
0x00028330 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00028334 addiu sp, sp, 0x40 |
0x00028338 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x2833c */
| #include <stdint.h>
|
; (fcn) fcn.0002833c () | void fcn_0002833c () {
0x0002833c lui gp, 4 |
0x00028340 addiu gp, gp, 0x6844 |
0x00028344 addu gp, gp, t9 | gp += t9;
0x00028348 addiu sp, sp, -0x70 |
0x0002834c sw s2, 0x50(sp) | *(var_50h) = s2;
0x00028350 lw s2, -0x7a04(gp) | s2 = *((gp - 7809));
0x00028354 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00028358 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0002835c lw v0, (s2) | v0 = *(s2);
0x00028360 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x00028364 sw s0, 0x48(sp) | *(var_48h) = s0;
0x00028368 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0002836c sw fp, 0x68(sp) | *(var_68h) = fp;
0x00028370 sw s7, 0x64(sp) | *(var_64h) = s7;
0x00028374 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x00028378 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0002837c sw s3, 0x54(sp) | *(var_54h) = s3;
0x00028380 move s1, a0 | s1 = a0;
0x00028384 move s6, a1 | s6 = a1;
0x00028388 lw s0, 0xd4(a0) | s0 = *((a0 + 53));
0x0002838c sw v0, 0x44(sp) | *(var_44h) = v0;
0x00028390 lw a1, -0x7fd8(gp) | a1 = *(gp);
| if (a2 == 0) {
0x00028394 beqz a2, 0x28510 | goto label_4;
| }
0x00028398 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0002839c lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x000283a0 addiu s0, s0, 0x14 | s0 += 0x14;
0x000283a4 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x000283a8 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x000283ac lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* str.NightPos */
0x000283b0 addiu a1, a1, 0x738 | a1 += 0x738;
0x000283b4 move a2, s0 | a2 = s0;
0x000283b8 move a0, s6 | a0 = s6;
0x000283bc bal 0x3c714 | sym_settings_get_float ();
| /* str.night */
0x000283c0 addiu s3, s3, -0x31a0 | s3 += -0x31a0;
| /* str.NightTraceZoomPos */
0x000283c4 addiu s5, s5, 0x714 | s5 += 0x714;
| /* str.NightPosTemp */
0x000283c8 addiu s4, s4, 0x728 | s4 += 0x728;
0x000283cc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000283d0 beqz v0, 0x28544 | goto label_5;
| }
| label_1:
0x000283d4 lw fp, -0x7fd8(gp) | fp = *(gp);
0x000283d8 lw s7, (s0) | s7 = *(s0);
0x000283dc lw t9, -0x7f84(gp) | t9 = *(gp);
0x000283e0 lw a1, -0x5cbc(fp) | a1 = *(var_5cbch);
0x000283e4 move a0, s7 | a0 = s7;
0x000283e8 bal 0x43e20 | fcn_00043e20 ();
0x000283ec lw gp, 0x20(sp) | gp = *(var_20h);
0x000283f0 blez v0, 0x28450 |
| while (v0 < 0) {
0x000283f4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000283f8 lw v1, -0x5cb8(v0) | v1 = *((v0 - 5934));
0x000283fc sw v1, (s0) | *(s0) = v1;
| label_2:
0x00028400 lw v0, -0x5cb8(v0) | v0 = *((v0 - 5934));
0x00028404 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x00028408 addiu v0, zero, -1 | v0 = -1;
0x0002840c sw v0, 8(s0) | *((s0 + 2)) = v0;
| label_0:
0x00028410 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00028414 lw v1, (s2) | v1 = *(s2);
0x00028418 addiu v0, zero, 1 | v0 = 1;
| if (a0 != v1) {
0x0002841c bne a0, v1, 0x28718 | goto label_6;
| }
0x00028420 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x00028424 lw fp, 0x68(sp) | fp = *(var_68h);
0x00028428 lw s7, 0x64(sp) | s7 = *(var_64h);
0x0002842c lw s6, 0x60(sp) | s6 = *(var_60h);
0x00028430 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x00028434 lw s4, 0x58(sp) | s4 = *(var_58h);
0x00028438 lw s3, 0x54(sp) | s3 = *(var_54h);
0x0002843c lw s2, 0x50(sp) | s2 = *(var_50h);
0x00028440 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x00028444 lw s0, 0x48(sp) | s0 = *(var_48h);
0x00028448 addiu sp, sp, 0x70 |
0x0002844c jr ra | return v0;
0x00028450 lw t9, -0x7f44(gp) | t9 = *(gp);
0x00028454 move a1, zero | a1 = 0;
0x00028458 move a0, s7 | a0 = s7;
0x0002845c bal 0x43f40 | fcn_00043f40 ();
0x00028460 lw gp, 0x20(sp) | gp = *(var_20h);
0x00028464 bltz v0, 0x283f4 |
| }
0x00028468 lw t9, -0x7f84(gp) | t9 = *(gp);
0x0002846c move a1, zero | a1 = 0;
0x00028470 move a0, s7 | a0 = s7;
0x00028474 bal 0x43e20 | fcn_00043e20 ();
0x00028478 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0002847c bltz v0, 0x28724 | goto label_7;
| }
0x00028480 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x00028484 lw v0, 0x44(v0) | v0 = *((v0 + 17));
0x00028488 lw s7, -0x7990(gp) | s7 = *((gp - 7780));
| if (v0 == 0) {
0x0002848c bnel v0, zero, 0x28578 | goto label_8;
| }
0x00028490 sw s7, 4(s0) | *((s0 + 1)) = s7;
| label_3:
0x00028494 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00028498 move a0, s7 | a0 = s7;
0x0002849c bal 0x47140 | fcn_00047140 ();
0x000284a0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000284a4 lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x000284a8 move a3, v1 | a3 = v1;
0x000284ac lw t9, -0x7f14(gp) | t9 = sym.focusd_motor_position_encoding_convert_fraction_to_steps;
0x000284b0 move a2, v0 | a2 = v0;
0x000284b4 bal 0x20690 | sym_focusd_motor_position_encoding_convert_fraction_to_steps ();
0x000284b8 lw v1, 0xd4(s1) | v1 = *((s1 + 53));
0x000284bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000284c0 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x000284c4 lw v0, 0x60(v1) | v0 = *((v1 + 24));
0x000284c8 lw t9, -0x7fc4(gp) | t9 = sym.settings_get_int;
| if (v0 == 0) {
0x000284cc beqz v0, 0x28410 | goto label_0;
| }
0x000284d0 addiu a2, s0, 0x10 | a2 = s0 + 0x10;
0x000284d4 move a1, s4 | a1 = s4;
0x000284d8 move a0, s6 | a0 = s6;
0x000284dc bal 0x3c188 | sym_settings_get_int ();
0x000284e0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000284e4 bnez v0, 0x28410 | goto label_0;
| }
0x000284e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000284ec lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000284f0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000284f4 lw a3, (v0) | a3 = *(v0);
0x000284f8 addiu a2, zero, 0x2d | a2 = 0x2d;
0x000284fc addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_saved_position_temperature_n */
0x00028500 addiu a0, a0, 0x7e8 | a0 += 0x7e8;
0x00028504 jalr t9 | t9 ();
0x00028508 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002850c b 0x28410 | goto label_0;
| label_4:
0x00028510 lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x00028514 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00028518 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x0002851c lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* esilref: 'Pos' */
0x00028520 addiu a1, a1, -0x1d60 | a1 += -aav.0x00001d60;
0x00028524 move a2, s0 | a2 = s0;
0x00028528 move a0, s6 | a0 = s6;
0x0002852c bal 0x3c714 | sym_settings_get_float ();
| /* esilref: 'day' */
0x00028530 addiu s3, s3, -0x31c0 | s3 += -0x31c0;
| /* str.TraceZoomPos */
0x00028534 addiu s5, s5, 0x6fc | s5 += 0x6fc;
| /* str.PosTemp */
0x00028538 addiu s4, s4, 0x70c | s4 += 0x70c;
0x0002853c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00028540 bnez v0, 0x283d4 | goto label_1;
| }
| label_5:
0x00028544 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00028548 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002854c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00028550 lw a0, (v0) | a0 = *(v0);
0x00028554 move a3, s3 | a3 = s3;
| /* str._3_Failed_to_read_saved__s_position_parameter_n */
0x00028558 addiu a2, a2, 0x744 | a2 += 0x744;
0x0002855c addiu a1, zero, 1 | a1 = 1;
0x00028560 jalr t9 | t9 ();
0x00028564 lw gp, 0x20(sp) | gp = *(var_20h);
0x00028568 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002856c lw v1, -0x5cb8(v0) | v1 = *((v0 - 5934));
0x00028570 sw v1, (s0) | *(s0) = v1;
0x00028574 b 0x28400 | goto label_2;
| label_8:
0x00028578 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002857c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00028580 lw a0, (s7) | a0 = *(s7);
0x00028584 move a3, s3 | a3 = s3;
| /* str._6_getting__s_TraceZoomPos_n */
0x00028588 addiu a2, a2, 0x774 | a2 += 0x774;
0x0002858c addiu a1, zero, 1 | a1 = 1;
0x00028590 jalr t9 | t9 ();
0x00028594 lw gp, 0x20(sp) | gp = *(var_20h);
0x00028598 addiu a2, s0, 0xc | a2 = s0 + 0xc;
0x0002859c move a1, s5 | a1 = s5;
0x000285a0 lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x000285a4 move a0, s6 | a0 = s6;
0x000285a8 bal 0x3c714 | sym_settings_get_float ();
0x000285ac lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000285b0 beqz v0, 0x286e8 | goto label_9;
| }
0x000285b4 lw s5, 0xc(s0) | s5 = *((s0 + 3));
0x000285b8 lw t9, -0x7f44(gp) | t9 = *(gp);
0x000285bc move a1, zero | a1 = 0;
0x000285c0 move a0, s5 | a0 = s5;
0x000285c4 bal 0x43f40 | fcn_00043f40 ();
0x000285c8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x000285cc bltz v0, 0x285e8 |
0x000285d0 lw t9, -0x7f84(gp) | t9 = *(gp);
0x000285d4 lw a1, -0x5cbc(fp) | a1 = *(var_5cbch);
0x000285d8 move a0, s5 | a0 = s5;
0x000285dc bal 0x43e20 | fcn_00043e20 ();
0x000285e0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x000285e4 blez v0, 0x28668 | goto label_10;
| }
| }
0x000285e8 lw t9, -0x7f90(gp) | t9 = *(gp);
0x000285ec move a0, s5 | a0 = s5;
0x000285f0 bal 0x47140 | fcn_00047140 ();
0x000285f4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000285f8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000285fc sw v1, 0x14(sp) | *(var_14h) = v1;
0x00028600 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00028604 lw a0, (s7) | a0 = *(s7);
0x00028608 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002860c move a3, s3 | a3 = s3;
| /* str._4_Saved__s_zoom_trace_position__f_invalid_n */
0x00028610 addiu a2, a2, 0x7bc | a2 += 0x7bc;
0x00028614 addiu a1, zero, 1 | a1 = 1;
0x00028618 jalr t9 | t9 ();
0x0002861c lw gp, 0x20(sp) | gp = *(var_20h);
0x00028620 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00028624 lw v0, -0x5cb8(v0) | v0 = *((v0 - 5934));
0x00028628 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
| do {
0x0002862c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00028630 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00028634 lw a0, (s7) | a0 = *(s7);
0x00028638 move a3, s3 | a3 = s3;
| /* str._4_Using_the_current_zoom_position_for_the__s_saved_position_n */
0x0002863c addiu a2, a2, 0x818 | a2 += 0x818;
0x00028640 addiu a1, zero, 1 | a1 = 1;
0x00028644 jalr t9 | t9 ();
0x00028648 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002864c lw a0, 0xb8(s1) | a0 = *((s1 + 46));
0x00028650 lw t9, -0x7de8(gp) | t9 = sym.focusd_optics_motorized_position;
0x00028654 addiu a1, zero, 1 | a1 = 1;
0x00028658 bal 0x25604 | sym_focusd_optics_motorized_position ();
0x0002865c move s5, v0 | s5 = v0;
0x00028660 lw gp, 0x20(sp) | gp = *(var_20h);
0x00028664 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
| label_10:
0x00028668 lw t9, -0x7f50(gp) | t9 = *(gp);
0x0002866c addiu s3, sp, 0x34 | s3 = sp + 0x34;
0x00028670 move a2, s3 | a2 = s3;
0x00028674 move a1, s5 | a1 = s5;
| /* fcn.000273b0 */
0x00028678 addiu t9, t9, 0x73b0 | t9 += 0x73b0;
0x0002867c move a0, s1 | a0 = s1;
0x00028680 bal 0x273b0 | fcn_000273b0 ();
0x00028684 lw gp, 0x20(sp) | gp = *(var_20h);
0x00028688 addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x0002868c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00028690 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00028694 lw a0, (s0) | a0 = *(s0);
0x00028698 bal 0x47140 | fcn_00047140 ();
0x0002869c lw gp, 0x20(sp) | gp = *(var_20h);
0x000286a0 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000286a4 move a3, zero | a3 = 0;
0x000286a8 lw t9, -0x7f50(gp) | t9 = *(gp);
0x000286ac addiu a2, zero, 1 | a2 = 1;
0x000286b0 move a1, s3 | a1 = s3;
0x000286b4 move a0, s1 | a0 = s1;
| /* fcn.00027020 */
0x000286b8 addiu t9, t9, 0x7020 | t9 += 0x7020;
0x000286bc sw v0, 0x10(sp) | *(var_10h) = v0;
0x000286c0 bal 0x27020 | fcn_00027020 ();
0x000286c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000286c8 lw a0, 0x28(sp) | a0 = *(var_28h);
0x000286cc lw t9, -0x7f18(gp) | t9 = *(gp);
0x000286d0 lw a1, 0x2c(sp) | a1 = *(var_2ch);
0x000286d4 bal 0x47280 | fcn_00047280 ();
0x000286d8 move s7, v0 | s7 = v0;
0x000286dc lw gp, 0x20(sp) | gp = *(var_20h);
0x000286e0 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000286e4 b 0x28494 | goto label_3;
| label_9:
0x000286e8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000286ec lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000286f0 lw a0, (s7) | a0 = *(s7);
0x000286f4 move a3, s3 | a3 = s3;
| /* str._4_Failed_to_read__s_zoom_trace_position_n */
0x000286f8 addiu a2, a2, 0x790 | a2 += 0x790;
0x000286fc addiu a1, zero, 1 | a1 = 1;
0x00028700 jalr t9 | t9 ();
0x00028704 lw gp, 0x20(sp) | gp = *(var_20h);
0x00028708 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002870c lw v0, -0x5cb8(v0) | v0 = *((v0 - 5934));
0x00028710 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00028714 b 0x2862c |
| } while (1);
| label_6:
0x00028718 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002871c jalr t9 | t9 ();
0x00028720 nop |
| label_7:
0x00028724 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00028728 b 0x28400 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x29874 */
| #include <stdint.h>
|
; (fcn) fcn.00029874 () | void fcn_00029874 () {
0x00029874 lui gp, 4 |
0x00029878 addiu gp, gp, 0x530c |
0x0002987c addu gp, gp, t9 | gp += t9;
0x00029880 addiu sp, sp, -0x88 |
0x00029884 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x00029888 sw s6, 0x78(sp) | *(var_18h) = s6;
0x0002988c lw s6, -0x7a04(gp) | s6 = *((gp - 7809));
0x00029890 sw ra, 0x84(sp) | *(var_24h_3) = ra;
0x00029894 sw gp, 0x20(sp) | *(var_20h_4) = gp;
0x00029898 lw v0, (s6) | v0 = *(s6);
0x0002989c sw s7, 0x7c(sp) | *(var_1ch_3) = s7;
0x000298a0 sw s3, 0x6c(sp) | *(var_74h) = s3;
0x000298a4 sw s2, 0x68(sp) | *(var_70h) = s2;
0x000298a8 sw s1, 0x64(sp) | *(var_6ch) = s1;
0x000298ac sw s0, 0x60(sp) | *(var_68h) = s0;
0x000298b0 sw fp, 0x80(sp) | *(var_20h_2) = fp;
0x000298b4 sw s5, 0x74(sp) | *(var_7ch) = s5;
0x000298b8 sw s4, 0x70(sp) | *(var_10h_3) = s4;
0x000298bc sw v0, 0x5c(sp) | *(var_64h) = v0;
0x000298c0 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x000298c4 move s1, a0 | s1 = a0;
0x000298c8 jalr t9 | t9 ();
0x000298cc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x000298d0 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x000298d4 move s0, v0 | s0 = v0;
0x000298d8 lw t9, -0x7fb4(gp) | t9 = sym.focusd_optics_get_type;
0x000298dc addiu s3, sp, 0x38 | s3 = sp + 0x38;
0x000298e0 bal 0x228b0 | sym_focusd_optics_get_type ();
0x000298e4 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x000298e8 move a1, v0 | a1 = v0;
0x000298ec lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x000298f0 move a0, s1 | a0 = s1;
0x000298f4 jalr t9 | t9 ();
0x000298f8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x000298fc lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x00029900 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00029904 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* str.ImageSource.I_u.Focus */
0x00029908 addiu a0, a0, -0x6c10 | a0 += -0x6c10;
0x0002990c jalr t9 | t9 ();
0x00029910 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029914 move a3, s3 | a3 = s3;
0x00029918 addiu a2, zero, 3 | a2 = 3;
0x0002991c lw t9, -0x7a90(gp) | t9 = sym.imp.g_key_file_load_from_file;
| /* str._etc_sysconfig_imagesource_focus_positions.conf */
0x00029920 addiu a1, s7, -0x6d28 | a1 = s7 + -0x6d28;
0x00029924 move a0, s0 | a0 = s0;
0x00029928 move s2, v0 | s2 = v0;
0x0002992c jalr t9 | t9 ();
0x00029930 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029934 beqz v0, 0x29a64 | goto label_23;
| }
0x00029938 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002993c lw t9, -0x7840(gp) | t9 = sym.imp.g_key_file_get_double;
0x00029940 move a3, s3 | a3 = s3;
| /* esilref: 'Pos' */
0x00029944 addiu a2, v0, -0x1d60 | a2 = v0 + -aav.0x00001d60;
0x00029948 move a1, s2 | a1 = s2;
0x0002994c move a0, s0 | a0 = s0;
0x00029950 sw v0, 0x28(sp) | *(var_30h_3) = v0;
0x00029954 jalr t9 | t9 ();
0x00029958 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002995c move a2, zero | a2 = 0;
0x00029960 move a3, zero | a3 = 0;
0x00029964 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00029968 move a0, v0 | a0 = v0;
0x0002996c move a1, v1 | a1 = v1;
0x00029970 move s4, v0 | s4 = v0;
0x00029974 move s5, v1 | s5 = v1;
0x00029978 bal 0x45ce0 | fcn_00045ce0 ();
0x0002997c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029980 beqz v0, 0x299ec | goto label_24;
| }
| label_0:
0x00029984 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x00029988 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 == 0) {
0x0002998c beqz a0, 0x299a0 | goto label_1;
| }
0x00029990 jalr t9 | t9 ();
0x00029994 nop |
0x00029998 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002999c sw zero, 0x38(sp) | *(var_38h_4) = 0;
| do {
| label_1:
0x000299a0 lw fp, 0xd4(s1) | fp = *((s1 + 53));
0x000299a4 lw v0, 0x44(fp) | v0 = *(arg_44h);
| if (v0 == 0) {
0x000299a8 beql v0, zero, 0x29b18 | goto label_25;
| }
0x000299ac lw fp, (fp) | fp = *(fp);
0x000299b0 lw t9, -0x7f84(gp) | t9 = *(gp);
0x000299b4 lw a0, 4(fp) | a0 = *(arg_4h);
0x000299b8 move a1, zero | a1 = 0;
0x000299bc bal 0x43e20 | fcn_00043e20 ();
0x000299c0 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 >= 0) {
0x000299c4 bgez v0, 0x2a088 | goto label_26;
| }
0x000299c8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000299cc lw a0, 0x1cb4(v0) | a0 = *((v0 + 1837));
0x000299d0 lw t0, 0x1cb0(v0) | t0 = *((v0 + 1836));
0x000299d4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000299d8 move v1, a0 | v1 = a0;
0x000299dc sw t0, 0x40(sp) | *(var_48h) = t0;
0x000299e0 sw a0, 0x44(sp) | *(var_4ch) = a0;
0x000299e4 lw fp, -0x5cb8(v0) | fp = *((v0 - 5934));
0x000299e8 b 0x29b34 | goto label_6;
| label_24:
0x000299ec lw fp, 0x38(sp) | fp = *(var_38h_4);
0x000299f0 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x000299f4 beqz fp, 0x299a0 |
| } while (fp == 0);
0x000299f8 jalr t9 | t9 ();
0x000299fc nop |
0x00029a00 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029a04 addiu a2, zero, 3 | a2 = 3;
0x00029a08 move a1, v0 | a1 = v0;
0x00029a0c lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x00029a10 move a0, fp | a0 = fp;
0x00029a14 jalr t9 | t9 ();
0x00029a18 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x00029a1c bnez v0, 0x29984 | goto label_0;
| }
0x00029a20 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00029a24 lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x00029a28 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00029a2c beqz v0, 0x2a68c | goto label_27;
| }
0x00029a30 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00029a34 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00029a38 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._6_failed_to_get_position:__s_n */
0x00029a3c addiu a2, a2, 0x9e0 | a2 += 0x9e0;
0x00029a40 addiu a1, zero, 1 | a1 = 1;
0x00029a44 jalr t9 | t9 ();
0x00029a48 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029a4c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00029a50 move a0, s3 | a0 = s3;
0x00029a54 jalr t9 | t9 ();
0x00029a58 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029a5c sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x00029a60 b 0x299a0 | goto label_1;
| label_23:
0x00029a64 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00029a68 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00029a6c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00029a70 lw a0, (v0) | a0 = *(v0);
| /* str._etc_sysconfig_imagesource_focus_positions.conf */
0x00029a74 addiu a3, s7, -0x6d28 | a3 = s7 + -0x6d28;
| /* str._6_failed_to_open__s_n */
0x00029a78 addiu a2, a2, 0x858 | a2 += 0x858;
0x00029a7c addiu a1, zero, 1 | a1 = 1;
0x00029a80 jalr t9 | t9 ();
0x00029a84 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029a88 move s1, zero | s1 = 0;
| do {
| label_2:
0x00029a8c lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x00029a90 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00029a94 beqz a0, 0x29aa4 |
0x00029a98 jalr t9 | t9 ();
0x00029a9c nop |
0x00029aa0 lw gp, 0x20(sp) | gp = *(var_20h_4);
| }
0x00029aa4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00029aa8 move a0, s1 | a0 = s1;
0x00029aac jalr t9 | t9 ();
0x00029ab0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029ab4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00029ab8 move a0, s2 | a0 = s2;
0x00029abc jalr t9 | t9 ();
0x00029ac0 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (s0 != 0) {
0x00029ac4 beqz s0, 0x29ad8 |
0x00029ac8 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
0x00029acc move a0, s0 | a0 = s0;
0x00029ad0 jalr t9 | t9 ();
0x00029ad4 lw gp, 0x20(sp) | gp = *(var_20h_4);
| }
0x00029ad8 lw a0, 0x5c(sp) | a0 = *(var_64h);
0x00029adc lw v1, (s6) | v1 = *(s6);
0x00029ae0 move v0, zero | v0 = 0;
| if (a0 != v1) {
0x00029ae4 bne a0, v1, 0x2a7b8 | goto label_28;
| }
0x00029ae8 lw ra, 0x84(sp) | ra = *(var_24h_3);
0x00029aec lw fp, 0x80(sp) | fp = *(var_20h_2);
0x00029af0 lw s7, 0x7c(sp) | s7 = *(var_1ch_3);
0x00029af4 lw s6, 0x78(sp) | s6 = *(var_18h);
0x00029af8 lw s5, 0x74(sp) | s5 = *(var_7ch);
0x00029afc lw s4, 0x70(sp) | s4 = *(var_10h_3);
0x00029b00 lw s3, 0x6c(sp) | s3 = *(var_74h);
0x00029b04 lw s2, 0x68(sp) | s2 = *(var_70h);
0x00029b08 lw s1, 0x64(sp) | s1 = *(var_6ch);
0x00029b0c lw s0, 0x60(sp) | s0 = *(var_68h);
0x00029b10 addiu sp, sp, 0x88 |
0x00029b14 jr ra | return v0;
| label_25:
0x00029b18 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00029b1c move a0, fp | a0 = fp;
0x00029b20 bal 0x47140 | fcn_00047140 ();
0x00029b24 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029b28 move t0, v0 | t0 = v0;
0x00029b2c sw v0, 0x40(sp) | *(var_48h) = v0;
0x00029b30 sw v1, 0x44(sp) | *(var_4ch) = v1;
| label_6:
0x00029b34 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00029b38 move a0, s4 | a0 = s4;
0x00029b3c move a1, s5 | a1 = s5;
0x00029b40 sw v1, 0x34(sp) | *(var_3ch_3) = v1;
0x00029b44 sw t0, 0x30(sp) | *(var_38h_3) = t0;
0x00029b48 bal 0x47280 | fcn_00047280 ();
0x00029b4c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029b50 lw v1, 0x34(sp) | v1 = *(var_3ch_3);
0x00029b54 lw t0, 0x30(sp) | t0 = *(var_38h_3);
0x00029b58 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x00029b5c lw v1, 0x28(sp) | v1 = *(var_30h_3);
0x00029b60 lw t9, -0x794c(gp) | t9 = sym.imp.g_key_file_set_double;
0x00029b64 sw t0, 0x10(sp) | *(var_18h_3) = t0;
0x00029b68 addiu a2, v1, -0x1d60 | a2 = v1 + -aav.0x00001d60;
0x00029b6c move a1, s2 | a1 = s2;
0x00029b70 move a0, s0 | a0 = s0;
0x00029b74 move s5, v0 | s5 = v0;
0x00029b78 jalr t9 | t9 ();
0x00029b7c lw s4, 0xd4(s1) | s4 = *((s1 + 53));
0x00029b80 lw v0, 0x44(s4) | v0 = *((s4 + 17));
0x00029b84 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x00029b88 bnez v0, 0x29fa0 | goto label_29;
| }
0x00029b8c lw t9, -0x7f40(gp) | t9 = *(gp);
0x00029b90 move a1, fp | a1 = fp;
0x00029b94 move a0, s5 | a0 = s5;
0x00029b98 bal 0x43d90 | fcn_00043d90 ();
0x00029b9c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029ba0 sltu fp, zero, v0 | fp = (0 < v0) ? 1 : 0;
| label_5:
0x00029ba4 lw v0, 0x60(s4) | v0 = *((s4 + 24));
0x00029ba8 lw s4, -0x7fd8(gp) | s4 = *(gp);
| if (v0 != 0) {
0x00029bac bnez v0, 0x29ec0 | goto label_30;
| }
| label_4:
0x00029bb0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00029bb4 addiu a0, zero, 0xb | a0 = 0xb;
0x00029bb8 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00029bbc lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x00029bc0 bnez v0, 0x29cac | goto label_31;
| }
| label_3:
0x00029bc4 move s1, zero | s1 = 0;
0x00029bc8 beqz fp, 0x29a8c |
| } while (fp == 0);
0x00029bcc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00029bd0 lw t9, -0x7864(gp) | t9 = sym.imp.g_io_channel_new_file;
0x00029bd4 addiu v0, zero, -1 | v0 = -1;
0x00029bd8 move a2, s3 | a2 = s3;
0x00029bdc addiu a1, a1, -0x3ac8 | a1 += -0x3ac8;
| /* str._etc_sysconfig_imagesource_focus_positions.conf */
0x00029be0 addiu a0, s7, -0x6d28 | a0 = s7 + -0x6d28;
0x00029be4 sw v0, 0x3c(sp) | *(var_44h_2) = v0;
0x00029be8 sw zero, 0x4c(sp) | *(var_4ch_2) = 0;
0x00029bec jalr t9 | t9 ();
0x00029bf0 move s4, v0 | s4 = v0;
0x00029bf4 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029bf8 beqz v0, 0x2a2ac | goto label_32;
| }
0x00029bfc lw t9, -0x775c(gp) | t9 = sym.imp.g_io_channel_set_encoding;
0x00029c00 move a2, zero | a2 = 0;
0x00029c04 move a1, zero | a1 = 0;
0x00029c08 move a0, v0 | a0 = v0;
0x00029c0c jalr t9 | t9 ();
0x00029c10 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029c14 move a2, zero | a2 = 0;
0x00029c18 addiu a1, sp, 0x3c | a1 = sp + 0x3c;
0x00029c1c lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x00029c20 move a0, s0 | a0 = s0;
0x00029c24 jalr t9 | t9 ();
0x00029c28 move s1, v0 | s1 = v0;
0x00029c2c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029c30 beqz v0, 0x2a664 | goto label_33;
| }
0x00029c34 lw t9, -0x7910(gp) | t9 = sym.imp.g_io_channel_write_chars;
0x00029c38 lw a2, 0x3c(sp) | a2 = *(var_44h_2);
0x00029c3c sw s3, 0x10(sp) | *(var_18h_3) = s3;
0x00029c40 addiu a3, sp, 0x4c | a3 = sp + 0x4c;
0x00029c44 move a1, v0 | a1 = v0;
0x00029c48 move a0, s4 | a0 = s4;
0x00029c4c jalr t9 | t9 ();
0x00029c50 addiu v1, zero, 1 | v1 = 1;
0x00029c54 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == v1) {
0x00029c58 beq v0, v1, 0x29c98 | goto label_22;
| }
0x00029c5c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00029c60 lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x00029c64 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00029c68 beqz v0, 0x2a588 | void (*0x2a588)() ();
| }
| label_22:
0x00029c98 lw t9, -0x7b14(gp) | t9 = sym.imp.g_io_channel_unref;
0x00029c9c move a0, s4 | a0 = s4;
0x00029ca0 jalr t9 | t9 ();
0x00029ca4 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029ca8 b 0x29a8c | goto label_2;
| label_31:
0x00029cac lw s5, -0x7fd8(gp) | s5 = *(gp);
0x00029cb0 lw t9, -0x7840(gp) | t9 = sym.imp.g_key_file_get_double;
0x00029cb4 move a3, s3 | a3 = s3;
| /* str.NightPos */
0x00029cb8 addiu a2, s5, 0x738 | a2 = s5 + 0x738;
0x00029cbc move a1, s2 | a1 = s2;
0x00029cc0 move a0, s0 | a0 = s0;
0x00029cc4 jalr t9 | t9 ();
0x00029cc8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029ccc sw v0, 0x28(sp) | *(var_30h_3) = v0;
0x00029cd0 sw v1, 0x2c(sp) | *(var_34h_3) = v1;
0x00029cd4 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00029cd8 move a2, zero | a2 = 0;
0x00029cdc move a3, zero | a3 = 0;
0x00029ce0 move a0, v0 | a0 = v0;
0x00029ce4 move a1, v1 | a1 = v1;
0x00029ce8 bal 0x45ce0 | fcn_00045ce0 ();
0x00029cec lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029cf0 beqz v0, 0x2a234 | goto label_34;
| }
| label_12:
0x00029cf4 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x00029cf8 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00029cfc beqz a0, 0x29d10 |
0x00029d00 jalr t9 | t9 ();
0x00029d04 nop |
0x00029d08 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029d0c sw zero, 0x38(sp) | *(var_38h_4) = 0;
| }
| label_11:
0x00029d10 lw s4, 0xd4(s1) | s4 = *((s1 + 53));
0x00029d14 lw v0, 0x44(s4) | v0 = *((s4 + 17));
0x00029d18 lw a0, 0x18(s4) | a0 = *((s4 + 6));
| if (v0 == 0) {
0x00029d1c beqz v0, 0x2a308 | goto label_35;
| }
0x00029d20 lw t9, -0x7f84(gp) | t9 = *(gp);
0x00029d24 move a1, zero | a1 = 0;
0x00029d28 bal 0x43e20 | fcn_00043e20 ();
0x00029d2c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 >= 0) {
0x00029d30 bgez v0, 0x2a5ac | goto label_36;
| }
0x00029d34 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00029d38 lw a0, 0x1cb4(v0) | a0 = *((v0 + 1837));
0x00029d3c lw t0, 0x1cb0(v0) | t0 = *((v0 + 1836));
0x00029d40 sw a0, 0x44(sp) | *(var_4ch) = a0;
0x00029d44 sw t0, 0x40(sp) | *(var_48h) = t0;
0x00029d48 move s4, a0 | s4 = a0;
| label_15:
0x00029d4c addiu fp, zero, 1 | fp = 1;
| if (fp != 0) {
0x00029d50 bnel fp, zero, 0x29da8 |
0x00029d54 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00029d58 lw a0, 0x28(sp) | a0 = *(var_30h_3);
0x00029d5c lw a1, 0x2c(sp) | a1 = *(var_34h_3);
0x00029d60 sw t0, 0x30(sp) | *(var_38h_3) = t0;
0x00029d64 bal 0x47280 | fcn_00047280 ();
0x00029d68 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029d6c lw t0, 0x30(sp) | t0 = *(var_38h_3);
0x00029d70 move a1, s4 | a1 = s4;
0x00029d74 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00029d78 move a0, t0 | a0 = t0;
0x00029d7c sw t0, 0x28(sp) | *(var_30h_3) = t0;
0x00029d80 move fp, v0 | fp = v0;
0x00029d84 bal 0x47280 | fcn_00047280 ();
0x00029d88 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029d8c move a0, fp | a0 = fp;
0x00029d90 lw t9, -0x7f40(gp) | t9 = *(gp);
0x00029d94 move a1, v0 | a1 = v0;
0x00029d98 bal 0x43d90 | fcn_00043d90 ();
0x00029d9c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029da0 lw t0, 0x28(sp) | t0 = *(var_30h_3);
0x00029da4 sltu fp, zero, v0 | fp = (0 < v0) ? 1 : 0;
| }
0x00029da8 lw t9, -0x794c(gp) | t9 = sym.imp.g_key_file_set_double;
0x00029dac sw t0, 0x10(sp) | *(var_18h_3) = t0;
0x00029db0 sw s4, 0x14(sp) | *(var_14h_2) = s4;
| /* str.NightPos */
0x00029db4 addiu a2, s5, 0x738 | a2 = s5 + 0x738;
0x00029db8 move a1, s2 | a1 = s2;
0x00029dbc move a0, s0 | a0 = s0;
0x00029dc0 jalr t9 | t9 ();
0x00029dc4 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x00029dc8 lw v1, 0x44(v0) | v1 = *((v0 + 17));
0x00029dcc lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v1 != 0) {
0x00029dd0 bnez v1, 0x2a32c | goto label_37;
| }
| label_16:
0x00029dd4 lw v0, 0x60(v0) | v0 = *((v0 + 24));
0x00029dd8 lw s4, -0x7fd8(gp) | s4 = *(gp);
| if (v0 == 0) {
0x00029ddc beqz v0, 0x29bc4 | goto label_3;
| }
0x00029de0 lw t9, -0x7840(gp) | t9 = sym.imp.g_key_file_get_double;
0x00029de4 move a3, s3 | a3 = s3;
| /* str.NightPosTemp */
0x00029de8 addiu a2, s4, 0x728 | a2 = s4 + 0x728;
0x00029dec move a1, s2 | a1 = s2;
0x00029df0 move a0, s0 | a0 = s0;
0x00029df4 jalr t9 | t9 ();
0x00029df8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029dfc sw v0, 0x28(sp) | *(var_30h_3) = v0;
0x00029e00 sw v1, 0x2c(sp) | *(var_34h_3) = v1;
0x00029e04 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00029e08 move a2, zero | a2 = 0;
0x00029e0c move a3, zero | a3 = 0;
0x00029e10 move a0, v0 | a0 = v0;
0x00029e14 move a1, v1 | a1 = v1;
0x00029e18 bal 0x45ce0 | fcn_00045ce0 ();
0x00029e1c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029e20 beqz v0, 0x2a45c | goto label_38;
| }
| label_18:
0x00029e24 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x00029e28 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00029e2c beqz a0, 0x29e40 |
0x00029e30 jalr t9 | t9 ();
0x00029e34 nop |
0x00029e38 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029e3c sw zero, 0x38(sp) | *(var_38h_4) = 0;
| }
| label_17:
0x00029e40 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x00029e44 lw s1, 0x24(v0) | s1 = *((v0 + 9));
| if (fp != 0) {
0x00029e48 bnez fp, 0x2a65c | goto label_39;
| }
0x00029e4c lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00029e50 move a0, s1 | a0 = s1;
0x00029e54 bal 0x44980 | fcn_00044980 ();
0x00029e58 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029e5c lw a0, 0x28(sp) | a0 = *(var_30h_3);
0x00029e60 lw a1, 0x2c(sp) | a1 = *(var_34h_3);
0x00029e64 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00029e68 move s5, v0 | s5 = v0;
0x00029e6c bal 0x47280 | fcn_00047280 ();
0x00029e70 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029e74 move a1, v0 | a1 = v0;
0x00029e78 lw t9, -0x7f40(gp) | t9 = *(gp);
0x00029e7c move a0, s5 | a0 = s5;
0x00029e80 bal 0x43d90 | fcn_00043d90 ();
0x00029e84 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029e88 sltu fp, zero, v0 | fp = (0 < v0) ? 1 : 0;
| label_21:
0x00029e8c lw t9, -0x7ec4(gp) | t9 = *(gp);
0x00029e90 move a0, s1 | a0 = s1;
0x00029e94 bal 0x46fc0 | fcn_00046fc0 ();
0x00029e98 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029e9c sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x00029ea0 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x00029ea4 lw t9, -0x794c(gp) | t9 = sym.imp.g_key_file_set_double;
| /* str.NightPosTemp */
0x00029ea8 addiu a2, s4, 0x728 | a2 = s4 + 0x728;
0x00029eac move a1, s2 | a1 = s2;
0x00029eb0 move a0, s0 | a0 = s0;
0x00029eb4 jalr t9 | t9 ();
0x00029eb8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029ebc b 0x29bc4 | goto label_3;
| label_30:
0x00029ec0 lw t9, -0x7840(gp) | t9 = sym.imp.g_key_file_get_double;
0x00029ec4 move a3, s3 | a3 = s3;
| /* str.PosTemp */
0x00029ec8 addiu a2, s4, 0x70c | a2 = s4 + 0x70c;
0x00029ecc move a1, s2 | a1 = s2;
0x00029ed0 move a0, s0 | a0 = s0;
0x00029ed4 jalr t9 | t9 ();
0x00029ed8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029edc sw v0, 0x28(sp) | *(var_30h_3) = v0;
0x00029ee0 sw v1, 0x2c(sp) | *(var_34h_3) = v1;
0x00029ee4 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00029ee8 move a2, zero | a2 = 0;
0x00029eec move a3, zero | a3 = 0;
0x00029ef0 move a0, v0 | a0 = v0;
0x00029ef4 move a1, v1 | a1 = v1;
0x00029ef8 bal 0x45ce0 | fcn_00045ce0 ();
0x00029efc lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029f00 beqz v0, 0x2a1bc | goto label_40;
| }
| label_10:
0x00029f04 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x00029f08 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x00029f0c beqz a0, 0x29f20 |
0x00029f10 jalr t9 | t9 ();
0x00029f14 nop |
0x00029f18 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029f1c sw zero, 0x38(sp) | *(var_38h_4) = 0;
| }
| label_9:
0x00029f20 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x00029f24 lw s5, 0x10(v0) | s5 = *((v0 + 4));
| if (fp != 0) {
0x00029f28 bnez fp, 0x2a300 | goto label_41;
| }
0x00029f2c lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00029f30 move a0, s5 | a0 = s5;
0x00029f34 bal 0x44980 | fcn_00044980 ();
0x00029f38 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029f3c lw a0, 0x28(sp) | a0 = *(var_30h_3);
0x00029f40 lw a1, 0x2c(sp) | a1 = *(var_34h_3);
0x00029f44 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00029f48 move fp, v0 | fp = v0;
0x00029f4c bal 0x47280 | fcn_00047280 ();
0x00029f50 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029f54 move a0, fp | a0 = fp;
0x00029f58 lw t9, -0x7f40(gp) | t9 = *(gp);
0x00029f5c move a1, v0 | a1 = v0;
0x00029f60 bal 0x43d90 | fcn_00043d90 ();
0x00029f64 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029f68 sltu fp, zero, v0 | fp = (0 < v0) ? 1 : 0;
| label_14:
0x00029f6c lw t9, -0x7ec4(gp) | t9 = *(gp);
0x00029f70 move a0, s5 | a0 = s5;
0x00029f74 bal 0x46fc0 | fcn_00046fc0 ();
0x00029f78 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029f7c sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x00029f80 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x00029f84 lw t9, -0x794c(gp) | t9 = sym.imp.g_key_file_set_double;
| /* str.PosTemp */
0x00029f88 addiu a2, s4, 0x70c | a2 = s4 + 0x70c;
0x00029f8c move a1, s2 | a1 = s2;
0x00029f90 move a0, s0 | a0 = s0;
0x00029f94 jalr t9 | t9 ();
0x00029f98 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029f9c b 0x29bb0 | goto label_4;
| label_29:
0x00029fa0 lw s4, -0x7fd8(gp) | s4 = *(gp);
0x00029fa4 lw t9, -0x7840(gp) | t9 = sym.imp.g_key_file_get_double;
0x00029fa8 move a3, s3 | a3 = s3;
| /* str.TraceZoomPos */
0x00029fac addiu a2, s4, 0x6fc | a2 = s4 + 0x6fc;
0x00029fb0 move a1, s2 | a1 = s2;
0x00029fb4 move a0, s0 | a0 = s0;
0x00029fb8 jalr t9 | t9 ();
0x00029fbc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x00029fc0 sw v0, 0x28(sp) | *(var_30h_3) = v0;
0x00029fc4 sw v1, 0x2c(sp) | *(var_34h_3) = v1;
0x00029fc8 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00029fcc move a2, zero | a2 = 0;
0x00029fd0 move a3, zero | a3 = 0;
0x00029fd4 move a0, v0 | a0 = v0;
0x00029fd8 move a1, v1 | a1 = v1;
0x00029fdc bal 0x45ce0 | fcn_00045ce0 ();
0x00029fe0 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x00029fe4 beqz v0, 0x2a140 | goto label_42;
| }
| label_7:
0x00029fe8 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x00029fec lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 == 0) {
0x00029ff0 beqz a0, 0x2a004 | goto label_8;
| }
0x00029ff4 jalr t9 | t9 ();
0x00029ff8 nop |
0x00029ffc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a000 sw zero, 0x38(sp) | *(var_38h_4) = 0;
| do {
| label_8:
0x0002a004 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x0002a008 lw t9, -0x7f40(gp) | t9 = *(gp);
0x0002a00c move a0, s5 | a0 = s5;
0x0002a010 move a1, fp | a1 = fp;
0x0002a014 lw s5, 0xc(v0) | s5 = *((v0 + 3));
0x0002a018 bal 0x43d90 | fcn_00043d90 ();
0x0002a01c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x0002a020 bnez v0, 0x2a2f8 | goto label_43;
| }
0x0002a024 lw t9, -0x7f18(gp) | t9 = *(gp);
0x0002a028 lw a0, 0x28(sp) | a0 = *(var_30h_3);
0x0002a02c lw a1, 0x2c(sp) | a1 = *(var_34h_3);
0x0002a030 bal 0x47280 | fcn_00047280 ();
0x0002a034 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a038 move a1, s5 | a1 = s5;
0x0002a03c lw t9, -0x7f40(gp) | t9 = *(gp);
0x0002a040 move a0, v0 | a0 = v0;
0x0002a044 bal 0x43d90 | fcn_00043d90 ();
0x0002a048 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a04c sltu fp, zero, v0 | fp = (0 < v0) ? 1 : 0;
| label_13:
0x0002a050 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002a054 move a0, s5 | a0 = s5;
0x0002a058 bal 0x47140 | fcn_00047140 ();
0x0002a05c lw gp, 0x20(sp) | gp = *(var_20h_4);
| /* str.TraceZoomPos */
0x0002a060 addiu a2, s4, 0x6fc | a2 = s4 + 0x6fc;
0x0002a064 sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x0002a068 lw t9, -0x794c(gp) | t9 = sym.imp.g_key_file_set_double;
0x0002a06c sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x0002a070 move a1, s2 | a1 = s2;
0x0002a074 move a0, s0 | a0 = s0;
0x0002a078 jalr t9 | t9 ();
0x0002a07c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a080 lw s4, 0xd4(s1) | s4 = *((s1 + 53));
0x0002a084 b 0x29ba4 | goto label_5;
| label_26:
0x0002a088 lw t9, -0x7f50(gp) | t9 = *(gp);
0x0002a08c addiu a3, sp, 0x4c | a3 = sp + 0x4c;
0x0002a090 lw a1, 0xc(fp) | a1 = *(arg_ch);
0x0002a094 move a2, a3 | a2 = a3;
0x0002a098 sw a3, 0x30(sp) | *(var_38h_3) = a3;
| /* fcn.000273b0 */
0x0002a09c addiu t9, t9, 0x73b0 | t9 += 0x73b0;
0x0002a0a0 move a0, s1 | a0 = s1;
0x0002a0a4 bal 0x273b0 | fcn_000273b0 ();
0x0002a0a8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a0ac lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x0002a0b0 addiu v1, sp, 0x40 | v1 = sp + 0x40;
0x0002a0b4 sw v1, 0x18(sp) | *(var_20h_3) = v1;
0x0002a0b8 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002a0bc lw fp, -0x7fd8(gp) | fp = *(gp);
0x0002a0c0 lw a0, 4(v0) | a0 = *((v0 + 1));
0x0002a0c4 bal 0x47140 | fcn_00047140 ();
0x0002a0c8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a0cc lw a3, 0x30(sp) | a3 = *(var_38h_3);
0x0002a0d0 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x0002a0d4 lw t9, -0x7eec(gp) | t9 = *(gp);
0x0002a0d8 move a1, a3 | a1 = a3;
0x0002a0dc addiu a2, zero, 1 | a2 = 1;
0x0002a0e0 move a0, s1 | a0 = s1;
| /* fcn.00028dd4 */
0x0002a0e4 addiu t9, t9, -0x722c | t9 += -0x722c;
0x0002a0e8 sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x0002a0ec bal 0x28dd4 | fcn_00028dd4 ();
0x0002a0f0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a0f4 lw v1, 0x44(sp) | v1 = *(var_4ch);
0x0002a0f8 lw t0, 0x40(sp) | t0 = *(var_48h);
0x0002a0fc lw a2, -0xfb0(fp) | a2 = *(var_fb0h);
0x0002a100 lw t9, -0x7d30(gp) | t9 = *(gp);
0x0002a104 lw a3, -0xfac(fp) | a3 = *(var_fach);
0x0002a108 move a0, t0 | a0 = t0;
0x0002a10c sw t0, 0x34(sp) | *(var_3ch_3) = t0;
0x0002a110 move a1, v1 | a1 = v1;
0x0002a114 sw v1, 0x30(sp) | *(var_38h_3) = v1;
0x0002a118 bal 0x45d80 | fcn_00045d80 ();
0x0002a11c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 <= 0) {
0x0002a120 blez v0, 0x2a400 | goto label_44;
| }
0x0002a124 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002a128 lw t0, -0xfb0(fp) | t0 = *(var_fb0h);
0x0002a12c lw v1, -0xfac(fp) | v1 = *(var_fach);
0x0002a130 sw t0, 0x40(sp) | *(var_48h) = t0;
0x0002a134 lw fp, -0x5cbc(v0) | fp = *((v0 - 5935));
0x0002a138 sw v1, 0x44(sp) | *(var_4ch) = v1;
0x0002a13c b 0x29b34 | goto label_6;
| label_42:
0x0002a140 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x0002a144 sw a0, 0x30(sp) | *(var_38h_3) = a0;
0x0002a148 beqz a0, 0x2a004 |
| } while (a0 == 0);
0x0002a14c lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x0002a150 jalr t9 | t9 ();
0x0002a154 nop |
0x0002a158 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a15c lw a0, 0x30(sp) | a0 = *(var_38h_3);
0x0002a160 addiu a2, zero, 3 | a2 = 3;
0x0002a164 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0002a168 move a1, v0 | a1 = v0;
0x0002a16c jalr t9 | t9 ();
0x0002a170 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x0002a174 bnez v0, 0x29fe8 | goto label_7;
| }
0x0002a178 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002a17c lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x0002a180 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002a184 beqz v0, 0x2a718 | goto label_45;
| }
0x0002a188 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a18c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002a190 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._6_failed_to_get_trace_zoom_position:__s_n */
0x0002a194 addiu a2, a2, 0xa1c | a2 += 0xa1c;
0x0002a198 addiu a1, zero, 1 | a1 = 1;
0x0002a19c jalr t9 | t9 ();
0x0002a1a0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a1a4 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0002a1a8 move a0, s3 | a0 = s3;
0x0002a1ac jalr t9 | t9 ();
0x0002a1b0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a1b4 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a1b8 b 0x2a004 | goto label_8;
| label_40:
0x0002a1bc lw s5, 0x38(sp) | s5 = *(var_38h_4);
0x0002a1c0 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
| if (s5 == 0) {
0x0002a1c4 beqz s5, 0x29f20 | goto label_9;
| }
0x0002a1c8 jalr t9 | t9 ();
0x0002a1cc nop |
0x0002a1d0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a1d4 addiu a2, zero, 3 | a2 = 3;
0x0002a1d8 move a1, v0 | a1 = v0;
0x0002a1dc lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0002a1e0 move a0, s5 | a0 = s5;
0x0002a1e4 jalr t9 | t9 ();
0x0002a1e8 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x0002a1ec bnez v0, 0x29f04 | goto label_10;
| }
0x0002a1f0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002a1f4 lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x0002a1f8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002a1fc beqz v0, 0x2a740 | goto label_46;
| }
0x0002a200 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a204 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002a208 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._6_failed_to_get_position_temperature:__s_n */
0x0002a20c addiu a2, a2, 0xa70 | a2 += aav.0x00000a70;
0x0002a210 addiu a1, zero, 1 | a1 = 1;
0x0002a214 jalr t9 | t9 ();
0x0002a218 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a21c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0002a220 move a0, s3 | a0 = s3;
0x0002a224 jalr t9 | t9 ();
0x0002a228 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a22c sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a230 b 0x29f20 | goto label_9;
| label_34:
0x0002a234 lw s4, 0x38(sp) | s4 = *(var_38h_4);
0x0002a238 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
| if (s4 == 0) {
0x0002a23c beqz s4, 0x29d10 | goto label_11;
| }
0x0002a240 jalr t9 | t9 ();
0x0002a244 nop |
0x0002a248 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a24c addiu a2, zero, 3 | a2 = 3;
0x0002a250 move a1, v0 | a1 = v0;
0x0002a254 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0002a258 move a0, s4 | a0 = s4;
0x0002a25c jalr t9 | t9 ();
0x0002a260 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x0002a264 bnez v0, 0x29cf4 | goto label_12;
| }
0x0002a268 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002a26c lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x0002a270 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002a274 beqz v0, 0x2a6f0 | goto label_47;
| }
0x0002a278 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a27c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002a280 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._6_failed_to_get_night_position:__s_n */
0x0002a284 addiu a2, a2, 0xac4 | a2 += 0xac4;
0x0002a288 addiu a1, zero, 1 | a1 = 1;
0x0002a28c jalr t9 | t9 ();
0x0002a290 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a294 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0002a298 move a0, s3 | a0 = s3;
0x0002a29c jalr t9 | t9 ();
0x0002a2a0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a2a4 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a2a8 b 0x29d10 | goto label_11;
| label_32:
0x0002a2ac lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002a2b0 lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x0002a2b4 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002a2b8 beqz v0, 0x2a564 | goto label_48;
| }
0x0002a2bc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a2c0 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0002a2c4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._etc_sysconfig_imagesource_focus_positions.conf */
0x0002a2c8 addiu a3, s7, -0x6d28 | a3 = s7 + -0x6d28;
| /* str._3_Could_not_open_file__s:__s_n */
0x0002a2cc addiu a2, a2, 0x888 | a2 += 0x888;
0x0002a2d0 addiu a1, zero, 1 | a1 = 1;
0x0002a2d4 sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x0002a2d8 jalr t9 | t9 ();
0x0002a2dc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a2e0 move a0, s3 | a0 = s3;
0x0002a2e4 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0002a2e8 move s1, zero | s1 = 0;
0x0002a2ec jalr t9 | t9 ();
0x0002a2f0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a2f4 b 0x29a8c | goto label_2;
| label_43:
0x0002a2f8 addiu fp, zero, 1 | fp = 1;
0x0002a2fc b 0x2a050 | goto label_13;
| label_41:
0x0002a300 addiu fp, zero, 1 | fp = 1;
0x0002a304 b 0x29f6c | goto label_14;
| label_35:
0x0002a308 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002a30c bal 0x47140 | fcn_00047140 ();
0x0002a310 nop |
0x0002a314 move t0, v0 | t0 = v0;
0x0002a318 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a31c move s4, v1 | s4 = v1;
0x0002a320 sw v0, 0x40(sp) | *(var_48h) = v0;
0x0002a324 sw v1, 0x44(sp) | *(var_4ch) = v1;
0x0002a328 b 0x29d4c | goto label_15;
| label_37:
0x0002a32c lw s4, -0x7fd8(gp) | s4 = *(gp);
0x0002a330 lw t9, -0x7840(gp) | t9 = sym.imp.g_key_file_get_double;
0x0002a334 move a3, s3 | a3 = s3;
| /* str.NightTraceZoomPos */
0x0002a338 addiu a2, s4, 0x714 | a2 = s4 + 0x714;
0x0002a33c move a1, s2 | a1 = s2;
0x0002a340 move a0, s0 | a0 = s0;
0x0002a344 jalr t9 | t9 ();
0x0002a348 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a34c sw v0, 0x28(sp) | *(var_30h_3) = v0;
0x0002a350 sw v1, 0x2c(sp) | *(var_34h_3) = v1;
0x0002a354 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x0002a358 move a2, zero | a2 = 0;
0x0002a35c move a3, zero | a3 = 0;
0x0002a360 move a0, v0 | a0 = v0;
0x0002a364 move a1, v1 | a1 = v1;
0x0002a368 bal 0x45ce0 | fcn_00045ce0 ();
0x0002a36c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x0002a370 beqz v0, 0x2a4d4 | goto label_49;
| }
| label_20:
0x0002a374 lw a0, 0x38(sp) | a0 = *(var_38h_4);
0x0002a378 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
| if (a0 != 0) {
0x0002a37c beqz a0, 0x2a390 |
0x0002a380 jalr t9 | t9 ();
0x0002a384 nop |
0x0002a388 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a38c sw zero, 0x38(sp) | *(var_38h_4) = 0;
| }
| label_19:
0x0002a390 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x0002a394 lw s5, 0x20(v0) | s5 = *((v0 + 8));
| if (fp == 0) {
0x0002a398 bnez fp, 0x2a3c8 |
0x0002a39c lw t9, -0x7f18(gp) | t9 = *(gp);
0x0002a3a0 lw a0, 0x28(sp) | a0 = *(var_30h_3);
0x0002a3a4 lw a1, 0x2c(sp) | a1 = *(var_34h_3);
0x0002a3a8 bal 0x47280 | fcn_00047280 ();
0x0002a3ac lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a3b0 move a1, s5 | a1 = s5;
0x0002a3b4 lw t9, -0x7f40(gp) | t9 = *(gp);
0x0002a3b8 move a0, v0 | a0 = v0;
0x0002a3bc bal 0x43d90 | fcn_00043d90 ();
0x0002a3c0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a3c4 sltu fp, zero, v0 | fp = (0 < v0) ? 1 : 0;
| }
0x0002a3c8 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002a3cc move a0, s5 | a0 = s5;
0x0002a3d0 bal 0x47140 | fcn_00047140 ();
0x0002a3d4 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a3d8 sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x0002a3dc sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x0002a3e0 lw t9, -0x794c(gp) | t9 = sym.imp.g_key_file_set_double;
| /* str.NightTraceZoomPos */
0x0002a3e4 addiu a2, s4, 0x714 | a2 = s4 + 0x714;
0x0002a3e8 move a1, s2 | a1 = s2;
0x0002a3ec move a0, s0 | a0 = s0;
0x0002a3f0 jalr t9 | t9 ();
0x0002a3f4 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a3f8 lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x0002a3fc b 0x29dd4 | goto label_16;
| label_44:
0x0002a400 lw t0, 0x34(sp) | t0 = *(var_3ch_3);
0x0002a404 lw v1, 0x30(sp) | v1 = *(var_38h_3);
0x0002a408 lw t9, -0x7dd8(gp) | t9 = *(gp);
0x0002a40c move a0, t0 | a0 = t0;
0x0002a410 move a1, v1 | a1 = v1;
0x0002a414 move a2, zero | a2 = 0;
0x0002a418 move a3, zero | a3 = 0;
0x0002a41c bal 0x45ed0 | fcn_00045ed0 ();
0x0002a420 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 < 0) {
0x0002a424 bltz v0, 0x2a54c | goto label_50;
| }
0x0002a428 lw t0, 0x34(sp) | t0 = *(var_3ch_3);
0x0002a42c lw v1, 0x30(sp) | v1 = *(var_38h_3);
0x0002a430 lw t9, -0x7f18(gp) | t9 = *(gp);
0x0002a434 move a0, t0 | a0 = t0;
0x0002a438 move a1, v1 | a1 = v1;
0x0002a43c bal 0x47280 | fcn_00047280 ();
0x0002a440 lw v1, 0x30(sp) | v1 = *(var_38h_3);
0x0002a444 lw t0, 0x34(sp) | t0 = *(var_3ch_3);
0x0002a448 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a44c move fp, v0 | fp = v0;
0x0002a450 sw t0, 0x40(sp) | *(var_48h) = t0;
0x0002a454 sw v1, 0x44(sp) | *(var_4ch) = v1;
0x0002a458 b 0x29b34 | goto label_6;
| label_38:
0x0002a45c lw s5, 0x38(sp) | s5 = *(var_38h_4);
0x0002a460 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
| if (s5 == 0) {
0x0002a464 beqz s5, 0x29e40 | goto label_17;
| }
0x0002a468 jalr t9 | t9 ();
0x0002a46c nop |
0x0002a470 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a474 addiu a2, zero, 3 | a2 = 3;
0x0002a478 move a1, v0 | a1 = v0;
0x0002a47c lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0002a480 move a0, s5 | a0 = s5;
0x0002a484 jalr t9 | t9 ();
0x0002a488 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x0002a48c bnez v0, 0x29e24 | goto label_18;
| }
0x0002a490 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002a494 lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x0002a498 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002a49c beqz v0, 0x2a768 | goto label_51;
| }
0x0002a4a0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a4a4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002a4a8 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._6_failed_to_get_night_position_temperature:__s_n */
0x0002a4ac addiu a2, a2, 0xb6c | a2 += 0xb6c;
0x0002a4b0 addiu a1, zero, 1 | a1 = 1;
0x0002a4b4 jalr t9 | t9 ();
0x0002a4b8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a4bc lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0002a4c0 move a0, s3 | a0 = s3;
0x0002a4c4 jalr t9 | t9 ();
0x0002a4c8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a4cc sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a4d0 b 0x29e40 | goto label_17;
| label_49:
0x0002a4d4 lw s5, 0x38(sp) | s5 = *(var_38h_4);
0x0002a4d8 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
| if (s5 == 0) {
0x0002a4dc beqz s5, 0x2a390 | goto label_19;
| }
0x0002a4e0 jalr t9 | t9 ();
0x0002a4e4 nop |
0x0002a4e8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a4ec addiu a2, zero, 3 | a2 = 3;
0x0002a4f0 move a1, v0 | a1 = v0;
0x0002a4f4 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0002a4f8 move a0, s5 | a0 = s5;
0x0002a4fc jalr t9 | t9 ();
0x0002a500 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 != 0) {
0x0002a504 bnez v0, 0x2a374 | goto label_20;
| }
0x0002a508 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002a50c lw v0, 0x38(sp) | v0 = *(var_38h_4);
0x0002a510 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0002a514 beqz v0, 0x2a790 | goto label_52;
| }
0x0002a518 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a51c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002a520 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._6_failed_to_get_night_trace_zoom_position:__s_n */
0x0002a524 addiu a2, a2, 0xb10 | a2 += 0xb10;
0x0002a528 addiu a1, zero, 1 | a1 = 1;
0x0002a52c jalr t9 | t9 ();
0x0002a530 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a534 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0002a538 move a0, s3 | a0 = s3;
0x0002a53c jalr t9 | t9 ();
0x0002a540 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a544 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a548 b 0x2a390 | goto label_19;
| label_50:
0x0002a54c move t0, zero | t0 = 0;
0x0002a550 move v1, zero | v1 = 0;
0x0002a554 move fp, zero | fp = 0;
0x0002a558 sw t0, 0x40(sp) | *(var_48h) = t0;
0x0002a55c sw v1, 0x44(sp) | *(var_4ch) = v1;
0x0002a560 b 0x29b34 | goto label_6;
| label_48:
0x0002a564 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002a568 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._etc_sysconfig_imagesource_focus_positions.conf */
0x0002a56c addiu a3, s7, -0x6d28 | a3 = s7 + -0x6d28;
| /* str._3_Could_not_open_file__s_n */
0x0002a570 addiu a2, a2, 0x8ac | a2 += 0x8ac;
0x0002a574 addiu a1, zero, 1 | a1 = 1;
0x0002a578 jalr t9 | t9 ();
0x0002a57c move s1, zero | s1 = 0;
0x0002a580 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a584 b 0x29a8c | goto label_2;
| label_36:
0x0002a5ac lw t9, -0x7f50(gp) | t9 = *(gp);
0x0002a5b0 lw a1, 0x20(s4) | a1 = *((s4 + 8));
0x0002a5b4 addiu s4, sp, 0x4c | s4 = sp + 0x4c;
0x0002a5b8 move a2, s4 | a2 = s4;
| /* fcn.000273b0 */
0x0002a5bc addiu t9, t9, 0x73b0 | t9 += 0x73b0;
0x0002a5c0 move a0, s1 | a0 = s1;
0x0002a5c4 bal 0x273b0 | fcn_000273b0 ();
0x0002a5c8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a5cc lw v0, 0xd4(s1) | v0 = *((s1 + 53));
0x0002a5d0 addiu v1, sp, 0x40 | v1 = sp + 0x40;
0x0002a5d4 sw v1, 0x18(sp) | *(var_20h_3) = v1;
0x0002a5d8 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x0002a5dc lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002a5e0 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002a5e4 sw v0, 0x30(sp) | *(var_38h_3) = v0;
0x0002a5e8 bal 0x47140 | fcn_00047140 ();
0x0002a5ec lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a5f0 move a1, s4 | a1 = s4;
0x0002a5f4 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x0002a5f8 lw t9, -0x7eec(gp) | t9 = *(gp);
0x0002a5fc addiu a2, zero, 1 | a2 = 1;
0x0002a600 move a0, s1 | a0 = s1;
| /* fcn.00028dd4 */
0x0002a604 addiu t9, t9, -0x722c | t9 += -0x722c;
0x0002a608 sw v0, 0x10(sp) | *(var_18h_3) = v0;
0x0002a60c bal 0x28dd4 | fcn_00028dd4 ();
0x0002a610 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a614 lw t0, 0x40(sp) | t0 = *(var_48h);
0x0002a618 lw s4, 0x44(sp) | s4 = *(var_4ch);
0x0002a61c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002a620 lw t9, -0x7d30(gp) | t9 = *(gp);
0x0002a624 move a0, t0 | a0 = t0;
0x0002a628 lw a2, -0xfb0(v0) | a2 = *((v0 - 1004));
0x0002a62c lw a3, -0xfac(v0) | a3 = *((v0 - 1003));
0x0002a630 sw t0, 0x30(sp) | *(var_38h_3) = t0;
0x0002a634 move a1, s4 | a1 = s4;
0x0002a638 bal 0x45d80 | fcn_00045d80 ();
0x0002a63c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 <= 0) {
0x0002a640 blez v0, 0x2a6b4 | goto label_53;
| }
0x0002a644 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002a648 lw t0, -0xfb0(v0) | t0 = *((v0 - 1004));
0x0002a64c lw s4, -0xfac(v0) | s4 = *((v0 - 1003));
| do {
0x0002a650 sw t0, 0x40(sp) | *(var_48h) = t0;
0x0002a654 sw s4, 0x44(sp) | *(var_4ch) = s4;
0x0002a658 b 0x29d4c | goto label_15;
| label_39:
0x0002a65c addiu fp, zero, 1 | fp = 1;
0x0002a660 b 0x29e8c | goto label_21;
| label_33:
0x0002a664 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0002a668 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a66c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a670 lw a3, (v0) | a3 = *(v0);
0x0002a674 addiu a2, zero, 0x29 | a2 = 0x29;
0x0002a678 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_create_position_store_data._n */
0x0002a67c addiu a0, a0, 0xbd0 | a0 += 0xbd0;
0x0002a680 jalr t9 | t9 ();
0x0002a684 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a688 b 0x29c98 | goto label_22;
| label_27:
0x0002a68c move a3, a0 | a3 = a0;
0x0002a690 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a694 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a698 addiu a2, zero, 0x1a | a2 = 0x1a;
0x0002a69c addiu a1, zero, 1 | a1 = 1;
| /* str._6_failed_to_get_position_n */
0x0002a6a0 addiu a0, a0, 0xa00 | a0 += 0xa00;
0x0002a6a4 jalr t9 | t9 ();
0x0002a6a8 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a6ac sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a6b0 b 0x299a0 | goto label_1;
| label_53:
0x0002a6b4 lw t0, 0x30(sp) | t0 = *(var_38h_3);
0x0002a6b8 lw t9, -0x7dd8(gp) | t9 = *(gp);
0x0002a6bc move a0, t0 | a0 = t0;
0x0002a6c0 move a1, s4 | a1 = s4;
0x0002a6c4 move a2, zero | a2 = 0;
0x0002a6c8 move a3, zero | a3 = 0;
0x0002a6cc bal 0x45ed0 | fcn_00045ed0 ();
0x0002a6d0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a6d4 lw t0, 0x30(sp) | t0 = *(var_38h_3);
0x0002a6d8 bgez v0, 0x2a650 |
| } while (v0 >= 0);
0x0002a6dc move t0, zero | t0 = 0;
0x0002a6e0 move s4, zero | s4 = 0;
0x0002a6e4 sw t0, 0x40(sp) | *(var_48h) = t0;
0x0002a6e8 sw s4, 0x44(sp) | *(var_4ch) = s4;
0x0002a6ec b 0x29d4c | goto label_15;
| label_47:
0x0002a6f0 move a3, a0 | a3 = a0;
0x0002a6f4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a6f8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a6fc addiu a2, zero, 0x20 | a2 = 0x20;
0x0002a700 addiu a1, zero, 1 | a1 = 1;
| /* str._6_failed_to_get_night_position_n */
0x0002a704 addiu a0, a0, 0xaec | a0 += 0xaec;
0x0002a708 jalr t9 | t9 ();
0x0002a70c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a710 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a714 b 0x29d10 | goto label_11;
| label_45:
0x0002a718 move a3, a0 | a3 = a0;
0x0002a71c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a720 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a724 addiu a2, zero, 0x25 | a2 = 0x25;
0x0002a728 addiu a1, zero, 1 | a1 = 1;
| /* str._6_failed_to_get_trace_zoom_position_n */
0x0002a72c addiu a0, a0, 0xa48 | a0 += 0xa48;
0x0002a730 jalr t9 | t9 ();
0x0002a734 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a738 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a73c b 0x2a004 | goto label_8;
| label_46:
0x0002a740 move a3, a0 | a3 = a0;
0x0002a744 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a748 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a74c addiu a2, zero, 0x26 | a2 = 0x26;
0x0002a750 addiu a1, zero, 1 | a1 = 1;
| /* str._6_failed_to_get_position_temperature_n */
0x0002a754 addiu a0, a0, 0xa9c | a0 += 0xa9c;
0x0002a758 jalr t9 | t9 ();
0x0002a75c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a760 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a764 b 0x29f20 | goto label_9;
| label_51:
0x0002a768 move a3, a0 | a3 = a0;
0x0002a76c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a770 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a774 addiu a2, zero, 0x2c | a2 = 0x2c;
0x0002a778 addiu a1, zero, 1 | a1 = 1;
| /* str._6_failed_to_get_night_position_temperature_n */
0x0002a77c addiu a0, a0, 0xba0 | a0 += 0xba0;
0x0002a780 jalr t9 | t9 ();
0x0002a784 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a788 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a78c b 0x29e40 | goto label_17;
| label_52:
0x0002a790 move a3, a0 | a3 = a0;
0x0002a794 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002a798 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0002a79c addiu a2, zero, 0x2b | a2 = 0x2b;
0x0002a7a0 addiu a1, zero, 1 | a1 = 1;
| /* str._6_failed_to_get_night_trace_zoom_position_n */
0x0002a7a4 addiu a0, a0, 0xb40 | a0 += 0xb40;
0x0002a7a8 jalr t9 | t9 ();
0x0002a7ac lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0002a7b0 sw zero, 0x38(sp) | *(var_38h_4) = 0;
0x0002a7b4 b 0x2a390 | goto label_19;
| label_28:
0x0002a7b8 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002a7bc jalr t9 | t9 ();
0x0002a7c0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x2b5b4 */
| #include <stdint.h>
|
; (fcn) fcn.0002b5b4 () | void fcn_0002b5b4 () {
0x0002b5b4 lui gp, 4 |
0x0002b5b8 addiu gp, gp, 0x35cc |
0x0002b5bc addu gp, gp, t9 | gp += t9;
0x0002b5c0 addiu sp, sp, -0x90 |
0x0002b5c4 lw v0, 0xd4(a0) | v0 = *((a0 + 53));
0x0002b5c8 sw s0, 0x68(sp) | *(var_68h) = s0;
0x0002b5cc lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0002b5d0 sw fp, 0x88(sp) | *(var_20h_2) = fp;
0x0002b5d4 lw v1, 0x5c(v0) | v1 = *((v0 + 23));
0x0002b5d8 move fp, a0 | fp = a0;
0x0002b5dc lw a0, (s0) | a0 = *(s0);
0x0002b5e0 sw gp, 0x20(sp) | *(var_20h_3) = gp;
0x0002b5e4 sw ra, 0x8c(sp) | *(var_24h_3) = ra;
0x0002b5e8 sw s7, 0x84(sp) | *(var_1ch_3) = s7;
0x0002b5ec sw s6, 0x80(sp) | *(var_18h) = s6;
0x0002b5f0 sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x0002b5f4 sw s4, 0x78(sp) | *(var_10h_3) = s4;
0x0002b5f8 sw s3, 0x74(sp) | *(var_74h) = s3;
0x0002b5fc sw s2, 0x70(sp) | *(var_70h) = s2;
0x0002b600 sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x0002b604 sw a0, 0x64(sp) | *(var_64h) = a0;
0x0002b608 sw zero, 0x44(sp) | *(var_44h_2) = 0;
0x0002b60c sw zero, 0x48(sp) | *(var_48h) = 0;
| if (v1 != 0) {
0x0002b610 bnez v1, 0x2b658 | goto label_18;
| }
0x0002b614 addiu s1, zero, 1 | s1 = 1;
| do {
| label_0:
0x0002b618 lw a0, 0x64(sp) | a0 = *(var_64h);
0x0002b61c lw v1, (s0) | v1 = *(s0);
0x0002b620 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0002b624 bne a0, v1, 0x2c108 | goto label_19;
| }
0x0002b628 lw ra, 0x8c(sp) | ra = *(var_24h_3);
0x0002b62c lw fp, 0x88(sp) | fp = *(var_20h_2);
0x0002b630 lw s7, 0x84(sp) | s7 = *(var_1ch_3);
0x0002b634 lw s6, 0x80(sp) | s6 = *(var_18h);
0x0002b638 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x0002b63c lw s4, 0x78(sp) | s4 = *(var_10h_3);
0x0002b640 lw s3, 0x74(sp) | s3 = *(var_74h);
0x0002b644 lw s2, 0x70(sp) | s2 = *(var_70h);
0x0002b648 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x0002b64c lw s0, 0x68(sp) | s0 = *(var_68h);
0x0002b650 addiu sp, sp, 0x90 |
0x0002b654 jr ra | return v0;
| label_18:
0x0002b658 sync | __asm ("sync");
0x0002b65c lw v0, 0xf4(v0) | v0 = *((v0 + 61));
0x0002b660 sync | __asm ("sync");
0x0002b664 addiu s1, zero, 1 | s1 = 1;
0x0002b668 bgtz v0, 0x2b618 |
| } while (v0 > 0);
0x0002b66c addiu v0, zero, 2 | v0 = 2;
| if (a1 != 0) {
0x0002b670 bnez a1, 0x2b734 | goto label_20;
| }
| if (v1 == v0) {
0x0002b674 beql v1, v0, 0x2b774 | goto label_21;
| }
0x0002b678 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002b67c move s4, zero | s4 = 0;
| do {
0x0002b680 lw t9, -0x7d00(gp) | t9 = sym.focusd_optics_motorized_lock;
0x0002b684 move a0, fp | a0 = fp;
0x0002b688 bal 0x25184 | sym_focusd_optics_motorized_lock ();
0x0002b68c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b690 move a2, zero | a2 = 0;
0x0002b694 move a1, zero | a1 = 0;
0x0002b698 lw t9, -0x7cfc(gp) | t9 = sym.focusd_optics_acquire_control;
0x0002b69c move a0, fp | a0 = fp;
0x0002b6a0 bal 0x22cc4 | sym_focusd_optics_acquire_control ();
0x0002b6a4 move s1, v0 | s1 = v0;
0x0002b6a8 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 != 0) {
0x0002b6ac beqz v0, 0x2b720 |
0x0002b6b0 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002b6b4 lw v1, 0xdc(v0) | v1 = *((v0 + 55));
0x0002b6b8 lw t9, -0x7fa0(gp) | t9 = *(gp);
| if (v1 != 0) {
0x0002b6bc bnez v1, 0x2bc68 | goto label_22;
| }
| label_5:
0x0002b6c0 lw v1, 0xe4(v0) | v1 = *((v0 + 57));
0x0002b6c4 lw t9, -0x7cb8(gp) | t9 = sym.imaged_get_snr_prop;
| if (v1 != 0) {
0x0002b6c8 bnez v1, 0x2bc0c | goto label_23;
| }
0x0002b6cc lw v1, 0xe0(v0) | v1 = *((v0 + 56));
| label_4:
0x0002b6d0 lw t9, -0x7cb8(gp) | t9 = sym.imaged_get_snr_prop;
| if (v1 != 0) {
0x0002b6d4 bnez v1, 0x2b77c | goto label_24;
| }
0x0002b6d8 addiu s2, sp, 0x58 | s2 = sp + 0x58;
| label_2:
0x0002b6dc lw t9, -0x7cc8(gp) | t9 = sym.focusd_temperature_monitor_get_temperature;
0x0002b6e0 lw a0, 0x54(v0) | a0 = *((v0 + 21));
0x0002b6e4 move a2, s2 | a2 = s2;
0x0002b6e8 addiu a1, sp, 0x50 | a1 = sp + 0x50;
0x0002b6ec bal 0x36e40 | sym_focusd_temperature_monitor_get_temperature ();
0x0002b6f0 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 != 0) {
0x0002b6f4 bnez v0, 0x2b7ec | goto label_25;
| }
| label_1:
0x0002b6f8 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
| label_8:
0x0002b6fc move s1, zero | s1 = 0;
| label_3:
0x0002b700 lw v1, 0xdc(v0) | v1 = *((v0 + 55));
0x0002b704 lw t9, -0x7f80(gp) | t9 = sym.imaged_enable_image_control;
| if (v1 != 0) {
0x0002b708 bnez v1, 0x2bc7c | goto label_26;
| }
| label_6:
0x0002b70c lw t9, -0x7cf8(gp) | t9 = sym.focusd_optics_release_control;
0x0002b710 move a1, zero | a1 = 0;
0x0002b714 move a0, fp | a0 = fp;
0x0002b718 bal 0x22cd4 | sym_focusd_optics_release_control ();
0x0002b71c lw gp, 0x20(sp) | gp = *(var_20h_3);
| }
0x0002b720 lw t9, -0x7cdc(gp) | t9 = sym.focusd_optics_motorized_unlock;
0x0002b724 move a0, fp | a0 = fp;
0x0002b728 bal 0x251d4 | sym_focusd_optics_motorized_unlock ();
0x0002b72c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b730 b 0x2b618 | goto label_0;
| label_20:
0x0002b734 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_malloc0;
0x0002b738 addiu a0, zero, 0x10 | a0 = 0x10;
0x0002b73c jalr t9 | t9 ();
0x0002b740 lw v1, 0xd4(fp) | v1 = *(arg_d4h);
0x0002b744 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b748 lw a0, 0x130(v1) | a0 = *(v1);
0x0002b74c sw zero, 4(v0) | *((v0 + 1)) = 0;
| if (a0 == 0) {
0x0002b750 beqz a0, 0x2bd14 | goto label_27;
| }
0x0002b754 lw t9, -0x7b98(gp) | t9 = sym.imp.g_thread_pool_push;
0x0002b758 sw fp, (v0) | *(v0) = fp;
0x0002b75c move a2, zero | a2 = 0;
0x0002b760 move a1, v0 | a1 = v0;
0x0002b764 jalr t9 | t9 ();
0x0002b768 addiu s1, zero, 1 | s1 = 1;
0x0002b76c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b770 b 0x2b618 | goto label_0;
| label_21:
0x0002b774 lw s4, 0xd8(v0) | s4 = *((v0 + 54));
0x0002b778 b 0x2b680 |
| } while (1);
| label_24:
0x0002b77c lw a0, 0x134(v0) | a0 = *(v0);
0x0002b780 addiu a1, sp, 0x48 | a1 = sp + 0x48;
0x0002b784 sw zero, 0x58(sp) | *(var_58h) = 0;
0x0002b788 bal 0x3981c | sym_imaged_get_snr_prop ();
0x0002b78c lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002b790 beqz v0, 0x2b6f8 | goto label_1;
| }
0x0002b794 lui s3, 1 | s3 = 0x10000;
0x0002b798 addiu s1, zero, 0xa | s1 = 0xa;
0x0002b79c addiu s2, sp, 0x58 | s2 = sp + 0x58;
0x0002b7a0 ori s3, s3, 0x86a0 | s3 |= 0x86a0;
| do {
0x0002b7a4 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002b7a8 lw t9, -0x7cb8(gp) | t9 = sym.imaged_get_snr_prop;
0x0002b7ac move a1, s2 | a1 = s2;
0x0002b7b0 lw a0, 0x134(v0) | a0 = *(v0);
0x0002b7b4 bal 0x3981c | sym_imaged_get_snr_prop ();
0x0002b7b8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b7bc lw a3, 0x58(sp) | a3 = *(var_58h);
| if (v0 == 0) {
0x0002b7c0 beqz v0, 0x2bd2c | goto label_28;
| }
0x0002b7c4 lw v0, 0x48(sp) | v0 = *(var_48h);
0x0002b7c8 lw t9, -0x78c8(gp) | t9 = sym.imp.usleep;
| if (a3 != v0) {
0x0002b7cc bne a3, v0, 0x2bd30 | goto label_29;
| }
0x0002b7d0 move a0, s3 | a0 = s3;
0x0002b7d4 addiu s1, s1, -1 | s1 += -1;
0x0002b7d8 jalr t9 | t9 ();
0x0002b7dc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b7e0 bnez s1, 0x2b7a4 |
| } while (s1 != 0);
0x0002b7e4 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002b7e8 b 0x2b6dc | goto label_2;
| label_25:
0x0002b7ec lw t9, -0x7f88(gp) | t9 = sym.focusd_motor_get_position;
0x0002b7f0 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002b7f4 bal 0x1fb0c | sym_focusd_motor_get_position ();
0x0002b7f8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b7fc lw v1, 0xd4(fp) | v1 = *(arg_d4h);
0x0002b800 move s5, v0 | s5 = v0;
0x0002b804 lw t9, -0x7ee4(gp) | t9 = sym.focusd_temperature_mapper_hillcheck_get_type;
0x0002b808 lw s2, 0x58(v1) | s2 = *((v1 + 22));
0x0002b80c move s6, s5 | s6 = s5;
0x0002b810 bal 0x34f74 | sym_focusd_temperature_mapper_hillcheck_get_type ();
0x0002b814 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b818 lw s1, 0xd4(fp) | s1 = *(arg_d4h);
| if (s2 == 0) {
0x0002b81c beqz s2, 0x2bc8c | goto label_30;
| }
0x0002b820 lw v1, (s2) | v1 = *(s2);
0x0002b824 lw s3, 0x10c(s1) | s3 = *(s1);
| if (v1 != 0) {
0x0002b828 beqz v1, 0x2b838 |
0x0002b82c lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x0002b830 beql v1, v0, 0x2b854 | goto label_31;
| }
0x0002b834 lw v0, 0xec(s1) | v0 = *((s1 + 59));
| }
0x0002b838 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
0x0002b83c move a1, v0 | a1 = v0;
0x0002b840 move a0, s2 | a0 = s2;
0x0002b844 jalr t9 | t9 ();
0x0002b848 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002b84c beqz v0, 0x2bc90 | goto label_32;
| }
0x0002b850 lw v0, 0xec(s1) | v0 = *((s1 + 59));
| label_31:
0x0002b854 lw t9, -0x7f8c(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0002b858 beqz v0, 0x2bc94 | goto label_33;
| }
0x0002b85c addiu v0, zero, 1 | v0 = 1;
| if (s3 != 0) {
0x0002b860 bnez s3, 0x2bc94 | goto label_33;
| }
0x0002b864 move s3, s5 | s3 = s5;
0x0002b868 sw v0, 0x3c(sp) | *(var_3ch_3) = v0;
| label_7:
0x0002b86c lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.00026ef8 */
0x0002b870 addiu t9, t9, 0x6ef8 | t9 += 0x6ef8;
0x0002b874 move a0, fp | a0 = fp;
0x0002b878 bal 0x26ef8 | fcn_00026ef8 ();
0x0002b87c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b880 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002b884 lw t9, -0x7ee4(gp) | t9 = sym.focusd_temperature_mapper_hillcheck_get_type;
0x0002b888 lw s1, 0x58(v0) | s1 = *((v0 + 22));
0x0002b88c bal 0x34f74 | sym_focusd_temperature_mapper_hillcheck_get_type ();
0x0002b890 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (s1 == 0) {
0x0002b894 beqz s1, 0x2bd64 | goto label_34;
| }
0x0002b898 lw v1, (s1) | v1 = *(s1);
0x0002b89c lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x0002b8a0 beqz v1, 0x2b8b0 |
0x0002b8a4 lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x0002b8a8 beq v1, v0, 0x2b8c4 | goto label_35;
| }
0x0002b8ac nop |
| }
0x0002b8b0 move a1, v0 | a1 = v0;
0x0002b8b4 move a0, s1 | a0 = s1;
0x0002b8b8 jalr t9 | t9 ();
0x0002b8bc lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002b8c0 beqz v0, 0x2bd64 | goto label_34;
| }
| label_35:
0x0002b8c4 lw s2, -0x7eec(gp) | s2 = *(gp);
| if (s3 != s5) {
0x0002b8c8 bne s3, s5, 0x2bddc | goto label_36;
| }
| /* fcn.0002a7c4 */
0x0002b8cc addiu s2, s2, -0x583c | s2 += -0x583c;
| label_9:
0x0002b8d0 subu v1, s5, s4 | __asm ("subu v1, s5, s4");
0x0002b8d4 lw v0, 0xc8(fp) | v0 = *(arg_c8h);
0x0002b8d8 slti s1, v1, 0 | s1 = (v1 < 0) ? 1 : 0;
0x0002b8dc lw a0, 0xd4(fp) | a0 = *(arg_d4h);
| if (s1 == 0) {
0x0002b8e0 movn v1, zero, s1 | v1 = 0;
| }
0x0002b8e4 move s1, v1 | s1 = v1;
0x0002b8e8 addu s5, s4, s5 | s5 = s4 + s5;
0x0002b8ec sltu v1, v1, v0 | v1 = (v1 < v0) ? 1 : 0;
0x0002b8f0 sw zero, 0x10c(a0) | *(a0) = 0;
| if (v1 == 0) {
0x0002b8f4 movn s1, v0, v1 | s1 = v0;
| }
0x0002b8f8 move s4, s5 | s4 = s5;
| if (s5 >= 0) {
0x0002b8fc bltz s5, 0x2b918 |
0x0002b900 lw v0, 0xd0(fp) | v0 = *(arg_d0h);
0x0002b904 sltu v1, v0, s5 | v1 = (v0 < s5) ? 1 : 0;
0x0002b908 lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
| if (v1 == 0) {
0x0002b90c beqz v1, 0x2b91c | goto label_37;
| }
0x0002b910 move s4, v0 | s4 = v0;
0x0002b914 move s5, v0 | s5 = v0;
| }
0x0002b918 lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
| label_37:
0x0002b91c lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002b920 bal 0x1fc14 | sym_focusd_motor_length ();
0x0002b924 sltu v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
0x0002b928 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002b92c beqz v0, 0x2bdc4 | goto label_38;
| }
| label_13:
0x0002b930 lw t9, -0x7fac(gp) | t9 = sym.focusd_motor_preferred_movement_direction;
0x0002b934 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002b938 bal 0x20940 | sym_focusd_motor_preferred_movement_direction ();
0x0002b93c addiu v1, zero, 2 | v1 = 2;
0x0002b940 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 != v1) {
0x0002b944 bne v0, v1, 0x2bd74 | goto label_39;
| }
0x0002b948 subu v0, s1, s6 | __asm ("subu v0, s1, s6");
| if (v0 >= 0) {
0x0002b94c bltzl v0, 0x2b954 |
0x0002b950 negu v0, v0 | __asm ("negu v0, v0");
| }
0x0002b954 subu v1, s4, s6 | __asm ("subu v1, s4, s6");
| if (v1 >= 0) {
0x0002b958 bltzl v1, 0x2b960 |
0x0002b95c negu v1, v1 | __asm ("negu v1, v1");
| }
0x0002b960 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0002b964 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x0002b968 beqz v0, 0x2bd90 | goto label_40;
| }
| label_10:
0x0002b96c move v0, s1 | v0 = s1;
0x0002b970 addiu v1, zero, -1 | v1 = -1;
0x0002b974 move s1, s4 | s1 = s4;
0x0002b978 sw v1, 0x2c(sp) | *(var_2ch_4) = v1;
0x0002b97c move s4, v0 | s4 = v0;
| label_11:
0x0002b980 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x0002b984 move a0, s1 | a0 = s1;
0x0002b988 bal 0x44980 | fcn_00044980 ();
0x0002b98c move a1, v0 | a1 = v0;
0x0002b990 move a3, zero | a3 = 0;
0x0002b994 move a2, zero | a2 = 0;
0x0002b998 move t9, s2 | t9 = s2;
0x0002b99c move a0, fp | a0 = fp;
0x0002b9a0 bal 0x2a7c4 | fcn_0002a7c4 ();
0x0002b9a4 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002b9a8 beqz v0, 0x2bae4 | goto label_14;
| }
0x0002b9ac lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| if (s4 == s1) {
0x0002b9b0 beq s4, s1, 0x2beac | goto label_41;
| }
0x0002b9b4 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0002b9b8 nop |
0x0002b9bc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b9c0 move a1, v0 | a1 = v0;
0x0002b9c4 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0002b9c8 move a0, fp | a0 = fp;
0x0002b9cc jalr t9 | t9 ();
0x0002b9d0 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002b9d4 sync | __asm ("sync");
0x0002b9d8 lw v0, 0x20(v0) | v0 = *((v0 + 8));
0x0002b9dc sync | __asm ("sync");
0x0002b9e0 lw s3, 0xd4(fp) | s3 = *(arg_d4h);
| if (v0 == 0) {
0x0002b9e4 bnel v0, zero, 0x2bae8 | goto label_15;
| }
0x0002b9e8 lw t9, -0x7f94(gp) | t9 = sym.focusd_measure_calculate_averaged;
0x0002b9ec lw a0, 0x14(fp) | a0 = *(arg_14h);
0x0002b9f0 addiu a1, zero, 2 | a1 = 2;
0x0002b9f4 bal 0x1c4f8 | sym_focusd_measure_calculate_averaged ();
0x0002b9f8 sw v0, 0x30(sp) | *(var_30h_3) = v0;
0x0002b9fc lui v0, 1 | v0 = 0x186a0;
0x0002ba00 ori v0, v0, 0x86a0 |
0x0002ba04 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002ba08 sw s1, 0x38(sp) | *(var_38h_3) = s1;
0x0002ba0c move s5, s1 | s5 = s1;
0x0002ba10 sw v0, 0x34(sp) | *(var_34h_3) = v0;
0x0002ba14 b 0x2baa8 |
| while (v0 != 0) {
0x0002ba18 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0002ba1c bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0002ba20 nop |
0x0002ba24 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002ba28 move a1, v0 | a1 = v0;
0x0002ba2c lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0002ba30 move a0, fp | a0 = fp;
0x0002ba34 jalr t9 | t9 ();
0x0002ba38 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002ba3c sync | __asm ("sync");
0x0002ba40 lw v0, 0x20(v0) | v0 = *((v0 + 8));
0x0002ba44 sync | __asm ("sync");
0x0002ba48 lw t9, -0x7f88(gp) | t9 = sym.focusd_motor_get_position;
| if (v0 != 0) {
0x0002ba4c bnez v0, 0x2bae4 | goto label_14;
| }
0x0002ba50 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002ba54 bal 0x1fb0c | sym_focusd_motor_get_position ();
0x0002ba58 move s7, v0 | s7 = v0;
0x0002ba5c lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (s5 == v0) {
0x0002ba60 beq s5, v0, 0x2bae4 | goto label_14;
| }
0x0002ba64 lw t9, -0x7f94(gp) | t9 = sym.focusd_measure_calculate_averaged;
0x0002ba68 lw a0, 0x14(fp) | a0 = *(arg_14h);
0x0002ba6c addiu a1, zero, 2 | a1 = 2;
0x0002ba70 bal 0x1c4f8 | sym_focusd_measure_calculate_averaged ();
0x0002ba74 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002ba78 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0002ba7c move a1, v0 | a1 = v0;
0x0002ba80 lw t9, -0x7f44(gp) | t9 = *(gp);
0x0002ba84 move s5, v0 | s5 = v0;
0x0002ba88 bal 0x43f40 | fcn_00043f40 ();
0x0002ba8c lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 < 0) {
0x0002ba90 bgez v0, 0x2ba9c |
0x0002ba94 sw s7, 0x38(sp) | *(var_38h_3) = s7;
0x0002ba98 sw s5, 0x30(sp) | *(var_30h_3) = s5;
| }
| if (s4 == s7) {
0x0002ba9c beql s4, s7, 0x2bee0 | goto label_42;
| }
0x0002baa0 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002baa4 move s5, s7 | s5 = s7;
0x0002baa8 lw t9, -0x78c8(gp) | t9 = sym.imp.usleep;
0x0002baac lw a0, 0x34(sp) | a0 = *(var_34h_3);
0x0002bab0 jalr t9 | t9 ();
0x0002bab4 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bab8 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x0002babc lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x0002bac0 bal 0x44980 | fcn_00044980 ();
0x0002bac4 move a1, v0 | a1 = v0;
0x0002bac8 addiu a3, zero, 1 | a3 = 1;
0x0002bacc move a2, zero | a2 = 0;
0x0002bad0 move t9, s2 | t9 = s2;
0x0002bad4 move a0, fp | a0 = fp;
0x0002bad8 bal 0x2a7c4 | fcn_0002a7c4 ();
0x0002badc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bae0 bnez v0, 0x2ba18 |
| }
| label_14:
0x0002bae4 lw s3, 0xd4(fp) | s3 = *(arg_d4h);
| label_15:
0x0002bae8 lw v0, 0xe0(s3) | v0 = *((s3 + 56));
0x0002baec lw t9, -0x7f8c(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0002baf0 beqz v0, 0x2bb98 | goto label_43;
| }
0x0002baf4 move s1, zero | s1 = 0;
| label_16:
0x0002baf8 lui s5, 1 | s5 = 0x10000;
0x0002bafc sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x0002bb00 addiu s4, zero, 0xa | s4 = 0xa;
0x0002bb04 addiu s7, sp, 0x4c | s7 = sp + 0x4c;
0x0002bb08 ori s5, s5, 0x86a0 | s5 |= 0x86a0;
0x0002bb0c b 0x2bb14 |
| while (s4 != 0) {
0x0002bb10 lw s3, 0xd4(fp) | s3 = *(arg_d4h);
0x0002bb14 lw t9, -0x7cb8(gp) | t9 = sym.imaged_get_snr_prop;
0x0002bb18 lw a0, 0x134(s3) | a0 = *(s3);
0x0002bb1c move a1, s7 | a1 = s7;
0x0002bb20 bal 0x3981c | sym_imaged_get_snr_prop ();
0x0002bb24 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bb28 lw a3, 0x4c(sp) | a3 = *(var_4ch);
| if (v0 == 0) {
0x0002bb2c beqz v0, 0x2bb60 | goto label_44;
| }
0x0002bb30 lw v0, 0x48(sp) | v0 = *(var_48h);
0x0002bb34 lw t9, -0x78c8(gp) | t9 = sym.imp.usleep;
| if (a3 != v0) {
0x0002bb38 bne a3, v0, 0x2bb64 | goto label_45;
| }
0x0002bb3c move a0, s5 | a0 = s5;
0x0002bb40 addiu s4, s4, -1 | s4 += -1;
0x0002bb44 jalr t9 | t9 ();
0x0002bb48 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bb4c bnez s4, 0x2bb10 |
| }
0x0002bb50 lw t9, -0x7f8c(gp) | t9 = *(gp);
| if (s1 != 0) {
0x0002bb54 beqz s1, 0x2bb98 |
0x0002bb58 lw s3, 0xd4(fp) | s3 = *(arg_d4h);
0x0002bb5c b 0x2bbc4 | goto label_46;
| label_44:
0x0002bb60 lw v0, 0x48(sp) | v0 = *(var_48h);
| label_45:
0x0002bb64 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002bb68 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002bb6c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002bb70 lw a0, (v1) | a0 = *(v1);
| /* str._6_Skipping_temperature_compensation_since_movement_snr_value__d____initial_movement_snr_value__d__n */
0x0002bb74 addiu a2, a2, 0xd44 | a2 += 0xd44;
0x0002bb78 sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x0002bb7c addiu a1, zero, 1 | a1 = 1;
0x0002bb80 jalr t9 | t9 ();
0x0002bb84 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bb88 addiu v1, zero, 0x3c | v1 = 0x3c;
0x0002bb8c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bb90 sw v1, 0xc0(v0) | *((v0 + 48)) = v1;
0x0002bb94 lw t9, -0x7f8c(gp) | t9 = *(gp);
| }
| label_43:
0x0002bb98 move a0, s6 | a0 = s6;
0x0002bb9c bal 0x44980 | fcn_00044980 ();
0x0002bba0 move a1, v0 | a1 = v0;
0x0002bba4 move a3, zero | a3 = 0;
0x0002bba8 move a2, zero | a2 = 0;
0x0002bbac move t9, s2 | t9 = s2;
0x0002bbb0 move a0, fp | a0 = fp;
0x0002bbb4 bal 0x2a7c4 | fcn_0002a7c4 ();
0x0002bbb8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bbbc lw s3, 0xd4(fp) | s3 = *(arg_d4h);
0x0002bbc0 move s1, zero | s1 = 0;
| label_46:
0x0002bbc4 lw t9, -0x7ebc(gp) | t9 = *(gp);
| label_17:
0x0002bbc8 lw a0, 0x58(sp) | a0 = *(var_58h);
0x0002bbcc lw a1, 0x5c(sp) | a1 = *(var_5ch);
0x0002bbd0 bal 0x46ed0 | fcn_00046ed0 ();
0x0002bbd4 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bbd8 addiu a1, s3, 0xf8 | a1 = s3 + 0xf8;
0x0002bbdc addiu a0, zero, 1 | a0 = 1;
0x0002bbe0 lw t9, -0x778c(gp) | t9 = sym.imp.clock_gettime;
0x0002bbe4 sw v0, 0x100(s3) | *(s3) = v0;
0x0002bbe8 jalr t9 | t9 ();
0x0002bbec lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bbf0 lw t9, -0x7eec(gp) | t9 = *(gp);
| /* fcn.00028cf4 */
0x0002bbf4 addiu t9, t9, -0x730c | t9 += -0x730c;
0x0002bbf8 move a0, fp | a0 = fp;
0x0002bbfc bal 0x28cf4 | fcn_00028cf4 ();
0x0002bc00 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bc04 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bc08 b 0x2b700 | goto label_3;
| label_23:
0x0002bc0c lw a0, 0x134(v0) | a0 = *(v0);
0x0002bc10 addiu a1, sp, 0x48 | a1 = sp + 0x48;
0x0002bc14 bal 0x3981c | sym_imaged_get_snr_prop ();
0x0002bc18 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002bc1c beqz v0, 0x2bdb4 | goto label_47;
| }
0x0002bc20 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bc24 lw a3, 0x48(sp) | a3 = *(var_48h);
0x0002bc28 lw v1, 0xe8(v0) | v1 = *((v0 + 58));
0x0002bc2c slt a0, v1, a3 | a0 = (v1 < a3) ? 1 : 0;
0x0002bc30 lw v1, 0xe0(v0) | v1 = *((v0 + 56));
| if (a0 == 0) {
0x0002bc34 bnel a0, zero, 0x2b6d0 | goto label_4;
| }
| label_12:
0x0002bc38 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0002bc3c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002bc40 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002bc44 lw a0, (v0) | a0 = *(v0);
| /* str._6_Skipping_temperature_compensation_since_light_condition_snr_value__d____snr_threshold__u__n */
0x0002bc48 addiu a2, a2, 0xce4 | a2 += 0xce4;
0x0002bc4c sw v1, 0x10(sp) | *(var_10h_5) = v1;
0x0002bc50 addiu a1, zero, 1 | a1 = 1;
0x0002bc54 jalr t9 | t9 ();
0x0002bc58 move s1, zero | s1 = 0;
0x0002bc5c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bc60 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bc64 b 0x2b700 | goto label_3;
| label_22:
0x0002bc68 lw a0, 0x134(v0) | a0 = *(v0);
0x0002bc6c bal 0x3a91c | sym_imaged_disable_image_control ();
0x0002bc70 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bc74 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bc78 b 0x2b6c0 | goto label_5;
| label_26:
0x0002bc7c lw a0, 0x134(v0) | a0 = *(v0);
0x0002bc80 bal 0x3a954 | sym_imaged_enable_image_control ();
0x0002bc84 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bc88 b 0x2b70c | goto label_6;
| label_30:
0x0002bc8c lw s3, 0x10c(s1) | s3 = *(s1);
| label_32:
0x0002bc90 lw t9, -0x7f8c(gp) | t9 = *(gp);
| label_33:
0x0002bc94 lw a0, 0x38(s1) | a0 = *((s1 + 14));
0x0002bc98 bal 0x44980 | fcn_00044980 ();
0x0002bc9c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bca0 addiu v1, sp, 0x44 | v1 = sp + 0x44;
0x0002bca4 lw a0, 0x58(sp) | a0 = *(var_58h);
0x0002bca8 lw t9, -0x7f18(gp) | t9 = *(gp);
0x0002bcac lw a1, 0x5c(sp) | a1 = *(var_5ch);
0x0002bcb0 lw s2, 0x30(s1) | s2 = *((s1 + 12));
0x0002bcb4 lw s1, 0x58(s1) | s1 = *((s1 + 22));
0x0002bcb8 sw s3, 0x18(sp) | *(var_18h_3) = s3;
0x0002bcbc sw v1, 0x14(sp) | *(var_14h) = v1;
0x0002bcc0 move s3, v0 | s3 = v0;
0x0002bcc4 bal 0x47280 | fcn_00047280 ();
0x0002bcc8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bccc sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x0002bcd0 move a3, s5 | a3 = s5;
0x0002bcd4 lw t9, -0x7cb4(gp) | t9 = sym.focusd_temperature_mapper_get_delta_offset;
0x0002bcd8 move a2, s3 | a2 = s3;
0x0002bcdc move a1, s2 | a1 = s2;
0x0002bce0 move a0, s1 | a0 = s1;
0x0002bce4 bal 0x34a2c | sym_focusd_temperature_mapper_get_delta_offset ();
0x0002bce8 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002bcec beqz v0, 0x2b6f8 | goto label_1;
| }
0x0002bcf0 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bcf4 lw s3, 0x30(v0) | s3 = *((v0 + 12));
0x0002bcf8 lw v0, 0x44(sp) | v0 = *(var_44h_2);
0x0002bcfc addu s3, s3, v0 | s3 += v0;
0x0002bd00 lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
| if (s3 >= 0) {
0x0002bd04 bgez s3, 0x2bd98 | goto label_48;
| }
0x0002bd08 sw zero, 0x3c(sp) | *(var_3ch_3) = 0;
0x0002bd0c move s3, zero | s3 = 0;
0x0002bd10 b 0x2b86c | goto label_7;
| label_27:
0x0002bd14 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0002bd18 move a0, v0 | a0 = v0;
0x0002bd1c jalr t9 | t9 ();
0x0002bd20 move s1, zero | s1 = 0;
0x0002bd24 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bd28 b 0x2b618 | goto label_0;
| label_28:
0x0002bd2c lw v0, 0x48(sp) | v0 = *(var_48h);
| label_29:
0x0002bd30 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0002bd34 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002bd38 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002bd3c lw a0, (v1) | a0 = *(v1);
| /* str._6_Skipping_temperature_compensation_since_movement_snr_value__d____initial_movement_snr_value__d__n */
0x0002bd40 addiu a2, a2, 0xd44 | a2 += 0xd44;
0x0002bd44 sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x0002bd48 addiu a1, zero, 1 | a1 = 1;
0x0002bd4c jalr t9 | t9 ();
0x0002bd50 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bd54 addiu v1, zero, 0x3c | v1 = 0x3c;
0x0002bd58 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bd5c sw v1, 0xc0(v0) | *((v0 + 48)) = v1;
0x0002bd60 b 0x2b6fc | goto label_8;
| label_34:
0x0002bd64 lw s2, -0x7eec(gp) | s2 = *(gp);
0x0002bd68 move s5, s3 | s5 = s3;
| /* fcn.0002a7c4 */
0x0002bd6c addiu s2, s2, -0x583c | s2 += -0x583c;
0x0002bd70 b 0x2b8d0 | goto label_9;
| label_39:
0x0002bd74 lw t9, -0x7fac(gp) | t9 = sym.focusd_motor_preferred_movement_direction;
0x0002bd78 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002bd7c bal 0x20940 | sym_focusd_motor_preferred_movement_direction ();
0x0002bd80 addiu v1, zero, 1 | v1 = 1;
0x0002bd84 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == v1) {
0x0002bd88 beq v0, v1, 0x2b96c | goto label_10;
| }
0x0002bd8c addiu v0, zero, 1 | v0 = 1;
| label_40:
0x0002bd90 sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0002bd94 b 0x2b980 | goto label_11;
| label_48:
0x0002bd98 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002bd9c bal 0x1fc14 | sym_focusd_motor_length ();
0x0002bda0 sltu v0, s3, v0 | v0 = (s3 < v0) ? 1 : 0;
0x0002bda4 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002bda8 beqz v0, 0x2bec4 | goto label_49;
| }
0x0002bdac sw zero, 0x3c(sp) | *(var_3ch_3) = 0;
0x0002bdb0 b 0x2b86c | goto label_7;
| label_47:
0x0002bdb4 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002bdb8 lw a3, 0x48(sp) | a3 = *(var_48h);
0x0002bdbc lw v1, 0xe8(v0) | v1 = *((v0 + 58));
0x0002bdc0 b 0x2bc38 | goto label_12;
| label_38:
0x0002bdc4 lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x0002bdc8 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002bdcc bal 0x1fc14 | sym_focusd_motor_length ();
0x0002bdd0 addiu s4, v0, -1 | s4 = v0 + -1;
0x0002bdd4 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bdd8 b 0x2b930 | goto label_13;
| label_36:
0x0002bddc lw t9, -0x7f94(gp) | t9 = sym.focusd_measure_calculate_averaged;
0x0002bde0 lw a0, 0x14(fp) | a0 = *(arg_14h);
0x0002bde4 addiu a1, zero, 2 | a1 = 2;
0x0002bde8 bal 0x1c4f8 | sym_focusd_measure_calculate_averaged ();
0x0002bdec lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bdf0 move a0, s3 | a0 = s3;
0x0002bdf4 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x0002bdf8 move s1, v0 | s1 = v0;
0x0002bdfc bal 0x44980 | fcn_00044980 ();
0x0002be00 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002be04 move a3, zero | a3 = 0;
0x0002be08 move a2, zero | a2 = 0;
0x0002be0c lw s2, -0x7eec(gp) | s2 = *(gp);
0x0002be10 move a1, v0 | a1 = v0;
| /* fcn.0002a7c4 */
0x0002be14 addiu s2, s2, -0x583c | s2 += -0x583c;
0x0002be18 move t9, s2 | t9 = s2;
0x0002be1c move a0, fp | a0 = fp;
0x0002be20 bal 0x2a7c4 | fcn_0002a7c4 ();
0x0002be24 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0002be28 beqz v0, 0x2bae4 | goto label_14;
| }
0x0002be2c lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0002be30 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0002be34 nop |
0x0002be38 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002be3c move a1, v0 | a1 = v0;
0x0002be40 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0002be44 move a0, fp | a0 = fp;
0x0002be48 jalr t9 | t9 ();
0x0002be4c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002be50 sync | __asm ("sync");
0x0002be54 lw v0, 0x20(v0) | v0 = *((v0 + 8));
0x0002be58 sync | __asm ("sync");
0x0002be5c lw s3, 0xd4(fp) | s3 = *(arg_d4h);
| if (v0 == 0) {
0x0002be60 bnel v0, zero, 0x2bae8 | goto label_15;
| }
0x0002be64 lw t9, -0x78c8(gp) | t9 = sym.imp.usleep;
0x0002be68 lui a0, 1 | a0 = 0x186a0;
0x0002be6c ori a0, a0, 0x86a0 |
0x0002be70 jalr t9 | t9 ();
0x0002be74 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002be78 lw a0, 0x14(fp) | a0 = *(arg_14h);
0x0002be7c lw t9, -0x7f94(gp) | t9 = sym.focusd_measure_calculate_averaged;
0x0002be80 addiu a1, zero, 2 | a1 = 2;
0x0002be84 bal 0x1c4f8 | sym_focusd_measure_calculate_averaged ();
0x0002be88 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002be8c move a1, v0 | a1 = v0;
0x0002be90 lw t9, -0x7f84(gp) | t9 = *(gp);
0x0002be94 move a0, s1 | a0 = s1;
0x0002be98 bal 0x43e20 | fcn_00043e20 ();
0x0002be9c lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 > 0) {
0x0002bea0 bgtz v0, 0x2c0f8 | goto label_50;
| }
0x0002bea4 move s5, s3 | s5 = s3;
0x0002bea8 b 0x2b8d0 | goto label_9;
| label_41:
0x0002beac lw s3, 0xd4(fp) | s3 = *(arg_d4h);
0x0002beb0 lw v0, 0xe0(s3) | v0 = *((s3 + 56));
0x0002beb4 addiu s1, zero, 1 | s1 = 1;
| if (v0 != 0) {
0x0002beb8 bnez v0, 0x2baf8 | goto label_16;
| }
0x0002bebc lw t9, -0x7ebc(gp) | t9 = *(gp);
0x0002bec0 b 0x2bbc8 | goto label_17;
| label_49:
0x0002bec4 lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x0002bec8 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x0002becc sw zero, 0x3c(sp) | *(var_3ch_3) = 0;
0x0002bed0 bal 0x1fc14 | sym_focusd_motor_length ();
0x0002bed4 addiu s3, v0, -1 | s3 = v0 + -1;
0x0002bed8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0002bedc b 0x2b86c | goto label_7;
| label_42:
0x0002bee0 lw t9, -0x7ee4(gp) | t9 = sym.focusd_temperature_mapper_hillcheck_get_type;
0x0002bee4 lw s5, 0x58(v0) | s5 = *((v0 + 22));
0x0002bee8 bal 0x34f74 | sym_focusd_temperature_mapper_hillcheck_get_type ();
0x0002beec lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (s5 == 0) {
0x0002bef0 beqz s5, 0x2c010 | goto label_51;
| }
0x0002bef4 lw v1, (s5) | v1 = *(s5);
0x0002bef8 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 == 0) {
0x0002befc beqz v1, 0x2bf0c | void (*0x2bf0c)() ();
| }
| label_51:
0x0002c010 lw v0, 0xd4(fp) | v0 = *(arg_d4h);
0x0002c014 lw t9, -0x7ee4(gp) | t9 = sym.focusd_temperature_mapper_hillcheck_get_type;
0x0002c018 lw s1, 0x58(v0) | s1 = *((v0 + 22));
0x0002c01c bal 0x34f74 | sym_focusd_temperature_mapper_hillcheck_get_type ();
0x0002c020 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (s1 == 0) {
0x0002c024 beqz s1, 0x2c0ec | void (*0x2c0ec)() ();
| }
| label_50:
0x0002c0f8 addiu v0, zero, 1 | v0 = 1;
0x0002c0fc move s3, s5 | s3 = s5;
0x0002c100 sw v0, 0x3c(sp) | *(var_3ch_3) = v0;
0x0002c104 b 0x2b8d0 | goto label_9;
| label_19:
0x0002c108 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0002c10c jalr t9 | t9 ();
0x0002c110 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x2ebf4 */
| #include <stdint.h>
|
; (fcn) fcn.0002ebf4 () | void fcn_0002ebf4 () {
0x0002ebf4 lui gp, 4 |
0x0002ebf8 addiu gp, gp, -0x74 |
0x0002ebfc addu gp, gp, t9 | gp += t9;
0x0002ec00 addiu sp, sp, -0x40 |
0x0002ec04 addiu v0, zero, 1 | v0 = 1;
0x0002ec08 sw s1, 0x20(sp) | *(var_70h) = s1;
0x0002ec0c lw s1, 0xc0(a0) | s1 = *((a0 + 48));
0x0002ec10 sw gp, 0x10(sp) | *(var_10h_6) = gp;
0x0002ec14 sw ra, 0x3c(sp) | *(var_24h_3) = ra;
0x0002ec18 sw s7, 0x38(sp) | *(var_20h_2) = s7;
0x0002ec1c sw s6, 0x34(sp) | *(var_1ch_3) = s6;
0x0002ec20 sw s5, 0x30(sp) | *(var_18h) = s5;
0x0002ec24 sw s4, 0x2c(sp) | *(var_7ch) = s4;
0x0002ec28 sw s3, 0x28(sp) | *(var_10h_3) = s3;
0x0002ec2c sw s2, 0x24(sp) | *(var_74h) = s2;
0x0002ec30 sw s0, 0x1c(sp) | *(var_6ch) = s0;
| if (s1 == v0) {
0x0002ec34 beql s1, v0, 0x2ec68 | goto label_3;
| }
0x0002ec38 lw v0, 0xd4(a0) | v0 = *((a0 + 53));
| do {
| label_1:
0x0002ec3c lw ra, 0x3c(sp) | ra = *(var_24h_3);
| label_0:
0x0002ec40 lw s7, 0x38(sp) | s7 = *(var_20h_2);
0x0002ec44 lw s6, 0x34(sp) | s6 = *(var_1ch_3);
0x0002ec48 lw s5, 0x30(sp) | s5 = *(var_18h);
0x0002ec4c lw s4, 0x2c(sp) | s4 = *(var_7ch);
0x0002ec50 lw s3, 0x28(sp) | s3 = *(var_10h_3);
0x0002ec54 lw s2, 0x24(sp) | s2 = *(var_74h);
0x0002ec58 lw s1, 0x20(sp) | s1 = *(var_70h);
0x0002ec5c lw s0, 0x1c(sp) | s0 = *(var_6ch);
0x0002ec60 addiu sp, sp, 0x40 |
0x0002ec64 jr ra | return v0;
| label_3:
0x0002ec68 lw t9, -0x7de0(gp) | t9 = sym.imaged_get_daynight_state;
0x0002ec6c move s0, a0 | s0 = a0;
0x0002ec70 lw a0, 0x134(v0) | a0 = *(v0);
0x0002ec74 move s3, a2 | s3 = a2;
0x0002ec78 move s2, a1 | s2 = a1;
0x0002ec7c bal 0x397a8 | sym_imaged_get_daynight_state ();
0x0002ec80 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ec84 bne v0, s2, 0x2ec3c |
| } while (v0 != s2);
0x0002ec88 lw s2, -0x7fd8(gp) | s2 = *(gp);
| if (v0 == 0) {
0x0002ec8c beqz v0, 0x2edd8 | goto label_4;
| }
0x0002ec90 lw ra, 0x3c(sp) | ra = *(var_24h_3);
| if (v0 != s1) {
0x0002ec94 bne v0, s1, 0x2ec40 | goto label_0;
| }
0x0002ec98 lw s1, 0xd4(s0) | s1 = *((s0 + 53));
0x0002ec9c lw s2, -0x7fd8(gp) | s2 = *(gp);
0x0002eca0 addiu s1, s1, 0x14 | s1 += 0x14;
| /* str.night */
0x0002eca4 addiu s2, s2, -0x31a0 | s2 += -0x31a0;
| do {
0x0002eca8 lw s4, -0x7990(gp) | s4 = *((gp - 7780));
0x0002ecac lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002ecb0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002ecb4 lw a0, (s4) | a0 = *(s4);
0x0002ecb8 move a3, s2 | a3 = s2;
| /* str._6_changing_to__s_mode_n */
0x0002ecbc addiu a2, a2, 0x14e4 | a2 += aav.0x000014e4;
0x0002ecc0 addiu a1, zero, 1 | a1 = 1;
0x0002ecc4 jalr t9 | t9 ();
0x0002ecc8 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002eccc lw s5, (s1) | s5 = *(s1);
0x0002ecd0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0002ecd4 lw t9, -0x7f40(gp) | t9 = *(gp);
0x0002ecd8 move a0, s5 | a0 = s5;
0x0002ecdc lw a1, -0x5cb8(v0) | a1 = *((v0 - 5934));
0x0002ece0 bal 0x43d90 | fcn_00043d90 ();
0x0002ece4 lw gp, 0x10(sp) | gp = *(var_10h_6);
| if (v0 == 0) {
0x0002ece8 beqz v0, 0x2ee50 | goto label_5;
| }
0x0002ecec lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x0002ecf0 lw v1, 0x44(v0) | v1 = *((v0 + 17));
0x0002ecf4 lw t9, -0x7de8(gp) | t9 = sym.focusd_optics_motorized_position;
| if (v1 != 0) {
0x0002ecf8 bnez v1, 0x2ede4 | goto label_6;
| }
0x0002ecfc lw v1, 8(s1) | v1 = *((s1 + 2));
0x0002ed00 lw s6, 4(s1) | s6 = *((s1 + 1));
0x0002ed04 move s7, v1 | s7 = v1;
| label_2:
0x0002ed08 lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x0002ed0c sw v1, 0x30(v0) | *((v0 + 12)) = v1;
0x0002ed10 sw s5, 0x28(v0) | *((v0 + 10)) = s5;
0x0002ed14 sw s6, 0x2c(v0) | *((v0 + 11)) = s6;
0x0002ed18 sw a0, 0x38(v0) | *((v0 + 14)) = a0;
| if (s3 != 0) {
0x0002ed1c beqz s3, 0x2ed2c |
0x0002ed20 lw v0, 0x5c(v0) | v0 = *((v0 + 23));
0x0002ed24 lw t9, -0x7eec(gp) | t9 = *(gp);
| if (v0 != 0) {
0x0002ed28 bnez v0, 0x2ef64 | goto label_7;
| }
| }
0x0002ed2c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002ed30 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002ed34 lw a0, (s4) | a0 = *(s4);
0x0002ed38 move a3, s2 | a3 = s2;
| /* str._6_moving_to__s_mode_preset_focus_position_n */
0x0002ed3c addiu a2, a2, 0x14fc | a2 += 0x14fc;
0x0002ed40 addiu a1, zero, 1 | a1 = 1;
0x0002ed44 jalr t9 | t9 ();
0x0002ed48 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ed4c lw t9, -0x7d00(gp) | t9 = sym.focusd_optics_motorized_lock;
0x0002ed50 move a0, s0 | a0 = s0;
0x0002ed54 bal 0x25184 | sym_focusd_optics_motorized_lock ();
0x0002ed58 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ed5c move a2, zero | a2 = 0;
0x0002ed60 move a1, zero | a1 = 0;
0x0002ed64 lw t9, -0x7cfc(gp) | t9 = sym.focusd_optics_acquire_control;
0x0002ed68 move a0, s0 | a0 = s0;
0x0002ed6c bal 0x22cc4 | sym_focusd_optics_acquire_control ();
0x0002ed70 lw gp, 0x10(sp) | gp = *(var_10h_6);
| if (v0 == 0) {
0x0002ed74 beqz v0, 0x2eeec | goto label_8;
| }
0x0002ed78 lw t9, -0x7f9c(gp) | t9 = *(gp);
0x0002ed7c move a0, s7 | a0 = s7;
0x0002ed80 bal 0x44ab0 | fcn_00044ab0 ();
0x0002ed84 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ed88 move a3, zero | a3 = 0;
0x0002ed8c move a2, zero | a2 = 0;
0x0002ed90 lw t9, -0x7eec(gp) | t9 = *(gp);
0x0002ed94 move a1, v0 | a1 = v0;
| /* fcn.0002a7c4 */
0x0002ed98 addiu t9, t9, -0x583c | t9 += -0x583c;
0x0002ed9c move a0, s0 | a0 = s0;
0x0002eda0 bal 0x2a7c4 | fcn_0002a7c4 ();
0x0002eda4 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002eda8 move a1, zero | a1 = 0;
0x0002edac lw t9, -0x7cf8(gp) | t9 = sym.focusd_optics_release_control;
0x0002edb0 move a0, s0 | a0 = s0;
0x0002edb4 bal 0x22cd4 | sym_focusd_optics_release_control ();
0x0002edb8 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002edbc lw t9, -0x7cdc(gp) | t9 = sym.focusd_optics_motorized_unlock;
0x0002edc0 move a0, s0 | a0 = s0;
0x0002edc4 bal 0x251d4 | sym_focusd_optics_motorized_unlock ();
0x0002edc8 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x0002edcc lw v1, 0x10(s1) | v1 = *((s1 + 4));
0x0002edd0 sw v1, 0x38(v0) | *((v0 + 14)) = v1;
0x0002edd4 b 0x2ec3c | goto label_1;
| label_4:
0x0002edd8 lw s1, 0xd4(s0) | s1 = *((s0 + 53));
| /* esilref: 'day' */
0x0002eddc addiu s2, s2, -0x31c0 | s2 += -0x31c0;
0x0002ede0 b 0x2eca8 |
| } while (1);
| label_6:
0x0002ede4 lw a0, 0xb8(s0) | a0 = *((s0 + 46));
0x0002ede8 addiu a1, zero, 1 | a1 = 1;
0x0002edec bal 0x25604 | sym_focusd_optics_motorized_position ();
0x0002edf0 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002edf4 lw a3, 4(s1) | a3 = *((s1 + 1));
0x0002edf8 lw a1, 0xc(s1) | a1 = *((s1 + 3));
0x0002edfc lw t9, -0x7f50(gp) | t9 = *(gp);
0x0002ee00 move a2, v0 | a2 = v0;
| /* fcn.0002751c */
0x0002ee04 addiu t9, t9, 0x751c | t9 += 0x751c;
0x0002ee08 move a0, s0 | a0 = s0;
0x0002ee0c bal 0x2751c | fcn_0002751c ();
0x0002ee10 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ee14 move a0, v0 | a0 = v0;
0x0002ee18 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0002ee1c move s6, v0 | s6 = v0;
0x0002ee20 bal 0x47140 | fcn_00047140 ();
0x0002ee24 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ee28 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0002ee2c move a3, v1 | a3 = v1;
0x0002ee30 lw t9, -0x7f14(gp) | t9 = sym.focusd_motor_position_encoding_convert_fraction_to_steps;
0x0002ee34 move a2, v0 | a2 = v0;
0x0002ee38 bal 0x20690 | sym_focusd_motor_position_encoding_convert_fraction_to_steps ();
0x0002ee3c move s7, v0 | s7 = v0;
0x0002ee40 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ee44 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x0002ee48 move v1, s7 | v1 = s7;
0x0002ee4c b 0x2ed08 | goto label_2;
| label_5:
0x0002ee50 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002ee54 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002ee58 lw a0, (s4) | a0 = *(s4);
0x0002ee5c move a3, s2 | a3 = s2;
| /* str._6_searching_for__s_mode_focus_position_n */
0x0002ee60 addiu a2, a2, 0x1528 | a2 += 0x1528;
0x0002ee64 addiu a1, zero, 1 | a1 = 1;
0x0002ee68 jalr t9 | t9 ();
0x0002ee6c lw gp, 0x10(sp) | gp = *(var_10h_6);
0x0002ee70 move a1, zero | a1 = 0;
0x0002ee74 lw t9, -0x7db8(gp) | t9 = sym.focusd_optics_motorized_focus_search;
0x0002ee78 move a0, s0 | a0 = s0;
0x0002ee7c bal 0x2eabc | sym_focusd_optics_motorized_focus_search ();
0x0002ee80 lw gp, 0x10(sp) | gp = *(var_10h_6);
| if (v0 != 0) {
0x0002ee84 beqz v0, 0x2ef20 |
0x0002ee88 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x0002ee8c lw t9, -0x7eec(gp) | t9 = *(gp);
0x0002ee90 lw ra, 0x3c(sp) | ra = *(var_24h_3);
0x0002ee94 lw a3, 0x2c(v0) | a3 = *((v0 + 11));
0x0002ee98 lw a2, 0x28(v0) | a2 = *((v0 + 10));
0x0002ee9c lw a1, 0x30(v0) | a1 = *((v0 + 12));
0x0002eea0 lw v1, 0x34(v0) | v1 = *((v0 + 13));
0x0002eea4 lw v0, 0x38(v0) | v0 = *((v0 + 14));
0x0002eea8 lw s7, 0x38(sp) | s7 = *(var_20h_2);
0x0002eeac sw a3, 4(s1) | *((s1 + 1)) = a3;
0x0002eeb0 sw a2, (s1) | *(s1) = a2;
0x0002eeb4 sw a1, 8(s1) | *((s1 + 2)) = a1;
0x0002eeb8 sw v1, 0xc(s1) | *((s1 + 3)) = v1;
0x0002eebc sw v0, 0x10(s1) | *((s1 + 4)) = v0;
0x0002eec0 lw s6, 0x34(sp) | s6 = *(var_1ch_3);
0x0002eec4 lw s5, 0x30(sp) | s5 = *(var_18h);
0x0002eec8 lw s4, 0x2c(sp) | s4 = *(var_7ch);
0x0002eecc lw s3, 0x28(sp) | s3 = *(var_10h_3);
0x0002eed0 lw s2, 0x24(sp) | s2 = *(var_74h);
0x0002eed4 lw s1, 0x20(sp) | s1 = *(var_70h);
0x0002eed8 move a0, s0 | a0 = s0;
0x0002eedc lw s0, 0x1c(sp) | s0 = *(var_6ch);
| /* fcn.00029874 */
0x0002eee0 addiu t9, t9, -0x678c | t9 += -0x678c;
0x0002eee4 addiu sp, sp, 0x40 |
0x0002eee8 b 0x29874 | void (*0x29874)() ();
| label_8:
0x0002eeec lw ra, 0x3c(sp) | ra = *(var_24h_3);
0x0002eef0 lw s7, 0x38(sp) | s7 = *(var_20h_2);
0x0002eef4 lw s6, 0x34(sp) | s6 = *(var_1ch_3);
0x0002eef8 lw s5, 0x30(sp) | s5 = *(var_18h);
0x0002eefc lw s4, 0x2c(sp) | s4 = *(var_7ch);
0x0002ef00 lw s3, 0x28(sp) | s3 = *(var_10h_3);
0x0002ef04 lw s2, 0x24(sp) | s2 = *(var_74h);
0x0002ef08 lw s1, 0x20(sp) | s1 = *(var_70h);
0x0002ef0c move a0, s0 | a0 = s0;
0x0002ef10 lw t9, -0x7cdc(gp) | t9 = sym.focusd_optics_motorized_unlock;
0x0002ef14 lw s0, 0x1c(sp) | s0 = *(var_6ch);
0x0002ef18 addiu sp, sp, 0x40 |
0x0002ef1c b 0x251d4 | void (*0x251d4)() ();
| }
0x0002ef20 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0002ef24 lw a0, (s4) | a0 = *(s4);
0x0002ef28 lw ra, 0x3c(sp) | ra = *(var_24h_3);
0x0002ef2c lw s7, 0x38(sp) | s7 = *(var_20h_2);
0x0002ef30 lw s6, 0x34(sp) | s6 = *(var_1ch_3);
0x0002ef34 lw s5, 0x30(sp) | s5 = *(var_18h);
0x0002ef38 lw s4, 0x2c(sp) | s4 = *(var_7ch);
0x0002ef3c lw s3, 0x28(sp) | s3 = *(var_10h_3);
0x0002ef40 lw s1, 0x20(sp) | s1 = *(var_70h);
0x0002ef44 lw s0, 0x1c(sp) | s0 = *(var_6ch);
0x0002ef48 move a3, s2 | a3 = s2;
0x0002ef4c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0002ef50 lw s2, 0x24(sp) | s2 = *(var_74h);
| /* str._6_Failed_focus_search_for__s_mode_n */
0x0002ef54 addiu a2, a2, 0x1554 | a2 += 0x1554;
0x0002ef58 addiu a1, zero, 1 | a1 = 1;
0x0002ef5c addiu sp, sp, 0x40 |
0x0002ef60 jr t9 | t9 ();
| label_7:
0x0002ef64 lw ra, 0x3c(sp) | ra = *(var_24h_3);
0x0002ef68 lw s7, 0x38(sp) | s7 = *(var_20h_2);
0x0002ef6c lw s6, 0x34(sp) | s6 = *(var_1ch_3);
0x0002ef70 lw s5, 0x30(sp) | s5 = *(var_18h);
0x0002ef74 lw s4, 0x2c(sp) | s4 = *(var_7ch);
0x0002ef78 lw s3, 0x28(sp) | s3 = *(var_10h_3);
0x0002ef7c lw s2, 0x24(sp) | s2 = *(var_74h);
0x0002ef80 lw s1, 0x20(sp) | s1 = *(var_70h);
0x0002ef84 move a0, s0 | a0 = s0;
0x0002ef88 lw s0, 0x1c(sp) | s0 = *(var_6ch);
0x0002ef8c move a1, zero | a1 = 0;
| /* fcn.0002b5b4 */
0x0002ef90 addiu t9, t9, -0x4a4c | t9 += -0x4a4c;
0x0002ef94 addiu sp, sp, 0x40 |
0x0002ef98 b 0x2b5b4 | return void (*0x2b5b4)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x322b8 */
| #include <stdint.h>
|
; (fcn) fcn.000322b8 () | void fcn_000322b8 () {
0x000322b8 lui gp, 4 |
0x000322bc addiu gp, gp, -0x3738 |
0x000322c0 addu gp, gp, t9 | gp += t9;
0x000322c4 addiu sp, sp, -0x28 |
0x000322c8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000322cc lw a3, -0x7fd8(gp) | a3 = *(gp);
0x000322d0 sw a0, 0x10(sp) | *(var_10h) = a0;
0x000322d4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000322d8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000322dc lw a0, (v0) | a0 = *(v0);
0x000322e0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000322e4 sw gp, 0x18(sp) | *(var_18h) = gp;
| /* str.get_key_string */
0x000322e8 addiu a3, a3, 0x21a4 | a3 += 0x21a4;
| /* str._6__s:_No_key__u_n */
0x000322ec addiu a2, a2, 0x1f2c | a2 += 0x1f2c;
0x000322f0 addiu a1, zero, 1 | a1 = 1;
0x000322f4 jalr t9 | t9 ();
0x000322f8 lw ra, 0x24(sp) | ra = *(var_24h);
0x000322fc move v0, zero | v0 = 0;
0x00032300 addiu sp, sp, 0x28 |
0x00032304 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x32308 */
| #include <stdint.h>
|
; (fcn) fcn.00032308 () | void fcn_00032308 () {
0x00032308 lui gp, 4 |
0x0003230c addiu gp, gp, -0x3788 |
0x00032310 addu gp, gp, t9 | gp += t9;
0x00032314 addiu sp, sp, -0x40 |
0x00032318 sw s2, 0x34(sp) | *(var_34h) = s2;
0x0003231c lw s2, -0x7a04(gp) | s2 = *((gp - 7809));
0x00032320 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00032324 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00032328 lw v0, (s2) | v0 = *(s2);
0x0003232c sw s3, 0x38(sp) | *(var_38h) = s3;
0x00032330 sw s1, 0x30(sp) | *(var_30h) = s1;
0x00032334 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00032338 sw zero, 0x20(sp) | *(var_20h) = 0;
0x0003233c sw v0, 0x24(sp) | *(var_24h) = v0;
0x00032340 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x00032344 beqz a0, 0x3240c | goto label_1;
| }
0x00032348 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x0003234c beqz a1, 0x3242c | goto label_2;
| }
0x00032350 lw t9, -0x789c(gp) | t9 = sym.imp.g_access;
0x00032354 move s1, a0 | s1 = a0;
0x00032358 addiu a1, zero, 6 | a1 = 6;
0x0003235c move a0, s0 | a0 = s0;
0x00032360 jalr t9 | t9 ();
0x00032364 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00032368 bltz v0, 0x32454 | goto label_3;
| }
0x0003236c lw t9, -0x7a90(gp) | t9 = sym.imp.g_key_file_load_from_file;
0x00032370 addiu s3, sp, 0x20 | s3 = sp + 0x20;
0x00032374 move a0, s1 | a0 = s1;
0x00032378 move a3, s3 | a3 = s3;
0x0003237c move a2, zero | a2 = 0;
0x00032380 move a1, s0 | a1 = s0;
0x00032384 jalr t9 | t9 ();
0x00032388 move s1, v0 | s1 = v0;
0x0003238c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00032390 beqz v0, 0x323c4 | goto label_4;
| }
0x00032394 addiu s1, zero, 1 | s1 = 1;
| do {
| label_0:
0x00032398 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0003239c lw v1, (s2) | v1 = *(s2);
0x000323a0 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x000323a4 bne a0, v1, 0x324a0 | goto label_5;
| }
0x000323a8 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000323ac lw s3, 0x38(sp) | s3 = *(var_38h);
0x000323b0 lw s2, 0x34(sp) | s2 = *(var_34h);
0x000323b4 lw s1, 0x30(sp) | s1 = *(var_30h);
0x000323b8 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x000323bc addiu sp, sp, 0x40 |
0x000323c0 jr ra | return v0;
| label_4:
0x000323c4 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x000323c8 lw v0, 0x20(sp) | v0 = *(var_20h);
0x000323cc lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x000323d0 beqz v0, 0x32480 | goto label_6;
| }
0x000323d4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000323d8 lw v0, 8(v0) | v0 = *((v0 + 2));
0x000323dc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000323e0 move a3, s0 | a3 = s0;
| /* str._3_Could_not_load_state_from__s:__s_n */
0x000323e4 addiu a2, a2, 0x1f80 | a2 += 0x1f80;
0x000323e8 addiu a1, zero, 1 | a1 = 1;
0x000323ec sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x000323f0 jalr t9 | t9 ();
0x000323f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000323f8 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x000323fc move a0, s3 | a0 = s3;
0x00032400 jalr t9 | t9 ();
0x00032404 lw gp, 0x18(sp) | gp = *(var_18h);
0x00032408 b 0x32398 |
| } while (1);
| label_1:
0x0003240c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00032410 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.key_file */
0x00032414 addiu a2, a2, 0x1f40 | a2 += 0x1f40;
| /* str.focusd_state_initialize_key_file */
0x00032418 addiu a1, a1, 0x21b4 | a1 += 0x21b4;
0x0003241c jalr t9 | t9 ();
0x00032420 move s1, zero | s1 = 0;
0x00032424 lw gp, 0x18(sp) | gp = *(var_18h);
0x00032428 b 0x32398 | goto label_0;
| label_2:
0x0003242c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00032430 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00032434 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* esilref: 'file' */
0x00032438 addiu a2, a2, 0x1f44 | a2 += 0x1f44;
| /* str.focusd_state_initialize_key_file */
0x0003243c addiu a1, a1, 0x21b4 | a1 += 0x21b4;
0x00032440 move a0, zero | a0 = 0;
0x00032444 jalr t9 | t9 ();
0x00032448 move s1, zero | s1 = 0;
0x0003244c lw gp, 0x18(sp) | gp = *(var_18h);
0x00032450 b 0x32398 | goto label_0;
| label_3:
0x00032454 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00032458 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003245c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00032460 lw a0, (v0) | a0 = *(v0);
0x00032464 move a3, s0 | a3 = s0;
| /* str._4_could_not_access_file__s_with_rw_permissions_n */
0x00032468 addiu a2, a2, 0x1f4c | a2 += 0x1f4c;
0x0003246c addiu a1, zero, 1 | a1 = 1;
0x00032470 jalr t9 | t9 ();
0x00032474 move s1, zero | s1 = 0;
0x00032478 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003247c b 0x32398 | goto label_0;
| label_6:
0x00032480 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00032484 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00032488 move a3, s0 | a3 = s0;
| /* str._3_Could_not_load_state_from__s_n */
0x0003248c addiu a2, a2, 0x1fa8 | a2 += 0x1fa8;
0x00032490 addiu a1, zero, 1 | a1 = 1;
0x00032494 jalr t9 | t9 ();
0x00032498 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003249c b 0x32398 | goto label_0;
| label_5:
0x000324a0 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x000324a4 jalr t9 | t9 ();
0x000324a8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x324ac */
| #include <stdint.h>
|
; (fcn) fcn.000324ac () | void fcn_000324ac () {
0x000324ac lui gp, 4 |
0x000324b0 addiu gp, gp, -0x392c |
0x000324b4 addu gp, gp, t9 | gp += t9;
0x000324b8 addiu sp, sp, -0x138 |
0x000324bc lw t9, -0x7adc(gp) | t9 = sym.imp.readlink;
0x000324c0 sw s1, 0x124(sp) | *(var_124h) = s1;
0x000324c4 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x000324c8 sw s3, 0x12c(sp) | *(var_12ch) = s3;
0x000324cc sw s2, 0x128(sp) | *(var_128h) = s2;
0x000324d0 lw v0, (s1) | v0 = *(s1);
0x000324d4 move s3, a1 | s3 = a1;
0x000324d8 addiu s2, sp, 0x1c | s2 = sp + 0x1c;
0x000324dc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000324e0 sw s4, 0x130(sp) | *(var_130h) = s4;
0x000324e4 sw ra, 0x134(sp) | *(var_134h) = ra;
0x000324e8 sw s0, 0x120(sp) | *(var_120h) = s0;
0x000324ec move s4, a0 | s4 = a0;
0x000324f0 addiu a2, zero, 0xff | a2 = 0xff;
0x000324f4 move a1, s2 | a1 = s2;
0x000324f8 move a0, s3 | a0 = s3;
0x000324fc sw v0, 0x11c(sp) | *(var_11ch) = v0;
0x00032500 jalr t9 | t9 ();
0x00032504 nop |
0x00032508 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x0003250c bgez v0, 0x32608 | goto label_1;
| }
0x00032510 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x00032514 jalr t9 | t9 ();
0x00032518 nop |
0x0003251c lw v1, (v0) | v1 = *(v0);
0x00032520 addiu v0, zero, 0x16 | v0 = 0x16;
0x00032524 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x00032528 beq v1, v0, 0x32584 | goto label_2;
| }
0x0003252c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00032530 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00032534 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00032538 lw a0, (v0) | a0 = *(v0);
0x0003253c move a3, s3 | a3 = s3;
| /* str._3_Store_state_failed:_readlink__s:__m_n */
0x00032540 addiu a2, a2, 0x1fcc | a2 += 0x1fcc;
0x00032544 addiu a1, zero, 1 | a1 = 1;
0x00032548 jalr t9 | t9 ();
0x0003254c lw gp, 0x10(sp) | gp = *(var_10h);
0x00032550 move s0, zero | s0 = 0;
| do {
0x00032554 lw a0, 0x11c(sp) | a0 = *(var_11ch);
0x00032558 lw v1, (s1) | v1 = *(s1);
0x0003255c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00032560 bne a0, v1, 0x32610 | goto label_3;
| }
0x00032564 lw ra, 0x134(sp) | ra = *(var_134h);
0x00032568 lw s4, 0x130(sp) | s4 = *(var_130h);
0x0003256c lw s3, 0x12c(sp) | s3 = *(var_12ch);
0x00032570 lw s2, 0x128(sp) | s2 = *(var_128h);
0x00032574 lw s1, 0x124(sp) | s1 = *(var_124h);
0x00032578 lw s0, 0x120(sp) | s0 = *(var_120h);
0x0003257c addiu sp, sp, 0x138 |
0x00032580 jr ra | return v0;
| label_2:
0x00032584 lw t9, -0x79ac(gp) | t9 = sym.imp.strlen;
0x00032588 move a0, s3 | a0 = s3;
0x0003258c jalr t9 | t9 ();
0x00032590 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032594 addiu a2, zero, 0xff | a2 = 0xff;
0x00032598 move a1, s3 | a1 = s3;
0x0003259c lw t9, -0x77f4(gp) | t9 = sym.imp.strncpy;
0x000325a0 move a0, s2 | a0 = s2;
0x000325a4 move s0, v0 | s0 = v0;
0x000325a8 jalr t9 | t9 ();
0x000325ac lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x000325b0 addiu v0, sp, 0x120 | v0 = sp + aav.0x00000120;
0x000325b4 addu s0, v0, s0 | s0 = v0 + s0;
0x000325b8 lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x000325bc move a2, zero | a2 = 0;
0x000325c0 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x000325c4 move a0, s4 | a0 = s4;
0x000325c8 sb zero, -0x104(s0) | *(s0) = 0;
0x000325cc jalr t9 | t9 ();
0x000325d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000325d4 lw a2, 0x18(sp) | a2 = *(var_18h_2);
0x000325d8 move a1, v0 | a1 = v0;
0x000325dc lw t9, -0x7ee8(gp) | t9 = sym.focusd_safe_file_update;
0x000325e0 move a0, s2 | a0 = s2;
0x000325e4 move s0, v0 | s0 = v0;
0x000325e8 bal 0x382a0 | sym_focusd_safe_file_update ();
0x000325ec lw gp, 0x10(sp) | gp = *(var_10h);
0x000325f0 move a0, s0 | a0 = s0;
0x000325f4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x000325f8 sltu s0, zero, v0 | s0 = (0 < v0) ? 1 : 0;
0x000325fc jalr t9 | t9 ();
0x00032600 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032604 b 0x32554 |
| } while (1);
| label_1:
0x00032608 move s0, v0 | s0 = v0;
0x0003260c b 0x325b0 | goto label_0;
| label_3:
0x00032610 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00032614 jalr t9 | t9 ();
0x00032618 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x32958 */
| #include <stdint.h>
|
; (fcn) fcn.00032958 () | void fcn_00032958 () {
| label_9:
0x00032958 lui gp, 4 |
0x0003295c addiu gp, gp, -0x3dd8 |
0x00032960 addu gp, gp, t9 | gp += t9;
0x00032964 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x00032968 addiu sp, sp, -0x88 |
0x0003296c lw v1, -0x7d28(gp) | v1 = sym.focusd_state_get_type;
0x00032970 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00032974 lw v0, (v0) | v0 = *(v0);
0x00032978 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003297c sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x00032980 addiu v0, zero, 1 | v0 = 1;
0x00032984 sw v0, 0x40(sp) | *(var_40h) = v0;
0x00032988 addiu v0, zero, 2 | v0 = 2;
0x0003298c sw v0, 0x44(sp) | *(var_44h) = v0;
0x00032990 addiu v0, zero, 3 | v0 = 3;
0x00032994 sw v0, 0x48(sp) | *(var_48h) = v0;
0x00032998 addiu v0, zero, 4 | v0 = 4;
0x0003299c sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x000329a0 addiu v0, zero, 5 | v0 = 5;
0x000329a4 sw v0, 0x50(sp) | *(var_50h) = v0;
0x000329a8 addiu v0, zero, 8 | v0 = 8;
0x000329ac sw v0, 0x54(sp) | *(var_54h) = v0;
0x000329b0 addiu v0, zero, 9 | v0 = 9;
0x000329b4 sw v0, 0x58(sp) | *(var_58h) = v0;
0x000329b8 addiu v0, sp, 0x5c | v0 = sp + 0x5c;
0x000329bc sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000329c0 lw v0, -0x7eec(gp) | v0 = *(gp);
0x000329c4 sw fp, 0x80(sp) | *(var_80h) = fp;
| /* fcn.000326ac */
0x000329c8 addiu v0, v0, 0x26ac | v0 += 0x26ac;
0x000329cc sw v0, 0x28(sp) | *(var_28h) = v0;
0x000329d0 lw v0, -0x7eec(gp) | v0 = *(gp);
0x000329d4 sw s5, 0x74(sp) | *(var_74h) = s5;
| /* fcn.00032748 */
0x000329d8 addiu v0, v0, 0x2748 | v0 += 0x2748;
0x000329dc sw v0, 0x20(sp) | *(var_20h) = v0;
0x000329e0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000329e4 sw s2, 0x68(sp) | *(var_68h) = s2;
0x000329e8 addiu v0, v0, 0x5ed0 | v0 += 0x5ed0;
0x000329ec sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000329f0 lw v0, -0x7eec(gp) | v0 = *(gp);
0x000329f4 sw s0, 0x60(sp) | *(var_60h) = s0;
| /* fcn.000322b8 */
0x000329f8 addiu v0, v0, 0x22b8 | v0 += 0x22b8;
0x000329fc sw ra, 0x84(sp) | *(var_84h) = ra;
0x00032a00 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x00032a04 sw s6, 0x78(sp) | *(var_78h) = s6;
0x00032a08 sw s4, 0x70(sp) | *(var_70h) = s4;
0x00032a0c sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x00032a10 sw s1, 0x64(sp) | *(var_64h) = s1;
0x00032a14 sw v1, 0x24(sp) | *(var_24h) = v1;
0x00032a18 move s5, a0 | s5 = a0;
0x00032a1c sw a1, 0x8c(sp) | *(arg_8ch) = a1;
0x00032a20 sw a2, 0x90(sp) | *(arg_90h) = a2;
0x00032a24 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x00032a28 addiu s2, sp, 0x3c | s2 = sp + 0x3c;
0x00032a2c move s0, zero | s0 = 0;
0x00032a30 addiu fp, sp, 0x38 | fp = sp + 0x38;
0x00032a34 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00032a38 b 0x32a98 |
| while (v0 == 0) {
0x00032a3c lw v0, 0x38(sp) | v0 = *(var_38h);
0x00032a40 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
| if (v0 == 0) {
0x00032a44 beqz v0, 0x32b34 | goto label_16;
| }
0x00032a48 move a0, fp | a0 = fp;
0x00032a4c jalr t9 | t9 ();
0x00032a50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032a54 lw a0, (s1) | a0 = *(s1);
0x00032a58 move a3, fp | a3 = fp;
0x00032a5c lw t9, -0x7920(gp) | t9 = sym.imp.g_key_file_get_integer;
0x00032a60 move a2, s4 | a2 = s4;
0x00032a64 move a1, s3 | a1 = s3;
0x00032a68 jalr t9 | t9 ();
0x00032a6c move s0, v0 | s0 = v0;
0x00032a70 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00032a74 beqz v0, 0x32d38 | goto label_17;
| }
0x00032a78 lw v0, 4(s1) | v0 = *((s1 + 1));
| label_7:
0x00032a7c lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| if (s6 == v0) {
0x00032a80 beq s6, v0, 0x32cb0 | goto label_18;
| }
| label_0:
0x00032a84 lw v0, 0x1c(sp) | v0 = *(var_1ch);
| label_1:
0x00032a88 addiu s2, s2, 4 | s2 += 4;
0x00032a8c lw v0, 0x30(sp) | v0 = *(var_30h);
| if (v0 == s2) {
0x00032a90 beq v0, s2, 0x32be0 | goto label_19;
| }
0x00032a94 lw s0, (s2) | s0 = *(s2);
| label_2:
0x00032a98 lw t9, 0x24(sp) | t9 = *(var_24h);
0x00032a9c jalr t9 | t9 ();
0x00032aa0 nop |
0x00032aa4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032aa8 move a1, v0 | a1 = v0;
0x00032aac lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x00032ab0 move a0, s5 | a0 = s5;
0x00032ab4 jalr t9 | t9 ();
0x00032ab8 lw a2, 0x90(sp) | a2 = *(arg_90h);
0x00032abc lw a1, 0x8c(sp) | a1 = *(arg_8ch);
0x00032ac0 lw t9, 0x28(sp) | t9 = *(var_28h);
0x00032ac4 move a0, s5 | a0 = s5;
0x00032ac8 move s1, v0 | s1 = v0;
0x00032acc jalr t9 | t9 ();
0x00032ad0 sltiu v1, s0, 0xa | v1 = (s0 < 0xa) ? 1 : 0;
0x00032ad4 move s3, v0 | s3 = v0;
| if (v1 == 0) {
0x00032ad8 beqz v1, 0x32cf8 | goto label_20;
| }
0x00032adc sll v0, s0, 1 | v0 = s0 << 1;
0x00032ae0 addu v0, v0, s0 | v0 += s0;
0x00032ae4 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00032ae8 sll v0, v0, 3 | v0 <<= 3;
0x00032aec addu v0, v1, v0 | v0 = v1 + v0;
0x00032af0 lw s4, 4(v0) | s4 = *((v0 + 1));
| label_4:
0x00032af4 lw t9, 0x20(sp) | t9 = *(var_20h);
0x00032af8 move a1, s0 | a1 = s0;
0x00032afc move a0, s5 | a0 = s5;
0x00032b00 jalr t9 | t9 ();
0x00032b04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032b08 lw a0, 4(s1) | a0 = *((s1 + 1));
0x00032b0c move a3, fp | a3 = fp;
0x00032b10 lw t9, -0x7920(gp) | t9 = sym.imp.g_key_file_get_integer;
0x00032b14 move a2, s4 | a2 = s4;
0x00032b18 move a1, s3 | a1 = s3;
0x00032b1c sw zero, 0x38(sp) | *(var_38h) = 0;
0x00032b20 move s6, v0 | s6 = v0;
0x00032b24 jalr t9 | t9 ();
0x00032b28 move s7, v0 | s7 = v0;
0x00032b2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00032b30 beqz v0, 0x32a3c |
| }
| label_16:
0x00032b34 lw t9, -0x7920(gp) | t9 = sym.imp.g_key_file_get_integer;
0x00032b38 lw a0, (s1) | a0 = *(s1);
0x00032b3c move a3, fp | a3 = fp;
0x00032b40 move a2, s4 | a2 = s4;
0x00032b44 move a1, s3 | a1 = s3;
0x00032b48 jalr t9 | t9 ();
0x00032b4c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00032b50 bnez v0, 0x32c1c | goto label_21;
| }
0x00032b54 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00032b58 addiu s0, s0, -4 | s0 += -4;
| if (v0 == 0) {
0x00032b5c beqz v0, 0x32c20 | goto label_22;
| }
0x00032b60 addiu s0, zero, 1 | s0 = 1;
0x00032b64 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
| label_6:
0x00032b68 move a0, fp | a0 = fp;
0x00032b6c jalr t9 | t9 ();
0x00032b70 lw a0, (s1) | a0 = *(s1);
0x00032b74 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s6 != a0) {
0x00032b78 bne s6, a0, 0x32a84 | goto label_0;
| }
0x00032b7c lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (s0 == 0) {
0x00032b80 beqz s0, 0x32a88 | goto label_1;
| }
0x00032b84 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
0x00032b88 move a3, s7 | a3 = s7;
0x00032b8c move a2, s4 | a2 = s4;
0x00032b90 move a1, s3 | a1 = s3;
0x00032b94 jalr t9 | t9 ();
0x00032b98 addiu v0, zero, 1 | v0 = 1;
0x00032b9c lw s0, 4(s1) | s0 = *((s1 + 1));
0x00032ba0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032ba4 sw v0, 0x18(s1) | *((s1 + 6)) = v0;
| label_5:
0x00032ba8 lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
0x00032bac move a3, zero | a3 = 0;
0x00032bb0 move a2, s4 | a2 = s4;
0x00032bb4 move a1, s3 | a1 = s3;
0x00032bb8 move a0, s0 | a0 = s0;
0x00032bbc jalr t9 | t9 ();
0x00032bc0 addiu v0, zero, 1 | v0 = 1;
0x00032bc4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032bc8 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
| label_3:
0x00032bcc lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00032bd0 addiu s2, s2, 4 | s2 += 4;
0x00032bd4 lw s0, (s2) | s0 = *(s2);
| if (v0 == s2) {
0x00032bd8 bnel v0, s2, 0x32a98 | goto label_2;
| }
0x00032bdc lw v0, 0x30(sp) | v0 = *(var_30h);
| label_19:
0x00032be0 lw v1, 0x5c(sp) | v1 = *(var_5ch);
0x00032be4 lw v0, (v0) | v0 = *(v0);
0x00032be8 lw ra, 0x84(sp) | ra = *(var_84h);
| if (v1 != v0) {
0x00032bec bne v1, v0, 0x32d4c | goto label_23;
| }
0x00032bf0 lw fp, 0x80(sp) | fp = *(var_80h);
0x00032bf4 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x00032bf8 lw s6, 0x78(sp) | s6 = *(var_78h);
0x00032bfc lw s5, 0x74(sp) | s5 = *(var_74h);
0x00032c00 lw s4, 0x70(sp) | s4 = *(var_70h);
0x00032c04 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x00032c08 lw s2, 0x68(sp) | s2 = *(var_68h);
0x00032c0c lw s1, 0x64(sp) | s1 = *(var_64h);
0x00032c10 lw s0, 0x60(sp) | s0 = *(var_60h);
0x00032c14 addiu sp, sp, 0x88 |
0x00032c18 jr ra | return v0;
| label_21:
0x00032c1c addiu s0, s0, -4 | s0 += -4;
| label_22:
0x00032c20 sltiu s0, s0, 2 | s0 = (s0 < 2) ? 1 : 0;
0x00032c24 lw a0, (s1) | a0 = *(s1);
| if (s0 == 0) {
0x00032c28 bnez s0, 0x32c74 |
0x00032c2c lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
0x00032c30 move a3, zero | a3 = 0;
0x00032c34 move a2, s4 | a2 = s4;
0x00032c38 move a1, s3 | a1 = s3;
0x00032c3c jalr t9 | t9 ();
0x00032c40 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032c44 addiu v0, zero, 1 | v0 = 1;
0x00032c48 lw a0, 4(s1) | a0 = *((s1 + 1));
0x00032c4c lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
0x00032c50 move s0, v0 | s0 = v0;
0x00032c54 sw v0, 0x18(s1) | *((s1 + 6)) = v0;
0x00032c58 move a3, zero | a3 = 0;
0x00032c5c move a2, s4 | a2 = s4;
0x00032c60 move a1, s3 | a1 = s3;
0x00032c64 jalr t9 | t9 ();
0x00032c68 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032c6c sw s0, 0x14(s1) | *((s1 + 5)) = s0;
0x00032c70 b 0x32a84 | goto label_0;
| }
0x00032c74 lw s0, 4(s1) | s0 = *((s1 + 1));
0x00032c78 lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
| if (s6 == s0) {
0x00032c7c beq s6, s0, 0x32d0c | goto label_24;
| }
0x00032c80 lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (s6 != a0) {
0x00032c84 bne s6, a0, 0x32a88 | goto label_1;
| }
0x00032c88 lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
0x00032c8c move a3, zero | a3 = 0;
0x00032c90 move a2, s4 | a2 = s4;
0x00032c94 move a1, s3 | a1 = s3;
0x00032c98 move a0, s0 | a0 = s0;
0x00032c9c jalr t9 | t9 ();
0x00032ca0 addiu v0, zero, 1 | v0 = 1;
0x00032ca4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032ca8 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
0x00032cac b 0x32bcc | goto label_3;
| label_18:
0x00032cb0 move a3, s0 | a3 = s0;
0x00032cb4 move a2, s4 | a2 = s4;
0x00032cb8 move a1, s3 | a1 = s3;
0x00032cbc move a0, s6 | a0 = s6;
0x00032cc0 jalr t9 | t9 ();
0x00032cc4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032cc8 addiu v0, zero, 1 | v0 = 1;
0x00032ccc lw a0, (s1) | a0 = *(s1);
0x00032cd0 lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
0x00032cd4 move s0, v0 | s0 = v0;
0x00032cd8 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
0x00032cdc move a3, zero | a3 = 0;
0x00032ce0 move a2, s4 | a2 = s4;
0x00032ce4 move a1, s3 | a1 = s3;
0x00032ce8 jalr t9 | t9 ();
0x00032cec lw gp, 0x10(sp) | gp = *(var_10h);
0x00032cf0 sw s0, 0x18(s1) | *((s1 + 6)) = s0;
0x00032cf4 b 0x32a84 | goto label_0;
| label_20:
0x00032cf8 lw t9, 0x34(sp) | t9 = *(var_34h);
0x00032cfc move a0, s0 | a0 = s0;
0x00032d00 jalr t9 | t9 ();
0x00032d04 move s4, v0 | s4 = v0;
0x00032d08 b 0x32af4 | goto label_4;
| label_24:
0x00032d0c move a3, zero | a3 = 0;
0x00032d10 move a2, s4 | a2 = s4;
0x00032d14 move a1, s3 | a1 = s3;
0x00032d18 jalr t9 | t9 ();
0x00032d1c lw v0, (s1) | v0 = *(s1);
0x00032d20 addiu v1, zero, 1 | v1 = 1;
0x00032d24 lw gp, 0x10(sp) | gp = *(var_10h);
0x00032d28 sw v1, 0x18(s1) | *((s1 + 6)) = v1;
| if (s0 != v0) {
0x00032d2c bne s0, v0, 0x32a84 | goto label_0;
| }
0x00032d30 lw s0, 4(s1) | s0 = *((s1 + 1));
0x00032d34 b 0x32ba8 | goto label_5;
| label_17:
0x00032d38 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00032d3c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
| if (v0 != 0) {
0x00032d40 bnez v0, 0x32b68 | goto label_6;
| }
0x00032d44 lw v0, 4(s1) | v0 = *((s1 + 1));
0x00032d48 b 0x32a7c | goto label_7;
| label_23:
0x00032d4c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00032d50 jalr t9 | t9 ();
0x00032d54 nop |
0x00032d58 lui gp, 4 |
0x00032d5c addiu gp, gp, -0x41d8 |
0x00032d60 addu gp, gp, t9 | gp += t9;
0x00032d64 addiu sp, sp, -0x48 |
0x00032d68 sw s5, 0x34(sp) | *(var_34h_2) = s5;
0x00032d6c lw s5, -0x7d28(gp) | s5 = sym.focusd_state_get_type;
0x00032d70 sw ra, 0x44(sp) | *(var_44h_2) = ra;
0x00032d74 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00032d78 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x00032d7c sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x00032d80 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x00032d84 move t9, s5 | t9 = s5;
0x00032d88 sw fp, 0x40(sp) | *(var_40h_2) = fp;
0x00032d8c sw s7, 0x3c(sp) | *(var_3ch_2) = s7;
0x00032d90 sw s6, 0x38(sp) | *(var_38h_2) = s6;
0x00032d94 sw s4, 0x30(sp) | *(var_30h_2) = s4;
0x00032d98 sw s3, 0x2c(sp) | *(var_2ch_2) = s3;
0x00032d9c move s2, a0 | s2 = a0;
0x00032da0 bal 0x3261c | sym_focusd_state_get_type ();
0x00032da4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032da8 move a1, v0 | a1 = v0;
0x00032dac lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x00032db0 move a0, s2 | a0 = s2;
0x00032db4 jalr t9 | t9 ();
0x00032db8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032dbc addiu a0, v0, 8 | a0 = v0 + 8;
0x00032dc0 lw t9, -0x78d4(gp) | t9 = sym.imp.g_mutex_init;
0x00032dc4 move s0, v0 | s0 = v0;
0x00032dc8 jalr t9 | t9 ();
0x00032dcc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032dd0 lw s1, -0x7fd8(gp) | s1 = *(gp);
0x00032dd4 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x00032dd8 sw s1, 0x1c(sp) | *(var_1ch_2) = s1;
0x00032ddc jalr t9 | t9 ();
0x00032de0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032de4 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x00032de8 sw v0, (s0) | *(s0) = v0;
0x00032dec jalr t9 | t9 ();
0x00032df0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| /* str._var_lib_focusd_focusd.state */
0x00032df4 addiu a1, s1, 0x1ff8 | a1 = s1 + 0x1ff8;
0x00032df8 lw a0, (s0) | a0 = *(s0);
0x00032dfc lw s1, -0x7eec(gp) | s1 = *(gp);
0x00032e00 sw v0, 4(s0) | *((s0 + 1)) = v0;
| /* fcn.00032308 */
0x00032e04 addiu s1, s1, 0x2308 | s1 += 0x2308;
0x00032e08 sw zero, 0x10(s0) | *((s0 + 4)) = 0;
0x00032e0c move t9, s1 | t9 = s1;
0x00032e10 sw zero, 0x1c(s0) | *((s0 + 7)) = 0;
0x00032e14 bal 0x32308 | fcn_00032308 ();
0x00032e18 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00032e1c beqz v0, 0x33114 | goto label_25;
| }
0x00032e20 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00032e24 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00032e28 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00032e2c sw zero, 0x18(s0) | *((s0 + 6)) = 0;
0x00032e30 move t9, s1 | t9 = s1;
| /* str._etc_focusd_focusd_positions.conf */
0x00032e34 addiu a1, v0, 0x2040 | a1 = v0 + 0x2040;
0x00032e38 bal 0x32308 | fcn_00032308 ();
0x00032e3c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00032e40 beqz v0, 0x330e0 | goto label_26;
| }
0x00032e44 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00032e48 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00032e4c lw t9, -0x7fbc(gp) | t9 = sym.settings_get_uint;
0x00032e50 addiu a2, s0, 0x20 | a2 = s0 + 0x20;
| /* str.nbr_of_sources */
0x00032e54 addiu a1, a1, -0x73f4 | a1 += -0x73f4;
| /* esilref: 'features' */
0x00032e58 addiu a0, a0, -0x6dc0 | a0 += -0x6dc0;
0x00032e5c bal 0x3c450 | sym_settings_get_uint ();
0x00032e60 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x00032e64 bnez v0, 0x33024 | goto label_27;
| }
0x00032e68 addiu v0, zero, 1 | v0 = 1;
| label_12:
0x00032e6c sw v0, 0x20(s0) | *((s0 + 8)) = v0;
0x00032e70 sw zero, 0x1c(s0) | *((s0 + 7)) = 0;
| label_13:
0x00032e74 lw t9, -0x7878(gp) | t9 = sym.imp.g_malloc;
0x00032e78 addiu a0, zero, 8 | a0 = 8;
0x00032e7c jalr t9 | t9 ();
0x00032e80 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032e84 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00032e88 move s3, v0 | s3 = v0;
0x00032e8c lw s1, -0x7fd8(gp) | s1 = *(gp);
0x00032e90 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00032e94 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* esilref: 'Focus' */
0x00032e98 addiu a1, a1, -0x52b8 | a1 += -0x52b8;
| /* str.Mechanics._s */
0x00032e9c addiu a0, s1, 0x2078 | a0 = s1 + 0x2078;
0x00032ea0 jalr t9 | t9 ();
0x00032ea4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032ea8 lw s4, 0x24(s0) | s4 = *((s0 + 9));
| /* str.Mechanics._s */
0x00032eac addiu a0, s1, 0x2078 | a0 = s1 + 0x2078;
0x00032eb0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00032eb4 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x00032eb8 sw v0, (s3) | *(s3) = v0;
| /* esilref: 'Zoom' */
0x00032ebc addiu a1, a1, -0x3c80 | a1 += -0x3c80;
0x00032ec0 jalr t9 | t9 ();
0x00032ec4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032ec8 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x00032ecc sw v0, 4(s4) | *((s4 + 1)) = v0;
0x00032ed0 addiu v0, zero, 1 | v0 = 1;
| label_15:
0x00032ed4 sw zero, 0x18(s0) | *((s0 + 6)) = 0;
0x00032ed8 sw zero, 0x14(s0) | *((s0 + 5)) = 0;
0x00032edc sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x00032ee0 move s1, zero | s1 = 0;
| if (a0 == 0) {
0x00032ee4 beqz a0, 0x32ff4 | goto label_28;
| }
0x00032ee8 lw s4, -0x7eec(gp) | s4 = *(gp);
0x00032eec lw v0, 0x1c(sp) | v0 = *(var_1ch_2);
0x00032ef0 lw s6, -0x7eec(gp) | s6 = *(gp);
| /* fcn.00032958 */
0x00032ef4 addiu s4, s4, 0x2958 | s4 += 0x2958;
0x00032ef8 addiu s7, v0, 0x1ff8 | s7 = v0 + 0x1ff8;
| /* fcn.000324ac */
0x00032efc addiu fp, s6, 0x24ac | fp = s6 + 0x24ac;
0x00032f00 b 0x32f30 | goto label_29;
| label_10:
0x00032f04 lw v0, 0x18(s6) | v0 = *((s6 + 6));
0x00032f08 lw a0, (s6) | a0 = *(s6);
| if (v0 == 0) {
0x00032f0c bnel v0, zero, 0x32fd0 | goto label_30;
| }
| label_11:
0x00032f10 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00032f14 move a0, s3 | a0 = s3;
0x00032f18 jalr t9 | t9 ();
| do {
| label_8:
0x00032f1c lw v0, 0x20(s0) | v0 = *((s0 + 8));
0x00032f20 addiu s1, s1, 1 | s1++;
0x00032f24 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x00032f28 lw ra, 0x44(sp) | ra = *(var_44h_2);
| if (v0 == 0) {
0x00032f2c beqz v0, 0x32ff8 | goto label_31;
| }
| label_29:
0x00032f30 move t9, s5 | t9 = s5;
0x00032f34 bal 0x3261c | sym_focusd_state_get_type ();
0x00032f38 nop |
0x00032f3c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032f40 move a1, v0 | a1 = v0;
0x00032f44 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x00032f48 move a0, s2 | a0 = s2;
0x00032f4c jalr t9 | t9 ();
0x00032f50 move s6, v0 | s6 = v0;
0x00032f54 lw v0, (v0) | v0 = *(v0);
0x00032f58 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032f5c beqz v0, 0x32f1c |
| } while (v0 == 0);
0x00032f60 lw v0, 4(s6) | v0 = *((s6 + 1));
0x00032f64 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
| if (v0 == 0) {
0x00032f68 beqz v0, 0x32f1c | goto label_8;
| }
0x00032f6c addiu s3, s6, 8 | s3 = s6 + 8;
0x00032f70 move a0, s3 | a0 = s3;
0x00032f74 jalr t9 | t9 ();
0x00032f78 move a2, zero | a2 = 0;
0x00032f7c move a1, s1 | a1 = s1;
0x00032f80 move t9, s4 | t9 = s4;
0x00032f84 move a0, s2 | a0 = s2;
0x00032f88 bal 0x32958 | fcn_00032958 ();
| goto label_9;
0x00032f8c addiu a2, zero, 1 | a2 = 1;
0x00032f90 move a1, s1 | a1 = s1;
0x00032f94 move t9, s4 | t9 = s4;
0x00032f98 move a0, s2 | a0 = s2;
0x00032f9c bal 0x32958 | fcn_00032958 ();
| goto label_9;
0x00032fa0 lw v0, 0x14(s6) | v0 = *((s6 + 5));
0x00032fa4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00032fa8 beqz v0, 0x32f04 | goto label_10;
| }
0x00032fac lw v0, 0x18(sp) | v0 = *(var_18h);
0x00032fb0 lw a0, 4(s6) | a0 = *((s6 + 1));
0x00032fb4 move t9, fp | t9 = fp;
0x00032fb8 addiu a1, v0, 0x2040 | a1 = v0 + 0x2040;
0x00032fbc bal 0x324ac | fcn_000324ac ();
0x00032fc0 lw v0, 0x18(s6) | v0 = *((s6 + 6));
0x00032fc4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00032fc8 beqz v0, 0x32f10 | goto label_11;
| }
0x00032fcc lw a0, (s6) | a0 = *(s6);
| label_30:
0x00032fd0 move t9, fp | t9 = fp;
0x00032fd4 move a1, s7 | a1 = s7;
0x00032fd8 bal 0x324ac | fcn_000324ac ();
0x00032fdc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00032fe0 b 0x32f10 | goto label_11;
| label_14:
0x00032fe4 addiu v0, zero, 1 | v0 = 1;
0x00032fe8 sw zero, 0x18(s0) | *((s0 + 6)) = 0;
0x00032fec sw zero, 0x14(s0) | *((s0 + 5)) = 0;
0x00032ff0 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
| label_28:
0x00032ff4 lw ra, 0x44(sp) | ra = *(var_44h_2);
| label_31:
0x00032ff8 lw fp, 0x40(sp) | fp = *(var_40h_2);
0x00032ffc lw s7, 0x3c(sp) | s7 = *(var_3ch_2);
0x00033000 lw s6, 0x38(sp) | s6 = *(var_38h_2);
0x00033004 lw s5, 0x34(sp) | s5 = *(var_34h_2);
0x00033008 lw s4, 0x30(sp) | s4 = *(var_30h_2);
0x0003300c lw s3, 0x2c(sp) | s3 = *(var_2ch_2);
0x00033010 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00033014 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00033018 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0003301c addiu sp, sp, 0x48 |
0x00033020 jr ra | return v0;
| label_27:
0x00033024 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x00033028 addiu v0, zero, 1 | v0 = 1;
| if (a0 == 0) {
0x0003302c beqz a0, 0x32e6c | goto label_12;
| }
0x00033030 sltiu v0, a0, 2 | v0 = (a0 < 2) ? 1 : 0;
0x00033034 xori v1, v0, 1 | v1 = v0 ^ 1;
0x00033038 sw v1, 0x1c(s0) | *((s0 + 7)) = v1;
| if (v0 != 0) {
0x0003303c bnez v0, 0x32e74 | goto label_13;
| }
0x00033040 lw t9, -0x7878(gp) | t9 = sym.imp.g_malloc;
0x00033044 sll a0, a0, 3 | a0 <<= 3;
0x00033048 jalr t9 | t9 ();
0x0003304c lw v1, 0x20(s0) | v1 = *((s0 + 8));
0x00033050 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00033054 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| if (v1 == 0) {
0x00033058 beqz v1, 0x32fe4 | goto label_14;
| }
0x0003305c lw s6, -0x7fd8(gp) | s6 = *(gp);
0x00033060 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00033064 lw s4, -0x7fd8(gp) | s4 = *(gp);
0x00033068 move s1, zero | s1 = 0;
| /* esilref: 'Focus' */
0x0003306c addiu s6, s6, -0x52b8 | s6 += -0x52b8;
| /* str.Mechanics.M_u._s */
0x00033070 addiu s3, s3, 0x2064 | s3 += 0x2064;
| /* esilref: 'Zoom' */
0x00033074 addiu s4, s4, -0x3c80 | s4 += -0x3c80;
0x00033078 b 0x33080 |
| while (a1 != 0) {
0x0003307c lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x00033080 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x00033084 sll s7, s1, 3 | s7 = s1 << 3;
0x00033088 move a1, s1 | a1 = s1;
0x0003308c move a2, s6 | a2 = s6;
0x00033090 move a0, s3 | a0 = s3;
0x00033094 addu fp, v0, s7 | fp = v0 + s7;
0x00033098 jalr t9 | t9 ();
0x0003309c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000330a0 lw a3, 0x24(s0) | a3 = *((s0 + 9));
0x000330a4 move a1, s1 | a1 = s1;
0x000330a8 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x000330ac move a0, s3 | a0 = s3;
0x000330b0 sw v0, (fp) | *(fp) = v0;
0x000330b4 move a2, s4 | a2 = s4;
0x000330b8 addu s7, a3, s7 | s7 = a3 + s7;
0x000330bc jalr t9 | t9 ();
0x000330c0 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x000330c4 addiu s1, s1, 1 | s1++;
0x000330c8 sltu a1, s1, a0 | a1 = (s1 < a0) ? 1 : 0;
0x000330cc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000330d0 sw v0, 4(s7) | *((s7 + 1)) = v0;
0x000330d4 bnez a1, 0x3307c |
| }
0x000330d8 addiu v0, zero, 1 | v0 = 1;
0x000330dc b 0x32ed4 | goto label_15;
| label_26:
0x000330e0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000330e4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000330e8 lw a0, (v0) | a0 = *(v0);
0x000330ec lw v0, 0x18(sp) | v0 = *(var_18h);
0x000330f0 addiu a3, v0, 0x2040 | a3 = v0 + 0x2040;
| do {
0x000330f4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000330f8 addiu a1, zero, 1 | a1 = 1;
| /* str._3_file__s_could_not_be_opened_used_n */
0x000330fc addiu a2, a2, 0x2018 | a2 += 0x2018;
0x00033100 jalr t9 | t9 ();
0x00033104 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00033108 lw t9, -0x7bd4(gp) | t9 = sym.imp.exit;
0x0003310c addiu a0, zero, 1 | a0 = 1;
0x00033110 jalr t9 | t9 ();
| label_25:
0x00033114 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00033118 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003311c lw a0, (v0) | a0 = *(v0);
0x00033120 lw v0, 0x1c(sp) | v0 = *(var_1ch_2);
0x00033124 addiu a3, v0, 0x1ff8 | a3 = v0 + 0x1ff8;
0x00033128 b 0x330f4 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x34e08 */
| #include <stdint.h>
|
; (fcn) fcn.00034e08 () | void fcn_00034e08 () {
0x00034e08 lui gp, 4 |
0x00034e0c addiu gp, gp, -0x6288 |
0x00034e10 addu gp, gp, t9 | gp += t9;
0x00034e14 addiu sp, sp, -0x140 |
0x00034e18 lw t9, -0x7adc(gp) | t9 = sym.imp.readlink;
0x00034e1c sw s1, 0x12c(sp) | *(var_12ch) = s1;
0x00034e20 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00034e24 sw s3, 0x134(sp) | *(var_134h) = s3;
0x00034e28 sw s2, 0x130(sp) | *(var_130h) = s2;
0x00034e2c lw v0, (s1) | v0 = *(s1);
0x00034e30 move s3, a1 | s3 = a1;
0x00034e34 addiu s2, sp, 0x24 | s2 = sp + 0x24;
0x00034e38 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00034e3c sw s4, 0x138(sp) | *(var_138h) = s4;
0x00034e40 sw ra, 0x13c(sp) | *(var_13ch) = ra;
0x00034e44 sw s0, 0x128(sp) | *(var_128h) = s0;
0x00034e48 move s4, a0 | s4 = a0;
0x00034e4c addiu a2, zero, 0xff | a2 = 0xff;
0x00034e50 move a1, s2 | a1 = s2;
0x00034e54 move a0, s3 | a0 = s3;
0x00034e58 sw v0, 0x124(sp) | *(var_124h) = v0;
0x00034e5c jalr t9 | t9 ();
0x00034e60 nop |
0x00034e64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00034e68 bgez v0, 0x34f60 | goto label_1;
| }
0x00034e6c lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x00034e70 jalr t9 | t9 ();
0x00034e74 nop |
0x00034e78 lw v1, (v0) | v1 = *(v0);
0x00034e7c addiu v0, zero, 0x16 | v0 = 0x16;
0x00034e80 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x00034e84 beq v1, v0, 0x34ed8 | goto label_2;
| }
0x00034e88 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00034e8c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00034e90 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00034e94 lw a0, (v0) | a0 = *(v0);
| /* str._3_Store_state_failed:_readlink:__m_n */
0x00034e98 addiu a2, a2, 0x23a0 | a2 += 0x23a0;
0x00034e9c addiu a1, zero, 1 | a1 = 1;
0x00034ea0 jalr t9 | t9 ();
0x00034ea4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034ea8 move v0, zero | v0 = 0;
| do {
0x00034eac lw a0, 0x124(sp) | a0 = *(var_124h);
0x00034eb0 lw v1, (s1) | v1 = *(s1);
0x00034eb4 lw ra, 0x13c(sp) | ra = *(var_13ch);
| if (a0 != v1) {
0x00034eb8 bne a0, v1, 0x34f68 | goto label_3;
| }
0x00034ebc lw s4, 0x138(sp) | s4 = *(var_138h);
0x00034ec0 lw s3, 0x134(sp) | s3 = *(var_134h);
0x00034ec4 lw s2, 0x130(sp) | s2 = *(var_130h);
0x00034ec8 lw s1, 0x12c(sp) | s1 = *(var_12ch);
0x00034ecc lw s0, 0x128(sp) | s0 = *(var_128h);
0x00034ed0 addiu sp, sp, 0x140 |
0x00034ed4 jr ra | return v0;
| label_2:
0x00034ed8 lw t9, -0x79ac(gp) | t9 = sym.imp.strlen;
0x00034edc move a0, s3 | a0 = s3;
0x00034ee0 jalr t9 | t9 ();
0x00034ee4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034ee8 addiu a2, zero, 0xff | a2 = 0xff;
0x00034eec move a1, s3 | a1 = s3;
0x00034ef0 lw t9, -0x77f4(gp) | t9 = sym.imp.strncpy;
0x00034ef4 move a0, s2 | a0 = s2;
0x00034ef8 move s0, v0 | s0 = v0;
0x00034efc jalr t9 | t9 ();
0x00034f00 lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x00034f04 addiu v0, sp, 0x128 | v0 = sp + aav.0x00000128;
0x00034f08 addu s0, v0, s0 | s0 = v0 + s0;
0x00034f0c lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x00034f10 move a2, zero | a2 = 0;
0x00034f14 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00034f18 move a0, s4 | a0 = s4;
0x00034f1c sb zero, -0x104(s0) | *(s0) = 0;
0x00034f20 jalr t9 | t9 ();
0x00034f24 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034f28 lw a2, 0x20(sp) | a2 = *(var_20h);
0x00034f2c move a1, v0 | a1 = v0;
0x00034f30 lw t9, -0x7ee8(gp) | t9 = sym.focusd_safe_file_update;
0x00034f34 move a0, s2 | a0 = s2;
0x00034f38 move s0, v0 | s0 = v0;
0x00034f3c bal 0x382a0 | sym_focusd_safe_file_update ();
0x00034f40 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034f44 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00034f48 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00034f4c move a0, s0 | a0 = s0;
0x00034f50 jalr t9 | t9 ();
0x00034f54 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034f58 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00034f5c b 0x34eac |
| } while (1);
| label_1:
0x00034f60 move s0, v0 | s0 = v0;
0x00034f64 b 0x34f04 | goto label_0;
| label_3:
0x00034f68 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00034f6c jalr t9 | t9 ();
0x00034f70 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3b1c8 */
| #include <stdint.h>
|
; (fcn) fcn.0003b1c8 () | void fcn_0003b1c8 () {
0x0003b1c8 lui gp, 3 |
0x0003b1cc addiu gp, gp, 0x39b8 |
0x0003b1d0 addu gp, gp, t9 | gp += t9;
0x0003b1d4 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x0003b1d8 addiu sp, sp, -0x70 |
0x0003b1dc lw t9, -0x7a68(gp) | t9 = sym.imp.g_key_file_get_groups;
0x0003b1e0 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0003b1e4 lw v0, (v0) | v0 = *(v0);
0x0003b1e8 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0003b1ec move s4, a1 | s4 = a1;
0x0003b1f0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0003b1f4 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0003b1f8 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0003b1fc sw fp, 0x68(sp) | *(var_68h) = fp;
0x0003b200 sw s7, 0x64(sp) | *(var_64h) = s7;
0x0003b204 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0003b208 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0003b20c sw s2, 0x50(sp) | *(var_50h) = s2;
0x0003b210 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0003b214 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0003b218 move s3, a0 | s3 = a0;
0x0003b21c move a1, zero | a1 = 0;
0x0003b220 move a0, s4 | a0 = s4;
0x0003b224 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0003b228 jalr t9 | t9 ();
0x0003b22c nop |
0x0003b230 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0003b234 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003b238 beqz v0, 0x3b484 | goto label_5;
| }
0x0003b23c lw v0, 0x28(sp) | v0 = *(var_28h);
0x0003b240 lw s1, (v0) | s1 = *(v0);
0x0003b244 addiu s0, zero, 1 | s0 = 1;
| if (s1 == 0) {
0x0003b248 beqz s1, 0x3b430 | goto label_6;
| }
0x0003b24c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003b250 addiu s5, sp, 0x3c | s5 = sp + 0x3c;
0x0003b254 sw v0, 0x30(sp) | *(var_30h_2) = v0;
0x0003b258 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0003b25c addiu fp, sp, 0x40 | fp = sp + 0x40;
0x0003b260 addiu s7, v0, 4 | s7 = v0 + 4;
0x0003b264 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003b268 addiu v0, v0, -0x64a8 | v0 += -0x64a8;
0x0003b26c sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x0003b270 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str._6_Settings:_group__s__duplicate_entry__s._n */
0x0003b274 addiu v0, v0, 0x37ec | v0 += 0x37ec;
0x0003b278 sw v0, 0x24(sp) | *(var_24h_2) = v0;
| do {
0x0003b27c lw t9, -0x7740(gp) | t9 = sym.imp.g_key_file_get_keys;
0x0003b280 move a0, s4 | a0 = s4;
0x0003b284 move a3, s5 | a3 = s5;
0x0003b288 move a2, fp | a2 = fp;
0x0003b28c move a1, s1 | a1 = s1;
0x0003b290 sw zero, 0x3c(sp) | *(var_3ch_2) = 0;
0x0003b294 jalr t9 | t9 ();
0x0003b298 lw a0, 0x3c(sp) | a0 = *(var_3ch_2);
0x0003b29c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b2a0 move s6, v0 | s6 = v0;
| if (a0 != 0) {
0x0003b2a4 bnez a0, 0x3b48c | goto label_7;
| }
0x0003b2a8 lw v0, 0x40(sp) | v0 = *(var_40h_2);
0x0003b2ac lw s0, 0x30(sp) | s0 = *(var_30h_2);
| if (v0 != 0) {
0x0003b2b0 bnez v0, 0x3b310 | goto label_8;
| }
0x0003b2b4 lw t9, -0x774c(gp) | t9 = sym.imp.g_key_file_set_value;
0x0003b2b8 lw a3, 0x2c(sp) | a3 = *(var_2ch_2);
0x0003b2bc addiu a2, s0, -0x6dec | a2 = s0 + -0x6dec;
0x0003b2c0 move a1, s1 | a1 = s1;
0x0003b2c4 move a0, s3 | a0 = s3;
0x0003b2c8 jalr t9 | t9 ();
0x0003b2cc lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b2d0 move a3, zero | a3 = 0;
0x0003b2d4 addiu a2, s0, -0x6dec | a2 = s0 + -0x6dec;
0x0003b2d8 lw t9, -0x7810(gp) | t9 = sym.imp.g_key_file_remove_key;
0x0003b2dc move a1, s1 | a1 = s1;
0x0003b2e0 move a0, s3 | a0 = s3;
0x0003b2e4 jalr t9 | t9 ();
0x0003b2e8 lw gp, 0x18(sp) | gp = *(var_18h);
| label_1:
0x0003b2ec lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
| label_0:
0x0003b2f0 addiu s7, s7, 4 | s7 += 4;
0x0003b2f4 move a0, s6 | a0 = s6;
0x0003b2f8 jalr t9 | t9 ();
0x0003b2fc lw s1, -4(s7) | s1 = *((s7 - 1));
0x0003b300 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b304 bnez s1, 0x3b27c |
| } while (s1 != 0);
0x0003b308 addiu s0, zero, 1 | s0 = 1;
0x0003b30c b 0x3b430 | goto label_6;
| label_8:
0x0003b310 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003b314 lw a2, (s6) | a2 = *(s6);
0x0003b318 move s0, s6 | s0 = s6;
0x0003b31c sw v0, 0x20(sp) | *(var_20h_2) = v0;
| if (a2 != 0) {
0x0003b320 bnez a2, 0x3b36c | goto label_9;
| }
0x0003b324 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x0003b328 b 0x3b2f0 | goto label_0;
| label_2:
0x0003b32c lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
0x0003b330 lw a2, (s0) | a2 = *(s0);
| if (v0 != 0) {
0x0003b334 bnez v0, 0x3b3dc | goto label_10;
| }
| label_3:
0x0003b338 lw t9, -0x77f8(gp) | t9 = sym.imp.g_key_file_set_string;
0x0003b33c move a3, s2 | a3 = s2;
0x0003b340 move a1, s1 | a1 = s1;
0x0003b344 move a0, s3 | a0 = s3;
0x0003b348 jalr t9 | t9 ();
0x0003b34c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b350 addiu s0, s0, 4 | s0 += 4;
0x0003b354 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0003b358 move a0, s2 | a0 = s2;
0x0003b35c jalr t9 | t9 ();
0x0003b360 lw a2, (s0) | a2 = *(s0);
0x0003b364 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a2 == 0) {
0x0003b368 beqz a2, 0x3b2ec | goto label_1;
| }
| label_9:
0x0003b36c lw t9, -0x7790(gp) | t9 = sym.imp.g_key_file_get_string;
0x0003b370 move a3, s5 | a3 = s5;
0x0003b374 move a1, s1 | a1 = s1;
0x0003b378 move a0, s4 | a0 = s4;
0x0003b37c jalr t9 | t9 ();
0x0003b380 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b384 lw a2, (s0) | a2 = *(s0);
0x0003b388 move a3, zero | a3 = 0;
0x0003b38c lw t9, -0x7728(gp) | t9 = sym.imp.g_key_file_has_key;
0x0003b390 move a1, s1 | a1 = s1;
0x0003b394 move a0, s3 | a0 = s3;
0x0003b398 move s2, v0 | s2 = v0;
0x0003b39c jalr t9 | t9 ();
0x0003b3a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003b3a4 beqz v0, 0x3b32c | goto label_2;
| }
0x0003b3a8 lw v1, 0x20(sp) | v1 = *(var_20h_2);
0x0003b3ac lw v0, (s0) | v0 = *(s0);
0x0003b3b0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003b3b4 lw a0, (v1) | a0 = *(v1);
0x0003b3b8 lw a2, 0x24(sp) | a2 = *(var_24h_2);
0x0003b3bc sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003b3c0 move a3, s1 | a3 = s1;
0x0003b3c4 addiu a1, zero, 1 | a1 = 1;
0x0003b3c8 jalr t9 | t9 ();
0x0003b3cc lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
0x0003b3d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b3d4 lw a2, (s0) | a2 = *(s0);
| if (v0 == 0) {
0x0003b3d8 beqz v0, 0x3b338 | goto label_3;
| }
| label_10:
0x0003b3dc lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0003b3e0 move a3, a2 | a3 = a2;
0x0003b3e4 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0003b3e8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003b3ec lw a0, (v1) | a0 = *(v1);
0x0003b3f0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_get_value__s_from__s:__s_n */
0x0003b3f4 addiu a2, a2, 0x381c | a2 += 0x381c;
0x0003b3f8 addiu a1, zero, 1 | a1 = 1;
0x0003b3fc sw v0, 0x14(sp) | *(var_14h) = v0;
0x0003b400 sw s1, 0x10(sp) | *(var_10h) = s1;
0x0003b404 jalr t9 | t9 ();
0x0003b408 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b40c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003b410 move a0, s5 | a0 = s5;
0x0003b414 jalr t9 | t9 ();
0x0003b418 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b41c lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x0003b420 move a0, s6 | a0 = s6;
0x0003b424 jalr t9 | t9 ();
0x0003b428 lw gp, 0x18(sp) | gp = *(var_18h);
| label_4:
0x0003b42c move s0, zero | s0 = 0;
| label_6:
0x0003b430 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x0003b434 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0003b438 jalr t9 | t9 ();
0x0003b43c lw gp, 0x18(sp) | gp = *(var_18h);
| do {
0x0003b440 lw v0, 0x34(sp) | v0 = *(var_34h);
0x0003b444 lw a0, 0x44(sp) | a0 = *(var_44h);
0x0003b448 lw v1, (v0) | v1 = *(v0);
0x0003b44c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0003b450 bne a0, v1, 0x3b4cc | goto label_11;
| }
0x0003b454 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x0003b458 lw fp, 0x68(sp) | fp = *(var_68h);
0x0003b45c lw s7, 0x64(sp) | s7 = *(var_64h);
0x0003b460 lw s6, 0x60(sp) | s6 = *(var_60h);
0x0003b464 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x0003b468 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0003b46c lw s3, 0x54(sp) | s3 = *(var_54h);
0x0003b470 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0003b474 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0003b478 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0003b47c addiu sp, sp, 0x70 |
0x0003b480 jr ra | return v0;
| label_5:
0x0003b484 move s0, zero | s0 = 0;
0x0003b488 b 0x3b440 |
| } while (1);
| label_7:
0x0003b48c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0003b490 lw v0, 8(a0) | v0 = *((a0 + 2));
0x0003b494 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003b498 lw a0, (v1) | a0 = *(v1);
0x0003b49c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003b4a0 move a3, s1 | a3 = s1;
| /* esilref: '<3>Could not get keys from settings group '&s': &s
' */
0x0003b4a4 addiu a2, a2, 0x37b8 | a2 += 0x37b8;
0x0003b4a8 addiu a1, zero, 1 | a1 = 1;
0x0003b4ac sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003b4b0 jalr t9 | t9 ();
0x0003b4b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b4b8 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003b4bc move a0, s5 | a0 = s5;
0x0003b4c0 jalr t9 | t9 ();
0x0003b4c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b4c8 b 0x3b42c | goto label_4;
| label_11:
0x0003b4cc lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003b4d0 jalr t9 | t9 ();
0x0003b4d4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3b4d8 */
| #include <stdint.h>
|
; (fcn) fcn.0003b4d8 () | void fcn_0003b4d8 () {
0x0003b4d8 lui gp, 3 |
0x0003b4dc addiu gp, gp, 0x36a8 |
0x0003b4e0 addu gp, gp, t9 | gp += t9;
0x0003b4e4 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x0003b4e8 addiu sp, sp, -0x60 |
0x0003b4ec lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x0003b4f0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0003b4f4 lw v0, (v0) | v0 = *(v0);
0x0003b4f8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0003b4fc sw s7, 0x54(sp) | *(var_54h) = s7;
0x0003b500 sw s6, 0x50(sp) | *(var_50h) = s6;
0x0003b504 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0003b508 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0003b50c sw s3, 0x44(sp) | *(var_44h) = s3;
0x0003b510 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0003b514 sw s0, 0x38(sp) | *(var_38h) = s0;
0x0003b518 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0003b51c sw fp, 0x58(sp) | *(var_58h) = fp;
0x0003b520 sw s2, 0x40(sp) | *(var_40h) = s2;
0x0003b524 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0003b528 lw s3, -0x7fdc(gp) | s3 = *((gp - 8183));
0x0003b52c move s1, zero | s1 = 0;
0x0003b530 jalr t9 | t9 ();
0x0003b534 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b538 move s6, v0 | s6 = v0;
0x0003b53c lw a1, 0x77b0(s3) | a1 = *((s3 + 7660));
0x0003b540 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003b544 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x0003b548 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0003b54c addu s0, a1, s1 | s0 = a1 + s1;
| /* str._4_Settings:_std2_file__s_group__s__duplicate_entry__s._n */
0x0003b550 addiu v0, s7, 0x387c | v0 = s7 + 0x387c;
0x0003b554 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0003b558 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003b55c lw s5, -0x7edc(gp) | s5 = *(gp);
0x0003b560 lw a0, (s0) | a0 = *(s0);
0x0003b564 addiu v0, v0, -0x64a8 | v0 += -0x64a8;
0x0003b568 addiu s4, sp, 0x30 | s4 = sp + 0x30;
| /* fcn.0003b1c8 */
0x0003b56c addiu s5, s5, -0x4e38 | s5 += -0x4e38;
0x0003b570 sw v0, 0x24(sp) | *(var_24h) = v0;
| if (a0 == 0) {
0x0003b574 beqz a0, 0x3b5a4 | goto label_9;
| }
0x0003b578 lw v0, 0xc(s0) | v0 = *((s0 + 3));
| do {
0x0003b57c addiu v1, zero, 1 | v1 = 1;
0x0003b580 lw t9, -0x78cc(gp) | t9 = sym.imp.std2parser_opencfg;
| if (v0 == v1) {
0x0003b584 beq v0, v1, 0x3b794 | goto label_10;
| }
0x0003b588 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
| if (v0 == 0) {
0x0003b58c beqz v0, 0x3b650 | goto label_11;
| }
0x0003b590 addiu s1, s1, 0x10 | s1 += 0x10;
| label_0:
0x0003b594 addu s0, a1, s1 | s0 = a1 + s1;
0x0003b598 lw a0, (s0) | a0 = *(s0);
0x0003b59c lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0003b5a0 bnel a0, zero, 0x3b57c |
| } while (a0 == 0);
| label_9:
0x0003b5a4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x0003b5a8 lw t9, -0x76e0(gp) | t9 = sym.imp.g_utf8_validate;
| if (a0 == 0) {
0x0003b5ac beqz a0, 0x3b988 | goto label_12;
| }
0x0003b5b0 move a2, zero | a2 = 0;
0x0003b5b4 addiu a1, zero, -1 | a1 = -1;
0x0003b5b8 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0003b5bc jalr t9 | t9 ();
0x0003b5c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003b5c4 beqz v0, 0x3b9c4 | goto label_13;
| }
0x0003b5c8 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x0003b5cc jalr t9 | t9 ();
0x0003b5d0 nop |
0x0003b5d4 lw v1, 0x77b0(s3) | v1 = *((s3 + 7660));
0x0003b5d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b5dc addu v1, v1, s1 | v1 += s1;
0x0003b5e0 move s0, v0 | s0 = v0;
0x0003b5e4 lw s2, 4(v1) | s2 = *((v1 + 1));
0x0003b5e8 lw t9, -0x79ac(gp) | t9 = sym.imp.strlen;
0x0003b5ec move a0, s2 | a0 = s2;
0x0003b5f0 jalr t9 | t9 ();
0x0003b5f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b5f8 sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x0003b5fc move a3, zero | a3 = 0;
0x0003b600 lw t9, -0x7c0c(gp) | t9 = sym.imp.g_key_file_load_from_data;
0x0003b604 move a2, v0 | a2 = v0;
0x0003b608 move a1, s2 | a1 = s2;
0x0003b60c move a0, s0 | a0 = s0;
0x0003b610 jalr t9 | t9 ();
0x0003b614 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003b618 beqz v0, 0x3b9ec | goto label_14;
| }
0x0003b61c move a0, s6 | a0 = s6;
0x0003b620 move t9, s5 | t9 = s5;
0x0003b624 move a1, s0 | a1 = s0;
0x0003b628 bal 0x3b1c8 | fcn_0003b1c8 ();
0x0003b62c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b630 move a0, s0 | a0 = s0;
0x0003b634 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| if (v0 == 0) {
0x0003b638 beqz v0, 0x3b7fc | goto label_15;
| }
| label_1:
0x0003b63c addiu s1, s1, 0x10 | s1 += 0x10;
0x0003b640 jalr t9 | t9 ();
0x0003b644 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b648 lw a1, 0x77b0(s3) | a1 = *((s3 + 7660));
0x0003b64c b 0x3b594 | goto label_0;
| label_11:
0x0003b650 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0003b654 jalr t9 | t9 ();
0x0003b658 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b65c lw a1, (s0) | a1 = *(s0);
0x0003b660 move a3, s4 | a3 = s4;
0x0003b664 lw t9, -0x7a90(gp) | t9 = sym.imp.g_key_file_load_from_file;
0x0003b668 move a2, zero | a2 = 0;
0x0003b66c move a0, v0 | a0 = v0;
0x0003b670 move s2, v0 | s2 = v0;
0x0003b674 jalr t9 | t9 ();
0x0003b678 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0003b67c bnez v0, 0x3b7dc | goto label_16;
| }
0x0003b680 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0003b684 lw fp, 0x30(sp) | fp = *(var_30h);
| if (v0 == 0) {
0x0003b688 bnez v0, 0x3b6e8 |
0x0003b68c lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x0003b690 jalr t9 | t9 ();
0x0003b694 nop |
0x0003b698 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b69c addiu a2, zero, 2 | a2 = 2;
0x0003b6a0 move a1, v0 | a1 = v0;
0x0003b6a4 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0003b6a8 move a0, fp | a0 = fp;
0x0003b6ac jalr t9 | t9 ();
0x0003b6b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0003b6b4 bnez v0, 0x3b91c | goto label_17;
| }
0x0003b6b8 lw t9, -0x7bac(gp) | t9 = sym.imp.g_file_error_quark;
0x0003b6bc lw fp, 0x30(sp) | fp = *(var_30h);
0x0003b6c0 jalr t9 | t9 ();
0x0003b6c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b6c8 addiu a2, zero, 4 | a2 = 4;
0x0003b6cc move a1, v0 | a1 = v0;
0x0003b6d0 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0003b6d4 move a0, fp | a0 = fp;
0x0003b6d8 jalr t9 | t9 ();
0x0003b6dc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0003b6e0 bnez v0, 0x3b91c | goto label_17;
| }
0x0003b6e4 lw fp, 0x30(sp) | fp = *(var_30h);
| }
0x0003b6e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003b6ec lw a3, (s0) | a3 = *(s0);
0x0003b6f0 lw a0, (v0) | a0 = *(v0);
| if (fp == 0) {
0x0003b6f4 beqz fp, 0x3b96c | goto label_18;
| }
0x0003b6f8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003b6fc lw v0, 8(fp) | v0 = *(arg_8h);
0x0003b700 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_load_settings_from_file__s.:__s_n */
0x0003b704 addiu a2, a2, 0x38bc | a2 += 0x38bc;
0x0003b708 addiu a1, zero, 1 | a1 = 1;
0x0003b70c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003b710 jalr t9 | t9 ();
0x0003b714 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b718 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003b71c move a0, s4 | a0 = s4;
0x0003b720 jalr t9 | t9 ();
0x0003b724 lw gp, 0x18(sp) | gp = *(var_18h);
| label_6:
0x0003b728 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
0x0003b72c move a0, s2 | a0 = s2;
0x0003b730 jalr t9 | t9 ();
0x0003b734 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_5:
0x0003b738 move v0, zero | v0 = 0;
| if (s6 != 0) {
0x0003b73c beqz s6, 0x3b754 |
0x0003b740 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| label_2:
0x0003b744 move a0, s6 | a0 = s6;
0x0003b748 jalr t9 | t9 ();
0x0003b74c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b750 move v0, zero | v0 = 0;
| }
| label_3:
0x0003b754 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0003b758 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0003b75c lw v1, (v1) | v1 = *(v1);
0x0003b760 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (a0 != v1) {
0x0003b764 bne a0, v1, 0x3ba6c | goto label_19;
| }
0x0003b768 lw fp, 0x58(sp) | fp = *(var_58h);
0x0003b76c lw s7, 0x54(sp) | s7 = *(var_54h);
0x0003b770 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0003b774 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0003b778 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0003b77c lw s3, 0x44(sp) | s3 = *(var_44h);
0x0003b780 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0003b784 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0003b788 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0003b78c addiu sp, sp, 0x60 |
0x0003b790 jr ra | return v0;
| label_10:
0x0003b794 jalr t9 | t9 ();
0x0003b798 nop |
0x0003b79c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0003b7a0 bnez v0, 0x3b818 | goto label_20;
| }
0x0003b7a4 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0003b7a8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003b7ac bnez v0, 0x3b738 |
| } while (v0 != 0);
0x0003b7b0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003b7b4 lw a3, (s0) | a3 = *(s0);
0x0003b7b8 lw a0, (v0) | a0 = *(v0);
0x0003b7bc lw v0, 0x28(sp) | v0 = *(var_28h);
0x0003b7c0 addiu a1, zero, 1 | a1 = 1;
0x0003b7c4 addiu a2, v0, 0x3848 | a2 = v0 + 0x3848;
0x0003b7c8 jalr t9 | t9 ();
0x0003b7cc addiu s1, s1, 0x10 | s1 += 0x10;
0x0003b7d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b7d4 lw a1, 0x77b0(s3) | a1 = *((s3 + 7660));
0x0003b7d8 b 0x3b594 | goto label_0;
| label_16:
0x0003b7dc move a0, s6 | a0 = s6;
0x0003b7e0 move t9, s5 | t9 = s5;
0x0003b7e4 move a1, s2 | a1 = s2;
0x0003b7e8 bal 0x3b1c8 | fcn_0003b1c8 ();
0x0003b7ec lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b7f0 move a0, s2 | a0 = s2;
0x0003b7f4 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| if (v0 != 0) {
0x0003b7f8 bnez v0, 0x3b63c | goto label_1;
| }
| label_15:
0x0003b7fc jalr t9 | t9 ();
0x0003b800 nop |
0x0003b804 lw gp, 0x18(sp) | gp = *(var_18h);
| label_7:
0x0003b808 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| if (s6 != 0) {
0x0003b80c bnez s6, 0x3b744 | goto label_2;
| }
0x0003b810 move v0, zero | v0 = 0;
0x0003b814 b 0x3b754 | goto label_3;
| label_20:
0x0003b818 lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x0003b81c lw fp, -0x7990(gp) | fp = *((gp - 7780));
0x0003b820 jalr t9 | t9 ();
0x0003b824 nop |
0x0003b828 move s2, v0 | s2 = v0;
0x0003b82c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b830 b 0x3b854 |
| while (v0 == 0) {
0x0003b834 lw a3, 8(s7) | a3 = *((s7 + 2));
0x0003b838 lw a1, (s7) | a1 = *(s7);
0x0003b83c lw a2, 4(s7) | a2 = *((s7 + 1));
0x0003b840 lw t9, -0x77f8(gp) | t9 = sym.imp.g_key_file_set_string;
| if (a3 == 0) {
0x0003b844 beqz a3, 0x3b8cc | goto label_21;
| }
| label_4:
0x0003b848 move a0, s2 | a0 = s2;
0x0003b84c jalr t9 | t9 ();
0x0003b850 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b854 lw t9, -0x7714(gp) | t9 = sym.imp.std2parser_getcfg;
0x0003b858 jalr t9 | t9 ();
0x0003b85c nop |
0x0003b860 move s7, v0 | s7 = v0;
0x0003b864 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003b868 beqz v0, 0x3b8d4 | goto label_22;
| }
0x0003b86c lw t9, -0x7728(gp) | t9 = sym.imp.g_key_file_has_key;
0x0003b870 lw a2, 4(s7) | a2 = *((s7 + 1));
0x0003b874 lw a1, (s7) | a1 = *(s7);
0x0003b878 move a3, zero | a3 = 0;
0x0003b87c move a0, s2 | a0 = s2;
0x0003b880 jalr t9 | t9 ();
0x0003b884 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b888 beqz v0, 0x3b834 |
| }
0x0003b88c lw v0, 4(s7) | v0 = *((s7 + 1));
0x0003b890 lw a3, (s0) | a3 = *(s0);
0x0003b894 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0003b898 lw v0, (s7) | v0 = *(s7);
0x0003b89c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003b8a0 lw a0, (fp) | a0 = *(fp);
0x0003b8a4 lw a2, 0x20(sp) | a2 = *(var_20h);
0x0003b8a8 addiu a1, zero, 1 | a1 = 1;
0x0003b8ac sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003b8b0 jalr t9 | t9 ();
0x0003b8b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b8b8 lw a3, 8(s7) | a3 = *((s7 + 2));
0x0003b8bc lw a1, (s7) | a1 = *(s7);
0x0003b8c0 lw a2, 4(s7) | a2 = *((s7 + 1));
0x0003b8c4 lw t9, -0x77f8(gp) | t9 = sym.imp.g_key_file_set_string;
| if (a3 != 0) {
0x0003b8c8 bnez a3, 0x3b848 | goto label_4;
| }
| label_21:
0x0003b8cc lw a3, 0x24(sp) | a3 = *(var_24h);
0x0003b8d0 b 0x3b848 | goto label_4;
| label_22:
0x0003b8d4 move a1, s2 | a1 = s2;
0x0003b8d8 move t9, s5 | t9 = s5;
0x0003b8dc move a0, s6 | a0 = s6;
0x0003b8e0 bal 0x3b1c8 | fcn_0003b1c8 ();
0x0003b8e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b8e8 move a0, s2 | a0 = s2;
0x0003b8ec lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
0x0003b8f0 move s0, v0 | s0 = v0;
0x0003b8f4 jalr t9 | t9 ();
0x0003b8f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b8fc lw t9, -0x79f0(gp) | t9 = sym.imp.std2parser_closecfg;
0x0003b900 jalr t9 | t9 ();
0x0003b904 nop |
0x0003b908 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x0003b90c beqz s0, 0x3b738 | goto label_5;
| }
0x0003b910 lw a1, 0x77b0(s3) | a1 = *((s3 + 7660));
0x0003b914 addiu s1, s1, 0x10 | s1 += 0x10;
0x0003b918 b 0x3b594 | goto label_0;
| label_17:
0x0003b91c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003b920 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003b924 lw a3, (s0) | a3 = *(s0);
0x0003b928 lw a0, (v0) | a0 = *(v0);
0x0003b92c lw v0, 0x28(sp) | v0 = *(var_28h);
0x0003b930 addiu a1, zero, 1 | a1 = 1;
0x0003b934 addiu a2, v0, 0x3848 | a2 = v0 + 0x3848;
0x0003b938 jalr t9 | t9 ();
0x0003b93c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b940 move a0, s4 | a0 = s4;
0x0003b944 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003b948 addiu s1, s1, 0x10 | s1 += 0x10;
0x0003b94c jalr t9 | t9 ();
0x0003b950 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b954 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
0x0003b958 move a0, s2 | a0 = s2;
0x0003b95c jalr t9 | t9 ();
0x0003b960 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b964 lw a1, 0x77b0(s3) | a1 = *((s3 + 7660));
0x0003b968 b 0x3b594 | goto label_0;
| label_18:
0x0003b96c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003b970 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_load_settings_from_file__s._n */
0x0003b974 addiu a2, a2, 0x38ec | a2 += 0x38ec;
0x0003b978 addiu a1, zero, 1 | a1 = 1;
0x0003b97c jalr t9 | t9 ();
0x0003b980 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b984 b 0x3b728 | goto label_6;
| label_12:
0x0003b988 lw s0, -0x7fdc(gp) | s0 = *((gp - 8183));
0x0003b98c lw a0, 0x77bc(s0) | a0 = *((s0 + 7663));
0x0003b990 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| if (a0 != 0) {
0x0003b994 beqz a0, 0x3b9a4 |
0x0003b998 jalr t9 | t9 ();
0x0003b99c nop |
0x0003b9a0 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0003b9a4 lw t9, -0x7844(gp) | t9 = sym.imp.g_key_file_set_list_separator;
0x0003b9a8 addiu a1, zero, 0x2c | a1 = 0x2c;
0x0003b9ac move a0, s6 | a0 = s6;
0x0003b9b0 sw s6, 0x77bc(s0) | *((s0 + 7663)) = s6;
0x0003b9b4 jalr t9 | t9 ();
0x0003b9b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b9bc addiu v0, zero, 1 | v0 = 1;
0x0003b9c0 b 0x3b754 | goto label_3;
| label_13:
0x0003b9c4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003b9c8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003b9cc lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003b9d0 lw a3, (v0) | a3 = *(v0);
0x0003b9d4 addiu a2, zero, 0x32 | a2 = 0x32;
0x0003b9d8 addiu a1, zero, 1 | a1 = 1;
| /* str._3_added_config_file_section_is_not_UTF_8_encoded_n */
0x0003b9dc addiu a0, a0, 0x3918 | a0 += 0x3918;
0x0003b9e0 jalr t9 | t9 ();
0x0003b9e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003b9e8 b 0x3b738 | goto label_5;
| label_14:
0x0003b9ec lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0003b9f0 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0003b9f4 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0003b9f8 beqz v0, 0x3ba40 | goto label_23;
| }
0x0003b9fc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003ba00 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003ba04 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._3_Could_not_load_settings_from_data_blob.:__s_n */
0x0003ba08 addiu a2, a2, 0x394c | a2 += 0x394c;
0x0003ba0c addiu a1, zero, 1 | a1 = 1;
0x0003ba10 jalr t9 | t9 ();
0x0003ba14 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ba18 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003ba1c move a0, s4 | a0 = s4;
0x0003ba20 jalr t9 | t9 ();
0x0003ba24 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ba28 move a0, s0 | a0 = s0;
0x0003ba2c lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| do {
0x0003ba30 jalr t9 | t9 ();
0x0003ba34 nop |
0x0003ba38 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ba3c b 0x3b808 | goto label_7;
| label_23:
0x0003ba40 move a3, a0 | a3 = a0;
0x0003ba44 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003ba48 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
| /* str._3_Could_not_load_settings_from_data_blob._n */
0x0003ba4c addiu a0, a0, 0x397c | a0 += 0x397c;
0x0003ba50 addiu a2, zero, 0x2b | a2 = 0x2b;
0x0003ba54 addiu a1, zero, 1 | a1 = 1;
0x0003ba58 jalr t9 | t9 ();
0x0003ba5c lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ba60 move a0, s0 | a0 = s0;
0x0003ba64 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
0x0003ba68 b 0x3ba30 |
| } while (1);
| label_19:
0x0003ba6c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003ba70 jalr t9 | t9 ();
0x0003ba74 nop |
0x0003ba78 lui gp, 3 |
0x0003ba7c addiu gp, gp, 0x3108 |
0x0003ba80 addu gp, gp, t9 | gp += t9;
0x0003ba84 addiu sp, sp, -0x28 |
0x0003ba88 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003ba8c sw s2, 0x20(sp) | *(var_20h_2) = s2;
0x0003ba90 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0003ba94 lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x0003ba98 lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x0003ba9c sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003baa0 sw ra, 0x24(sp) | *(var_24h_2) = ra;
0x0003baa4 sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x0003baa8 addiu a0, s2, 0x77b4 | a0 = s2 + 0x77b4;
0x0003baac jalr t9 | t9 ();
0x0003bab0 lw a1, 0x77b0(s1) | a1 = *((s1 + 7660));
0x0003bab4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a1 == 0) {
0x0003bab8 beqz a1, 0x3bb20 | goto label_24;
| }
0x0003babc move s0, zero | s0 = 0;
0x0003bac0 b 0x3baf0 |
| while (v0 != 0) {
| label_8:
0x0003bac4 jalr t9 | t9 ();
0x0003bac8 nop |
0x0003bacc lw v0, 0x77b0(s1) | v0 = *((s1 + 7660));
0x0003bad0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003bad4 addu v0, v0, s0 | v0 += s0;
0x0003bad8 addiu s0, s0, 0x10 | s0 += 0x10;
0x0003badc lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0003bae0 lw a0, 4(v0) | a0 = *((v0 + 1));
0x0003bae4 jalr t9 | t9 ();
0x0003bae8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003baec lw a1, 0x77b0(s1) | a1 = *((s1 + 7660));
0x0003baf0 addu v1, a1, s0 | v1 = a1 + s0;
0x0003baf4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0003baf8 lw v0, (v1) | v0 = *(v1);
0x0003bafc move a0, v0 | a0 = v0;
0x0003bb00 bnez v0, 0x3bac4 |
| }
0x0003bb04 lw v0, 4(v1) | v0 = *((v1 + 1));
| if (v0 != 0) {
0x0003bb08 bnez v0, 0x3bac4 | goto label_8;
| }
0x0003bb0c nop |
0x0003bb10 move a0, a1 | a0 = a1;
0x0003bb14 jalr t9 | t9 ();
0x0003bb18 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003bb1c sw zero, 0x77b0(s1) | *((s1 + 7660)) = 0;
| label_24:
0x0003bb20 lw s0, -0x7fdc(gp) | s0 = *((gp - 8183));
0x0003bb24 lw a0, 0x77bc(s0) | a0 = *((s0 + 7663));
0x0003bb28 lw t9, -0x7b44(gp) | t9 = sym.imp.g_key_file_free;
| if (a0 != 0) {
0x0003bb2c beqz a0, 0x3bb40 |
0x0003bb30 jalr t9 | t9 ();
0x0003bb34 nop |
0x0003bb38 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003bb3c sw zero, 0x77bc(s0) | *((s0 + 7663)) = 0;
| }
0x0003bb40 lw ra, 0x24(sp) | ra = *(var_24h_2);
0x0003bb44 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0003bb48 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x0003bb4c addiu a0, s2, 0x77b4 | a0 = s2 + 0x77b4;
0x0003bb50 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003bb54 lw s2, 0x20(sp) | s2 = *(var_20h_2);
0x0003bb58 addiu sp, sp, 0x28 |
0x0003bb5c jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3d27c */
| #include <stdint.h>
|
; (fcn) fcn.0003d27c () | void fcn_0003d27c () {
0x0003d27c lui gp, 3 |
0x0003d280 addiu gp, gp, 0x1904 |
0x0003d284 addu gp, gp, t9 | gp += t9;
0x0003d288 addiu sp, sp, -0x48 |
0x0003d28c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003d290 sw s0, 0x34(sp) | *(var_34h) = s0;
0x0003d294 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0003d298 lw v0, 0x7814(v0) | v0 = *((v0 + 7685));
0x0003d29c sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003d2a0 lw v1, (s0) | v1 = *(s0);
0x0003d2a4 sw ra, 0x44(sp) | *(var_44h) = ra;
0x0003d2a8 sw s3, 0x40(sp) | *(var_40h) = s3;
0x0003d2ac sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x0003d2b0 sw s1, 0x38(sp) | *(var_38h) = s1;
0x0003d2b4 sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x0003d2b8 sw zero, 0x28(sp) | *(var_28h) = 0;
| if (v0 == 0) {
0x0003d2bc beqz v0, 0x3d3e8 | goto label_3;
| }
0x0003d2c0 lw s3, -0x7fdc(gp) | s3 = *((gp - 8183));
0x0003d2c4 lw v0, 0x7810(s3) | v0 = *((s3 + 7684));
0x0003d2c8 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
| if (v0 == 0) {
0x0003d2cc beqz v0, 0x3d3f0 | goto label_4;
| }
0x0003d2d0 lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x0003d2d4 move s1, a0 | s1 = a0;
0x0003d2d8 addiu a0, s2, 0x77d4 | a0 = s2 + 0x77d4;
0x0003d2dc jalr t9 | t9 ();
0x0003d2e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d2e4 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
| if (s1 != 0) {
0x0003d2e8 bnez s1, 0x3d340 | goto label_5;
| }
0x0003d2ec lw v1, 0x77d0(a0) | v1 = *((a0 + 7668));
0x0003d2f0 addiu v1, v1, -1 | v1 += -1;
0x0003d2f4 sltiu v0, v1, 1 | v0 = (v1 < 1) ? 1 : 0;
0x0003d2f8 sw v1, 0x77d0(a0) | *((a0 + 7668)) = v1;
| if (v0 != 0) {
0x0003d2fc bnez v0, 0x3d354 | goto label_6;
| }
| do {
| label_2:
0x0003d300 addiu s1, zero, 1 | s1 = 1;
| label_0:
0x0003d304 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003d308 addiu a0, s2, 0x77d4 | a0 = s2 + 0x77d4;
0x0003d30c jalr t9 | t9 ();
0x0003d310 lw gp, 0x20(sp) | gp = *(var_20h);
| label_1:
0x0003d314 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0003d318 lw v1, (s0) | v1 = *(s0);
0x0003d31c move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0003d320 bne a0, v1, 0x3d438 | goto label_7;
| }
0x0003d324 lw ra, 0x44(sp) | ra = *(var_44h);
0x0003d328 lw s3, 0x40(sp) | s3 = *(var_40h);
0x0003d32c lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x0003d330 lw s1, 0x38(sp) | s1 = *(var_38h);
0x0003d334 lw s0, 0x34(sp) | s0 = *(var_34h);
0x0003d338 addiu sp, sp, 0x48 |
0x0003d33c jr ra | return v0;
| label_5:
0x0003d340 lw v0, 0x77d0(a0) | v0 = *((a0 + 7668));
0x0003d344 addiu v1, v0, 1 | v1 = v0 + 1;
0x0003d348 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x0003d34c sw v1, 0x77d0(a0) | *((a0 + 7668)) = v1;
0x0003d350 beqz v0, 0x3d300 |
| } while (v0 == 0);
| label_6:
0x0003d354 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003d358 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
0x0003d35c move a1, s1 | a1 = s1;
| /* esilref: '(b)' */
0x0003d360 addiu a0, a0, -0x4f98 | a0 += -0x4f98;
0x0003d364 lw s3, 0x7810(s3) | s3 = *((s3 + 7684));
0x0003d368 jalr t9 | t9 ();
0x0003d36c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d370 addiu v1, zero, -1 | v1 = -1;
0x0003d374 addiu s1, sp, 0x28 | s1 = sp + 0x28;
0x0003d378 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003d37c lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003d380 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0003d384 sw s1, 0x18(sp) | *(var_18h) = s1;
0x0003d388 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003d38c move a3, zero | a3 = 0;
0x0003d390 move a2, v0 | a2 = v0;
| /* str.DisableFanHeater */
0x0003d394 addiu a1, a1, 0x3bfc | a1 += 0x3bfc;
0x0003d398 move a0, s3 | a0 = s3;
0x0003d39c jalr t9 | t9 ();
0x0003d3a0 lw v1, 0x28(sp) | v1 = *(var_28h);
0x0003d3a4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 != 0) {
0x0003d3a8 beqz v1, 0x3d41c |
0x0003d3ac lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003d3b0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003d3b4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003d3b8 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0003d3bc lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_set_fan_heater:__s_n */
0x0003d3c0 addiu a2, a2, 0x3c10 | a2 += 0x3c10;
0x0003d3c4 addiu a1, zero, 1 | a1 = 1;
0x0003d3c8 jalr t9 | t9 ();
0x0003d3cc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d3d0 move a0, s1 | a0 = s1;
0x0003d3d4 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003d3d8 move s1, zero | s1 = 0;
0x0003d3dc jalr t9 | t9 ();
0x0003d3e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d3e4 b 0x3d304 | goto label_0;
| label_3:
0x0003d3e8 addiu s1, zero, 1 | s1 = 1;
0x0003d3ec b 0x3d314 | goto label_1;
| label_4:
0x0003d3f0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003d3f4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003d3f8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003d3fc lw a3, (v0) | a3 = *(v0);
0x0003d400 addiu a2, zero, 0x22 | a2 = 0x22;
0x0003d404 addiu a1, zero, 1 | a1 = 1;
| /* str._4_No_proxy_for_temperature_ctrld_n */
0x0003d408 addiu a0, a0, 0x3bd8 | a0 += 0x3bd8;
0x0003d40c jalr t9 | t9 ();
0x0003d410 move s1, zero | s1 = 0;
0x0003d414 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d418 b 0x3d314 | goto label_1;
| }
0x0003d41c lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
| if (v0 == 0) {
0x0003d420 beqz v0, 0x3d300 | goto label_2;
| }
0x0003d424 move a0, v0 | a0 = v0;
0x0003d428 jalr t9 | t9 ();
0x0003d42c addiu s1, zero, 1 | s1 = 1;
0x0003d430 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d434 b 0x3d304 | goto label_0;
| label_7:
0x0003d438 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003d43c jalr t9 | t9 ();
0x0003d440 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3d5e0 */
| #include <stdint.h>
|
; (fcn) fcn.0003d5e0 () | void fcn_0003d5e0 () {
0x0003d5e0 lui gp, 3 |
0x0003d5e4 addiu gp, gp, 0x15a0 |
0x0003d5e8 addu gp, gp, t9 | gp += t9;
0x0003d5ec addiu sp, sp, -0x70 |
0x0003d5f0 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0003d5f4 lw s5, -0x7a04(gp) | s5 = *((gp - 7809));
0x0003d5f8 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0003d5fc lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0003d600 lw v0, (s5) | v0 = *(s5);
0x0003d604 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0003d608 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0003d60c lw s2, -0x7fd8(gp) | s2 = *(gp);
0x0003d610 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x0003d614 sw fp, 0x68(sp) | *(var_68h) = fp;
0x0003d618 sw s7, 0x64(sp) | *(var_64h) = s7;
0x0003d61c sw v0, 0x30(sp) | *(var_30h) = v0;
0x0003d620 lw fp, -0x7fdc(gp) | fp = *((gp - 8183));
| /* str._ib_ */
0x0003d624 addiu v0, s3, 0x3ce4 | v0 = s3 + 0x3ce4;
0x0003d628 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x0003d62c sw s6, 0x60(sp) | *(var_60h) = s6;
0x0003d630 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0003d634 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0003d638 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0003d63c sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003d640 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0003d644 move s1, a0 | s1 = a0;
0x0003d648 addiu s4, a0, 8 | s4 = a0 + 8;
0x0003d64c move s0, zero | s0 = 0;
| /* str._idb_ */
0x0003d650 addiu s2, s2, 0x3c88 | s2 += 0x3c88;
0x0003d654 addiu s6, sp, 0x40 | s6 = sp + 0x40;
0x0003d658 sw v0, 0x34(sp) | *(var_34h) = v0;
| do {
| label_1:
0x0003d65c lw t9, -0x7f8c(gp) | t9 = *(gp);
0x0003d660 lw a0, (s1) | a0 = *(s1);
0x0003d664 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x0003d668 bal 0x44980 | fcn_00044980 ();
0x0003d66c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d670 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0003d674 move a0, v0 | a0 = v0;
0x0003d678 bal 0x47140 | fcn_00047140 ();
0x0003d67c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d680 lw a1, 0x14(s1) | a1 = *((s1 + 5));
0x0003d684 xori t0, s0, 1 | t0 = s0 ^ 1;
0x0003d688 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
0x0003d68c move a3, v1 | a3 = v1;
0x0003d690 move a2, v0 | a2 = v0;
0x0003d694 move a0, s2 | a0 = s2;
0x0003d698 sw t0, 0x10(sp) | *(var_10h) = t0;
0x0003d69c lw s3, 0x7810(fp) | s3 = *(arg_7810h);
0x0003d6a0 jalr t9 | t9 ();
0x0003d6a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d6a8 lw v1, 0x30(sp) | v1 = *(var_30h);
0x0003d6ac sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003d6b0 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003d6b4 sw v1, 0x18(sp) | *(var_18h) = v1;
0x0003d6b8 addiu v1, zero, -1 | v1 = -1;
0x0003d6bc sw v1, 0x10(sp) | *(var_10h) = v1;
0x0003d6c0 move a3, zero | a3 = 0;
0x0003d6c4 move a2, v0 | a2 = v0;
| /* str.RegisterForTemperatureSignal */
0x0003d6c8 addiu a1, s7, 0x3c90 | a1 = s7 + 0x3c90;
0x0003d6cc move a0, s3 | a0 = s3;
0x0003d6d0 jalr t9 | t9 ();
0x0003d6d4 lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x0003d6d8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 != 0) {
0x0003d6dc bnez v1, 0x3d7a8 | goto label_3;
| }
0x0003d6e0 lw t9, -0x79dc(gp) | t9 = sym.imp.g_variant_get;
0x0003d6e4 lw a1, 0x34(sp) | a1 = *(var_34h);
0x0003d6e8 move a0, v0 | a0 = v0;
0x0003d6ec move a3, s6 | a3 = s6;
0x0003d6f0 move a2, s4 | a2 = s4;
0x0003d6f4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0003d6f8 jalr t9 | t9 ();
0x0003d6fc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d700 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0003d704 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003d708 move a0, v0 | a0 = v0;
0x0003d70c jalr t9 | t9 ();
0x0003d710 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == 0) {
0x0003d714 beqz s0, 0x3d734 | goto label_4;
| }
0x0003d718 addiu v0, zero, 1 | v0 = 1;
0x0003d71c lw v0, 0x40(sp) | v0 = *(var_40h);
| if (s0 == v0) {
0x0003d720 beq s0, v0, 0x3d754 | goto label_5;
| }
0x0003d724 sw zero, 4(s1) | *((s1 + 1)) = 0;
| label_0:
0x0003d728 addiu s0, s0, 1 | s0++;
0x0003d72c addiu s4, s4, 4 | s4 += 4;
0x0003d730 b 0x3d65c |
| } while (1);
| label_4:
0x0003d734 lw v0, 0x40(sp) | v0 = *(var_40h);
| if (v0 == 0) {
0x0003d738 beql v0, zero, 0x3d728 | goto label_0;
| }
0x0003d73c sw zero, 4(s1) | *((s1 + 1)) = 0;
0x0003d740 addiu v0, zero, 1 | v0 = 1;
0x0003d744 sw v0, 4(s1) | *((s1 + 1)) = v0;
0x0003d748 addiu s0, s0, 1 | s0++;
0x0003d74c addiu s4, s4, 4 | s4 += 4;
0x0003d750 b 0x3d65c | goto label_1;
| if (v0 == 0) {
| label_5:
0x0003d754 beql v0, zero, 0x3d7a0 | goto label_6;
| }
0x0003d758 sw s0, 4(s1) | *((s1 + 1)) = s0;
0x0003d75c sw zero, 4(s1) | *((s1 + 1)) = 0;
0x0003d760 addiu v0, zero, 1 | v0 = 1;
| do {
| label_2:
0x0003d764 lw a0, 0x44(sp) | a0 = *(var_44h);
0x0003d768 lw v1, (s5) | v1 = *(s5);
0x0003d76c lw ra, 0x6c(sp) | ra = *(var_6ch);
| if (a0 != v1) {
0x0003d770 bne a0, v1, 0x3d808 | goto label_7;
| }
0x0003d774 lw fp, 0x68(sp) | fp = *(var_68h);
0x0003d778 lw s7, 0x64(sp) | s7 = *(var_64h);
0x0003d77c lw s6, 0x60(sp) | s6 = *(var_60h);
0x0003d780 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x0003d784 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0003d788 lw s3, 0x54(sp) | s3 = *(var_54h);
0x0003d78c lw s2, 0x50(sp) | s2 = *(var_50h);
0x0003d790 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0003d794 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0003d798 addiu sp, sp, 0x70 |
0x0003d79c jr ra | return v0;
| label_6:
0x0003d7a0 addiu v0, zero, 1 | v0 = 1;
0x0003d7a4 b 0x3d764 |
| } while (1);
| label_3:
0x0003d7a8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003d7ac lw a0, (v0) | a0 = *(v0);
| if (s0 == 0) {
0x0003d7b0 beqz s0, 0x3d7fc | goto label_8;
| }
0x0003d7b4 lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.below */
0x0003d7b8 addiu a3, a3, 0x3c80 | a3 += 0x3c80;
| do {
0x0003d7bc lw v1, 8(v1) | v1 = *((v1 + 2));
0x0003d7c0 lw v0, (s1) | v0 = *(s1);
0x0003d7c4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003d7c8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._4_Failed_to_register_signal__s_temperature__d:__s_n */
0x0003d7cc addiu a2, a2, 0x3cb0 | a2 += 0x3cb0;
0x0003d7d0 addiu a1, zero, 1 | a1 = 1;
0x0003d7d4 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0003d7d8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003d7dc jalr t9 | t9 ();
0x0003d7e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d7e4 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003d7e8 lw a0, 0x30(sp) | a0 = *(var_30h);
0x0003d7ec jalr t9 | t9 ();
0x0003d7f0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003d7f4 move v0, zero | v0 = 0;
0x0003d7f8 b 0x3d764 | goto label_2;
| label_8:
0x0003d7fc lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.above */
0x0003d800 addiu a3, a3, 0x3c78 | a3 += 0x3c78;
0x0003d804 b 0x3d7bc |
| } while (1);
| label_7:
0x0003d808 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003d80c jalr t9 | t9 ();
0x0003d810 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3ee08 */
| #include <stdint.h>
|
; (fcn) fcn.0003ee08 () | void fcn_0003ee08 () {
0x0003ee08 lui gp, 3 |
0x0003ee0c addiu gp, gp, -0x288 |
0x0003ee10 addu gp, gp, t9 | gp += t9;
0x0003ee14 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x0003ee18 addiu sp, sp, -0x130 |
0x0003ee1c sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0003ee20 lw v0, (v0) | v0 = *(v0);
0x0003ee24 sw s3, 0x114(sp) | *(var_114h) = s3;
0x0003ee28 sw v0, 0x104(sp) | *(var_104h) = v0;
0x0003ee2c addiu s3, zero, 2 | s3 = 2;
0x0003ee30 addiu v0, zero, 1 | v0 = 1;
0x0003ee34 sw s5, 0x11c(sp) | *(var_11ch) = s5;
| if (a1 != 0) {
0x0003ee38 movz s3, v0, a1 | s3 = v0;
| }
0x0003ee3c lw s5, -0x7fd8(gp) | s5 = *(gp);
0x0003ee40 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003ee44 sw s2, 0x110(sp) | *(var_110h) = s2;
0x0003ee48 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0003ee4c lui s2, 0x8000 | s2 = 0x80000000;
| /* str._4__s:_Select_did_not_release_before_timeout__source__u._n */
0x0003ee50 addiu v0, s5, 0x4184 | v0 = s5 + 0x4184;
0x0003ee54 sw fp, 0x128(sp) | *(var_128h) = fp;
0x0003ee58 sw s7, 0x124(sp) | *(var_124h) = s7;
0x0003ee5c sw s6, 0x120(sp) | *(var_120h) = s6;
0x0003ee60 sw s4, 0x118(sp) | *(var_118h) = s4;
0x0003ee64 sw s1, 0x10c(sp) | *(var_10ch) = s1;
0x0003ee68 sw s0, 0x108(sp) | *(var_108h) = s0;
0x0003ee6c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0003ee70 sw ra, 0x12c(sp) | *(var_12ch) = ra;
0x0003ee74 move s0, a0 | s0 = a0;
0x0003ee78 move s1, zero | s1 = 0;
0x0003ee7c addiu s7, sp, 0x3c | s7 = sp + 0x3c;
0x0003ee80 addiu s4, sp, 0x34 | s4 = sp + 0x34;
0x0003ee84 addiu fp, sp, 0xbc | fp = sp + 0xbc;
0x0003ee88 addiu s2, s2, 0x1f | s2 += 0x1f;
0x0003ee8c addiu s6, zero, -0x20 | s6 = -0x20;
0x0003ee90 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0003ee94 move v0, s7 | v0 = s7;
| label_0:
0x0003ee98 sw zero, (v0) | *(v0) = 0;
| do {
0x0003ee9c addiu v0, v0, 4 | v0 += 4;
0x0003eea0 sw zero, (v0) | *(v0) = 0;
0x0003eea4 bnel v0, fp, 0x3ee9c |
| } while (v0 == fp);
0x0003eea8 lw t9, -0x7c08(gp) | t9 = *(gp);
0x0003eeac lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0003eeb0 jalr t9 | t9 ();
0x0003eeb4 lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0003eeb8 sll v0, v0, 2 | v0 <<= 2;
0x0003eebc addiu v1, sp, 0x108 | v1 = sp + aav.0x00000108;
0x0003eec0 and a1, a0, s2 | a1 = a0 & s2;
0x0003eec4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003eec8 addu t1, v1, v0 | t1 = v1 + v0;
| if (a1 < 0) {
0x0003eecc bgez a1, 0x3eee0 |
0x0003eed0 addiu a1, a1, -1 | a1 += -1;
0x0003eed4 or a1, a1, s6 | a1 |= s6;
0x0003eed8 addiu a1, a1, 1 | a1++;
0x0003eedc addiu v1, sp, 0x108 | v1 = sp + aav.0x00000108;
| }
0x0003eee0 addu v0, v1, v0 | v0 = v1 + v0;
0x0003eee4 lw t9, -0x7a4c(gp) | t9 = sym.imp.select;
0x0003eee8 lw a2, -0xcc(v0) | a2 = *((v0 - 51));
0x0003eeec addiu v0, zero, 1 | v0 = 1;
0x0003eef0 sllv v0, v0, a1 | v0 <<= a1;
0x0003eef4 or v0, v0, a2 | v0 |= a2;
0x0003eef8 sw s4, 0x10(sp) | *(var_10h) = s4;
0x0003eefc sw v0, -0xcc(t1) | *((t1 - 51)) = v0;
0x0003ef00 addiu v0, zero, 0xa | v0 = 0xa;
0x0003ef04 move a3, zero | a3 = 0;
0x0003ef08 move a2, zero | a2 = 0;
0x0003ef0c move a1, s7 | a1 = s7;
0x0003ef10 addiu a0, a0, 1 | a0++;
0x0003ef14 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0003ef18 sw zero, 0x38(sp) | *(var_38h) = 0;
0x0003ef1c jalr t9 | t9 ();
0x0003ef20 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0003ef24 bltz v0, 0x3f050 | goto label_3;
| }
0x0003ef28 lw v1, 0x24(sp) | v1 = *(var_24h);
| if (v0 != 0) {
0x0003ef2c bnez v0, 0x3f094 | goto label_4;
| }
0x0003ef30 lw v0, (s0) | v0 = *(s0);
0x0003ef34 lw t9, -0x7a6c(gp) | t9 = sym.imp.g_type_name;
0x0003ef38 lw a0, (v0) | a0 = *(v0);
0x0003ef3c lw s5, (v1) | s5 = *(v1);
0x0003ef40 jalr t9 | t9 ();
0x0003ef44 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ef48 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0003ef4c lw a2, 0x28(sp) | a2 = *(var_28h);
0x0003ef50 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003ef54 sw a0, 0x10(sp) | *(var_10h) = a0;
0x0003ef58 move a3, v0 | a3 = v0;
0x0003ef5c addiu a1, zero, 1 | a1 = 1;
0x0003ef60 move a0, s5 | a0 = s5;
0x0003ef64 jalr t9 | t9 ();
0x0003ef68 lw gp, 0x18(sp) | gp = *(var_18h);
| label_2:
0x0003ef6c sltu v0, s1, s3 | v0 = (s1 < s3) ? 1 : 0;
0x0003ef70 move v0, s7 | v0 = s7;
| if (v0 != 0) {
0x0003ef74 bnez v0, 0x3ee98 | goto label_0;
| }
0x0003ef78 lui s3, 0x40c8 | s3 = 0x40c80000;
0x0003ef7c addiu s1, s0, 0x1c | s1 = s0 + 0x1c;
0x0003ef80 addiu s5, sp, 0x40 | s5 = sp + 0x40;
0x0003ef84 addiu s3, s3, 0x2a9b | s3 += 0x2a9b;
0x0003ef88 addiu s4, zero, 0xb | s4 = 0xb;
| do {
0x0003ef8c lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003ef90 move a0, s1 | a0 = s1;
0x0003ef94 jalr t9 | t9 ();
0x0003ef98 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003ef9c lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0003efa0 move a2, s5 | a2 = s5;
0x0003efa4 lw t9, -0x793c(gp) | t9 = sym.imp.ioctl;
0x0003efa8 move a1, s3 | a1 = s3;
0x0003efac jalr t9 | t9 ();
0x0003efb0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003efb4 move s2, v0 | s2 = v0;
0x0003efb8 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003efbc move a0, s1 | a0 = s1;
0x0003efc0 jalr t9 | t9 ();
0x0003efc4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 >= 0) {
0x0003efc8 bltz s2, 0x3f010 |
0x0003efcc lw v0, 0x40(sp) | v0 = *(var_40h);
| label_1:
0x0003efd0 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0003efd4 lw a0, 0x104(sp) | a0 = *(var_104h);
0x0003efd8 lw v1, (v1) | v1 = *(v1);
0x0003efdc lw ra, 0x12c(sp) | ra = *(var_12ch);
| if (a0 != v1) {
0x0003efe0 bne a0, v1, 0x3f09c | goto label_5;
| }
0x0003efe4 lw fp, 0x128(sp) | fp = *(var_128h);
0x0003efe8 lw s7, 0x124(sp) | s7 = *(var_124h);
0x0003efec lw s6, 0x120(sp) | s6 = *(var_120h);
0x0003eff0 lw s5, 0x11c(sp) | s5 = *(var_11ch);
0x0003eff4 lw s4, 0x118(sp) | s4 = *(var_118h);
0x0003eff8 lw s3, 0x114(sp) | s3 = *(var_114h);
0x0003effc lw s2, 0x110(sp) | s2 = *(var_110h);
0x0003f000 lw s1, 0x10c(sp) | s1 = *(var_10ch);
0x0003f004 lw s0, 0x108(sp) | s0 = *(var_108h);
0x0003f008 addiu sp, sp, 0x130 |
0x0003f00c jr ra | return v0;
| }
0x0003f010 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0003f014 jalr t9 | t9 ();
0x0003f018 nop |
0x0003f01c lw v0, (v0) | v0 = *(v0);
0x0003f020 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003f024 beq v0, s4, 0x3ef8c |
| } while (v0 == s4);
0x0003f028 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003f02c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003f030 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003f034 lw a0, (v0) | a0 = *(v0);
| /* str._3_Could_not_read_measure_from_driver:__m_n */
0x0003f038 addiu a2, a2, 0x41c0 | a2 += 0x41c0;
0x0003f03c addiu a1, zero, 1 | a1 = 1;
0x0003f040 jalr t9 | t9 ();
0x0003f044 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003f048 move v0, zero | v0 = 0;
0x0003f04c b 0x3efd0 | goto label_1;
| label_3:
0x0003f050 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0003f054 jalr t9 | t9 ();
0x0003f058 nop |
0x0003f05c lw a0, (v0) | a0 = *(v0);
0x0003f060 addiu v0, zero, 4 | v0 = 4;
0x0003f064 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == v0) {
0x0003f068 beq a0, v0, 0x3ef6c | goto label_2;
| }
0x0003f06c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003f070 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003f074 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003f078 lw a0, (v0) | a0 = *(v0);
| /* str._4_select_returned__m_n */
0x0003f07c addiu a2, a2, 0x416c | a2 += 0x416c;
0x0003f080 addiu a1, zero, 1 | a1 = 1;
0x0003f084 jalr t9 | t9 ();
0x0003f088 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003f08c move v0, zero | v0 = 0;
0x0003f090 b 0x3efd0 | goto label_1;
| label_4:
0x0003f094 addiu s1, s1, 1 | s1++;
0x0003f098 b 0x3ef6c | goto label_2;
| label_5:
0x0003f09c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003f0a0 jalr t9 | t9 ();
0x0003f0a4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x405b4 */
| #include <stdint.h>
|
; (fcn) fcn.000405b4 () | void fcn_000405b4 () {
0x000405b4 lui gp, 3 |
0x000405b8 addiu gp, gp, -0x1a34 |
0x000405bc addu gp, gp, t9 | gp += t9;
0x000405c0 addiu sp, sp, -0x20 |
0x000405c4 lw t9, -0x77f4(gp) | t9 = sym.imp.strncpy;
0x000405c8 addiu a2, zero, 8 | a2 = 8;
0x000405cc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000405d0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x000405d4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000405d8 move s0, a1 | s0 = a1;
0x000405dc jalr t9 | t9 ();
0x000405e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000405e4 sb zero, 7(v0) | *((v0 + 7)) = 0;
0x000405e8 move a1, s0 | a1 = s0;
0x000405ec lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
0x000405f0 move a0, v0 | a0 = v0;
0x000405f4 jalr t9 | t9 ();
0x000405f8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000405fc bnez v0, 0x40614 |
0x00040600 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00040604 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00040608 addiu v0, zero, 1 | v0 = 1;
0x0004060c addiu sp, sp, 0x20 |
0x00040610 jr ra | return v0;
| }
0x00040614 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00040618 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0004061c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00040620 lw a0, (v0) | a0 = *(v0);
0x00040624 move a3, s0 | a3 = s0;
| /* str._4_motor_artpec4_iop_tb6613ftg__copy__s_failed_n */
0x00040628 addiu a2, a2, 0x435c | a2 += 0x435c;
0x0004062c addiu a1, zero, 1 | a1 = 1;
0x00040630 jalr t9 | t9 ();
0x00040634 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00040638 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0004063c move v0, zero | v0 = 0;
0x00040640 addiu sp, sp, 0x20 |
0x00040644 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x40840 */
| #include <stdint.h>
|
; (fcn) fcn.00040840 () | void fcn_00040840 () {
| label_13:
0x00040840 lui gp, 3 |
0x00040844 addiu gp, gp, -0x1cc0 |
0x00040848 addu gp, gp, t9 | gp += t9;
0x0004084c addiu sp, sp, -0x88 |
0x00040850 addiu v0, zero, 2 | v0 = 2;
0x00040854 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x00040858 lw s3, -0x7a04(gp) | s3 = *((gp - 7809));
0x0004085c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00040860 sw s1, 0x64(sp) | *(var_64h) = s1;
0x00040864 lw v1, (s3) | v1 = *(s3);
0x00040868 sw ra, 0x84(sp) | *(var_84h) = ra;
0x0004086c sw fp, 0x80(sp) | *(var_80h) = fp;
0x00040870 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x00040874 sw s6, 0x78(sp) | *(var_78h) = s6;
0x00040878 sw s5, 0x74(sp) | *(var_74h) = s5;
0x0004087c sw s4, 0x70(sp) | *(var_70h) = s4;
0x00040880 sw s2, 0x68(sp) | *(var_68h) = s2;
0x00040884 sw s0, 0x60(sp) | *(var_60h) = s0;
0x00040888 move s1, a0 | s1 = a0;
0x0004088c sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x00040890 addiu v0, zero, 1 | v0 = 1;
| if (a1 == v0) {
0x00040894 beq a1, v0, 0x409b8 | goto label_15;
| }
0x00040898 lw s2, -0x7edc(gp) | s2 = *(gp);
| if (a1 == v0) {
0x0004089c beq a1, v0, 0x40d70 | goto label_16;
| }
| label_2:
0x000408a0 lw a0, 0x50(s1) | a0 = *((s1 + 20));
0x000408a4 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x000408a8 addiu a0, a0, 0xb4 | a0 += 0xb4;
0x000408ac jalr t9 | t9 ();
0x000408b0 lw a0, 0x50(s1) | a0 = *((s1 + 20));
0x000408b4 lw v0, 0x94(a0) | v0 = *((a0 + 37));
0x000408b8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000408bc beqz v0, 0x4097c | goto label_17;
| }
0x000408c0 lw a1, 0xa0(a0) | a1 = *((a0 + 40));
0x000408c4 lw v1, 0x48(a0) | v1 = *((a0 + 18));
0x000408c8 lw v0, 0x4c(a0) | v0 = *((a0 + 19));
| if (a1 != 0) {
0x000408cc bnez a1, 0x4096c | goto label_18;
| }
0x000408d0 sw v1, 0x98(a0) | *((a0 + 38)) = v1;
0x000408d4 sw zero, 0x9c(a0) | *((a0 + 39)) = 0;
0x000408d8 move v0, v1 | v0 = v1;
| do {
0x000408dc lw v1, 0x44(a0) | v1 = *((a0 + 17));
0x000408e0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x000408e4 sw zero, 0x94(a0) | *((a0 + 37)) = 0;
0x000408e8 addiu a0, a0, 0xb4 | a0 += 0xb4;
0x000408ec sw v1, 0x38(sp) | *(var_38h) = v1;
0x000408f0 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x000408f4 jalr t9 | t9 ();
0x000408f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000408fc lw v0, 0x50(s1) | v0 = *((s1 + 20));
0x00040900 addiu a1, sp, 0x38 | a1 = sp + 0x38;
0x00040904 lw t9, -0x7a7c(gp) | t9 = sym.imp.stepper_set_voltage;
0x00040908 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x0004090c jalr t9 | t9 ();
0x00040910 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00040914 beqz v0, 0x40990 | goto label_19;
| }
| label_1:
0x00040918 lw t9, -0x7edc(gp) | t9 = *(gp);
0x0004091c addiu a1, zero, 1 | a1 = 1;
| /* fcn.000404b8 */
0x00040920 addiu t9, t9, 0x4b8 | t9 += 0x4b8;
0x00040924 move a0, s1 | a0 = s1;
0x00040928 bal 0x404b8 | fcn_000404b8 ();
0x0004092c lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x00040930 lw v1, 0x5c(sp) | v1 = *(var_5ch);
0x00040934 lw v0, (s3) | v0 = *(s3);
0x00040938 lw ra, 0x84(sp) | ra = *(var_84h);
| if (v1 != v0) {
0x0004093c bne v1, v0, 0x4115c | goto label_20;
| }
0x00040940 lw fp, 0x80(sp) | fp = *(var_80h);
0x00040944 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x00040948 lw s6, 0x78(sp) | s6 = *(var_78h);
0x0004094c lw s5, 0x74(sp) | s5 = *(var_74h);
0x00040950 lw s4, 0x70(sp) | s4 = *(var_70h);
0x00040954 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x00040958 lw s2, 0x68(sp) | s2 = *(var_68h);
0x0004095c lw s1, 0x64(sp) | s1 = *(var_64h);
0x00040960 lw s0, 0x60(sp) | s0 = *(var_60h);
0x00040964 addiu sp, sp, 0x88 |
0x00040968 jr ra | return v0;
| label_18:
0x0004096c addiu v1, zero, 1 | v1 = 1;
0x00040970 sw v0, 0x98(a0) | *((a0 + 38)) = v0;
0x00040974 sw v1, 0x9c(a0) | *((a0 + 39)) = v1;
0x00040978 b 0x408dc |
| } while (1);
| label_17:
0x0004097c lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00040980 addiu a0, a0, 0xb4 | a0 += 0xb4;
0x00040984 jalr t9 | t9 ();
0x00040988 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004098c b 0x40930 | goto label_0;
| label_19:
0x00040990 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00040994 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00040998 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0004099c lw a3, (v0) | a3 = *(v0);
0x000409a0 addiu a2, zero, 0x1e | a2 = 0x1e;
0x000409a4 addiu a1, zero, 1 | a1 = 1;
| /* str._3_stepper_set_voltage_failed_n */
0x000409a8 addiu a0, a0, 0x43b0 | a0 += 0x43b0;
0x000409ac jalr t9 | t9 ();
0x000409b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000409b4 b 0x40918 | goto label_1;
| label_15:
0x000409b8 lw t9, -0x7f24(gp) | t9 = sym.focusd_motor_get_type;
0x000409bc jalr t9 | t9 ();
0x000409c0 nop |
0x000409c4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000409c8 move a1, v0 | a1 = v0;
0x000409cc lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x000409d0 move a0, s1 | a0 = s1;
0x000409d4 jalr t9 | t9 ();
0x000409d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000409dc lw t9, -0x7ec8(gp) | t9 = sym.focusd_motor_artpec4_iop_tb6613ftg_get_type;
0x000409e0 move s2, v0 | s2 = v0;
0x000409e4 bal 0x40708 | sym_focusd_motor_artpec4_iop_tb6613ftg_get_type ();
0x000409e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000409ec move a1, v0 | a1 = v0;
0x000409f0 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x000409f4 move a0, s2 | a0 = s2;
0x000409f8 jalr t9 | t9 ();
0x000409fc move s0, v0 | s0 = v0;
0x00040a00 lw v0, 0x24(s2) | v0 = *((s2 + 9));
0x00040a04 lw v1, 0x50(s0) | v1 = *((s0 + 20));
0x00040a08 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040a0c lw s5, 0x78(v1) | s5 = *((v1 + 30));
| if (v0 != 0) {
0x00040a10 bnez v0, 0x40cd0 | goto label_21;
| }
0x00040a14 negu v0, s5 | __asm ("negu v0, s5");
0x00040a18 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00040a1c addiu v0, zero, 1 | v0 = 1;
0x00040a20 sw v0, 0x18(sp) | *(var_18h) = v0;
| label_3:
0x00040a24 lw s7, -0x7edc(gp) | s7 = *(gp);
| /* fcn.0003fde8 */
0x00040a28 addiu s7, s7, -0x218 | s7 += -aav.0x00000218;
0x00040a2c move t9, s7 | t9 = s7;
0x00040a30 move a0, s0 | a0 = s0;
0x00040a34 bal 0x3fde8 | fcn_0003fde8 ();
0x00040a38 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040a3c move a0, s2 | a0 = s2;
0x00040a40 lw t9, -0x7f64(gp) | t9 = sym.focusd_motor_invalidate_position_file;
0x00040a44 move s6, v0 | s6 = v0;
0x00040a48 jalr t9 | t9 ();
0x00040a4c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040a50 move a0, s0 | a0 = s0;
0x00040a54 move a1, zero | a1 = 0;
0x00040a58 lw v0, -0x7edc(gp) | v0 = *(gp);
| /* fcn.000404b8 */
0x00040a5c addiu t9, v0, 0x4b8 | t9 = v0 + 0x4b8;
0x00040a60 sw t9, 0x20(sp) | *(var_20h) = t9;
0x00040a64 bal 0x404b8 | fcn_000404b8 ();
0x00040a68 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040a6c lw a0, 0x1c(s2) | a0 = *((s2 + 7));
0x00040a70 lw v1, 0x80(v0) | v1 = *((v0 + 32));
0x00040a74 sltu a0, v1, a0 | a0 = (v1 < a0) ? 1 : 0;
0x00040a78 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != 0) {
0x00040a7c bnez a0, 0x40f94 | goto label_22;
| }
| label_7:
0x00040a80 lw v1, 0x74(v0) | v1 = *((v0 + 29));
0x00040a84 lw t9, -0x7f24(gp) | t9 = sym.focusd_motor_get_type;
| if (v1 == 0) {
0x00040a88 beqz v1, 0x40db8 | goto label_23;
| }
0x00040a8c lw s7, -0x7edc(gp) | s7 = *(gp);
0x00040a90 lw v1, 0x8c(v0) | v1 = *((v0 + 35));
0x00040a94 addiu s4, sp, 0x44 | s4 = sp + 0x44;
0x00040a98 lw a1, 0x3c(v0) | a1 = *((v0 + 15));
| /* fcn.000405b4 */
0x00040a9c addiu s7, s7, 0x5b4 | s7 += 0x5b4;
0x00040aa0 addiu a2, zero, 8 | a2 = 8;
0x00040aa4 move a0, s4 | a0 = s4;
0x00040aa8 move t9, s7 | t9 = s7;
0x00040aac sw v1, 0x58(sp) | *(var_58h) = v1;
0x00040ab0 bal 0x405b4 | fcn_000405b4 ();
0x00040ab4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00040ab8 bnez v0, 0x41094 | goto label_24;
| }
| label_12:
0x00040abc lw s4, -0x7edc(gp) | s4 = *(gp);
0x00040ac0 addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x00040ac4 sw v0, 0x24(sp) | *(var_24h) = v0;
| /* fcn.0004005c */
0x00040ac8 addiu s4, s4, 0x5c | s4 += 0x5c;
| label_6:
0x00040acc lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040ad0 lw t9, -0x7a44(gp) | t9 = sym.imp.stepper_start;
0x00040ad4 lw a1, 0x24(sp) | a1 = *(var_24h);
0x00040ad8 lw a2, 0x98(v0) | a2 = *((v0 + 38));
0x00040adc lw v1, 0x50(v0) | v1 = *((v0 + 20));
0x00040ae0 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040ae4 sw zero, 0x38(sp) | *(var_38h) = 0;
0x00040ae8 sw a2, 0x40(sp) | *(var_40h) = a2;
0x00040aec sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x00040af0 jalr t9 | t9 ();
0x00040af4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00040af8 beqz v0, 0x4106c | goto label_25;
| }
0x00040afc lw a1, 0x1c(sp) | a1 = *(var_1ch);
| label_11:
0x00040b00 move t9, s4 | t9 = s4;
0x00040b04 move a0, s0 | a0 = s0;
0x00040b08 bal 0x4005c | fcn_0004005c ();
0x00040b0c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040b10 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040b14 move a1, zero | a1 = 0;
0x00040b18 lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040b1c lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040b20 addiu s7, sp, 0x30 | s7 = sp + 0x30;
0x00040b24 jalr t9 | t9 ();
0x00040b28 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040b2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040b30 move a1, s7 | a1 = s7;
0x00040b34 lw a2, 0x98(v0) | a2 = *((v0 + 38));
0x00040b38 lw v1, 0x54(v0) | v1 = *((v0 + 21));
0x00040b3c lw t9, -0x7a7c(gp) | t9 = sym.imp.stepper_set_voltage;
0x00040b40 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040b44 sw a2, 0x34(sp) | *(var_34h) = a2;
0x00040b48 sw v1, 0x30(sp) | *(var_30h) = v1;
0x00040b4c jalr t9 | t9 ();
0x00040b50 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00040b54 beqz v0, 0x41044 | goto label_26;
| }
0x00040b58 lw v0, 0x18(sp) | v0 = *(var_18h);
| label_10:
0x00040b5c addu a1, s5, s6 | a1 = s5 + s6;
0x00040b60 mul a1, a1, v0 | __asm ("mul a1, a1, v0");
0x00040b64 move t9, s4 | t9 = s4;
0x00040b68 move a0, s0 | a0 = s0;
0x00040b6c bal 0x4005c | fcn_0004005c ();
0x00040b70 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040b74 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040b78 move a1, zero | a1 = 0;
0x00040b7c lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040b80 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040b84 jalr t9 | t9 ();
0x00040b88 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040b8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040b90 move a1, s7 | a1 = s7;
0x00040b94 lw v1, 0x44(v0) | v1 = *((v0 + 17));
0x00040b98 lw t9, -0x7a7c(gp) | t9 = sym.imp.stepper_set_voltage;
0x00040b9c lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040ba0 sw v1, 0x30(sp) | *(var_30h) = v1;
0x00040ba4 jalr t9 | t9 ();
0x00040ba8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00040bac beqz v0, 0x4101c | goto label_27;
| }
| label_9:
0x00040bb0 lw v1, 0x50(s0) | v1 = *((s0 + 20));
0x00040bb4 lw v0, 0x74(v1) | v0 = *((v1 + 29));
0x00040bb8 sll s6, s6, 1 | s6 <<= 1;
| if (v0 != 0) {
0x00040bbc bnez v0, 0x40fd8 | goto label_28;
| }
0x00040bc0 lw v0, 0x24(s2) | v0 = *((s2 + 9));
0x00040bc4 move a1, zero | a1 = 0;
| if (v0 != 0) {
0x00040bc8 beqz v0, 0x40bd4 |
0x00040bcc lw a1, 0x8c(v1) | a1 = *((v1 + 35));
0x00040bd0 addiu a1, a1, -1 | a1 += -1;
| }
0x00040bd4 lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.0003fef8 */
0x00040bd8 addiu t9, t9, -0x108 | t9 += -aav.0x00000108;
0x00040bdc move a0, s0 | a0 = s0;
0x00040be0 bal 0x3fef8 | fcn_0003fef8 ();
0x00040be4 lw s5, 0x44(s2) | s5 = *((s2 + 17));
0x00040be8 lw v0, 0x1c(s2) | v0 = *((s2 + 7));
0x00040bec lw gp, 0x10(sp) | gp = *(var_10h);
0x00040bf0 addu s5, s5, v0 | s5 += v0;
0x00040bf4 addu s5, s5, s6 | s5 += s6;
0x00040bf8 sw s5, 0x44(s2) | *((s2 + 17)) = s5;
| label_8:
0x00040bfc lw v0, 0x28(s2) | v0 = *((s2 + 10));
0x00040c00 lw v1, 0x50(s0) | v1 = *((s0 + 20));
| if (v0 != 0) {
0x00040c04 beqz v0, 0x40c18 |
0x00040c08 lw a0, 0x24(s2) | a0 = *((s2 + 9));
| if (v0 < 0) {
0x00040c0c bltz v0, 0x40ce0 | goto label_29;
| }
| if (a0 == 0) {
0x00040c10 beql a0, zero, 0x40cec | goto label_30;
| }
0x00040c14 lw a0, 0x78(v1) | a0 = *((v1 + 30));
| }
| label_5:
0x00040c18 lw v0, 0x7c(v1) | v0 = *((v1 + 31));
| label_4:
0x00040c1c lw t9, 0x20(sp) | t9 = *(var_20h);
| if (v0 == 0) {
0x00040c20 beqz v0, 0x40ca8 | goto label_31;
| }
0x00040c24 lw v0, (v0) | v0 = *(v0);
0x00040c28 addiu a1, zero, 1 | a1 = 1;
| if (v0 == 0) {
0x00040c2c beqz v0, 0x40cac | goto label_32;
| }
0x00040c30 lw s4, -0x7edc(gp) | s4 = *(gp);
0x00040c34 addiu s6, zero, 4 | s6 = 4;
| /* fcn.0004012c */
0x00040c38 addiu s4, s4, 0x12c | s4 += aav.0x0000012c;
| do {
0x00040c3c lw a0, 0x78(v1) | a0 = *((v1 + 30));
0x00040c40 lw v1, 0x6c(v1) | v1 = *((v1 + 27));
0x00040c44 mul v0, v0, a0 | __asm ("mul v0, v0, a0");
0x00040c48 lw a0, 0x24(s2) | a0 = *((s2 + 9));
0x00040c4c div zero, v0, v1 | __asm ("div zero, v0, v1");
0x00040c50 teq v1, zero, 7 | __asm ("teq v1, zero, 7");
0x00040c54 mflo v0 | __asm ("mflo v0");
0x00040c58 mflo a1 | __asm ("mflo a1");
0x00040c5c negu s5, v0 | __asm ("negu s5, v0");
| if (a0 != 0) {
0x00040c60 beqz a0, 0x40c6c |
0x00040c64 move a1, s5 | a1 = s5;
0x00040c68 mflo s5 | __asm ("mflo s5");
| }
0x00040c6c move a2, zero | a2 = 0;
0x00040c70 move t9, s4 | t9 = s4;
0x00040c74 move a0, s0 | a0 = s0;
0x00040c78 bal 0x4012c | fcn_0004012c ();
0x00040c7c move a2, zero | a2 = 0;
0x00040c80 move a1, s5 | a1 = s5;
0x00040c84 move t9, s4 | t9 = s4;
0x00040c88 move a0, s0 | a0 = s0;
0x00040c8c bal 0x4012c | fcn_0004012c ();
0x00040c90 lw v1, 0x50(s0) | v1 = *((s0 + 20));
0x00040c94 lw v0, 0x7c(v1) | v0 = *((v1 + 31));
0x00040c98 lwx v0, s6(v0) | __asm ("lwx v0, s6(v0)");
0x00040c9c addiu s6, s6, 4 | s6 += 4;
0x00040ca0 bnez v0, 0x40c3c |
| } while (v0 != 0);
0x00040ca4 lw t9, 0x20(sp) | t9 = *(var_20h);
| label_31:
0x00040ca8 addiu a1, zero, 1 | a1 = 1;
| label_32:
0x00040cac move a0, s0 | a0 = s0;
0x00040cb0 jalr t9 | t9 ();
0x00040cb4 lw v0, 0x3c(s2) | v0 = *((s2 + 15));
0x00040cb8 addiu v1, zero, 3 | v1 = 3;
0x00040cbc addiu v0, v0, 1 | v0++;
0x00040cc0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040cc4 sw v1, 0x30(s2) | *((s2 + 12)) = v1;
0x00040cc8 sw v0, 0x3c(s2) | *((s2 + 15)) = v0;
0x00040ccc b 0x408a0 | goto label_2;
| label_21:
0x00040cd0 addiu v0, zero, -1 | v0 = -1;
0x00040cd4 sw s5, 0x1c(sp) | *(var_1ch) = s5;
0x00040cd8 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00040cdc b 0x40a24 | goto label_3;
| if (a0 == 0) {
| label_29:
0x00040ce0 beql a0, zero, 0x40c1c | goto label_4;
| }
0x00040ce4 lw v0, 0x7c(v1) | v0 = *((v1 + 31));
0x00040ce8 lw a0, 0x78(v1) | a0 = *((v1 + 30));
| label_30:
0x00040cec lw s5, 0x6c(v1) | s5 = *((v1 + 27));
0x00040cf0 mul v0, v0, a0 | __asm ("mul v0, v0, a0");
0x00040cf4 move t9, s4 | t9 = s4;
0x00040cf8 move a0, s0 | a0 = s0;
0x00040cfc div zero, v0, s5 | __asm ("div zero, v0, s5");
0x00040d00 teq s5, zero, 7 | __asm ("teq s5, zero, 7");
0x00040d04 mflo a1 | __asm ("mflo a1");
0x00040d08 mflo s5 | __asm ("mflo s5");
0x00040d0c bal 0x4005c | fcn_0004005c ();
0x00040d10 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040d14 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040d18 move a1, zero | a1 = 0;
0x00040d1c lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040d20 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040d24 jalr t9 | t9 ();
0x00040d28 negu a1, s5 | __asm ("negu a1, s5");
0x00040d2c move t9, s4 | t9 = s4;
0x00040d30 move a0, s0 | a0 = s0;
0x00040d34 bal 0x4005c | fcn_0004005c ();
0x00040d38 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040d3c lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040d40 move a1, zero | a1 = 0;
0x00040d44 lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040d48 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040d4c jalr t9 | t9 ();
0x00040d50 lw v1, 0x28(s2) | v1 = *((s2 + 10));
0x00040d54 lw v0, 0x44(s2) | v0 = *((s2 + 17));
0x00040d58 sll v1, v1, 1 | v1 <<= 1;
0x00040d5c addu v0, v0, v1 | v0 += v1;
0x00040d60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040d64 lw v1, 0x50(s0) | v1 = *((s0 + 20));
0x00040d68 sw v0, 0x44(s2) | *((s2 + 17)) = v0;
0x00040d6c b 0x40c18 | goto label_5;
| label_16:
0x00040d70 move a1, zero | a1 = 0;
| /* fcn.000404b8 */
0x00040d74 addiu s2, s2, 0x4b8 | s2 += 0x4b8;
0x00040d78 move t9, s2 | t9 = s2;
0x00040d7c move s0, a2 | s0 = a2;
0x00040d80 bal 0x404b8 | fcn_000404b8 ();
0x00040d84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040d88 addiu a2, zero, 1 | a2 = 1;
0x00040d8c move a1, s0 | a1 = s0;
0x00040d90 lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.0004012c */
0x00040d94 addiu t9, t9, 0x12c | t9 += aav.0x0000012c;
0x00040d98 move a0, s1 | a0 = s1;
0x00040d9c bal 0x4012c | fcn_0004012c ();
0x00040da0 addiu a1, zero, 1 | a1 = 1;
0x00040da4 move t9, s2 | t9 = s2;
0x00040da8 move a0, s1 | a0 = s1;
0x00040dac bal 0x404b8 | fcn_000404b8 ();
0x00040db0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040db4 b 0x408a0 | goto label_2;
| label_23:
0x00040db8 addiu s4, sp, 0x38 | s4 = sp + 0x38;
0x00040dbc sw s4, 0x24(sp) | *(var_24h) = s4;
0x00040dc0 jalr t9 | t9 ();
0x00040dc4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040dc8 move a1, v0 | a1 = v0;
0x00040dcc lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00040dd0 move a0, s0 | a0 = s0;
0x00040dd4 jalr t9 | t9 ();
0x00040dd8 lw a1, 0x24(v0) | a1 = *((v0 + 9));
0x00040ddc addiu v1, zero, 1 | v1 = 1;
0x00040de0 addiu v0, zero, -1 | v0 = -1;
| if (a1 == 0) {
0x00040de4 movn v0, v1, a1 | v0 = v1;
| }
0x00040de8 move a0, s0 | a0 = s0;
0x00040dec move t9, s7 | t9 = s7;
0x00040df0 move fp, v0 | fp = v0;
0x00040df4 bal 0x3fde8 | fcn_0003fde8 ();
0x00040df8 lw v1, 0x50(s0) | v1 = *((s0 + 20));
0x00040dfc lw gp, 0x10(sp) | gp = *(var_10h);
0x00040e00 move a1, s4 | a1 = s4;
0x00040e04 lw a3, 0x98(v1) | a3 = *((v1 + 38));
0x00040e08 lw a2, 0x50(v1) | a2 = *((v1 + 20));
0x00040e0c lw t9, -0x7a7c(gp) | t9 = sym.imp.stepper_set_voltage;
0x00040e10 lw a0, 0x88(v1) | a0 = *((v1 + 34));
0x00040e14 sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x00040e18 sw a2, 0x38(sp) | *(var_38h) = a2;
0x00040e1c move s4, v0 | s4 = v0;
0x00040e20 jalr t9 | t9 ();
0x00040e24 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00040e28 beqz v0, 0x41104 | goto label_33;
| }
0x00040e2c lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040e30 lw t9, -0x7ec4(gp) | t9 = *(gp);
0x00040e34 lw a0, 0x8c(v0) | a0 = *((v0 + 35));
0x00040e38 bal 0x46fc0 | fcn_00046fc0 ();
0x00040e3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040e40 move a0, v0 | a0 = v0;
0x00040e44 move a1, v1 | a1 = v1;
0x00040e48 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00040e4c lw t9, -0x7ec0(gp) | t9 = *(gp);
0x00040e50 lw a2, 0x4f90(v0) | a2 = *((v0 + 5092));
0x00040e54 lw a3, 0x4f94(v0) | a3 = *((v0 + 5093));
0x00040e58 bal 0x46020 | fcn_00046020 ();
0x00040e5c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040e60 move a0, s4 | a0 = s4;
0x00040e64 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x00040e68 lw t9, -0x7ec4(gp) | t9 = *(gp);
0x00040e6c sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
0x00040e70 bal 0x46fc0 | fcn_00046fc0 ();
0x00040e74 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040e78 lw a2, 0x28(sp) | a2 = *(var_28h_2);
0x00040e7c lw a3, 0x2c(sp) | a3 = *(var_2ch_2);
0x00040e80 lw t9, -0x7f1c(gp) | t9 = *(gp);
0x00040e84 move a1, a3 | a1 = a3;
0x00040e88 move a0, a2 | a0 = a2;
0x00040e8c move a3, v1 | a3 = v1;
0x00040e90 move a2, v0 | a2 = v0;
0x00040e94 bal 0x44bb0 | fcn_00044bb0 ();
0x00040e98 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040e9c move a0, fp | a0 = fp;
0x00040ea0 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x00040ea4 lw t9, -0x7ec4(gp) | t9 = *(gp);
0x00040ea8 sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
0x00040eac bal 0x46fc0 | fcn_00046fc0 ();
0x00040eb0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040eb4 lw t0, 0x28(sp) | t0 = *(var_28h_2);
0x00040eb8 lw t1, 0x2c(sp) | t1 = *(var_2ch_2);
0x00040ebc lw t9, -0x7ec0(gp) | t9 = *(gp);
0x00040ec0 move a0, t0 | a0 = t0;
0x00040ec4 move a1, t1 | a1 = t1;
0x00040ec8 move a2, v0 | a2 = v0;
0x00040ecc move a3, v1 | a3 = v1;
0x00040ed0 bal 0x46020 | fcn_00046020 ();
0x00040ed4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040ed8 move a1, v1 | a1 = v1;
0x00040edc lw t9, -0x7ebc(gp) | t9 = *(gp);
0x00040ee0 move a0, v0 | a0 = v0;
0x00040ee4 bal 0x46ed0 | fcn_00046ed0 ();
0x00040ee8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040eec move a1, v0 | a1 = v0;
0x00040ef0 lw s4, -0x7edc(gp) | s4 = *(gp);
| /* fcn.0004005c */
0x00040ef4 addiu s4, s4, 0x5c | s4 += 0x5c;
0x00040ef8 move t9, s4 | t9 = s4;
0x00040efc move a0, s0 | a0 = s0;
0x00040f00 bal 0x4005c | fcn_0004005c ();
0x00040f04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040f08 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040f0c move a1, zero | a1 = 0;
0x00040f10 lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040f14 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040f18 jalr t9 | t9 ();
0x00040f1c lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040f20 lw s7, 0x84(v0) | s7 = *((v0 + 33));
0x00040f24 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s7 == 0) {
0x00040f28 beqz s7, 0x40f7c | goto label_34;
| }
0x00040f2c lui v0, 3 | v0 = 0x30d40;
0x00040f30 addiu v0, v0, 0xd40 |
0x00040f34 sw v0, 0x28(sp) | *(var_28h_2) = v0;
| do {
0x00040f38 lw t9, -0x78c8(gp) | t9 = sym.imp.usleep;
0x00040f3c lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x00040f40 addiu s7, s7, -1 | s7 += -1;
0x00040f44 jalr t9 | t9 ();
0x00040f48 move a1, fp | a1 = fp;
0x00040f4c move t9, s4 | t9 = s4;
0x00040f50 move a0, s0 | a0 = s0;
0x00040f54 bal 0x4005c | fcn_0004005c ();
0x00040f58 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040f5c lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040f60 move a1, zero | a1 = 0;
0x00040f64 lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040f68 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040f6c jalr t9 | t9 ();
0x00040f70 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040f74 bnez s7, 0x40f38 |
| } while (s7 != 0);
0x00040f78 lw v0, 0x50(s0) | v0 = *((s0 + 20));
| label_34:
0x00040f7c lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x00040f80 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x00040f84 move a1, zero | a1 = 0;
0x00040f88 jalr t9 | t9 ();
0x00040f8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040f90 b 0x40acc | goto label_6;
| label_22:
0x00040f94 lw a0, 0x90(v0) | a0 = *((v0 + 36));
0x00040f98 lw a1, 0x78(v0) | a1 = *((v0 + 30));
0x00040f9c subu v1, v1, a0 | __asm ("subu v1, v1, a0");
0x00040fa0 mul v1, v1, a1 | __asm ("mul v1, v1, a1");
0x00040fa4 lw a1, 0x6c(v0) | a1 = *((v0 + 27));
0x00040fa8 lw s4, -0x7edc(gp) | s4 = *(gp);
0x00040fac move a2, zero | a2 = 0;
| /* fcn.0004012c */
0x00040fb0 addiu s4, s4, 0x12c | s4 += aav.0x0000012c;
0x00040fb4 div zero, v1, a1 | __asm ("div zero, v1, a1");
0x00040fb8 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x00040fbc move a0, s0 | a0 = s0;
0x00040fc0 move t9, s4 | t9 = s4;
0x00040fc4 mflo a1 | __asm ("mflo a1");
0x00040fc8 bal 0x4012c | fcn_0004012c ();
0x00040fcc lw gp, 0x10(sp) | gp = *(var_10h);
0x00040fd0 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00040fd4 b 0x40a80 | goto label_7;
| label_28:
0x00040fd8 lw a0, 0x78(v1) | a0 = *((v1 + 30));
0x00040fdc lw s5, 0x6c(v1) | s5 = *((v1 + 27));
0x00040fe0 mul v0, v0, a0 | __asm ("mul v0, v0, a0");
0x00040fe4 lw t9, -0x7edc(gp) | t9 = *(gp);
0x00040fe8 move a0, s0 | a0 = s0;
| /* fcn.0003fef8 */
0x00040fec addiu t9, t9, -0x108 | t9 += -aav.0x00000108;
0x00040ff0 div zero, v0, s5 | __asm ("div zero, v0, s5");
0x00040ff4 teq s5, zero, 7 | __asm ("teq s5, zero, 7");
0x00040ff8 mflo a1 | __asm ("mflo a1");
0x00040ffc mflo s5 | __asm ("mflo s5");
0x00041000 bal 0x3fef8 | fcn_0003fef8 ();
0x00041004 lw v0, 0x44(s2) | v0 = *((s2 + 17));
0x00041008 addu s5, s5, s6 | s5 += s6;
0x0004100c addu s5, v0, s5 | s5 = v0 + s5;
0x00041010 lw gp, 0x10(sp) | gp = *(var_10h);
0x00041014 sw s5, 0x44(s2) | *((s2 + 17)) = s5;
0x00041018 b 0x40bfc | goto label_8;
| label_27:
0x0004101c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00041020 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00041024 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00041028 lw a3, (v0) | a3 = *(v0);
0x0004102c addiu a2, zero, 0x1e | a2 = 0x1e;
0x00041030 addiu a1, zero, 1 | a1 = 1;
| /* str._3_stepper_set_voltage_failed_n */
0x00041034 addiu a0, a0, 0x43b0 | a0 += 0x43b0;
0x00041038 jalr t9 | t9 ();
0x0004103c lw gp, 0x10(sp) | gp = *(var_10h);
0x00041040 b 0x40bb0 | goto label_9;
| label_26:
0x00041044 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00041048 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0004104c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00041050 lw a3, (v0) | a3 = *(v0);
0x00041054 addiu a2, zero, 0x1e | a2 = 0x1e;
0x00041058 addiu a1, zero, 1 | a1 = 1;
| /* str._3_stepper_set_voltage_failed_n */
0x0004105c addiu a0, a0, 0x43b0 | a0 += 0x43b0;
0x00041060 jalr t9 | t9 ();
0x00041064 lw v0, 0x18(sp) | v0 = *(var_18h);
0x00041068 b 0x40b5c | goto label_10;
| label_25:
0x0004106c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00041070 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00041074 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00041078 lw a3, (v0) | a3 = *(v0);
0x0004107c addiu a2, zero, 0x18 | a2 = 0x18;
0x00041080 addiu a1, zero, 1 | a1 = 1;
| /* str._3_stepper_start_failed_n */
0x00041084 addiu a0, a0, 0x43d0 | a0 += 0x43d0;
0x00041088 jalr t9 | t9 ();
0x0004108c lw a1, 0x1c(sp) | a1 = *(var_1ch);
0x00041090 b 0x40b00 | goto label_11;
| label_24:
0x00041094 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00041098 addiu a2, zero, 8 | a2 = 8;
0x0004109c addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x000410a0 move t9, s7 | t9 = s7;
0x000410a4 lw a1, 0x38(v0) | a1 = *((v0 + 14));
0x000410a8 bal 0x405b4 | fcn_000405b4 ();
0x000410ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000410b0 beqz v0, 0x40abc | goto label_12;
| }
0x000410b4 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x000410b8 lw t9, -0x7b8c(gp) | t9 = sym.imp.stepper_calibrate;
0x000410bc move a1, s4 | a1 = s4;
0x000410c0 lw v1, (v0) | v1 = *(v0);
0x000410c4 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x000410c8 sw v1, 0x54(sp) | *(var_54h) = v1;
0x000410cc jalr t9 | t9 ();
0x000410d0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000410d4 beqz v0, 0x41134 |
0x000410d8 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x000410dc lw t9, -0x79e4(gp) | t9 = sym.imp.stepper_wait_until_ready;
0x000410e0 move a1, zero | a1 = 0;
0x000410e4 lw a0, 0x88(v0) | a0 = *((v0 + 34));
0x000410e8 addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x000410ec sw v0, 0x24(sp) | *(var_24h) = v0;
0x000410f0 jalr t9 | t9 ();
0x000410f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000410f8 lw s4, -0x7edc(gp) | s4 = *(gp);
| /* fcn.0004005c */
0x000410fc addiu s4, s4, 0x5c | s4 += 0x5c;
0x00041100 b 0x40acc | goto label_6;
| label_33:
0x00041104 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00041108 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0004110c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00041110 lw a3, (v0) | a3 = *(v0);
0x00041114 addiu a2, zero, 0x1e | a2 = 0x1e;
0x00041118 addiu a1, zero, 1 | a1 = 1;
| /* str._3_stepper_set_voltage_failed_n */
0x0004111c addiu a0, a0, 0x43b0 | a0 += 0x43b0;
0x00041120 jalr t9 | t9 ();
0x00041124 lw gp, 0x10(sp) | gp = *(var_10h);
0x00041128 lw s4, -0x7edc(gp) | s4 = *(gp);
| /* fcn.0004005c */
0x0004112c addiu s4, s4, 0x5c | s4 += 0x5c;
0x00041130 b 0x40acc | goto label_6;
| }
0x00041134 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00041138 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0004113c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00041140 lw a3, (v0) | a3 = *(v0);
0x00041144 addiu a2, zero, 0x1c | a2 = 0x1c;
0x00041148 addiu a1, zero, 1 | a1 = 1;
| /* str._3_stepper_calibrate_failed_n */
0x0004114c addiu a0, a0, 0x4390 | a0 += 0x4390;
0x00041150 jalr t9 | t9 ();
0x00041154 lw gp, 0x10(sp) | gp = *(var_10h);
0x00041158 b 0x40abc | goto label_12;
| label_20:
0x0004115c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00041160 jalr t9 | t9 ();
0x00041164 nop |
0x00041168 lui gp, 3 |
0x0004116c addiu gp, gp, -0x25e8 |
0x00041170 addu gp, gp, t9 | gp += t9;
0x00041174 addiu sp, sp, -0x48 |
0x00041178 lw t9, -0x7ec8(gp) | t9 = sym.focusd_motor_artpec4_iop_tb6613ftg_get_type;
0x0004117c sw s1, 0x38(sp) | *(var_38h_2) = s1;
0x00041180 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00041184 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00041188 sw ra, 0x44(sp) | *(var_44h) = ra;
0x0004118c lw v0, (s1) | v0 = *(s1);
0x00041190 sw s2, 0x3c(sp) | *(var_3ch_2) = s2;
0x00041194 sw s0, 0x34(sp) | *(var_34h_2) = s0;
0x00041198 sw a0, 0x1c(sp) | *(var_1ch_2) = a0;
0x0004119c sw s3, 0x40(sp) | *(var_40h_2) = s3;
0x000411a0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000411a4 move s2, a1 | s2 = a1;
0x000411a8 bal 0x40708 | sym_focusd_motor_artpec4_iop_tb6613ftg_get_type ();
0x000411ac lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000411b0 lw a0, 0x1c(sp) | a0 = *(var_1ch_2);
0x000411b4 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x000411b8 move a1, v0 | a1 = v0;
0x000411bc jalr t9 | t9 ();
0x000411c0 lw a0, 0x50(v0) | a0 = *((v0 + 20));
0x000411c4 move s0, v0 | s0 = v0;
0x000411c8 lw v0, 0xa8(a0) | v0 = *((a0 + 42));
0x000411cc lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x000411d0 beqz v0, 0x412f0 | goto label_35;
| }
0x000411d4 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x000411d8 addiu a0, a0, 0xb4 | a0 += 0xb4;
0x000411dc jalr t9 | t9 ();
0x000411e0 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x000411e4 lw v1, 0x94(v0) | v1 = *((v0 + 37));
0x000411e8 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v1 == 0) {
0x000411ec bnez v1, 0x412a0 |
0x000411f0 lw v1, 0x9c(v0) | v1 = *((v0 + 39));
0x000411f4 sltu a1, zero, s2 | a1 = (0 < s2) ? 1 : 0;
0x000411f8 sltiu v1, v1, 1 | v1 = (v1 < 1) ? 1 : 0;
0x000411fc addiu a0, v0, 0xb4 | a0 = v0 + 0xb4;
0x00041200 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
| if (v1 != a1) {
0x00041204 bne v1, a1, 0x41340 | goto label_36;
| }
0x00041208 addiu s3, zero, 1 | s3 = 1;
0x0004120c sw s2, 0xa0(v0) | *((v0 + 40)) = s2;
0x00041210 sw s3, 0x94(v0) | *((v0 + 37)) = s3;
0x00041214 jalr t9 | t9 ();
0x00041218 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0004121c lw a0, 0x50(s0) | a0 = *((s0 + 20));
0x00041220 lw t9, -0x7948(gp) | t9 = sym.imp.g_mutex_trylock;
0x00041224 addiu a0, a0, 0xac | a0 += 0xac;
0x00041228 jalr t9 | t9 ();
0x0004122c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x00041230 bnez v0, 0x41318 | goto label_37;
| }
0x00041234 lw v0, 0x50(s0) | v0 = *((s0 + 20));
0x00041238 lw t9, -0x7b98(gp) | t9 = sym.imp.g_thread_pool_push;
0x0004123c addiu s0, sp, 0x24 | s0 = sp + 0x24;
0x00041240 lw a0, 0xc0(v0) | a0 = *((v0 + 48));
0x00041244 move a2, s0 | a2 = s0;
0x00041248 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x0004124c sw zero, 0x24(sp) | *(var_24h_2) = 0;
0x00041250 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00041254 jalr t9 | t9 ();
0x00041258 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x0004125c bnez v0, 0x412c8 | goto label_14;
| }
0x00041260 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00041264 lw v0, 0x24(sp) | v0 = *(var_24h_2);
0x00041268 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0004126c beqz v0, 0x41350 | goto label_38;
| }
0x00041270 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00041274 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00041278 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._3_Could_not_start_heating_configuration_change_thread:__s_n */
0x0004127c addiu a2, a2, 0x440c | a2 += 0x440c;
0x00041280 addiu a1, zero, 1 | a1 = 1;
0x00041284 jalr t9 | t9 ();
0x00041288 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0004128c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00041290 move a0, s0 | a0 = s0;
0x00041294 jalr t9 | t9 ();
0x00041298 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0004129c b 0x412c8 |
| } else {
0x000412a0 lw v1, 0x9c(v0) | v1 = *((v0 + 39));
0x000412a4 sltiu s2, s2, 1 | s2 = (s2 < 1) ? 1 : 0;
0x000412a8 sltu a0, zero, v1 | a0 = (0 < v1) ? 1 : 0;
0x000412ac lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
| if (s2 != a0) {
0x000412b0 beq s2, a0, 0x412bc |
0x000412b4 sw zero, 0x94(v0) | *((v0 + 37)) = 0;
0x000412b8 sw v1, 0xa0(v0) | *((v0 + 40)) = v1;
| }
0x000412bc addiu a0, v0, 0xb4 | a0 = v0 + 0xb4;
0x000412c0 jalr t9 | t9 ();
0x000412c4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| }
| do {
| label_14:
0x000412c8 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x000412cc lw v0, (s1) | v0 = *(s1);
0x000412d0 lw ra, 0x44(sp) | ra = *(var_44h);
| if (v1 != v0) {
0x000412d4 bne v1, v0, 0x41374 | goto label_39;
| }
0x000412d8 lw s3, 0x40(sp) | s3 = *(var_40h_2);
0x000412dc lw s2, 0x3c(sp) | s2 = *(var_3ch_2);
0x000412e0 lw s1, 0x38(sp) | s1 = *(var_38h_2);
0x000412e4 lw s0, 0x34(sp) | s0 = *(var_34h_2);
0x000412e8 addiu sp, sp, 0x48 |
0x000412ec jr ra | return v0;
| label_35:
0x000412f0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000412f4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000412f8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000412fc lw a3, (v0) | a3 = *(v0);
0x00041300 addiu a2, zero, 0x1d | a2 = 0x1d;
0x00041304 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Heating_is_not_configured_n */
0x00041308 addiu a0, a0, 0x43ec | a0 += 0x43ec;
0x0004130c jalr t9 | t9 ();
0x00041310 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00041314 b 0x412c8 |
| } while (1);
| label_37:
0x00041318 lw t9, -0x7edc(gp) | t9 = *(gp);
0x0004131c move a0, s0 | a0 = s0;
| /* fcn.00040840 */
0x00041320 addiu t9, t9, 0x840 | t9 += 0x840;
0x00041324 move a2, zero | a2 = 0;
0x00041328 addiu a1, zero, 3 | a1 = 3;
0x0004132c bal 0x40840 | fcn_00040840 ();
| goto label_13;
0x00041330 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00041334 lw a0, 0x50(s0) | a0 = *((s0 + 20));
0x00041338 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0004133c addiu a0, a0, 0xac | a0 += 0xac;
| label_36:
0x00041340 jalr t9 | t9 ();
0x00041344 nop |
0x00041348 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0004134c b 0x412c8 | goto label_14;
| label_38:
0x00041350 move a3, a0 | a3 = a0;
0x00041354 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00041358 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0004135c addiu a2, zero, 0x37 | a2 = 0x37;
0x00041360 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_start_heating_configuration_change_thread_n */
0x00041364 addiu a0, a0, 0x4448 | a0 += 0x4448;
0x00041368 jalr t9 | t9 ();
0x0004136c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00041370 b 0x412c8 | goto label_14;
| label_39:
0x00041374 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00041378 jalr t9 | t9 ();
0x0004137c nop |
0x00041380 lui gp, 3 |
0x00041384 addiu gp, gp, -0x2800 |
0x00041388 addu gp, gp, t9 | gp += t9;
0x0004138c addiu sp, sp, -0x20 |
0x00041390 lw t9, -0x7ec8(gp) | t9 = sym.focusd_motor_artpec4_iop_tb6613ftg_get_type;
0x00041394 sw gp, 0x10(sp) | *(var_10h_3) = gp;
0x00041398 sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x0004139c sw ra, 0x1c(sp) | *(var_1ch_3) = ra;
0x000413a0 move s0, a0 | s0 = a0;
0x000413a4 bal 0x40708 | sym_focusd_motor_artpec4_iop_tb6613ftg_get_type ();
0x000413a8 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (s0 != 0) {
0x000413ac beqz s0, 0x413fc |
0x000413b0 lw v1, (s0) | v1 = *(s0);
0x000413b4 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x000413b8 beqz v1, 0x413c8 |
0x000413bc lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x000413c0 beql v1, v0, 0x413e0 | goto label_40;
| }
0x000413c4 lw v0, 0x30(s0) | v0 = *((s0 + 12));
| }
0x000413c8 move a1, v0 | a1 = v0;
0x000413cc move a0, s0 | a0 = s0;
0x000413d0 jalr t9 | t9 ();
0x000413d4 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 == 0) {
0x000413d8 beqz v0, 0x413fc | goto label_41;
| }
0x000413dc lw v0, 0x30(s0) | v0 = *((s0 + 12));
| label_40:
0x000413e0 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x000413e4 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
| if (v0 != 0) {
0x000413e8 bnez v0, 0x4142c | goto label_42;
| }
0x000413ec lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x000413f0 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x000413f4 addiu sp, sp, 0x20 |
0x000413f8 jr ra | return v0;
| }
| label_41:
0x000413fc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00041400 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.FOCUSD_IS_MOTOR_ARTPEC4_IOP_TB6613FTG__base_ */
0x00041404 addiu a2, a2, 0x4480 | a2 += 0x4480;
| do {
0x00041408 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0004140c move a0, zero | a0 = 0;
| /* str.focusd_motor_artpec4_iop_tb6613ftg_get_position */
0x00041410 addiu a1, a1, 0x4f40 | a1 += 0x4f40;
0x00041414 jalr t9 | t9 ();
0x00041418 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x0004141c lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x00041420 addiu v0, zero, -1 | v0 = -1;
0x00041424 addiu sp, sp, 0x20 |
0x00041428 jr ra | return v0;
| label_42:
0x0004142c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00041430 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.base__system_state___FOCUSD_MOTOR_SYSTEM_STATE_PHASE_UNKNOWN */
0x00041434 addiu a2, a2, 0x44b0 | a2 += 0x44b0;
0x00041438 b 0x41408 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0xeb8c */
| #include <stdint.h>
|
; (fcn) sym.api_init () | void api_init () {
0x0000eb8c lui gp, 6 |
0x0000eb90 addiu gp, gp, -0xc |
0x0000eb94 addu gp, gp, t9 | gp += t9;
0x0000eb98 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x0000eb9c addiu sp, sp, -0x60 |
0x0000eba0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0000eba4 lw v0, (v0) | v0 = *(v0);
0x0000eba8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ebac sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0000ebb0 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0000ebb4 sw s7, 0x54(sp) | *(var_54h) = s7;
0x0000ebb8 sw s6, 0x50(sp) | *(var_50h) = s6;
0x0000ebbc sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0000ebc0 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0000ebc4 sw s3, 0x44(sp) | *(var_44h) = s3;
0x0000ebc8 sw s2, 0x40(sp) | *(var_40h) = s2;
0x0000ebcc sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0000ebd0 sw s0, 0x38(sp) | *(var_38h) = s0;
0x0000ebd4 sw a2, 0x68(sp) | *(arg_68h) = a2;
0x0000ebd8 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0000ebdc sw zero, 0x30(sp) | *(var_30h) = 0;
| if (a2 < 0) {
0x0000ebe0 bltz a2, 0xf054 | goto label_12;
| }
0x0000ebe4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ebe8 move s4, a1 | s4 = a1;
0x0000ebec lw t9, -0x78e0(gp) | t9 = sym.imp.g_malloc0_n;
0x0000ebf0 addiu a1, zero, 0x1c | a1 = 0x1c;
0x0000ebf4 move s5, a0 | s5 = a0;
0x0000ebf8 sw zero, 0x7500(v0) | *((v0 + 7488)) = 0;
0x0000ebfc lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x0000ec00 move a0, s4 | a0 = s4;
0x0000ec04 jalr t9 | t9 ();
0x0000ec08 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ec0c addiu a1, zero, 0x20 | a1 = 0x20;
0x0000ec10 move a0, s4 | a0 = s4;
0x0000ec14 lw t9, -0x78e0(gp) | t9 = sym.imp.g_malloc0_n;
0x0000ec18 sw v0, 0x74e4(s2) | *((s2 + 7481)) = v0;
0x0000ec1c jalr t9 | t9 ();
0x0000ec20 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ec24 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000ec28 sw v0, 0x74e8(v1) | *((v1 + 7482)) = v0;
0x0000ec2c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ec30 sw s4, 0x74e0(v0) | *((v0 + 7480)) = s4;
| if (s4 == 0) {
0x0000ec34 beqz s4, 0xee10 | goto label_13;
| }
0x0000ec38 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ec3c lw s7, -0x7fd8(gp) | s7 = *(gp);
0x0000ec40 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0000ec44 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ec48 lw s6, -0x7fd8(gp) | s6 = *(gp);
0x0000ec4c sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x0000ec50 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ec54 addiu s0, s5, 8 | s0 = s5 + 8;
0x0000ec58 addiu v0, v0, 0x602c | v0 += 0x602c;
0x0000ec5c move s3, zero | s3 = 0;
0x0000ec60 sw v0, 0x28(sp) | *(var_28h) = v0;
| /* str.bigstep_real */
0x0000ec64 addiu s7, s7, -0x5ef0 | s7 += -0x5ef0;
| /* str.minstep_real */
0x0000ec68 addiu s6, s6, -0x5ee0 | s6 += -0x5ee0;
0x0000ec6c b 0xed0c |
| while (v0 != 0) {
0x0000ec70 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000ec74 lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
| if (v0 == 0) {
0x0000ec78 beqz v0, 0xed58 | goto label_2;
| }
0x0000ec7c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| label_0:
0x0000ec80 addiu a0, zero, 1 | a0 = 1;
0x0000ec84 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ec88 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000ec8c beqz v0, 0xedac | goto label_14;
| }
0x0000ec90 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000ec94 lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
| if (v0 == 0) {
0x0000ec98 beqz v0, 0xed58 | goto label_2;
| }
0x0000ec9c lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
| label_1:
0x0000eca0 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x0000eca4 addu v0, v0, s1 | v0 += s1;
0x0000eca8 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x0000ecac lw v1, (s0) | v1 = *(s0);
0x0000ecb0 sw a0, 0x18(v0) | *((v0 + 6)) = a0;
| if (v1 != 0) {
0x0000ecb4 beqz v1, 0xecd4 |
0x0000ecb8 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ecbc addiu a0, zero, 0xd | a0 = 0xd;
0x0000ecc0 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ecc4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000ecc8 bnez v0, 0xef5c | goto label_15;
| }
0x0000eccc lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
0x0000ecd0 addu v0, v0, s1 | v0 += s1;
| }
| label_8:
0x0000ecd4 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ecd8 sw zero, 0x10(v0) | *((v0 + 4)) = 0;
0x0000ecdc addiu a0, zero, 4 | a0 = 4;
0x0000ece0 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ece4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000ece8 bnez v0, 0xeec8 | goto label_16;
| }
| label_7:
0x0000ecec lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ecf0 addiu a0, zero, 1 | a0 = 1;
0x0000ecf4 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ecf8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000ecfc bnez v0, 0xede8 | goto label_17;
| }
0x0000ed00 addiu s3, s3, 1 | s3++;
0x0000ed04 addiu s0, s0, 0x1c | s0 += 0x1c;
| if (s4 == s3) {
0x0000ed08 beq s4, s3, 0xee10 | goto label_13;
| }
| label_5:
0x0000ed0c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ed10 addiu a0, zero, 3 | a0 = 3;
0x0000ed14 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ed18 subu s1, s0, s5 | __asm ("subu s1, s0, s5");
0x0000ed1c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ed20 addiu s1, s1, -8 | s1 += -8;
| if (v0 == 0) {
0x0000ed24 beqz v0, 0xedc0 | goto label_18;
| }
| label_3:
0x0000ed28 lw v0, (s0) | v0 = *(s0);
0x0000ed2c lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
| if (v0 == 0) {
0x0000ed30 beqz v0, 0xed58 | goto label_2;
| }
0x0000ed34 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| label_4:
0x0000ed38 addiu a0, zero, 4 | a0 = 4;
0x0000ed3c bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ed40 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ed44 bnez v0, 0xec70 |
| }
0x0000ed48 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000ed4c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| if (v0 == 0) {
0x0000ed50 beqz v0, 0xec80 | goto label_0;
| }
| label_6:
0x0000ed54 lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
| label_2:
0x0000ed58 bal 0xe9c0 | sym_api_cleanup ();
0x0000ed5c nop |
0x0000ed60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ed64 move a1, zero | a1 = 0;
| label_9:
0x0000ed68 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0000ed6c lw a0, 0x34(sp) | a0 = *(var_34h);
0x0000ed70 lw v1, (v0) | v1 = *(v0);
0x0000ed74 move v0, a1 | v0 = a1;
| if (a0 != v1) {
0x0000ed78 bne a0, v1, 0xf0e4 | goto label_19;
| }
0x0000ed7c lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0000ed80 lw fp, 0x58(sp) | fp = *(var_58h);
0x0000ed84 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0000ed88 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0000ed8c lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0000ed90 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0000ed94 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0000ed98 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0000ed9c lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0000eda0 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0000eda4 addiu sp, sp, 0x60 |
0x0000eda8 jr ra | return v0;
| label_14:
0x0000edac lw v0, 0xc(s0) | v0 = *((s0 + 3));
| if (v0 == 0) {
0x0000edb0 beql v0, zero, 0xeca0 | goto label_1;
| }
0x0000edb4 lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
0x0000edb8 lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
0x0000edbc b 0xed58 | goto label_2;
| label_18:
0x0000edc0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000edc4 addiu a0, zero, 1 | a0 = 1;
0x0000edc8 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000edcc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000edd0 bnez v0, 0xed28 | goto label_3;
| }
0x0000edd4 lw v0, (s0) | v0 = *(s0);
| if (v0 == 0) {
0x0000edd8 beql v0, zero, 0xed38 | goto label_4;
| }
0x0000eddc lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ede0 lw t9, -0x7ea0(gp) | t9 = sym.api_cleanup;
0x0000ede4 b 0xed58 | goto label_2;
| label_17:
0x0000ede8 lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
0x0000edec lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x0000edf0 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x0000edf4 addu s1, v0, s1 | s1 = v0 + s1;
0x0000edf8 addiu s3, s3, 1 | s3++;
0x0000edfc jalr t9 | t9 ();
0x0000ee00 addiu s0, s0, 0x1c | s0 += 0x1c;
0x0000ee04 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ee08 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
| if (s4 != s3) {
0x0000ee0c bne s4, s3, 0xed0c | goto label_5;
| }
| label_13:
0x0000ee10 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ee14 addiu a0, zero, 2 | a0 = 2;
0x0000ee18 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ee1c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000ee20 bnez v0, 0xf05c | goto label_20;
| }
0x0000ee24 lw s1, -0x7fd0(gp) | s1 = *(gp);
0x0000ee28 addiu s0, sp, 0x30 | s0 = sp + 0x30;
| label_10:
0x0000ee2c lw t9, -0x76f8(gp) | t9 = sym.imp.g_thread_pool_new;
0x0000ee30 addiu a0, s1, -0x2f60 | a0 = s1 + -0x2f60;
0x0000ee34 sw s0, 0x10(sp) | *(var_10h_2) = s0;
0x0000ee38 addiu a3, zero, 1 | a3 = 1;
0x0000ee3c addiu a2, zero, 2 | a2 = 2;
0x0000ee40 move a1, zero | a1 = 0;
0x0000ee44 jalr t9 | t9 ();
0x0000ee48 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ee4c lw v1, 0x30(sp) | v1 = *(var_30h);
0x0000ee50 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000ee54 sw v0, 0x74d4(a0) | *((a0 + 7477)) = v0;
| if (v1 == 0) {
0x0000ee58 beqz v1, 0xf09c | goto label_21;
| }
0x0000ee5c lw s1, -0x7990(gp) | s1 = *((gp - 7780));
| label_11:
0x0000ee60 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000ee64 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000ee68 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0000ee6c lw a0, (s1) | a0 = *(s1);
| /* str._3_Could_not_create_thread_pool:__s_n */
0x0000ee70 addiu a2, a2, -0x5ed0 | a2 += -0x5ed0;
0x0000ee74 addiu a1, zero, 1 | a1 = 1;
0x0000ee78 jalr t9 | t9 ();
0x0000ee7c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ee80 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0000ee84 move a0, s0 | a0 = s0;
0x0000ee88 jalr t9 | t9 ();
0x0000ee8c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ee90 lw t9, -0x7a54(gp) | t9 = sym.imp.close;
0x0000ee94 lw a0, 0x68(sp) | a0 = *(arg_68h);
0x0000ee98 jalr t9 | t9 ();
0x0000ee9c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000eea0 beqz v0, 0xed54 | goto label_6;
| }
0x0000eea4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000eea8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000eeac lw a3, (s1) | a3 = *(s1);
0x0000eeb0 addiu a2, zero, 0x16 | a2 = 0x16;
0x0000eeb4 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Could_not_close_fd_n */
0x0000eeb8 addiu a0, a0, -0x5ea8 | a0 += -0x5ea8;
0x0000eebc jalr t9 | t9 ();
0x0000eec0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000eec4 b 0xed54 | goto label_6;
| label_16:
0x0000eec8 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000eecc lw fp, 8(s0) | fp = *((s0 + 2));
0x0000eed0 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000eed4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000eed8 move a0, fp | a0 = fp;
0x0000eedc lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000eee0 move a1, v0 | a1 = v0;
0x0000eee4 jalr t9 | t9 ();
0x0000eee8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000eeec lw a1, 0x74e4(s2) | a1 = *((s2 + 7481));
0x0000eef0 move a0, v0 | a0 = v0;
0x0000eef4 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x0000eef8 addu fp, a1, s1 | fp = a1 + s1;
0x0000eefc jalr t9 | t9 ();
0x0000ef00 lw v1, 0x74e4(s2) | v1 = *((s2 + 7481));
0x0000ef04 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ef08 addu v1, v1, s1 | v1 += s1;
0x0000ef0c sw v0, 0x10(fp) | *(arg_10h) = v0;
0x0000ef10 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x0000ef14 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x0000ef18 lw t9, -0x79b8(gp) | t9 = sym.imp.g_object_get;
0x0000ef1c addiu a2, v0, 0x6024 | a2 = v0 + 0x6024;
0x0000ef20 move a3, zero | a3 = 0;
0x0000ef24 move a1, s7 | a1 = s7;
0x0000ef28 jalr t9 | t9 ();
0x0000ef2c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ef30 lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
0x0000ef34 move a3, zero | a3 = 0;
0x0000ef38 addu v0, v0, s1 | v0 += s1;
0x0000ef3c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x0000ef40 lw t9, -0x79b8(gp) | t9 = sym.imp.g_object_get;
0x0000ef44 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0000ef48 addiu a2, a2, 0x6020 | a2 += 0x6020;
0x0000ef4c move a1, s6 | a1 = s6;
0x0000ef50 jalr t9 | t9 ();
0x0000ef54 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ef58 b 0xecec | goto label_7;
| label_15:
0x0000ef5c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ef60 addiu a0, zero, 3 | a0 = 3;
0x0000ef64 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ef68 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000ef6c beqz v0, 0xf008 |
0x0000ef70 lw t9, -0x7e84(gp) | t9 = sym.focusd_optics_motorized_focus_get_type;
0x0000ef74 lw fp, (s0) | fp = *(s0);
0x0000ef78 bal 0x2c114 | sym_focusd_optics_motorized_focus_get_type ();
0x0000ef7c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ef80 move a0, fp | a0 = fp;
0x0000ef84 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000ef88 move a1, v0 | a1 = v0;
0x0000ef8c jalr t9 | t9 ();
0x0000ef90 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ef94 lw a1, 0x74e4(s2) | a1 = *((s2 + 7481));
0x0000ef98 move a0, v0 | a0 = v0;
0x0000ef9c lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x0000efa0 addu fp, a1, s1 | fp = a1 + s1;
0x0000efa4 jalr t9 | t9 ();
0x0000efa8 lw v1, 0x74e4(s2) | v1 = *((s2 + 7481));
0x0000efac lw gp, 0x18(sp) | gp = *(var_18h);
0x0000efb0 addu v1, v1, s1 | v1 += s1;
0x0000efb4 sw v0, 8(fp) | *(arg_68h) = v0;
0x0000efb8 lw a0, 8(v1) | a0 = *((v1 + 2));
0x0000efbc lw t9, -0x79b8(gp) | t9 = sym.imp.g_object_get;
0x0000efc0 lw a2, 0x28(sp) | a2 = *(var_28h);
0x0000efc4 move a3, zero | a3 = 0;
0x0000efc8 move a1, s7 | a1 = s7;
0x0000efcc jalr t9 | t9 ();
0x0000efd0 lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
0x0000efd4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000efd8 addu v0, v0, s1 | v0 += s1;
0x0000efdc move a3, zero | a3 = 0;
0x0000efe0 lw a0, 8(v0) | a0 = *((v0 + 2));
0x0000efe4 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0000efe8 lw t9, -0x79b8(gp) | t9 = sym.imp.g_object_get;
0x0000efec addiu a2, v0, 0x6028 | a2 = v0 + 0x6028;
0x0000eff0 move a1, s6 | a1 = s6;
0x0000eff4 jalr t9 | t9 ();
0x0000eff8 lw v0, 0x74e4(s2) | v0 = *((s2 + 7481));
0x0000effc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f000 addu v0, v0, s1 | v0 += s1;
0x0000f004 b 0xecd4 | goto label_8;
| }
0x0000f008 lw t9, -0x7db4(gp) | t9 = sym.focusd_optics_focus_get_type;
0x0000f00c lw fp, (s0) | fp = *(s0);
0x0000f010 bal 0x22fd0 | sym_focusd_optics_focus_get_type ();
0x0000f014 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f018 move a0, fp | a0 = fp;
0x0000f01c lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000f020 move a1, v0 | a1 = v0;
0x0000f024 jalr t9 | t9 ();
0x0000f028 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f02c lw a1, 0x74e4(s2) | a1 = *((s2 + 7481));
0x0000f030 move a0, v0 | a0 = v0;
0x0000f034 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x0000f038 addu fp, a1, s1 | fp = a1 + s1;
0x0000f03c jalr t9 | t9 ();
0x0000f040 lw v1, 0x74e4(s2) | v1 = *((s2 + 7481));
0x0000f044 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f048 sw v0, 8(fp) | *(arg_68h) = v0;
0x0000f04c addu v0, v1, s1 | v0 = v1 + s1;
0x0000f050 b 0xecd4 | goto label_8;
| label_12:
0x0000f054 move a1, zero | a1 = 0;
0x0000f058 b 0xed68 | goto label_9;
| label_20:
0x0000f05c lw s1, -0x7fd0(gp) | s1 = *(gp);
0x0000f060 lw t9, -0x76f8(gp) | t9 = sym.imp.g_thread_pool_new;
0x0000f064 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x0000f068 addiu a0, s1, -0x2f60 | a0 = s1 + -0x2f60;
0x0000f06c sw s0, 0x10(sp) | *(var_10h_2) = s0;
0x0000f070 move a3, zero | a3 = 0;
0x0000f074 addiu a2, s4, 5 | a2 = s4 + 5;
0x0000f078 move a1, zero | a1 = 0;
0x0000f07c jalr t9 | t9 ();
0x0000f080 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f084 lw v1, 0x30(sp) | v1 = *(var_30h);
0x0000f088 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000f08c sw v0, 0x74d0(a0) | *((a0 + 7476)) = v0;
| if (v1 == 0) {
0x0000f090 beqz v1, 0xee2c | goto label_10;
| }
0x0000f094 lw s1, -0x7990(gp) | s1 = *((gp - 7780));
0x0000f098 b 0xee60 | goto label_11;
| label_21:
0x0000f09c lw t9, -0x7788(gp) | t9 = sym.imp.g_io_channel_unix_new;
0x0000f0a0 lw a0, 0x68(sp) | a0 = *(arg_68h);
0x0000f0a4 jalr t9 | t9 ();
0x0000f0a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f0ac addiu a1, zero, 1 | a1 = 1;
0x0000f0b0 move a3, zero | a3 = 0;
0x0000f0b4 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000f0b8 lw a2, -0x7fd0(gp) | a2 = *(gp);
0x0000f0bc lw t9, -0x799c(gp) | t9 = sym.imp.g_io_add_watch;
0x0000f0c0 sw v0, 0x74d8(v1) | *((v1 + 7478)) = v0;
0x0000f0c4 addiu a2, a2, -0x383c | a2 += -0x383c;
0x0000f0c8 move a0, v0 | a0 = v0;
0x0000f0cc jalr t9 | t9 ();
0x0000f0d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000f0d4 addiu a1, zero, 1 | a1 = 1;
0x0000f0d8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000f0dc sw v0, 0x74dc(v1) | *((v1 + 7479)) = v0;
0x0000f0e0 b 0xed68 | goto label_9;
| label_19:
0x0000f0e4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000f0e8 jalr t9 | t9 ();
0x0000f0ec nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0xe910 */
| #include <stdint.h>
|
; (fcn) sym.create_transfer_socket () | void create_transfer_socket () {
0x0000e910 lui gp, 6 |
0x0000e914 addiu gp, gp, 0x270 |
0x0000e918 addu gp, gp, t9 | gp += t9;
0x0000e91c addiu sp, sp, -0x20 |
0x0000e920 lw t9, -0x7738(gp) | t9 = sym.imp.g_unlink;
0x0000e924 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0000e928 lw s0, -0x7fd8(gp) | s0 = *(gp);
0x0000e92c sw gp, 0x10(sp) | *(var_10h) = gp;
0x0000e930 sw ra, 0x1c(sp) | *(var_1ch) = ra;
| /* str._var_run_focusd_transfer */
0x0000e934 addiu a0, s0, -0x5cf8 | a0 = s0 + -0x5cf8;
0x0000e938 jalr t9 | t9 ();
0x0000e93c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x0000e940 bgez v0, 0xe960 |
0x0000e944 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0000e948 jalr t9 | t9 ();
0x0000e94c nop |
0x0000e950 lw v1, (v0) | v1 = *(v0);
0x0000e954 addiu v0, zero, 2 | v0 = 2;
0x0000e958 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != v0) {
0x0000e95c bne v1, v0, 0xe98c | goto label_0;
| }
| }
0x0000e960 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000e964 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000e968 lw ra, 0x1c(sp) | ra = *(var_1ch);
| /* str._var_run_focusd_transfer */
0x0000e96c addiu a0, s0, -0x5cf8 | a0 = s0 + -0x5cf8;
0x0000e970 lw t9, -0x7b2c(gp) | t9 = sym.imp.fdipc_server_socket_with_user_group;
0x0000e974 lw s0, 0x18(sp) | s0 = *(var_18h);
| /* esilref: 'www' */
0x0000e978 addiu a3, a3, -0x5ef4 | a3 += -0x5ef4;
| /* esilref: 'focus' */
0x0000e97c addiu a2, a2, -0x2a10 | a2 += -0x2a10;
0x0000e980 addiu a1, zero, 0x1b0 | a1 = aav.0x000001b0;
0x0000e984 addiu sp, sp, 0x20 |
0x0000e988 jr t9 | t9 ();
| label_0:
0x0000e98c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0000e990 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000e994 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000e998 lw a0, (v0) | a0 = *(v0);
| /* str._var_run_focusd_transfer */
0x0000e99c addiu a3, s0, -0x5cf8 | a3 = s0 + -0x5cf8;
| /* str._3_Could_not_remove__s_n */
0x0000e9a0 addiu a2, a2, -0x5f0c | a2 += -0x5f0c;
0x0000e9a4 addiu a1, zero, 1 | a1 = 1;
0x0000e9a8 jalr t9 | t9 ();
0x0000e9ac lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0000e9b0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0000e9b4 addiu v0, zero, -1 | v0 = -1;
0x0000e9b8 addiu sp, sp, 0x20 |
0x0000e9bc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x37c98 */
| #include <stdint.h>
|
; (fcn) sym.focusd_algorithm_autofocus_new () | void focusd_algorithm_autofocus_new () {
0x00037c98 lui gp, 3 |
0x00037c9c addiu gp, gp, 0x6ee8 |
0x00037ca0 addu gp, gp, t9 | gp += t9;
0x00037ca4 addiu sp, sp, -0x58 |
0x00037ca8 lw t9, -0x7780(gp) | t9 = sym.imp.g_type_from_name;
0x00037cac sw gp, 0x30(sp) | *(var_30h) = gp;
0x00037cb0 sw s5, 0x50(sp) | *(var_50h) = s5;
0x00037cb4 sw s4, 0x4c(sp) | *(var_4ch) = s4;
0x00037cb8 sw s3, 0x48(sp) | *(var_48h) = s3;
0x00037cbc sw s2, 0x44(sp) | *(var_44h) = s2;
0x00037cc0 sw s1, 0x40(sp) | *(var_40h) = s1;
0x00037cc4 sw s0, 0x3c(sp) | *(var_3ch) = s0;
0x00037cc8 sw ra, 0x54(sp) | *(var_54h) = ra;
0x00037ccc move s1, a0 | s1 = a0;
0x00037cd0 move s5, a1 | s5 = a1;
0x00037cd4 move s0, a2 | s0 = a2;
0x00037cd8 move s2, a3 | s2 = a3;
0x00037cdc lw s3, 0x68(sp) | s3 = *(arg_68h);
0x00037ce0 lw s4, 0x6c(sp) | s4 = *(arg_6ch);
0x00037ce4 jalr t9 | t9 ();
0x00037ce8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00037cec beqz v0, 0x37e24 |
0x00037cf0 move a0, v0 | a0 = v0;
0x00037cf4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00037cf8 lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.source */
0x00037cfc addiu v0, v0, -0x615c | v0 += -0x615c;
0x00037d00 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00037d04 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00037d08 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str.imaged */
0x00037d0c addiu v0, v0, -0x6a04 | v0 += -0x6a04;
0x00037d10 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00037d14 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00037d18 lw t9, -0x78ec(gp) | t9 = sym.imp.g_object_new;
| /* str.focus_optics */
0x00037d1c addiu v0, v0, -0x5b98 | v0 += -0x5b98;
| /* esilref: 'focus_measure' */
0x00037d20 addiu a3, a3, -0x5be8 | a3 += -0x5be8;
0x00037d24 move a2, s5 | a2 = s5;
| /* str.focus_motor */
0x00037d28 addiu a1, a1, -0x5bcc | a1 += -0x5bcc;
0x00037d2c sw s0, 0x10(sp) | *(var_10h) = s0;
0x00037d30 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x00037d34 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00037d38 sw s3, 0x20(sp) | *(var_20h) = s3;
0x00037d3c sw s2, 0x18(sp) | *(var_18h) = s2;
0x00037d40 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00037d44 jalr t9 | t9 ();
0x00037d48 lw gp, 0x30(sp) | gp = *(var_30h);
0x00037d4c lw t9, -0x7fd4(gp) | t9 = sym.focusd_algorithm_autofocus_get_type;
0x00037d50 move s0, v0 | s0 = v0;
0x00037d54 jalr t9 | t9 ();
0x00037d58 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s0 != 0) {
0x00037d5c beqz s0, 0x37dcc |
0x00037d60 lw v1, (s0) | v1 = *(s0);
0x00037d64 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x00037d68 beqz v1, 0x37d78 |
0x00037d6c lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x00037d70 beql v1, v0, 0x37d90 | goto label_0;
| }
0x00037d74 lw t9, -0x7fd4(gp) | t9 = sym.focusd_algorithm_autofocus_get_type;
| }
0x00037d78 move a1, v0 | a1 = v0;
0x00037d7c move a0, s0 | a0 = s0;
0x00037d80 jalr t9 | t9 ();
0x00037d84 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00037d88 beqz v0, 0x37dcc | goto label_1;
| }
0x00037d8c lw t9, -0x7fd4(gp) | t9 = sym.focusd_algorithm_autofocus_get_type;
| label_0:
0x00037d90 jalr t9 | t9 ();
0x00037d94 nop |
0x00037d98 lw gp, 0x30(sp) | gp = *(var_30h);
0x00037d9c lw ra, 0x54(sp) | ra = *(var_54h);
0x00037da0 lw s5, 0x50(sp) | s5 = *(var_50h);
0x00037da4 lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x00037da8 lw s3, 0x48(sp) | s3 = *(var_48h);
0x00037dac lw s2, 0x44(sp) | s2 = *(var_44h);
0x00037db0 lw s1, 0x40(sp) | s1 = *(var_40h);
0x00037db4 move a0, s0 | a0 = s0;
0x00037db8 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00037dbc lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x00037dc0 move a1, v0 | a1 = v0;
0x00037dc4 addiu sp, sp, 0x58 |
0x00037dc8 jr t9 | t9 ();
| }
| label_1:
0x00037dcc lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00037dd0 move a0, s0 | a0 = s0;
0x00037dd4 jalr t9 | t9 ();
0x00037dd8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00037ddc move a3, s1 | a3 = s1;
0x00037de0 addiu a1, zero, 1 | a1 = 1;
0x00037de4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037de8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037dec lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037df0 lw a0, (v0) | a0 = *(v0);
| /* str._3_type_name__s_does_not_specify_a_AlgorithAutofocus_subclass_n */
0x00037df4 addiu a2, a2, 0x2d14 | a2 += 0x2d14;
0x00037df8 jalr t9 | t9 ();
0x00037dfc lw ra, 0x54(sp) | ra = *(var_54h);
0x00037e00 lw s5, 0x50(sp) | s5 = *(var_50h);
0x00037e04 lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x00037e08 lw s3, 0x48(sp) | s3 = *(var_48h);
0x00037e0c lw s2, 0x44(sp) | s2 = *(var_44h);
0x00037e10 lw s1, 0x40(sp) | s1 = *(var_40h);
0x00037e14 lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x00037e18 move v0, zero | v0 = 0;
0x00037e1c addiu sp, sp, 0x58 |
0x00037e20 jr ra | return v0;
| }
0x00037e24 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037e28 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037e2c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037e30 lw a0, (v0) | a0 = *(v0);
0x00037e34 move a3, s1 | a3 = s1;
| /* str._3_Unknown_autofocus_measure_type__s_n */
0x00037e38 addiu a2, a2, 0x2cec | a2 += 0x2cec;
0x00037e3c addiu a1, zero, 1 | a1 = 1;
0x00037e40 jalr t9 | t9 ();
0x00037e44 lw ra, 0x54(sp) | ra = *(var_54h);
0x00037e48 lw s5, 0x50(sp) | s5 = *(var_50h);
0x00037e4c lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x00037e50 lw s3, 0x48(sp) | s3 = *(var_48h);
0x00037e54 lw s2, 0x44(sp) | s2 = *(var_44h);
0x00037e58 lw s1, 0x40(sp) | s1 = *(var_40h);
0x00037e5c lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x00037e60 move v0, zero | v0 = 0;
0x00037e64 addiu sp, sp, 0x58 |
0x00037e68 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x130f0 */
| #include <stdint.h>
|
; (fcn) sym.focusd_assistant_start () | void focusd_assistant_start () {
0x000130f0 lui gp, 6 |
0x000130f4 addiu gp, gp, -0x4570 |
0x000130f8 addu gp, gp, t9 | gp += t9;
0x000130fc addiu sp, sp, -0x38 |
0x00013100 lw t9, -0x7e00(gp) | t9 = sym.focusd_assistant_get_type;
0x00013104 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00013108 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001310c sw ra, 0x34(sp) | *(var_1ch) = ra;
0x00013110 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00013114 lw v0, (s1) | v0 = *(s1);
0x00013118 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0001311c sw s2, 0x28(sp) | *(var_10h) = s2;
0x00013120 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00013124 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00013128 sw v0, 0x1c(sp) | *(var_1ch_2) = v0;
0x0001312c move s3, a0 | s3 = a0;
0x00013130 bal 0x11c00 | sym_focusd_assistant_get_type ();
0x00013134 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00013138 move a1, v0 | a1 = v0;
0x0001313c lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x00013140 move a0, s3 | a0 = s3;
0x00013144 jalr t9 | t9 ();
0x00013148 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0001314c addiu s2, v0, 0xc | s2 = v0 + 0xc;
0x00013150 move s0, v0 | s0 = v0;
0x00013154 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x00013158 move a0, s2 | a0 = s2;
0x0001315c jalr t9 | t9 ();
0x00013160 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x00013164 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00013168 beqz v0, 0x131b0 | goto label_1;
| }
0x0001316c addiu s0, zero, 1 | s0 = 1;
| do {
| label_0:
0x00013170 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00013174 move a0, s2 | a0 = s2;
0x00013178 jalr t9 | t9 ();
0x0001317c lw a0, 0x1c(sp) | a0 = *(var_1ch_2);
0x00013180 lw v1, (s1) | v1 = *(s1);
0x00013184 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00013188 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0001318c bne a0, v1, 0x13294 | goto label_2;
| }
0x00013190 lw ra, 0x34(sp) | ra = *(var_1ch);
0x00013194 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00013198 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0001319c lw s2, 0x28(sp) | s2 = *(var_10h);
0x000131a0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000131a4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000131a8 addiu sp, sp, 0x38 |
0x000131ac jr ra | return v0;
| label_1:
0x000131b0 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x000131b4 addiu s4, s0, 0x24 | s4 = s0 + 0x24;
0x000131b8 move a0, s4 | a0 = s4;
0x000131bc sw zero, 0x18(sp) | *(var_18h) = 0;
0x000131c0 jalr t9 | t9 ();
0x000131c4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000131c8 move a0, s4 | a0 = s4;
0x000131cc sw zero, 0x38(s0) | *((s0 + 14)) = 0;
0x000131d0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x000131d4 addiu s4, sp, 0x18 | s4 = sp + 0x18;
0x000131d8 jalr t9 | t9 ();
0x000131dc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000131e0 move a3, s4 | a3 = s4;
0x000131e4 move a2, s3 | a2 = s3;
0x000131e8 lw a1, -0x7fd0(gp) | a1 = *(gp);
0x000131ec lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000131f0 lw t9, -0x7bfc(gp) | t9 = sym.imp.g_thread_try_new;
0x000131f4 addiu a1, a1, 0x2648 | a1 += aav.0x00002648;
| /* str.FocusdAssistant */
0x000131f8 addiu a0, a0, -0x55e4 | a0 += -0x55e4;
0x000131fc jalr t9 | t9 ();
0x00013200 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00013204 beqz v0, 0x13228 | goto label_3;
| }
0x00013208 lw t9, -0x7874(gp) | t9 = sym.imp.g_thread_unref;
0x0001320c move a0, v0 | a0 = v0;
0x00013210 jalr t9 | t9 ();
0x00013214 addiu v0, zero, 1 | v0 = 1;
0x00013218 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0001321c sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x00013220 addiu s0, zero, 1 | s0 = 1;
0x00013224 b 0x13170 |
| } while (1);
| label_3:
0x00013228 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001322c lw v0, 0x18(sp) | v0 = *(var_18h);
0x00013230 lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x00013234 beqz v0, 0x1326c |
0x00013238 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001323c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00013240 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Could_not_start_a_focus_assistant_thread:__s_n */
0x00013244 addiu a2, a2, -0x53cc | a2 += -0x53cc;
0x00013248 addiu a1, zero, 1 | a1 = 1;
0x0001324c jalr t9 | t9 ();
0x00013250 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00013254 move a0, s4 | a0 = s4;
0x00013258 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001325c move s0, zero | s0 = 0;
0x00013260 jalr t9 | t9 ();
0x00013264 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00013268 b 0x13170 | goto label_0;
| }
0x0001326c move a3, a0 | a3 = a0;
0x00013270 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00013274 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00013278 addiu a2, zero, 0x2c | a2 = 0x2c;
0x0001327c addiu a1, zero, 1 | a1 = 1;
| /* str._4_Could_not_start_a_focus_assistant_thread_n */
0x00013280 addiu a0, a0, -0x5398 | a0 += -0x5398;
0x00013284 jalr t9 | t9 ();
0x00013288 move s0, zero | s0 = 0;
0x0001328c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00013290 b 0x13170 | goto label_0;
| label_2:
0x00013294 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00013298 jalr t9 | t9 ();
0x0001329c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x154b4 */
| #include <stdint.h>
|
; (fcn) sym.focusd_dbus_emit_assistant_active_signal () | void focusd_dbus_emit_assistant_active_signal () {
0x000154b4 lui gp, 6 |
0x000154b8 addiu gp, gp, -0x6934 |
0x000154bc addu gp, gp, t9 | gp += t9;
0x000154c0 addiu sp, sp, -0x48 |
0x000154c4 sw s0, 0x34(sp) | *(var_34h) = s0;
0x000154c8 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x000154cc sw gp, 0x20(sp) | *(var_20h) = gp;
0x000154d0 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000154d4 lw v0, (s0) | v0 = *(s0);
0x000154d8 sw s3, 0x40(sp) | *(var_40h) = s3;
0x000154dc sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x000154e0 sw s1, 0x38(sp) | *(var_38h) = s1;
0x000154e4 sw zero, 0x28(sp) | *(var_28h) = 0;
0x000154e8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000154ec lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x000154f0 beqz a0, 0x155f0 | goto label_2;
| }
0x000154f4 move s1, a0 | s1 = a0;
0x000154f8 move s2, a1 | s2 = a1;
0x000154fc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00015500 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015504 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* esilref: 'Focus' */
0x00015508 addiu a2, a2, -0x52b8 | a2 += -0x52b8;
| /* str._com_axis_Optics */
0x0001550c addiu a1, a1, -0x4df0 | a1 += -0x4df0;
| /* str._s__s */
0x00015510 addiu a0, a0, -0x4ddc | a0 += -0x4ddc;
0x00015514 jalr t9 | t9 ();
0x00015518 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001551c move a1, s2 | a1 = s2;
0x00015520 lw s3, 0x4c(s1) | s3 = *((s1 + 19));
0x00015524 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015528 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* esilref: '(b)' */
0x0001552c addiu a0, a0, -0x4f98 | a0 += -0x4f98;
0x00015530 move s2, v0 | s2 = v0;
0x00015534 jalr t9 | t9 ();
0x00015538 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001553c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00015540 addiu s1, sp, 0x28 | s1 = sp + 0x28;
0x00015544 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00015548 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001554c lw t9, -0x78b8(gp) | t9 = sym.imp.g_dbus_connection_emit_signal;
| /* str.assistant_active */
0x00015550 addiu v0, v0, -0x4ba4 | v0 += -0x4ba4;
0x00015554 sw s1, 0x18(sp) | *(var_18h) = s1;
0x00015558 sw v0, 0x10(sp) | *(var_10h_2) = v0;
| /* str.com.axis.Optics */
0x0001555c addiu a3, a3, -0x4e20 | a3 += -0x4e20;
0x00015560 move a2, s2 | a2 = s2;
0x00015564 move a1, zero | a1 = 0;
0x00015568 move a0, s3 | a0 = s3;
0x0001556c jalr t9 | t9 ();
0x00015570 lw gp, 0x20(sp) | gp = *(var_20h);
0x00015574 beqz v0, 0x155b0 |
| while (1) {
| label_1:
0x00015578 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001557c move a0, s2 | a0 = s2;
0x00015580 jalr t9 | t9 ();
0x00015584 lw gp, 0x20(sp) | gp = *(var_20h);
| label_0:
0x00015588 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0001558c lw v0, (s0) | v0 = *(s0);
0x00015590 lw ra, 0x44(sp) | ra = *(var_44h);
| if (v1 != v0) {
0x00015594 bne v1, v0, 0x15634 | goto label_3;
| }
0x00015598 lw s3, 0x40(sp) | s3 = *(var_40h);
0x0001559c lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x000155a0 lw s1, 0x38(sp) | s1 = *(var_38h);
0x000155a4 lw s0, 0x34(sp) | s0 = *(var_34h);
0x000155a8 addiu sp, sp, 0x48 |
0x000155ac jr ra | return v0;
0x000155b0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x000155b4 lw v0, 0x28(sp) | v0 = *(var_28h);
0x000155b8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x000155bc beqz v0, 0x15610 | goto label_4;
| }
0x000155c0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000155c4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000155c8 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Couldnt_emit_assistant_active_signal:__s_n */
0x000155cc addiu a2, a2, -0x4b80 | a2 += -0x4b80;
0x000155d0 addiu a1, zero, 1 | a1 = 1;
0x000155d4 jalr t9 | t9 ();
0x000155d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000155dc lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x000155e0 move a0, s1 | a0 = s1;
0x000155e4 jalr t9 | t9 ();
0x000155e8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000155ec b 0x15578 |
| }
| label_2:
0x000155f0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000155f4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000155f8 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.server___NULL */
0x000155fc addiu a2, a2, -0x4b90 | a2 += -0x4b90;
| /* str.focusd_dbus_emit_assistant_active_signal */
0x00015600 addiu a1, a1, -0x3cc4 | a1 += -0x3cc4;
0x00015604 jalr t9 | t9 ();
0x00015608 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001560c b 0x15588 | goto label_0;
| label_4:
0x00015610 move a3, a0 | a3 = a0;
0x00015614 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015618 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001561c addiu a2, zero, 0x29 | a2 = 0x29;
0x00015620 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Couldnt_emit_assistant_active_signal_n */
0x00015624 addiu a0, a0, -0x4b50 | a0 += -0x4b50;
0x00015628 jalr t9 | t9 ();
0x0001562c lw gp, 0x20(sp) | gp = *(var_20h);
0x00015630 b 0x15578 | goto label_1;
| label_3:
0x00015634 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00015638 jalr t9 | t9 ();
0x0001563c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x159a4 */
| #include <stdint.h>
|
; (fcn) sym.focusd_dbus_init () | void focusd_dbus_init () {
0x000159a4 lui gp, 6 |
0x000159a8 addiu gp, gp, -0x6e24 |
0x000159ac addu gp, gp, t9 | gp += t9;
0x000159b0 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x000159b4 addiu sp, sp, -0x60 |
0x000159b8 lw t9, -0x7ae8(gp) | t9 = sym.imp.g_malloc0;
0x000159bc sw v0, 0x28(sp) | *(var_28h) = v0;
0x000159c0 lw v0, (v0) | v0 = *(v0);
0x000159c4 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x000159c8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000159cc sw s2, 0x40(sp) | *(var_40h) = s2;
0x000159d0 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x000159d4 sw s0, 0x38(sp) | *(var_38h) = s0;
0x000159d8 sw fp, 0x58(sp) | *(var_58h) = fp;
0x000159dc sw s7, 0x54(sp) | *(var_54h) = s7;
0x000159e0 sw s6, 0x50(sp) | *(var_50h) = s6;
0x000159e4 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x000159e8 sw s4, 0x48(sp) | *(var_48h) = s4;
0x000159ec sw s3, 0x44(sp) | *(var_44h) = s3;
0x000159f0 move s0, a0 | s0 = a0;
0x000159f4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000159f8 addiu a0, zero, 0x74 | a0 = 0x74;
0x000159fc move s2, a1 | s2 = a1;
0x00015a00 jalr t9 | t9 ();
0x00015a04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015a08 move s1, v0 | s1 = v0;
0x00015a0c addiu v0, v0, 0x5c | v0 += 0x5c;
0x00015a10 lw t9, -0x78d4(gp) | t9 = sym.imp.g_mutex_init;
0x00015a14 move a0, v0 | a0 = v0;
0x00015a18 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00015a1c jalr t9 | t9 ();
0x00015a20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015a24 addiu v0, s1, 0x50 | v0 = s1 + 0x50;
0x00015a28 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00015a2c lw t9, -0x7a08(gp) | t9 = sym.imp.g_cond_init;
0x00015a30 move a0, v0 | a0 = v0;
0x00015a34 jalr t9 | t9 ();
0x00015a38 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s1 != 0) {
0x00015a3c beqz s1, 0x15a4c |
0x00015a40 lw a0, (s1) | a0 = *(s1);
0x00015a44 addiu v0, s1, 4 | v0 = s1 + 4;
| if (a0 == 0) {
0x00015a48 beqz a0, 0x15b74 | goto label_19;
| }
| }
0x00015a4c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00015a50 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.focus___focus */
0x00015a54 addiu a2, a2, -0x4b18 | a2 += -0x4b18;
| label_1:
0x00015a58 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00015a5c move a0, zero | a0 = 0;
| /* str.focusd_dbus_build_introspection_xml */
0x00015a60 addiu a1, a1, -0x3d24 | a1 += -0x3d24;
0x00015a64 jalr t9 | t9 ();
0x00015a68 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015a6c sw s2, 0x6c(s1) | *((s1 + 27)) = s2;
0x00015a70 lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00015a74 addiu v0, v0, 0x4514 | v0 += 0x4514;
0x00015a78 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
0x00015a7c lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00015a80 addiu v0, v0, 0x4084 | v0 += 0x4084;
0x00015a84 sw v0, 0x10(s1) | *((s1 + 4)) = v0;
0x00015a88 lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00015a8c addiu v0, v0, 0x3670 | v0 += 0x3670;
0x00015a90 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
| if (s2 == 0) {
0x00015a94 beqz s2, 0x15cd4 | goto label_13;
| }
| label_2:
0x00015a98 lw t9, -0x78e0(gp) | t9 = sym.imp.g_malloc0_n;
0x00015a9c addiu a1, zero, 0x28 | a1 = 0x28;
0x00015aa0 addiu a0, s2, 1 | a0 = s2 + 1;
0x00015aa4 sw zero, 0x30(sp) | *(var_30h) = 0;
0x00015aa8 lw s4, 8(s0) | s4 = *((s0 + 2));
0x00015aac lw s5, 0x10(s0) | s5 = *((s0 + 4));
0x00015ab0 lw s6, (s0) | s6 = *(s0);
0x00015ab4 jalr t9 | t9 ();
0x00015ab8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015abc move a0, v0 | a0 = v0;
0x00015ac0 sw v0, 0x70(s1) | *((s1 + 28)) = v0;
0x00015ac4 lw s3, -0x7fd0(gp) | s3 = *(gp);
| /* fcn.000135e4 */
0x00015ac8 addiu s3, s3, 0x35e4 | s3 += 0x35e4;
0x00015acc move t9, s3 | t9 = s3;
0x00015ad0 move a1, s0 | a1 = s0;
0x00015ad4 bal 0x135e4 | fcn_000135e4 ();
0x00015ad8 lw a0, 0x70(s1) | a0 = *((s1 + 28));
0x00015adc lw gp, 0x18(sp) | gp = *(var_18h);
0x00015ae0 addiu s7, zero, 0x28 | s7 = 0x28;
0x00015ae4 sw zero, 4(a0) | *((a0 + 1)) = 0;
0x00015ae8 move fp, zero | fp = 0;
0x00015aec b 0x15b4c |
| while (s4 != 0) {
0x00015af0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v1 == 0) {
0x00015af4 beqz v1, 0x16050 | goto label_20;
| }
| label_0:
0x00015af8 lw v1, 0x10(s0) | v1 = *((s0 + 4));
| if (s5 == 0) {
0x00015afc beqz s5, 0x15eb0 | goto label_21;
| }
0x00015b00 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v1 == 0) {
0x00015b04 beqz v1, 0x1608c | goto label_22;
| }
| label_5:
0x00015b08 lw v1, (s0) | v1 = *(s0);
| if (s6 == 0) {
0x00015b0c beqz s6, 0x15d94 | goto label_23;
| }
0x00015b10 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v1 == 0) {
0x00015b14 beqz v1, 0x16038 | goto label_24;
| }
0x00015b18 addu a0, a0, s7 | a0 += s7;
| label_3:
0x00015b1c move t9, s3 | t9 = s3;
0x00015b20 move a1, s0 | a1 = s0;
0x00015b24 bal 0x135e4 | fcn_000135e4 ();
0x00015b28 lw a0, 0x70(s1) | a0 = *((s1 + 28));
0x00015b2c addiu v1, fp, 1 | v1 = fp + 1;
0x00015b30 addu a1, a0, s7 | a1 = a0 + s7;
0x00015b34 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015b38 sw fp, -0x24(a1) | *((a1 - 9)) = fp;
0x00015b3c addiu s0, s0, 0x1c | s0 += 0x1c;
0x00015b40 move fp, v1 | fp = v1;
0x00015b44 addiu s7, s7, 0x28 | s7 += 0x28;
| if (v1 == s2) {
0x00015b48 beq v1, s2, 0x15f8c | goto label_25;
| }
0x00015b4c lw v1, 8(s0) | v1 = *((s0 + 2));
0x00015b50 bnez s4, 0x15af0 |
| }
0x00015b54 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v1 == 0) {
0x00015b58 beqz v1, 0x15af8 | goto label_0;
| }
0x00015b5c lw v1, -0x7fd8(gp) | v1 = *(gp);
0x00015b60 lw a0, (v0) | a0 = *(v0);
0x00015b64 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* esilref: 'has' */
0x00015b68 addiu v1, v1, -0x4b24 | v1 += -0x4b24;
| /* str.has_not */
0x00015b6c addiu v0, v0, -0x4b20 | v0 += -0x4b20;
0x00015b70 b 0x16064 | goto label_26;
| label_19:
0x00015b74 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (v0 != 0) {
0x00015b78 beqz v0, 0x15b88 |
0x00015b7c lw v0, 4(s1) | v0 = *((s1 + 1));
0x00015b80 addiu v1, s1, 8 | v1 = s1 + 8;
| if (v0 == 0) {
0x00015b84 beqz v0, 0x15b94 | goto label_27;
| }
| }
0x00015b88 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.zoom___zoom */
0x00015b8c addiu a2, a2, -0x4b04 | a2 += -0x4b04;
0x00015b90 b 0x15a58 | goto label_1;
| label_27:
0x00015b94 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (v1 != 0) {
0x00015b98 beqz v1, 0x15ba8 |
0x00015b9c lw v0, 8(s1) | v0 = *((s1 + 2));
| if (v0 == 0) {
0x00015ba0 beql v0, zero, 0x15bb4 | goto label_28;
| }
0x00015ba4 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| }
0x00015ba8 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.measure___measure */
0x00015bac addiu a2, a2, -0x4af4 | a2 += -0x4af4;
0x00015bb0 b 0x15a58 | goto label_1;
| label_28:
0x00015bb4 addiu a0, zero, 3 | a0 = 3;
0x00015bb8 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015bbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00015bc0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| if (v0 == 0) {
0x00015bc4 beqz v0, 0x15ed0 | goto label_29;
| }
0x00015bc8 addiu a0, zero, 0xe | a0 = 0xe;
0x00015bcc bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015bd0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00015bd4 bnez v0, 0x15f20 | goto label_30;
| }
0x00015bd8 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015bdc lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00015be0 addiu a0, zero, 1 | a0 = 1;
0x00015be4 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015be8 addiu s3, s3, -0x64a8 | s3 += -0x64a8;
0x00015bec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00015bf0 bnez v0, 0x15f3c | goto label_31;
| }
| label_8:
0x00015bf4 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015bf8 lw s4, -0x7fd8(gp) | s4 = *(gp);
0x00015bfc addiu a0, zero, 0xb | a0 = 0xb;
0x00015c00 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015c04 addiu s4, s4, -0x64a8 | s4 += -0x64a8;
0x00015c08 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00015c0c bnez v0, 0x15f58 | goto label_32;
| }
| label_9:
0x00015c10 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015c14 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x00015c18 addiu a0, zero, 0x11 | a0 = 0x11;
0x00015c1c bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015c20 addiu s5, s5, -0x64a8 | s5 += -0x64a8;
0x00015c24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00015c28 bnez v0, 0x15f74 | goto label_33;
| }
| label_10:
0x00015c2c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00015c30 addiu v0, v0, -0x64a8 | v0 += -0x64a8;
| label_11:
0x00015c34 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015c38 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x00015c3c move a3, s5 | a3 = s5;
0x00015c40 move a2, s4 | a2 = s4;
0x00015c44 move a1, s3 | a1 = s3;
| /* str._node__n___interface_namecom.axis.Optics.Motorized__n_____method_nameMove__n_______arg_nameamount_typed_directionin___n_______arg_namefraction_typeb_directionin___n_______arg_namerelative_movement_typeb_directionin___n______method__n_____method_nameStop__n______method__n_____method_nameMonitor__n_______arg_nameposition_typed_directionout___n_______arg_nameprogress_typeb_directionout___n______method__n_____method_nameSetPower__n_______arg_namepower_typed_directionin___n______method__n_____method_nameGetZoomValue__n_______arg_namezoom_value_typed_directionout___n______method__n_s____interface__n___interface_namecom.axis.Optics.Focus__n_____method_nameSearch__n______method__n_____method_nameScan__n_______arg_namestride_typeu_directionin___n_______arg_nameavg_typeu_directionin___n_______arg_namefile_types_directionin___n______method__n_s_____property_nameSavedPosition_types_accessreadwrite___n_s_____property_nameFocusMode_types_accesswrite___n_____property_nameNearLimit_typed_accessreadwrite___n_____property_nameFarLimit_typed_accessreadwrite___n_____property_nameTemperatureCorrection_types_accessreadwrite___n_____property_nameAutofocusFullSearch_types_accessreadwrite___n____interface__n_s__node__n */
0x00015c48 addiu a0, a0, -0x4adc | a0 += -0x4adc;
0x00015c4c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00015c50 jalr t9 | t9 ();
0x00015c54 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015c58 sw v0, (s1) | *(s1) = v0;
0x00015c5c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015c60 addiu a0, zero, 0xe | a0 = 0xe;
0x00015c64 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015c68 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00015c6c bnez v0, 0x15f14 | goto label_34;
| }
| label_6:
0x00015c70 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00015c74 addiu a1, a1, -0x64a8 | a1 += -0x64a8;
| label_7:
0x00015c78 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015c7c lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* str._node__n___interface_namecom.axis.Optics.Motorized__n_____method_nameMove__n_______arg_nameamount_typed_directionin___n_______arg_namefraction_typeb_directionin___n_______arg_namerelative_movement_typeb_directionin___n______method__n_____method_nameSetPower__n_______arg_namepower_typed_directionin___n______method__n_____method_nameGetZoomValue__n_______arg_namezoom_value_typed_directionout___n______method__n_s____interface__n__node__n */
0x00015c80 addiu a0, a0, -0x4548 | a0 += -0x4548;
0x00015c84 jalr t9 | t9 ();
0x00015c88 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015c8c sw v0, 4(s1) | *((s1 + 1)) = v0;
0x00015c90 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015c94 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
| /* str._node__n___interface_namecom.axis.Optics.FocusMeasure__n________property_nameFocusMeasureWindow_types_accesswrite___n____interface__n__node__n */
0x00015c98 addiu a0, a0, -0x4364 | a0 += -0x4364;
0x00015c9c jalr t9 | t9 ();
0x00015ca0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015ca4 sw v0, 8(s1) | *((s1 + 2)) = v0;
0x00015ca8 sw s2, 0x6c(s1) | *((s1 + 27)) = s2;
0x00015cac lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00015cb0 addiu v0, v0, 0x4514 | v0 += 0x4514;
0x00015cb4 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
0x00015cb8 lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00015cbc addiu v0, v0, 0x4084 | v0 += 0x4084;
0x00015cc0 sw v0, 0x10(s1) | *((s1 + 4)) = v0;
0x00015cc4 lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00015cc8 addiu v0, v0, 0x3670 | v0 += 0x3670;
0x00015ccc sw v0, 0x14(s1) | *((s1 + 5)) = v0;
| if (s2 != 0) {
0x00015cd0 bnez s2, 0x15a98 | goto label_2;
| }
| label_13:
0x00015cd4 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00015cd8 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x00015cdc move a0, s0 | a0 = s0;
0x00015ce0 jalr t9 | t9 ();
0x00015ce4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015ce8 addiu v0, zero, 1 | v0 = 1;
0x00015cec move a0, s0 | a0 = s0;
0x00015cf0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00015cf4 sw v0, 0x64(s1) | *((s1 + 25)) = v0;
0x00015cf8 jalr t9 | t9 ();
0x00015cfc lw gp, 0x18(sp) | gp = *(var_18h);
0x00015d00 lw t9, -0x7928(gp) | t9 = sym.imp.g_main_context_new;
0x00015d04 jalr t9 | t9 ();
0x00015d08 nop |
0x00015d0c lw gp, 0x18(sp) | gp = *(var_18h);
0x00015d10 move a1, zero | a1 = 0;
0x00015d14 lw t9, -0x78ac(gp) | t9 = sym.imp.g_main_loop_new;
0x00015d18 move a0, v0 | a0 = v0;
0x00015d1c jalr t9 | t9 ();
0x00015d20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015d24 sw v0, 0x44(s1) | *((s1 + 17)) = v0;
0x00015d28 move a2, s1 | a2 = s1;
0x00015d2c lw a1, -0x7fd0(gp) | a1 = *(gp);
0x00015d30 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015d34 lw t9, -0x7a9c(gp) | t9 = sym.imp.g_thread_new;
0x00015d38 addiu a1, a1, 0x4da8 | a1 += 0x4da8;
| /* str.focusd_dbus_server */
0x00015d3c addiu a0, a0, -0x4100 | a0 += -0x4100;
0x00015d40 jalr t9 | t9 ();
0x00015d44 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015d48 sw v0, 0x68(s1) | *((s1 + 26)) = v0;
| if (v0 == 0) {
0x00015d4c beqz v0, 0x160c8 | goto label_35;
| }
| label_4:
0x00015d50 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00015d54 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00015d58 lw v1, (v0) | v1 = *(v0);
0x00015d5c move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00015d60 bne a0, v1, 0x161d4 | goto label_36;
| }
0x00015d64 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x00015d68 lw fp, 0x58(sp) | fp = *(var_58h);
0x00015d6c lw s7, 0x54(sp) | s7 = *(var_54h);
0x00015d70 lw s6, 0x50(sp) | s6 = *(var_50h);
0x00015d74 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00015d78 lw s4, 0x48(sp) | s4 = *(var_48h);
0x00015d7c lw s3, 0x44(sp) | s3 = *(var_44h);
0x00015d80 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00015d84 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00015d88 lw s0, 0x38(sp) | s0 = *(var_38h);
0x00015d8c addiu sp, sp, 0x60 |
0x00015d90 jr ra | return v0;
| label_23:
0x00015d94 addu a0, a0, s7 | a0 += s7;
| if (v1 == 0) {
0x00015d98 beqz v1, 0x15b1c | goto label_3;
| }
0x00015d9c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00015da0 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x00015da4 lw a0, (v0) | a0 = *(v0);
0x00015da8 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* esilref: 'has' */
0x00015dac addiu v1, v1, -0x4b24 | v1 += -0x4b24;
| /* str.has_not */
0x00015db0 addiu v0, v0, -0x4b20 | v0 += -0x4b20;
| label_15:
0x00015db4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00015db8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00015dbc sw v0, 0x14(sp) | *(var_14h) = v0;
0x00015dc0 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00015dc4 move a3, fp | a3 = fp;
| /* str._3_DBus_init__source__u__s_focus_meaure__source_0__s._n */
0x00015dc8 addiu a2, a2, -0x425c | a2 += -0x425c;
0x00015dcc addiu a1, zero, 1 | a1 = 1;
0x00015dd0 jalr t9 | t9 ();
0x00015dd4 lw gp, 0x18(sp) | gp = *(var_18h);
| label_14:
0x00015dd8 move s3, zero | s3 = 0;
| label_17:
0x00015ddc move s0, zero | s0 = 0;
| do {
0x00015de0 lw v0, 0x70(s1) | v0 = *((s1 + 28));
0x00015de4 addu v0, v0, s3 | v0 += s3;
0x00015de8 lw a0, 0x20(v0) | a0 = *((v0 + 8));
0x00015dec lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 != 0) {
0x00015df0 beqz a0, 0x15e08 |
0x00015df4 sw zero, 0x20(v0) | *((v0 + 8)) = 0;
0x00015df8 jalr t9 | t9 ();
0x00015dfc lw v0, 0x70(s1) | v0 = *((s1 + 28));
0x00015e00 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015e04 addu v0, v0, s3 | v0 += s3;
| }
0x00015e08 lw a0, 0x24(v0) | a0 = *((v0 + 9));
0x00015e0c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 != 0) {
0x00015e10 beqz a0, 0x15e28 |
0x00015e14 sw zero, 0x24(v0) | *((v0 + 9)) = 0;
0x00015e18 jalr t9 | t9 ();
0x00015e1c lw v0, 0x70(s1) | v0 = *((s1 + 28));
0x00015e20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015e24 addu v0, v0, s3 | v0 += s3;
| }
0x00015e28 lw a0, 0x1c(v0) | a0 = *((v0 + 7));
0x00015e2c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 != 0) {
0x00015e30 beqz a0, 0x15e40 |
0x00015e34 sw zero, 0x1c(v0) | *((v0 + 7)) = 0;
0x00015e38 jalr t9 | t9 ();
0x00015e3c lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00015e40 addiu s0, s0, 1 | s0++;
0x00015e44 sltu v0, s2, s0 | v0 = (s2 < s0) ? 1 : 0;
0x00015e48 addiu s3, s3, 0x28 | s3 += 0x28;
0x00015e4c beqz v0, 0x15de0 |
| } while (v0 == 0);
| label_16:
0x00015e50 lw a0, 0x44(s1) | a0 = *((s1 + 17));
0x00015e54 lw t9, -0x7b04(gp) | t9 = sym.imp.g_main_loop_unref;
| if (a0 != 0) {
0x00015e58 beqz a0, 0x15e68 |
0x00015e5c jalr t9 | t9 ();
0x00015e60 nop |
0x00015e64 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00015e68 lw t9, -0x7b6c(gp) | t9 = sym.imp.g_mutex_clear;
0x00015e6c lw a0, 0x24(sp) | a0 = *(var_24h);
0x00015e70 jalr t9 | t9 ();
0x00015e74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015e78 lw t9, -0x7700(gp) | t9 = sym.imp.g_cond_clear;
0x00015e7c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00015e80 jalr t9 | t9 ();
0x00015e84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015e88 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00015e8c lw a0, 0x70(s1) | a0 = *((s1 + 28));
0x00015e90 jalr t9 | t9 ();
0x00015e94 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015e98 move a0, s1 | a0 = s1;
0x00015e9c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00015ea0 move s1, zero | s1 = 0;
0x00015ea4 jalr t9 | t9 ();
0x00015ea8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015eac b 0x15d50 | goto label_4;
| label_21:
0x00015eb0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v1 == 0) {
0x00015eb4 beqz v1, 0x15b08 | goto label_5;
| }
0x00015eb8 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x00015ebc lw a0, (v0) | a0 = *(v0);
0x00015ec0 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* esilref: 'has' */
0x00015ec4 addiu v1, v1, -0x4b24 | v1 += -0x4b24;
| /* str.has_not */
0x00015ec8 addiu v0, v0, -0x4b20 | v0 += -0x4b20;
0x00015ecc b 0x160a0 | goto label_37;
| label_29:
0x00015ed0 addiu a0, zero, 1 | a0 = 1;
0x00015ed4 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015ed8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00015edc bnez v0, 0x15f80 | goto label_38;
| }
0x00015ee0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00015ee4 addiu a1, a1, -0x64a8 | a1 += -0x64a8;
| label_12:
0x00015ee8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00015eec lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* str._node__n___interface_namecom.axis.Optics.Focus__n_s____interface__n__node__n */
0x00015ef0 addiu a0, a0, -0x4594 | a0 += -0x4594;
0x00015ef4 jalr t9 | t9 ();
0x00015ef8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015efc sw v0, (s1) | *(s1) = v0;
0x00015f00 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015f04 addiu a0, zero, 0xe | a0 = 0xe;
0x00015f08 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00015f0c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00015f10 beqz v0, 0x15c70 | goto label_6;
| }
| label_34:
0x00015f14 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str._____method_nameCalibrate__n_______arg_nameforce_typeb_directionin___n______method__n */
0x00015f18 addiu a1, a1, -0x3d84 | a1 += -0x3d84;
0x00015f1c b 0x15c78 | goto label_7;
| label_30:
0x00015f20 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015f24 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00015f28 addiu a0, zero, 1 | a0 = 1;
0x00015f2c bal 0x17e38 | sym_focusd_feature_enabled ();
| /* str._____method_nameCalibrate__n_______arg_nameforce_typeb_directionin___n______method__n */
0x00015f30 addiu s3, s3, -0x3d84 | s3 += -0x3d84;
0x00015f34 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00015f38 beqz v0, 0x15bf4 | goto label_8;
| }
| label_31:
0x00015f3c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015f40 lw s4, -0x7fd8(gp) | s4 = *(gp);
0x00015f44 addiu a0, zero, 0xb | a0 = 0xb;
0x00015f48 bal 0x17e38 | sym_focusd_feature_enabled ();
| /* str._____signal_nameassistant_active__n_______arg_namestatus_typeb___n______signal__n_____method_nameassistant_button__n______method__n_____method_nameAssistantButton__n______method__n_____method_nameassistant_is_active__n_______arg_nameactive_typeb_directionout___n______method__n_____method_nameAssistantIsActive__n_______arg_nameactive_typeb_directionout___n______method__n */
0x00015f4c addiu s4, s4, -0x3f14 | s4 += -0x3f14;
0x00015f50 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00015f54 beqz v0, 0x15c10 | goto label_9;
| }
| label_32:
0x00015f58 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00015f5c lw s5, -0x7fd8(gp) | s5 = *(gp);
0x00015f60 addiu a0, zero, 0x11 | a0 = 0x11;
0x00015f64 bal 0x17e38 | sym_focusd_feature_enabled ();
| /* str._____property_nameSavedNightPosition_types_accessreadwrite___n */
0x00015f68 addiu s5, s5, -0x3f5c | s5 += -0x3f5c;
0x00015f6c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00015f70 beqz v0, 0x15c2c | goto label_10;
| }
| label_33:
0x00015f74 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.___interface_namecom.axis.Optics.Motorized.Focus.ProductionTest__n_____method_nameGetTraceCurve__n_______arg_namemin_typei_directionout___n_______arg_namemax_typei_directionout___n______method__n_____property_nameTraceSupported_typeb_accessread___n_____property_nameTraceEnabled_typeb_accessreadwrite___n____interface__n */
0x00015f78 addiu v0, v0, -0x40c0 | v0 += -0x40c0;
0x00015f7c b 0x15c34 | goto label_11;
| label_38:
0x00015f80 lw a1, -0x7fd8(gp) | a1 = *(gp);
| /* str._____signal_nameassistant_active__n_______arg_namestatus_typeb___n______signal__n_____method_nameassistant_button__n______method__n_____method_nameAssistantButton__n______method__n_____method_nameassistant_is_active__n_______arg_nameactive_typeb_directionout___n______method__n_____method_nameAssistantIsActive__n_______arg_nameactive_typeb_directionout___n______method__n */
0x00015f84 addiu a1, a1, -0x3f14 | a1 += -0x3f14;
0x00015f88 b 0x15ee8 | goto label_12;
| label_25:
0x00015f8c lw t9, -0x77d8(gp) | t9 = sym.imp.g_dbus_node_info_new_for_xml;
| if (s4 != 0) {
0x00015f90 beqz s4, 0x15fb0 |
0x00015f94 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00015f98 lw a0, (s1) | a0 = *(s1);
0x00015f9c move a1, s0 | a1 = s0;
0x00015fa0 jalr t9 | t9 ();
0x00015fa4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015fa8 sw v0, 0x38(s1) | *((s1 + 14)) = v0;
| if (v0 == 0) {
0x00015fac beqz v0, 0x16120 | goto label_39;
| }
| }
0x00015fb0 lw t9, -0x77d8(gp) | t9 = sym.imp.g_dbus_node_info_new_for_xml;
| if (s5 != 0) {
0x00015fb4 beqz s5, 0x15fd4 |
0x00015fb8 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00015fbc lw a0, 4(s1) | a0 = *((s1 + 1));
0x00015fc0 move a1, s0 | a1 = s0;
0x00015fc4 jalr t9 | t9 ();
0x00015fc8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00015fcc sw v0, 0x3c(s1) | *((s1 + 15)) = v0;
| if (v0 == 0) {
0x00015fd0 beqz v0, 0x16144 | goto label_40;
| }
| }
0x00015fd4 lw t9, -0x77d8(gp) | t9 = sym.imp.g_dbus_node_info_new_for_xml;
| if (s6 == 0) {
0x00015fd8 beqz s6, 0x15cd4 | goto label_13;
| }
0x00015fdc addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x00015fe0 lw a0, 8(s1) | a0 = *((s1 + 2));
0x00015fe4 move a1, s0 | a1 = s0;
0x00015fe8 jalr t9 | t9 ();
0x00015fec lw gp, 0x18(sp) | gp = *(var_18h);
0x00015ff0 sw v0, 0x40(s1) | *((s1 + 16)) = v0;
| if (v0 != 0) {
0x00015ff4 bnez v0, 0x15cd4 | goto label_13;
| }
0x00015ff8 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00015ffc lw v0, 0x30(sp) | v0 = *(var_30h);
0x00016000 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00016004 beqz v0, 0x161b0 | goto label_41;
| }
0x00016008 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001600c lw a3, 8(v0) | a3 = *((v0 + 2));
0x00016010 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_create_focus_measure_node_info.:__s_n */
0x00016014 addiu a2, a2, -0x4164 | a2 += -0x4164;
| label_18:
0x00016018 addiu a1, zero, 1 | a1 = 1;
0x0001601c jalr t9 | t9 ();
0x00016020 lw gp, 0x18(sp) | gp = *(var_18h);
0x00016024 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00016028 move a0, s0 | a0 = s0;
0x0001602c jalr t9 | t9 ();
0x00016030 lw gp, 0x18(sp) | gp = *(var_18h);
0x00016034 b 0x15dd8 | goto label_14;
| label_24:
0x00016038 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x0001603c lw a0, (v0) | a0 = *(v0);
0x00016040 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.has_not */
0x00016044 addiu v1, v1, -0x4b20 | v1 += -0x4b20;
| /* esilref: 'has' */
0x00016048 addiu v0, v0, -0x4b24 | v0 += -0x4b24;
0x0001604c b 0x15db4 | goto label_15;
| label_20:
0x00016050 lw v1, -0x7fd8(gp) | v1 = *(gp);
0x00016054 lw a0, (v0) | a0 = *(v0);
0x00016058 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.has_not */
0x0001605c addiu v1, v1, -0x4b20 | v1 += -0x4b20;
| /* esilref: 'has' */
0x00016060 addiu v0, v0, -0x4b24 | v0 += -0x4b24;
| label_26:
0x00016064 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00016068 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001606c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00016070 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00016074 move a3, fp | a3 = fp;
| /* str._3_DBus_init__source__u__s_focus_optics__source_0__s._n */
0x00016078 addiu a2, a2, -0x42cc | a2 += -0x42cc;
0x0001607c addiu a1, zero, 1 | a1 = 1;
0x00016080 jalr t9 | t9 ();
0x00016084 lw gp, 0x18(sp) | gp = *(var_18h);
0x00016088 b 0x15dd8 | goto label_14;
| label_22:
0x0001608c lw v1, -0x7fd8(gp) | v1 = *(gp);
0x00016090 lw a0, (v0) | a0 = *(v0);
0x00016094 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.has_not */
0x00016098 addiu v1, v1, -0x4b20 | v1 += -0x4b20;
| /* esilref: 'has' */
0x0001609c addiu v0, v0, -0x4b24 | v0 += -0x4b24;
| label_37:
0x000160a0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000160a4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000160a8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000160ac sw v1, 0x10(sp) | *(var_10h) = v1;
0x000160b0 move a3, fp | a3 = fp;
| /* str._3_DBus_init__source__u__s_zoom_optics__source_0__s._n */
0x000160b4 addiu a2, a2, -0x4294 | a2 += -0x4294;
0x000160b8 addiu a1, zero, 1 | a1 = 1;
0x000160bc jalr t9 | t9 ();
0x000160c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000160c4 b 0x15dd8 | goto label_14;
| label_35:
0x000160c8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000160cc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000160d0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000160d4 lw a3, (v0) | a3 = *(v0);
0x000160d8 addiu a2, zero, 0x26 | a2 = 0x26;
0x000160dc addiu a1, zero, 1 | a1 = 1;
| /* str._4_dbus_server_thread_creation_failed_n */
0x000160e0 addiu a0, a0, -0x40ec | a0 += -0x40ec;
0x000160e4 jalr t9 | t9 ();
0x000160e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000160ec lw s0, 0x24(sp) | s0 = *(var_24h);
0x000160f0 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x000160f4 move a0, s0 | a0 = s0;
0x000160f8 jalr t9 | t9 ();
0x000160fc lw gp, 0x18(sp) | gp = *(var_18h);
0x00016100 sw zero, 0x64(s1) | *((s1 + 25)) = 0;
0x00016104 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00016108 move a0, s0 | a0 = s0;
0x0001610c jalr t9 | t9 ();
0x00016110 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == 0) {
0x00016114 beqz s2, 0x15e50 | goto label_16;
| }
0x00016118 move s3, zero | s3 = 0;
0x0001611c b 0x15ddc | goto label_17;
| label_39:
0x00016120 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00016124 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00016128 lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x0001612c beqz v0, 0x16168 |
0x00016130 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00016134 lw a3, 8(v0) | a3 = *((v0 + 2));
0x00016138 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_create_focus_optics_node_info.:__s_n */
0x0001613c addiu a2, a2, -0x4224 | a2 += -0x4224;
0x00016140 b 0x16018 | goto label_18;
| label_40:
0x00016144 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00016148 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001614c lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00016150 beqz v0, 0x1618c | goto label_42;
| }
0x00016154 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00016158 lw a3, 8(v0) | a3 = *((v0 + 2));
0x0001615c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_create_zoom_optics_node_info.:__s_n */
0x00016160 addiu a2, a2, -0x41c0 | a2 += -0x41c0;
0x00016164 b 0x16018 | goto label_18;
| }
0x00016168 move a3, a0 | a3 = a0;
0x0001616c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00016170 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00016174 addiu a2, zero, 0x2c | a2 = 0x2c;
0x00016178 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_create_focus_optics_node_info._n */
0x0001617c addiu a0, a0, -0x41f0 | a0 += -0x41f0;
0x00016180 jalr t9 | t9 ();
0x00016184 lw gp, 0x18(sp) | gp = *(var_18h);
0x00016188 b 0x15dd8 | goto label_14;
| label_42:
0x0001618c move a3, a0 | a3 = a0;
0x00016190 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00016194 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00016198 addiu a2, zero, 0x2b | a2 = 0x2b;
0x0001619c addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_create_zoom_optics_node_info._n */
0x000161a0 addiu a0, a0, -0x4190 | a0 += -0x4190;
0x000161a4 jalr t9 | t9 ();
0x000161a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000161ac b 0x15dd8 | goto label_14;
| label_41:
0x000161b0 move a3, a0 | a3 = a0;
0x000161b4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000161b8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000161bc addiu a2, zero, 0x2d | a2 = 0x2d;
0x000161c0 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_create_focus_measure_node_info._n */
0x000161c4 addiu a0, a0, -0x4130 | a0 += -0x4130;
0x000161c8 jalr t9 | t9 ();
0x000161cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000161d0 b 0x15dd8 | goto label_14;
| label_36:
0x000161d4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x000161d8 jalr t9 | t9 ();
0x000161dc nop |
0x000161e0 jr ra | return v0;
0x000161e4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x37e6c */
| #include <stdint.h>
|
; (fcn) sym.focusd_electrical_zoom_new () | void focusd_electrical_zoom_new () {
0x00037e6c lui gp, 3 |
0x00037e70 addiu gp, gp, 0x6d14 |
0x00037e74 addu gp, gp, t9 | gp += t9;
0x00037e78 addiu sp, sp, -0x28 |
0x00037e7c lw t9, -0x7780(gp) | t9 = sym.imp.g_type_from_name;
0x00037e80 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00037e84 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00037e88 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00037e8c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00037e90 move s1, a0 | s1 = a0;
0x00037e94 jalr t9 | t9 ();
0x00037e98 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00037e9c beqz v0, 0x37f6c |
0x00037ea0 lw t9, -0x78ec(gp) | t9 = sym.imp.g_object_new;
0x00037ea4 move a1, zero | a1 = 0;
0x00037ea8 move a0, v0 | a0 = v0;
0x00037eac jalr t9 | t9 ();
0x00037eb0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037eb4 lw t9, -0x7d74(gp) | t9 = sym.focusd_electrical_zoom_get_type;
0x00037eb8 move s0, v0 | s0 = v0;
0x00037ebc jalr t9 | t9 ();
0x00037ec0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != 0) {
0x00037ec4 beqz s0, 0x37f24 |
0x00037ec8 lw v1, (s0) | v1 = *(s0);
0x00037ecc lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x00037ed0 beqz v1, 0x37ee0 |
0x00037ed4 lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x00037ed8 beql v1, v0, 0x37ef8 | goto label_0;
| }
0x00037edc lw t9, -0x7d74(gp) | t9 = sym.focusd_electrical_zoom_get_type;
| }
0x00037ee0 move a1, v0 | a1 = v0;
0x00037ee4 move a0, s0 | a0 = s0;
0x00037ee8 jalr t9 | t9 ();
0x00037eec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00037ef0 beqz v0, 0x37f24 | goto label_1;
| }
0x00037ef4 lw t9, -0x7d74(gp) | t9 = sym.focusd_electrical_zoom_get_type;
| label_0:
0x00037ef8 jalr t9 | t9 ();
0x00037efc nop |
0x00037f00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037f04 lw ra, 0x24(sp) | ra = *(var_24h);
0x00037f08 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00037f0c move a0, s0 | a0 = s0;
0x00037f10 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00037f14 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00037f18 move a1, v0 | a1 = v0;
0x00037f1c addiu sp, sp, 0x28 |
0x00037f20 jr t9 | t9 ();
| }
| label_1:
0x00037f24 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00037f28 move a0, s0 | a0 = s0;
0x00037f2c jalr t9 | t9 ();
0x00037f30 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037f34 move a3, s1 | a3 = s1;
0x00037f38 addiu a1, zero, 1 | a1 = 1;
0x00037f3c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037f40 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037f44 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037f48 lw a0, (v0) | a0 = *(v0);
| /* str._3_Type_name__s_does_not_specify_a_Electrical_Zoom_subclass_n */
0x00037f4c addiu a2, a2, 0x2d80 | a2 += 0x2d80;
0x00037f50 jalr t9 | t9 ();
0x00037f54 lw ra, 0x24(sp) | ra = *(var_24h);
0x00037f58 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00037f5c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00037f60 move v0, zero | v0 = 0;
0x00037f64 addiu sp, sp, 0x28 |
0x00037f68 jr ra | return v0;
| }
0x00037f6c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037f70 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037f74 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037f78 lw a0, (v0) | a0 = *(v0);
0x00037f7c move a3, s1 | a3 = s1;
| /* str._3_Unknown_electrical_zoom_type__s_n */
0x00037f80 addiu a2, a2, 0x2d58 | a2 += 0x2d58;
0x00037f84 addiu a1, zero, 1 | a1 = 1;
0x00037f88 jalr t9 | t9 ();
0x00037f8c lw ra, 0x24(sp) | ra = *(var_24h);
0x00037f90 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00037f94 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00037f98 move v0, zero | v0 = 0;
0x00037f9c addiu sp, sp, 0x28 |
0x00037fa0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x17f84 */
| #include <stdint.h>
|
; (fcn) sym.focusd_feature_disable () | void focusd_feature_disable () {
| label_17:
0x00017950 lui gp, 5 |
0x00017954 addiu gp, gp, 0x7230 |
0x00017958 addu gp, gp, t9 | gp += t9;
0x0001795c addiu sp, sp, -0x48 |
0x00017960 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00017964 sw s5, 0x38(sp) | *(var_18h) = s5;
0x00017968 sw s4, 0x34(sp) | *(var_34h) = s4;
0x0001796c sw ra, 0x44(sp) | *(var_24h) = ra;
0x00017970 sw s7, 0x40(sp) | *(var_40h) = s7;
0x00017974 sw s6, 0x3c(sp) | *(var_3ch) = s6;
0x00017978 sw s3, 0x30(sp) | *(var_10h) = s3;
0x0001797c sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x00017980 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00017984 sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00017988 move s5, a1 | s5 = a1;
0x0001798c move s4, a0 | s4 = a0;
| if (a1 != 0) {
0x00017990 bnez a1, 0x17abc | goto label_18;
| }
0x00017994 lw s0, -0x7fd8(gp) | s0 = *(gp);
0x00017998 addiu s0, s0, -0x2f04 | s0 += -0x2f04;
| do {
0x0001799c lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x000179a0 lw t9, -0x79c8(gp) | t9 = sym.imp.g_rw_lock_writer_lock;
0x000179a4 addiu a0, s2, 0x7654 | a0 = s2 + 0x7654;
0x000179a8 jalr t9 | t9 ();
0x000179ac lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000179b0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000179b4 lw v0, 0x7650(v0) | v0 = *((v0 + 7572));
0x000179b8 lw s3, -0x7fdc(gp) | s3 = *((gp - 8183));
| if (v0 != 0) {
0x000179bc bnez v0, 0x17d3c | goto label_19;
| }
0x000179c0 sll a0, s4, 2 | a0 = s4 << 2;
0x000179c4 addu v1, a0, s4 | v1 = a0 + s4;
0x000179c8 addiu s3, s3, 0x6030 | s3 += 0x6030;
0x000179cc sll v0, v1, 5 | v0 = v1 << 5;
0x000179d0 addu v0, s3, v0 | v0 = s3 + v0;
0x000179d4 xori a1, s5, 1 | a1 = s5 ^ 1;
0x000179d8 lw a3, 0x9c(v0) | a3 = *((v0 + 39));
0x000179dc andi a1, a1, 1 | a1 &= 1;
0x000179e0 sltu a2, zero, a3 | a2 = (0 < a3) ? 1 : 0;
0x000179e4 lw t9, -0x7aec(gp) | t9 = sym.imp.g_rw_lock_writer_unlock;
| if (a2 != a1) {
0x000179e8 bne a2, a1, 0x17cac | goto label_20;
| }
0x000179ec lw a2, 4(v0) | a2 = *((v0 + 1));
| if (a2 == 0) {
0x000179f0 beql a2, zero, 0x17d84 | goto label_21;
| }
0x000179f4 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x000179f8 addu s6, a0, s4 | s6 = a0 + s4;
| if (s5 == 0) {
0x000179fc beqz s5, 0x17b50 | goto label_22;
| }
0x00017a00 sll t1, v1, 3 | t1 = v1 << 3;
0x00017a04 move t2, t1 | t2 = t1;
0x00017a08 move v1, zero | v1 = 0;
0x00017a0c addiu t0, zero, 0x12 | t0 = 0x12;
0x00017a10 addu v0, t2, v1 | v0 = t2 + v1;
| label_0:
0x00017a14 addiu v0, v0, 2 | v0 += 2;
0x00017a18 sll v0, v0, 2 | v0 <<= 2;
0x00017a1c addu v0, s3, v0 | v0 = s3 + v0;
0x00017a20 lw v0, 4(v0) | v0 = *((v0 + 1));
| if (v0 == 0) {
0x00017a24 beql v0, zero, 0x17ac8 | goto label_14;
| }
0x00017a28 addiu v1, v1, 1 | v1++;
0x00017a2c sll v0, v1, 2 | v0 = v1 << 2;
0x00017a30 addu v0, v0, v1 | v0 += v1;
0x00017a34 sll v0, v0, 5 | v0 <<= 5;
0x00017a38 addu a2, s3, v0 | a2 = s3 + v0;
0x00017a3c lw t3, 4(a2) | t3 = *((a2 + 1));
0x00017a40 lw a2, 0x9c(a2) | a2 = *((a2 + 39));
| if (t3 == 0) {
0x00017a44 bnel t3, zero, 0x17ce8 | goto label_23;
| }
| label_15:
0x00017a48 addu v0, a0, s4 | v0 = a0 + s4;
| label_12:
0x00017a4c sll v0, v0, 5 | v0 <<= 5;
0x00017a50 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017a54 lwx s3, v0(s3) | __asm ("lwx s3, v0(s3)");
0x00017a58 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00017a5c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017a60 move a3, s0 | a3 = s0;
0x00017a64 lw a0, (v0) | a0 = *(v0);
0x00017a68 addiu a2, a2, -0x2df4 | a2 += -0x2df4;
0x00017a6c sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x00017a70 addiu a1, zero, 1 | a1 = 1;
0x00017a74 jalr t9 | t9 ();
0x00017a78 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00017a7c move s0, zero | s0 = 0;
| label_2:
0x00017a80 lw t9, -0x7aec(gp) | t9 = sym.imp.g_rw_lock_writer_unlock;
0x00017a84 addiu a0, s2, 0x7654 | a0 = s2 + 0x7654;
0x00017a88 jalr t9 | t9 ();
0x00017a8c lw ra, 0x44(sp) | ra = *(var_24h);
0x00017a90 move v0, s0 | v0 = s0;
0x00017a94 lw s7, 0x40(sp) | s7 = *(var_40h);
0x00017a98 lw s6, 0x3c(sp) | s6 = *(var_3ch);
0x00017a9c lw s5, 0x38(sp) | s5 = *(var_18h);
0x00017aa0 lw s4, 0x34(sp) | s4 = *(var_34h);
0x00017aa4 lw s3, 0x30(sp) | s3 = *(var_10h);
0x00017aa8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00017aac lw s1, 0x28(sp) | s1 = *(var_28h);
0x00017ab0 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00017ab4 addiu sp, sp, 0x48 |
0x00017ab8 jr ra | return v0;
| label_18:
0x00017abc lw s0, -0x7fd8(gp) | s0 = *(gp);
0x00017ac0 addiu s0, s0, -0x2f10 | s0 += -0x2f10;
0x00017ac4 b 0x1799c |
| } while (1);
| label_14:
0x00017ac8 addu v0, t2, v1 | v0 = t2 + v1;
| if (v1 == t0) {
0x00017acc bnel v1, t0, 0x17a14 | goto label_0;
| }
0x00017ad0 addu v1, a0, s4 | v1 = a0 + s4;
| label_13:
0x00017ad4 sll v1, v1, 5 | v1 <<= 5;
0x00017ad8 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00017adc addiu v1, v1, 0x54 | v1 += 0x54;
0x00017ae0 addu v1, s3, v1 | v1 = s3 + v1;
0x00017ae4 addiu v0, v0, 0x60cc | v0 += 0x60cc;
0x00017ae8 addiu t0, s3, 0xbdc | t0 = s3 + 0xbdc;
0x00017aec b 0x17afc |
| while (a2 == 0) {
0x00017af0 addiu v0, v0, 0xa0 | v0 += 0xa0;
| label_1:
0x00017af4 addu s6, a0, s4 | s6 = a0 + s4;
| if (t0 == v0) {
0x00017af8 beq t0, v0, 0x17b50 | goto label_22;
| }
0x00017afc lw a2, (v1) | a2 = *(v1);
0x00017b00 addiu v1, v1, 4 | v1 += 4;
0x00017b04 beqz a2, 0x17af0 |
| }
0x00017b08 lw a2, (v0) | a2 = *(v0);
0x00017b0c addiu v0, v0, 0xa0 | v0 += 0xa0;
| if (a2 == 0) {
0x00017b10 beqz a2, 0x17af4 | goto label_1;
| }
0x00017b14 addu v0, a0, s4 | v0 = a0 + s4;
0x00017b18 sll v0, v0, 5 | v0 <<= 5;
0x00017b1c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017b20 lwx s3, v0(s3) | __asm ("lwx s3, v0(s3)");
0x00017b24 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00017b28 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017b2c move a3, s0 | a3 = s0;
0x00017b30 lw a0, (v0) | a0 = *(v0);
0x00017b34 addiu a2, a2, -0x2e50 | a2 += -0x2e50;
0x00017b38 sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x00017b3c addiu a1, zero, 1 | a1 = 1;
0x00017b40 jalr t9 | t9 ();
0x00017b44 move s0, zero | s0 = 0;
0x00017b48 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00017b4c b 0x17a80 | goto label_2;
| label_22:
0x00017b50 sll s6, s6, 5 | s6 <<= 5;
0x00017b54 addu s6, s3, s6 | s6 = s3 + s6;
0x00017b58 sltiu a3, a3, 1 | a3 = (a3 < 1) ? 1 : 0;
0x00017b5c sw s5, 0x9c(s6) | *((s6 + 39)) = s5;
| if (a3 == a1) {
0x00017b60 beq a3, a1, 0x17c3c | goto label_24;
| }
0x00017b64 lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x00017b68 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x00017b6c addiu s1, s1, 0x60cc | s1 += 0x60cc;
0x00017b70 move s0, zero | s0 = 0;
0x00017b74 addiu s7, s7, -0x2e8c | s7 += -0x2e8c;
0x00017b78 b 0x17b8c | goto label_4;
| label_6:
0x00017b7c addiu s0, s0, 1 | s0++;
| do {
| label_3:
0x00017b80 addiu v0, zero, 0x12 | v0 = 0x12;
0x00017b84 addiu s1, s1, 0xa0 | s1 += 0xa0;
| if (s0 == v0) {
0x00017b88 beq s0, v0, 0x17c3c | goto label_24;
| }
| label_4:
0x00017b8c beql s4, s0, 0x17b80 |
| } while (s4 == s0);
0x00017b90 addiu s0, s0, 1 | s0++;
0x00017b94 addiu s0, s0, 1 | s0++;
| if (s5 == 0) {
0x00017b98 bnel s5, zero, 0x17b80 | goto label_3;
| }
0x00017b9c lw v0, (s1) | v0 = *(s1);
| if (v0 == 0) {
0x00017ba0 beql v0, zero, 0x17b80 | goto label_3;
| }
0x00017ba4 addiu s0, s0, 1 | s0++;
0x00017ba8 sll t0, s0, 2 | t0 = s0 << 2;
0x00017bac addu a3, t0, s0 | a3 = t0 + s0;
0x00017bb0 sll a3, a3, 3 | a3 <<= 3;
0x00017bb4 move v1, zero | v1 = 0;
0x00017bb8 move a2, a3 | a2 = a3;
0x00017bbc addiu a1, zero, 0x12 | a1 = 0x12;
0x00017bc0 addu v0, a2, v1 | v0 = a2 + v1;
| label_5:
0x00017bc4 addiu v0, v0, 2 | v0 += 2;
0x00017bc8 sll v0, v0, 2 | v0 <<= 2;
0x00017bcc addu v0, s3, v0 | v0 = s3 + v0;
0x00017bd0 lw v0, 4(v0) | v0 = *((v0 + 1));
| if (v0 == 0) {
0x00017bd4 beql v0, zero, 0x17c44 | goto label_9;
| }
0x00017bd8 addiu v1, v1, 1 | v1++;
0x00017bdc sll v0, v1, 2 | v0 = v1 << 2;
0x00017be0 addu v0, v0, v1 | v0 += v1;
0x00017be4 sll v0, v0, 5 | v0 <<= 5;
0x00017be8 addu a0, s3, v0 | a0 = s3 + v0;
0x00017bec lw t1, 4(a0) | t1 = *((a0 + 1));
0x00017bf0 lw a0, 0x9c(a0) | a0 = *((a0 + 39));
| if (t1 == 0) {
0x00017bf4 bnel t1, zero, 0x17c58 | goto label_25;
| }
| label_10:
0x00017bf8 addu a3, t0, s0 | a3 = t0 + s0;
| label_7:
0x00017bfc lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00017c00 sll a3, a3, 5 | a3 <<= 5;
0x00017c04 lw v0, (s6) | v0 = *(s6);
0x00017c08 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017c0c lwx a3, a3(s3) | __asm ("lwx a3, a3(s3)");
0x00017c10 lw a0, (v1) | a0 = *(v1);
0x00017c14 sw zero, (s1) | *(s1) = 0;
0x00017c18 move a2, s7 | a2 = s7;
0x00017c1c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00017c20 addiu a1, zero, 1 | a1 = 1;
0x00017c24 jalr t9 | t9 ();
0x00017c28 addiu s0, s0, 1 | s0++;
0x00017c2c addiu v0, zero, 0x12 | v0 = 0x12;
0x00017c30 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00017c34 addiu s1, s1, 0xa0 | s1 += 0xa0;
| if (s0 != v0) {
0x00017c38 bne s0, v0, 0x17b8c | goto label_4;
| }
| label_24:
0x00017c3c addiu s0, zero, 1 | s0 = 1;
0x00017c40 b 0x17a80 | goto label_2;
| label_9:
0x00017c44 addu v0, a2, v1 | v0 = a2 + v1;
| if (v1 != a1) {
0x00017c48 bne v1, a1, 0x17bc4 | goto label_5;
| }
0x00017c4c addiu v0, zero, 1 | v0 = 1;
| label_8:
0x00017c50 sw v0, (s1) | *(s1) = v0;
0x00017c54 b 0x17b7c | goto label_6;
| if (a0 == 0) {
| label_25:
0x00017c58 beql a0, zero, 0x17bfc | goto label_7;
| }
0x00017c5c addu a3, t0, s0 | a3 = t0 + s0;
0x00017c60 addu a0, a3, v1 | a0 = a3 + v1;
0x00017c64 addiu v0, v0, 0xa4 | v0 += 0xa4;
0x00017c68 sll a0, a0, 2 | a0 <<= 2;
0x00017c6c addu v0, s3, v0 | v0 = s3 + v0;
0x00017c70 addu a0, s3, a0 | a0 = s3 + a0;
0x00017c74 addiu v1, v1, 1 | v1++;
| if (v1 == a1) {
| label_11:
0x00017c78 beql v1, a1, 0x17c50 | goto label_8;
| }
0x00017c7c addiu v0, zero, 1 | v0 = 1;
0x00017c80 lw t1, 0x10(a0) | t1 = *((a0 + 4));
| if (t1 == 0) {
0x00017c84 beql t1, zero, 0x17c44 | goto label_9;
| }
0x00017c88 addiu v1, v1, 1 | v1++;
0x00017c8c lw t1, (v0) | t1 = *(v0);
0x00017c90 addiu a0, a0, 4 | a0 += 4;
| if (t1 == 0) {
0x00017c94 beqz t1, 0x17bf8 | goto label_10;
| }
0x00017c98 lw t1, 0x98(v0) | t1 = *((v0 + 38));
0x00017c9c addiu v0, v0, 0xa0 | v0 += 0xa0;
| if (t1 == 0) {
0x00017ca0 beqz t1, 0x17bf8 | goto label_10;
| }
0x00017ca4 addiu v1, v1, 1 | v1++;
0x00017ca8 b 0x17c78 | goto label_11;
| label_20:
0x00017cac addiu a0, s2, 0x7654 | a0 = s2 + 0x7654;
0x00017cb0 jalr t9 | t9 ();
0x00017cb4 lw ra, 0x44(sp) | ra = *(var_24h);
0x00017cb8 addiu s0, zero, 1 | s0 = 1;
0x00017cbc move v0, s0 | v0 = s0;
0x00017cc0 lw s7, 0x40(sp) | s7 = *(var_40h);
0x00017cc4 lw s6, 0x3c(sp) | s6 = *(var_3ch);
0x00017cc8 lw s5, 0x38(sp) | s5 = *(var_18h);
0x00017ccc lw s4, 0x34(sp) | s4 = *(var_34h);
0x00017cd0 lw s3, 0x30(sp) | s3 = *(var_10h);
0x00017cd4 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00017cd8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00017cdc lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00017ce0 addiu sp, sp, 0x48 |
0x00017ce4 jr ra | return v0;
| if (a2 == 0) {
| label_23:
0x00017ce8 beql a2, zero, 0x17a4c | goto label_12;
| }
0x00017cec addu v0, a0, s4 | v0 = a0 + s4;
0x00017cf0 addu a2, t1, v1 | a2 = t1 + v1;
0x00017cf4 addiu v0, v0, 0xa4 | v0 += 0xa4;
0x00017cf8 sll a2, a2, 2 | a2 <<= 2;
0x00017cfc addu v0, s3, v0 | v0 = s3 + v0;
0x00017d00 addu a2, s3, a2 | a2 = s3 + a2;
0x00017d04 addiu v1, v1, 1 | v1++;
| if (v1 == t0) {
| label_16:
0x00017d08 beql v1, t0, 0x17ad4 | goto label_13;
| }
0x00017d0c addu v1, a0, s4 | v1 = a0 + s4;
0x00017d10 lw t3, 0x10(a2) | t3 = *((a2 + 4));
| if (t3 == 0) {
0x00017d14 beql t3, zero, 0x17ac8 | goto label_14;
| }
0x00017d18 addiu v1, v1, 1 | v1++;
0x00017d1c lw t3, (v0) | t3 = *(v0);
0x00017d20 addiu a2, a2, 4 | a2 += 4;
| if (t3 == 0) {
0x00017d24 beqz t3, 0x17a48 | goto label_15;
| }
0x00017d28 lw t3, 0x98(v0) | t3 = *((v0 + 38));
0x00017d2c addiu v0, v0, 0xa0 | v0 += 0xa0;
| if (t3 == 0) {
0x00017d30 beqz t3, 0x17a48 | goto label_15;
| }
0x00017d34 addiu v1, v1, 1 | v1++;
0x00017d38 b 0x17d08 | goto label_16;
| label_19:
0x00017d3c sll v0, s4, 2 | v0 = s4 << 2;
0x00017d40 addu s4, v0, s4 | s4 = v0 + s4;
0x00017d44 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00017d48 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00017d4c sll s4, s4, 5 | s4 <<= 5;
0x00017d50 addiu v0, v0, 0x6030 | v0 += 0x6030;
0x00017d54 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017d58 lwx v0, s4(v0) | __asm ("lwx v0, s4(v0)");
0x00017d5c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017d60 lw a0, (v1) | a0 = *(v1);
0x00017d64 move a3, s0 | a3 = s0;
0x00017d68 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00017d6c addiu a2, a2, -0x2ef8 | a2 += -0x2ef8;
0x00017d70 addiu a1, zero, 1 | a1 = 1;
0x00017d74 jalr t9 | t9 ();
0x00017d78 move s0, zero | s0 = 0;
0x00017d7c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00017d80 b 0x17a80 | goto label_2;
| label_21:
0x00017d84 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017d88 lw v0, (v0) | v0 = *(v0);
0x00017d8c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017d90 lw a0, (v1) | a0 = *(v1);
0x00017d94 move a3, s0 | a3 = s0;
0x00017d98 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00017d9c addiu a2, a2, -0x2ec8 | a2 += -0x2ec8;
0x00017da0 addiu a1, zero, 1 | a1 = 1;
0x00017da4 jalr t9 | t9 ();
0x00017da8 move s0, zero | s0 = 0;
0x00017dac lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00017db0 b 0x17a80 | goto label_2;
0x00017f84 lui gp, 5 |
0x00017f88 addiu gp, gp, 0x6bfc |
0x00017f8c addu gp, gp, t9 | gp += t9;
0x00017f90 addiu sp, sp, -0x28 |
0x00017f94 sltiu v1, a0, 0x12 | v1 = (a0 < 0x12) ? 1 : 0;
0x00017f98 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00017f9c sw ra, 0x24(sp) | *(var_24h) = ra;
0x00017fa0 lw t9, -0x7fd0(gp) | t9 = *(gp);
| if (v1 != 0) {
0x00017fa4 beqz v1, 0x17fbc |
0x00017fa8 lw ra, 0x24(sp) | ra = *(var_24h);
0x00017fac move a1, zero | a1 = 0;
0x00017fb0 addiu t9, t9, 0x7950 | t9 += 0x7950;
0x00017fb4 addiu sp, sp, 0x28 |
0x00017fb8 b 0x17950 | goto label_17;
| }
0x00017fbc lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00017fc0 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00017fc4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017fc8 move v0, a0 | v0 = a0;
0x00017fcc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017fd0 lw a0, (v1) | a0 = *(v1);
| /* str.focusd_feature_disable */
0x00017fd4 addiu a3, a3, -0x2b70 | a3 += -0x2b70;
0x00017fd8 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._3__s__unknown_feature__u_n */
0x00017fdc addiu a2, a2, -0x2db0 | a2 += -0x2db0;
0x00017fe0 addiu a1, zero, 1 | a1 = 1;
0x00017fe4 jalr t9 | t9 ();
0x00017fe8 lw ra, 0x24(sp) | ra = *(var_24h);
0x00017fec move v0, zero | v0 = 0;
0x00017ff0 addiu sp, sp, 0x28 |
0x00017ff4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x17e38 */
| #include <stdint.h>
|
; (fcn) sym.focusd_feature_enabled () | void focusd_feature_enabled () {
0x00017e38 lui gp, 5 |
0x00017e3c addiu gp, gp, 0x6d48 |
0x00017e40 addu gp, gp, t9 | gp += t9;
0x00017e44 addiu sp, sp, -0x30 |
0x00017e48 sltiu v0, a0, 0x12 | v0 = (a0 < 0x12) ? 1 : 0;
0x00017e4c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00017e50 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00017e54 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00017e58 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00017e5c move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x00017e60 beqz v0, 0x17ecc | goto label_0;
| }
0x00017e64 lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x00017e68 lw t9, -0x7754(gp) | t9 = sym.imp.g_rw_lock_reader_lock;
0x00017e6c addiu a0, s1, 0x7654 | a0 = s1 + 0x7654;
0x00017e70 jalr t9 | t9 ();
0x00017e74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00017e78 sll v0, s0, 2 | v0 = s0 << 2;
0x00017e7c addu v0, v0, s0 | v0 += s0;
0x00017e80 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00017e84 sll v0, v0, 5 | v0 <<= 5;
| /* esilref: 'ASPECT_RATIO_CROP' */
0x00017e88 addiu a0, a0, 0x6030 | a0 += 0x6030;
0x00017e8c addu a0, a0, v0 | a0 += v0;
0x00017e90 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00017e94 lw s0, 0x9c(a0) | s0 = *((a0 + 39));
| if (v0 == 0) {
0x00017e98 bnel v0, zero, 0x17ec4 | goto label_1;
| }
0x00017e9c move s0, zero | s0 = 0;
| do {
0x00017ea0 lw t9, -0x77d4(gp) | t9 = sym.imp.g_rw_lock_reader_unlock;
0x00017ea4 addiu a0, s1, 0x7654 | a0 = s1 + 0x7654;
0x00017ea8 jalr t9 | t9 ();
0x00017eac lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00017eb0 move v0, s0 | v0 = s0;
0x00017eb4 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00017eb8 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00017ebc addiu sp, sp, 0x30 |
0x00017ec0 jr ra | return v0;
| label_1:
0x00017ec4 sltu s0, zero, s0 | s0 = (0 < s0) ? 1 : 0;
0x00017ec8 b 0x17ea0 |
| } while (1);
| label_0:
0x00017ecc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00017ed0 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00017ed4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017ed8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017edc lw a0, (v0) | a0 = *(v0);
| /* str.focusd_feature_enabled */
0x00017ee0 addiu a3, a3, -0x2b40 | a3 += -0x2b40;
0x00017ee4 sw s0, 0x10(sp) | *(var_10h) = s0;
| /* str._3__s__unknown_feature__u_n */
0x00017ee8 addiu a2, a2, -0x2db0 | a2 += -0x2db0;
0x00017eec addiu a1, zero, 1 | a1 = 1;
0x00017ef0 jalr t9 | t9 ();
0x00017ef4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00017ef8 move s0, zero | s0 = 0;
0x00017efc move v0, s0 | v0 = s0;
0x00017f00 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00017f04 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00017f08 addiu sp, sp, 0x30 |
0x00017f0c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x17f10 */
| #include <stdint.h>
|
; (fcn) sym.focusd_feature_enable () | void focusd_feature_enable () {
0x00017f10 lui gp, 5 |
0x00017f14 addiu gp, gp, 0x6c70 |
0x00017f18 addu gp, gp, t9 | gp += t9;
0x00017f1c addiu sp, sp, -0x28 |
0x00017f20 sltiu v1, a0, 0x12 | v1 = (a0 < 0x12) ? 1 : 0;
0x00017f24 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00017f28 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00017f2c lw t9, -0x7fd0(gp) | t9 = *(gp);
| if (v1 != 0) {
0x00017f30 beqz v1, 0x17f48 |
0x00017f34 lw ra, 0x24(sp) | ra = *(var_24h);
0x00017f38 addiu a1, zero, 1 | a1 = 1;
0x00017f3c addiu t9, t9, 0x7950 | t9 += 0x7950;
0x00017f40 addiu sp, sp, 0x28 |
0x00017f44 b 0x17950 | void (*0x17950)() ();
| }
0x00017f48 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00017f4c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00017f50 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017f54 move v0, a0 | v0 = a0;
0x00017f58 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017f5c lw a0, (v1) | a0 = *(v1);
| /* str.focusd_feature_enable */
0x00017f60 addiu a3, a3, -0x2b58 | a3 += -0x2b58;
0x00017f64 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._3__s__unknown_feature__u_n */
0x00017f68 addiu a2, a2, -0x2db0 | a2 += -0x2db0;
0x00017f6c addiu a1, zero, 1 | a1 = 1;
0x00017f70 jalr t9 | t9 ();
0x00017f74 lw ra, 0x24(sp) | ra = *(var_24h);
0x00017f78 move v0, zero | v0 = 0;
0x00017f7c addiu sp, sp, 0x28 |
0x00017f80 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x17e38 */
| #include <stdint.h>
|
; (fcn) sym.focusd_feature_enabled () | void focusd_feature_enabled () {
0x00017e38 lui gp, 5 |
0x00017e3c addiu gp, gp, 0x6d48 |
0x00017e40 addu gp, gp, t9 | gp += t9;
0x00017e44 addiu sp, sp, -0x30 |
0x00017e48 sltiu v0, a0, 0x12 | v0 = (a0 < 0x12) ? 1 : 0;
0x00017e4c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00017e50 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00017e54 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00017e58 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00017e5c move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x00017e60 beqz v0, 0x17ecc | goto label_0;
| }
0x00017e64 lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x00017e68 lw t9, -0x7754(gp) | t9 = sym.imp.g_rw_lock_reader_lock;
0x00017e6c addiu a0, s1, 0x7654 | a0 = s1 + 0x7654;
0x00017e70 jalr t9 | t9 ();
0x00017e74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00017e78 sll v0, s0, 2 | v0 = s0 << 2;
0x00017e7c addu v0, v0, s0 | v0 += s0;
0x00017e80 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00017e84 sll v0, v0, 5 | v0 <<= 5;
| /* esilref: 'ASPECT_RATIO_CROP' */
0x00017e88 addiu a0, a0, 0x6030 | a0 += 0x6030;
0x00017e8c addu a0, a0, v0 | a0 += v0;
0x00017e90 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00017e94 lw s0, 0x9c(a0) | s0 = *((a0 + 39));
| if (v0 == 0) {
0x00017e98 bnel v0, zero, 0x17ec4 | goto label_1;
| }
0x00017e9c move s0, zero | s0 = 0;
| do {
0x00017ea0 lw t9, -0x77d4(gp) | t9 = sym.imp.g_rw_lock_reader_unlock;
0x00017ea4 addiu a0, s1, 0x7654 | a0 = s1 + 0x7654;
0x00017ea8 jalr t9 | t9 ();
0x00017eac lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00017eb0 move v0, s0 | v0 = s0;
0x00017eb4 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00017eb8 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00017ebc addiu sp, sp, 0x30 |
0x00017ec0 jr ra | return v0;
| label_1:
0x00017ec4 sltu s0, zero, s0 | s0 = (0 < s0) ? 1 : 0;
0x00017ec8 b 0x17ea0 |
| } while (1);
| label_0:
0x00017ecc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00017ed0 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00017ed4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00017ed8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00017edc lw a0, (v0) | a0 = *(v0);
| /* str.focusd_feature_enabled */
0x00017ee0 addiu a3, a3, -0x2b40 | a3 += -0x2b40;
0x00017ee4 sw s0, 0x10(sp) | *(var_10h) = s0;
| /* str._3__s__unknown_feature__u_n */
0x00017ee8 addiu a2, a2, -0x2db0 | a2 += -0x2db0;
0x00017eec addiu a1, zero, 1 | a1 = 1;
0x00017ef0 jalr t9 | t9 ();
0x00017ef4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00017ef8 move s0, zero | s0 = 0;
0x00017efc move v0, s0 | v0 = s0;
0x00017f00 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00017f04 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00017f08 addiu sp, sp, 0x30 |
0x00017f0c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x18068 */
| #include <stdint.h>
|
; (fcn) sym.focusd_feature_freeze () | void focusd_feature_freeze () {
0x00018068 lui gp, 5 |
0x0001806c addiu gp, gp, 0x6b18 |
0x00018070 addu gp, gp, t9 | gp += t9;
0x00018074 addiu sp, sp, -0x38 |
0x00018078 lw t9, -0x79c8(gp) | t9 = sym.imp.g_rw_lock_writer_lock;
0x0001807c sw s0, 0x18(sp) | *(var_18h) = s0;
0x00018080 lw s0, -0x7fdc(gp) | s0 = *((gp - 8183));
0x00018084 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00018088 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0001808c sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x00018090 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00018094 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00018098 sw s3, 0x24(sp) | *(var_24h) = s3;
0x0001809c sw s2, 0x20(sp) | *(var_20h) = s2;
0x000180a0 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000180a4 move s5, a0 | s5 = a0;
0x000180a8 addiu a0, s0, 0x7654 | a0 = s0 + 0x7654;
0x000180ac jalr t9 | t9 ();
0x000180b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000180b4 addiu v1, zero, 1 | v1 = 1;
0x000180b8 addiu a0, s0, 0x7654 | a0 = s0 + 0x7654;
0x000180bc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000180c0 lw t9, -0x7aec(gp) | t9 = sym.imp.g_rw_lock_writer_unlock;
0x000180c4 sw v1, 0x7650(v0) | *((v0 + 7572)) = v1;
0x000180c8 jalr t9 | t9 ();
0x000180cc lw gp, 0x10(sp) | gp = *(var_10h);
| if (s5 == 0) {
0x000180d0 beqz s5, 0x18218 | goto label_4;
| }
0x000180d4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000180d8 lw t9, -0x7898(gp) | t9 = sym.imp.g_string_new;
0x000180dc addiu a0, a0, -0x64a8 | a0 += -0x64a8;
0x000180e0 jalr t9 | t9 ();
0x000180e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000180e8 move s4, v0 | s4 = v0;
0x000180ec lw s0, -0x7fdc(gp) | s0 = *((gp - 8183));
0x000180f0 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x000180f4 lw s2, -0x7fd8(gp) | s2 = *(gp);
0x000180f8 lw s1, -0x7fd8(gp) | s1 = *(gp);
| /* esilref: 'ASPECT_RATIO_CROP' */
0x000180fc addiu s0, s0, 0x6030 | s0 += 0x6030;
0x00018100 addiu s6, s0, 0xb40 | s6 = s0 + 0xb40;
| /* esilref: 'yes' */
0x00018104 addiu s3, s3, -0x7458 | s3 += -0x7458;
| /* esilref: 'no' */
0x00018108 addiu s2, s2, -0x7454 | s2 += -0x7454;
| /* str._s_s_n */
0x0001810c addiu s1, s1, -0x2d94 | s1 += -0x2d94;
| do {
0x00018110 lw a3, 0x9c(s0) | a3 = *((s0 + 39));
0x00018114 move v0, s2 | v0 = s2;
0x00018118 lw t9, -0x7bd8(gp) | t9 = sym.imp.g_string_append_printf;
| if (a3 == 0) {
0x0001811c movn v0, s3, a3 | v0 = s3;
| }
0x00018120 lw a2, (s0) | a2 = *(s0);
0x00018124 move a3, v0 | a3 = v0;
0x00018128 move a1, s1 | a1 = s1;
0x0001812c move a0, s4 | a0 = s4;
0x00018130 addiu s0, s0, 0xa0 | s0 += 0xa0;
0x00018134 jalr t9 | t9 ();
0x00018138 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001813c bne s0, s6, 0x18110 |
| } while (s0 != s6);
0x00018140 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00018144 lw t9, -0x7acc(gp) | t9 = sym.imp.fopen;
| /* esilref: 'w+' */
0x00018148 addiu a1, a1, -0x2d8c | a1 += -0x2d8c;
0x0001814c move a0, s5 | a0 = s5;
0x00018150 jalr t9 | t9 ();
0x00018154 move s0, v0 | s0 = v0;
0x00018158 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0001815c beqz v0, 0x18240 | goto label_5;
| }
0x00018160 lw t9, -0x76dc(gp) | t9 = sym.imp.fileno;
0x00018164 move a0, v0 | a0 = v0;
0x00018168 jalr t9 | t9 ();
0x0001816c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00018170 bltz v0, 0x18298 | goto label_6;
| }
0x00018174 lw t9, -0x7be8(gp) | t9 = sym.imp.fchmod;
0x00018178 addiu a1, zero, 0x1a4 | a1 = segment.NOTE;
0x0001817c move a0, v0 | a0 = v0;
0x00018180 jalr t9 | t9 ();
0x00018184 addiu v1, zero, -1 | v1 = -1;
0x00018188 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x0001818c beq v0, v1, 0x18338 | goto label_7;
| }
| do {
| label_3:
0x00018190 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018194 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018198 lw a3, (s4) | a3 = *(s4);
| /* esilref: '&s' */
0x0001819c addiu a2, a2, -0x2cfc | a2 += -0x2cfc;
0x000181a0 addiu a1, zero, 1 | a1 = 1;
0x000181a4 move a0, s0 | a0 = s0;
0x000181a8 jalr t9 | t9 ();
0x000181ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x000181b0 bltz v0, 0x182c0 | goto label_8;
| }
| label_0:
0x000181b4 lw t9, -0x7930(gp) | t9 = sym.imp.fflush;
0x000181b8 move a0, s0 | a0 = s0;
0x000181bc jalr t9 | t9 ();
0x000181c0 addiu v1, zero, -1 | v1 = -1;
0x000181c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x000181c8 beq v0, v1, 0x18310 | goto label_9;
| }
| label_2:
0x000181cc lw t9, -0x797c(gp) | t9 = sym.imp.fclose;
0x000181d0 move a0, s0 | a0 = s0;
0x000181d4 jalr t9 | t9 ();
0x000181d8 addiu v1, zero, -1 | v1 = -1;
0x000181dc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x000181e0 beq v0, v1, 0x182e8 | goto label_10;
| }
| label_1:
0x000181e4 lw ra, 0x34(sp) | ra = *(var_34h);
0x000181e8 lw s6, 0x30(sp) | s6 = *(var_30h);
0x000181ec lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x000181f0 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000181f4 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000181f8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000181fc lw s0, 0x18(sp) | s0 = *(var_18h);
0x00018200 move a0, s4 | a0 = s4;
0x00018204 lw t9, -0x7934(gp) | t9 = sym.imp.g_string_free;
0x00018208 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0001820c addiu a1, zero, 1 | a1 = 1;
0x00018210 addiu sp, sp, 0x38 |
0x00018214 jr t9 | t9 ();
| label_4:
0x00018218 lw ra, 0x34(sp) | ra = *(var_34h);
0x0001821c lw s6, 0x30(sp) | s6 = *(var_30h);
0x00018220 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00018224 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00018228 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0001822c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00018230 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00018234 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00018238 addiu sp, sp, 0x38 |
0x0001823c jr ra | return v0;
| label_5:
0x00018240 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00018244 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018248 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001824c lw a0, (v0) | a0 = *(v0);
0x00018250 move a3, s5 | a3 = s5;
0x00018254 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_open_feature_status_file__s:__m_n */
0x00018258 addiu a2, a2, -0x2d88 | a2 += -0x2d88;
0x0001825c jalr t9 | t9 ();
0x00018260 lw gp, 0x10(sp) | gp = *(var_10h);
0x00018264 lw ra, 0x34(sp) | ra = *(var_34h);
0x00018268 lw s6, 0x30(sp) | s6 = *(var_30h);
0x0001826c lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00018270 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00018274 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00018278 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0001827c lw s0, 0x18(sp) | s0 = *(var_18h);
0x00018280 move a0, s4 | a0 = s4;
0x00018284 lw t9, -0x7934(gp) | t9 = sym.imp.g_string_free;
0x00018288 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0001828c addiu a1, zero, 1 | a1 = 1;
0x00018290 addiu sp, sp, 0x38 |
0x00018294 jr t9 | t9 ();
| label_6:
0x00018298 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001829c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000182a0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000182a4 lw a0, (v0) | a0 = *(v0);
0x000182a8 move a3, s5 | a3 = s5;
| /* str._3_Could_not_get_file_descriptor_for__s:__m_n */
0x000182ac addiu a2, a2, -0x2d58 | a2 += -0x2d58;
0x000182b0 addiu a1, zero, 1 | a1 = 1;
0x000182b4 jalr t9 | t9 ();
0x000182b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000182bc b 0x18190 |
| } while (1);
| label_8:
0x000182c0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000182c4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000182c8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000182cc lw a0, (v0) | a0 = *(v0);
0x000182d0 move a3, s5 | a3 = s5;
| /* str._3_Could_not_write__s:__m_n */
0x000182d4 addiu a2, a2, -0x2cf8 | a2 += -0x2cf8;
0x000182d8 addiu a1, zero, 1 | a1 = 1;
0x000182dc jalr t9 | t9 ();
0x000182e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000182e4 b 0x181b4 | goto label_0;
| label_10:
0x000182e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000182ec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000182f0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000182f4 lw a0, (v0) | a0 = *(v0);
0x000182f8 move a3, s5 | a3 = s5;
| /* str._3_Could_not_close__s:__m_n */
0x000182fc addiu a2, a2, -0x2cb8 | a2 += -0x2cb8;
0x00018300 addiu a1, zero, 1 | a1 = 1;
0x00018304 jalr t9 | t9 ();
0x00018308 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001830c b 0x181e4 | goto label_1;
| label_9:
0x00018310 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00018314 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018318 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001831c lw a0, (v0) | a0 = *(v0);
0x00018320 move a3, s5 | a3 = s5;
| /* str._3_Could_not_flush__s:__m_n */
0x00018324 addiu a2, a2, -0x2cd8 | a2 += -0x2cd8;
0x00018328 addiu a1, zero, 1 | a1 = 1;
0x0001832c jalr t9 | t9 ();
0x00018330 lw gp, 0x10(sp) | gp = *(var_10h);
0x00018334 b 0x181cc | goto label_2;
| label_7:
0x00018338 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001833c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018340 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018344 lw a0, (v0) | a0 = *(v0);
0x00018348 move a3, s5 | a3 = s5;
| /* str._3_Could_not_set_permissions_on__s:__m_n */
0x0001834c addiu a2, a2, -0x2d28 | a2 += -0x2d28;
0x00018350 addiu a1, zero, 1 | a1 = 1;
0x00018354 jalr t9 | t9 ();
0x00018358 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001835c b 0x18190 | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x19178 */
| #include <stdint.h>
|
; (fcn) sym.focusd_i_cs_create_configuration () | void focusd_i_cs_create_configuration () {
0x00019178 lui gp, 5 |
0x0001917c addiu gp, gp, 0x5a08 |
0x00019180 addu gp, gp, t9 | gp += t9;
0x00019184 addiu sp, sp, -0x40 |
0x00019188 lw t9, -0x7d60(gp) | t9 = sym.settings_copy_group_change_name;
0x0001918c sw s5, 0x34(sp) | *(var_34h) = s5;
0x00019190 lw s5, -0x7a04(gp) | s5 = *((gp - 7809));
0x00019194 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00019198 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0001919c lw s4, -0x7fd8(gp) | s4 = *(gp);
0x000191a0 lw v0, (s5) | v0 = *(s5);
0x000191a4 move s2, a0 | s2 = a0;
0x000191a8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000191ac sw gp, 0x10(sp) | *(var_10h) = gp;
0x000191b0 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000191b4 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000191b8 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000191bc sw s0, 0x20(sp) | *(var_20h) = s0;
| /* str.focus_ics */
0x000191c0 addiu a1, s4, -0x6ddc | a1 = s4 + -0x6ddc;
| /* str.ics_focus_template */
0x000191c4 addiu a0, a0, -0x2780 | a0 += -aav.0x00002780;
0x000191c8 sw s6, 0x38(sp) | *(var_38h) = s6;
0x000191cc sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000191d0 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x000191d4 jalr t9 | t9 ();
0x000191d8 nop |
0x000191dc lw gp, 0x10(sp) | gp = *(var_10h);
| /* str.zoom_ics */
0x000191e0 addiu a1, s3, -0x6de8 | a1 = s3 + -0x6de8;
0x000191e4 move s1, v0 | s1 = v0;
0x000191e8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000191ec lw t9, -0x7d60(gp) | t9 = sym.settings_copy_group_change_name;
| /* str.ics_zoom_template */
0x000191f0 addiu a0, a0, -0x276c | a0 += -0x276c;
0x000191f4 jalr t9 | t9 ();
0x000191f8 move s0, v0 | s0 = v0;
0x000191fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00019200 sw zero, 0x18(sp) | *(var_18h) = 0;
| if (s1 == 0) {
0x00019204 beqz s1, 0x194cc | goto label_2;
| }
0x00019208 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| if (v0 == 0) {
0x0001920c beqz v0, 0x19494 | goto label_3;
| }
0x00019210 lw s6, -0x7fd8(gp) | s6 = *(gp);
0x00019214 lw a3, 0x40(s2) | a3 = *((s2 + 16));
| /* str.focus_ics */
0x00019218 addiu a1, s4, -0x6ddc | a1 = s4 + -0x6ddc;
| /* esilref: 'length' */
0x0001921c addiu a2, s6, -0x11b4 | a2 = s6 + -0x11b4;
0x00019220 move a0, s1 | a0 = s1;
0x00019224 jalr t9 | t9 ();
0x00019228 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001922c lw a3, 0x38(s2) | a3 = *((s2 + 14));
| /* str.focus_ics */
0x00019230 addiu a1, s4, -0x6ddc | a1 = s4 + -0x6ddc;
0x00019234 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00019238 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.min_nearlimit_dioptre */
0x0001923c addiu a2, a2, -0x26f0 | a2 += -0x26f0;
0x00019240 move a0, s1 | a0 = s1;
0x00019244 jalr t9 | t9 ();
0x00019248 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001924c lw a3, 0x3c(s2) | a3 = *((s2 + 15));
| /* str.focus_ics */
0x00019250 addiu a1, s4, -0x6ddc | a1 = s4 + -0x6ddc;
0x00019254 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00019258 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.infinity_fudge_margin */
0x0001925c addiu a2, a2, -0x26d8 | a2 += -aav.0x000026d8;
0x00019260 move a0, s1 | a0 = s1;
0x00019264 jalr t9 | t9 ();
0x00019268 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001926c lw a3, 0x34(s2) | a3 = *((s2 + 13));
| /* esilref: 'length' */
0x00019270 addiu a2, s6, -0x11b4 | a2 = s6 + -0x11b4;
0x00019274 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.zoom_ics */
0x00019278 addiu a1, s3, -0x6de8 | a1 = s3 + -0x6de8;
0x0001927c move a0, s0 | a0 = s0;
0x00019280 jalr t9 | t9 ();
0x00019284 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019288 lw a3, 0x2c(s2) | a3 = *((s2 + 11));
| /* str.zoom_ics */
0x0001928c addiu a1, s3, -0x6de8 | a1 = s3 + -0x6de8;
0x00019290 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00019294 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.min_zoom_factor */
0x00019298 addiu a2, a2, -0x26c0 | a2 += -0x26c0;
0x0001929c move a0, s0 | a0 = s0;
0x000192a0 jalr t9 | t9 ();
0x000192a4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000192a8 lw a3, 0x30(s2) | a3 = *((s2 + 12));
| /* str.zoom_ics */
0x000192ac addiu a1, s3, -0x6de8 | a1 = s3 + -0x6de8;
0x000192b0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000192b4 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.max_zoom_factor */
0x000192b8 addiu a2, a2, -0x26b0 | a2 += -0x26b0;
0x000192bc move a0, s0 | a0 = s0;
0x000192c0 jalr t9 | t9 ();
0x000192c4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000192c8 addiu s4, sp, 0x18 | s4 = sp + 0x18;
0x000192cc move a2, s4 | a2 = s4;
0x000192d0 lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x000192d4 move a1, zero | a1 = 0;
0x000192d8 move a0, s1 | a0 = s1;
0x000192dc jalr t9 | t9 ();
0x000192e0 move s2, v0 | s2 = v0;
0x000192e4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000192e8 beqz v0, 0x193d0 | goto label_4;
| }
0x000192ec lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x000192f0 move a2, s4 | a2 = s4;
0x000192f4 move a1, zero | a1 = 0;
0x000192f8 move a0, s0 | a0 = s0;
0x000192fc jalr t9 | t9 ();
0x00019300 move s3, v0 | s3 = v0;
0x00019304 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00019308 beqz v0, 0x1941c | goto label_5;
| }
0x0001930c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00019310 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x00019314 move a2, v0 | a2 = v0;
0x00019318 move a1, s2 | a1 = s2;
| /* str._s_n_n_s_n */
0x0001931c addiu a0, a0, -0x25b8 | a0 += -0x25b8;
0x00019320 jalr t9 | t9 ();
0x00019324 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019328 move a0, v0 | a0 = v0;
0x0001932c lw t9, -0x7eac(gp) | t9 = sym.settings_load_data;
0x00019330 move s4, v0 | s4 = v0;
0x00019334 jalr t9 | t9 ();
0x00019338 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0001933c beqz v0, 0x19504 | goto label_6;
| }
0x00019340 addiu s6, zero, 1 | s6 = 1;
| do {
| label_0:
0x00019344 lw t9, -0x78b0(gp) | t9 = sym.imp.g_key_file_unref;
0x00019348 move a0, s1 | a0 = s1;
0x0001934c jalr t9 | t9 ();
0x00019350 lw gp, 0x10(sp) | gp = *(var_10h);
| label_1:
0x00019354 lw t9, -0x78b0(gp) | t9 = sym.imp.g_key_file_unref;
| if (s0 != 0) {
0x00019358 beqz s0, 0x19368 |
0x0001935c move a0, s0 | a0 = s0;
0x00019360 jalr t9 | t9 ();
0x00019364 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00019368 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001936c move a0, s4 | a0 = s4;
0x00019370 jalr t9 | t9 ();
0x00019374 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019378 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001937c move a0, s2 | a0 = s2;
0x00019380 jalr t9 | t9 ();
0x00019384 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019388 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001938c move a0, s3 | a0 = s3;
0x00019390 jalr t9 | t9 ();
0x00019394 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00019398 lw v1, (s5) | v1 = *(s5);
0x0001939c lw gp, 0x10(sp) | gp = *(var_10h);
0x000193a0 move v0, s6 | v0 = s6;
| if (a0 != v1) {
0x000193a4 bne a0, v1, 0x1955c | goto label_7;
| }
0x000193a8 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000193ac lw s6, 0x38(sp) | s6 = *(var_38h);
0x000193b0 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000193b4 lw s4, 0x30(sp) | s4 = *(var_30h);
0x000193b8 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000193bc lw s2, 0x28(sp) | s2 = *(var_28h);
0x000193c0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000193c4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000193c8 addiu sp, sp, 0x40 |
0x000193cc jr ra | return v0;
| label_4:
0x000193d0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x000193d4 lw v0, 0x18(sp) | v0 = *(var_18h);
0x000193d8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x000193dc beqz v0, 0x19464 | goto label_8;
| }
0x000193e0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000193e4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000193e8 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._3_Could_not_create_i_CS_focus_configuration_section:__s_n */
0x000193ec addiu a2, a2, -0x26a0 | a2 += -0x26a0;
0x000193f0 addiu a1, zero, 1 | a1 = 1;
0x000193f4 jalr t9 | t9 ();
0x000193f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000193fc move a0, s4 | a0 = s4;
0x00019400 move s3, zero | s3 = 0;
0x00019404 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00019408 move s4, zero | s4 = 0;
0x0001940c jalr t9 | t9 ();
0x00019410 move s6, zero | s6 = 0;
0x00019414 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019418 b 0x19344 |
| } while (1);
| label_5:
0x0001941c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00019420 lw v0, 0x18(sp) | v0 = *(var_18h);
0x00019424 lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x00019428 beqz v0, 0x19530 |
0x0001942c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00019430 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00019434 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._3_Could_not_create_i_CS_zoom_configuration_section:__s_n */
0x00019438 addiu a2, a2, -0x262c | a2 += -0x262c;
0x0001943c addiu a1, zero, 1 | a1 = 1;
0x00019440 jalr t9 | t9 ();
0x00019444 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019448 move a0, s4 | a0 = s4;
0x0001944c move s6, zero | s6 = 0;
0x00019450 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00019454 move s4, zero | s4 = 0;
0x00019458 jalr t9 | t9 ();
0x0001945c lw gp, 0x10(sp) | gp = *(var_10h);
0x00019460 b 0x19344 | goto label_0;
| label_8:
0x00019464 move a3, a0 | a3 = a0;
0x00019468 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001946c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00019470 addiu a2, zero, 0x35 | a2 = 0x35;
0x00019474 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_create_i_CS_focus_configuration_section_n */
0x00019478 addiu a0, a0, -0x2664 | a0 += -0x2664;
0x0001947c jalr t9 | t9 ();
0x00019480 move s4, zero | s4 = 0;
0x00019484 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019488 move s3, zero | s3 = 0;
0x0001948c move s6, zero | s6 = 0;
0x00019490 b 0x19344 | goto label_0;
| label_3:
0x00019494 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00019498 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001949c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000194a0 lw a3, (v0) | a3 = *(v0);
0x000194a4 addiu a2, zero, 0x32 | a2 = 0x32;
0x000194a8 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_get_i_CS_zoom_configuration_template_n */
0x000194ac addiu a0, a0, -0x2724 | a0 += -0x2724;
0x000194b0 jalr t9 | t9 ();
0x000194b4 move s6, zero | s6 = 0;
0x000194b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000194bc move s4, zero | s4 = 0;
0x000194c0 move s3, zero | s3 = 0;
0x000194c4 move s2, zero | s2 = 0;
0x000194c8 b 0x19344 | goto label_0;
| label_2:
0x000194cc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000194d0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000194d4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000194d8 lw a3, (v0) | a3 = *(v0);
0x000194dc addiu a2, zero, 0x33 | a2 = 0x33;
0x000194e0 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_get_i_CS_focus_configuration_template_n */
0x000194e4 addiu a0, a0, -0x2758 | a0 += -0x2758;
0x000194e8 jalr t9 | t9 ();
0x000194ec move s6, zero | s6 = 0;
0x000194f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000194f4 move s4, zero | s4 = 0;
0x000194f8 move s3, zero | s3 = 0;
0x000194fc move s2, zero | s2 = 0;
0x00019500 b 0x19354 | goto label_1;
| label_6:
0x00019504 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00019508 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001950c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00019510 lw a3, (v0) | a3 = *(v0);
0x00019514 addiu a2, zero, 0x31 | a2 = 0x31;
0x00019518 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_load_i_CS_configuration_to_settings_n */
0x0001951c addiu a0, a0, -0x25b0 | a0 += -0x25b0;
0x00019520 jalr t9 | t9 ();
0x00019524 move s6, zero | s6 = 0;
0x00019528 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001952c b 0x19344 | goto label_0;
| }
0x00019530 move a3, a0 | a3 = a0;
0x00019534 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00019538 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001953c addiu a2, zero, 0x34 | a2 = 0x34;
0x00019540 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_create_i_CS_zoom_configuration_section_n */
0x00019544 addiu a0, a0, -0x25f0 | a0 += -0x25f0;
0x00019548 jalr t9 | t9 ();
0x0001954c move s4, zero | s4 = 0;
0x00019550 lw gp, 0x10(sp) | gp = *(var_10h);
0x00019554 move s6, zero | s6 = 0;
0x00019558 b 0x19344 | goto label_0;
| label_7:
0x0001955c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00019560 jalr t9 | t9 ();
0x00019564 nop |
0x00019568 nop |
0x0001956c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x183d8 */
| #include <stdint.h>
|
; (fcn) sym.focusd_i_cs_init () | void focusd_i_cs_init () {
0x000183d8 lui gp, 5 |
0x000183dc addiu gp, gp, 0x67a8 |
0x000183e0 addu gp, gp, t9 | gp += t9;
0x000183e4 addiu sp, sp, -0x128 |
0x000183e8 lw t9, -0x7878(gp) | t9 = sym.imp.g_malloc;
0x000183ec sw s7, 0x11c(sp) | *(var_11ch) = s7;
0x000183f0 lw s7, -0x7a04(gp) | s7 = *((gp - 7809));
0x000183f4 sw ra, 0x124(sp) | *(var_124h) = ra;
0x000183f8 sw gp, 0x30(sp) | *(var_30h) = gp;
0x000183fc lw v0, (s7) | v0 = *(s7);
0x00018400 addiu a0, zero, 0x44 | a0 = 0x44;
0x00018404 sw s3, 0x10c(sp) | *(var_10ch) = s3;
0x00018408 sw s2, 0x108(sp) | *(var_108h) = s2;
0x0001840c sw s1, 0x104(sp) | *(var_104h) = s1;
0x00018410 sw s0, 0x100(sp) | *(var_100h) = s0;
0x00018414 sw fp, 0x120(sp) | *(var_120h) = fp;
0x00018418 sw s6, 0x118(sp) | *(var_118h) = s6;
0x0001841c sw s5, 0x114(sp) | *(var_114h) = s5;
0x00018420 sw s4, 0x110(sp) | *(var_110h) = s4;
0x00018424 sw v0, 0xfc(sp) | *(var_fch) = v0;
0x00018428 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0001842c addiu s2, sp, 0x6c | s2 = sp + 0x6c;
0x00018430 jalr t9 | t9 ();
0x00018434 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018438 sw zero, 0x6c(sp) | *(var_6ch) = 0;
0x0001843c lw t9, -0x77c0(gp) | t9 = sym.imp.g_key_file_new;
0x00018440 move s0, v0 | s0 = v0;
0x00018444 jalr t9 | t9 ();
0x00018448 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001844c addiu a2, zero, 0x44 | a2 = 0x44;
0x00018450 move a1, zero | a1 = 0;
0x00018454 lw t9, -0x7834(gp) | t9 = sym.imp.memset;
0x00018458 move a0, s0 | a0 = s0;
0x0001845c move s1, v0 | s1 = v0;
0x00018460 jalr t9 | t9 ();
0x00018464 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018468 sw s1, (s0) | *(s0) = s1;
0x0001846c move a3, s2 | a3 = s2;
0x00018470 lw t9, -0x7a90(gp) | t9 = sym.imp.g_key_file_load_from_file;
0x00018474 addiu a2, zero, 1 | a2 = 1;
| /* str._lib_persistent_var_lib_focusd_i_cs.state */
0x00018478 addiu a1, s3, -0x2af0 | a1 = s3 + -aav.0x00002af0;
0x0001847c move a0, s1 | a0 = s1;
0x00018480 jalr t9 | t9 ();
0x00018484 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00018488 bnez v0, 0x184c8 |
0x0001848c lw t9, -0x7bac(gp) | t9 = sym.imp.g_file_error_quark;
0x00018490 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x00018494 jalr t9 | t9 ();
0x00018498 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001849c addiu a2, zero, 4 | a2 = 4;
0x000184a0 move a1, v0 | a1 = v0;
0x000184a4 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x000184a8 move a0, s1 | a0 = s1;
0x000184ac jalr t9 | t9 ();
0x000184b0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x000184b4 beqz v0, 0x18b6c | goto label_12;
| }
0x000184b8 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x000184bc move a0, s2 | a0 = s2;
0x000184c0 jalr t9 | t9 ();
0x000184c4 lw gp, 0x30(sp) | gp = *(var_30h);
| }
0x000184c8 lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
0x000184cc addiu v0, zero, -1 | v0 = -1;
| /* esilref: 'mode' */
0x000184d0 addiu v1, s5, 0x5e90 | v1 = s5 + 0x5e90;
0x000184d4 lw s4, -0x7fd8(gp) | s4 = *(gp);
0x000184d8 addiu s1, sp, 0x78 | s1 = sp + 0x78;
0x000184dc sw v1, 0x38(sp) | *(var_38h) = v1;
0x000184e0 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x000184e4 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x000184e8 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000184ec sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
0x000184f0 sw v0, 0x20(s0) | *((s0 + 8)) = v0;
0x000184f4 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x000184f8 move fp, v1 | fp = v1;
0x000184fc addiu v0, zero, 0x40 | v0 = 0x40;
0x00018500 addiu v1, zero, 0x18 | v1 = 0x18;
0x00018504 sw zero, 0x74(sp) | *(var_74h) = 0;
0x00018508 sw zero, 0x78(sp) | *(var_78h) = 0;
0x0001850c sw zero, 0x7c(sp) | *(var_7ch) = 0;
0x00018510 sw zero, 0x80(sp) | *(var_80h) = 0;
0x00018514 sw zero, 0x84(sp) | *(var_84h) = 0;
0x00018518 sw zero, 0x88(sp) | *(var_88h) = 0;
0x0001851c sw zero, 0x8c(sp) | *(var_8ch) = 0;
0x00018520 sw zero, 0x90(sp) | *(var_90h) = 0;
0x00018524 sw zero, 0x94(sp) | *(var_94h) = 0;
0x00018528 sw zero, 0x98(sp) | *(var_98h) = 0;
0x0001852c sw zero, 0x9c(sp) | *(var_9ch) = 0;
0x00018530 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x00018534 move s2, s1 | s2 = s1;
0x00018538 move s6, s1 | s6 = s1;
0x0001853c move s3, zero | s3 = 0;
0x00018540 addiu s5, sp, 0x74 | s5 = sp + 0x74;
| /* str.i_cs */
0x00018544 addiu s4, s4, -0x2a78 | s4 += -0x2a78;
| if (v0 == v1) {
0x00018548 beq v0, v1, 0x185a8 | goto label_13;
| }
0x0001854c addiu v1, zero, 0x40 | v1 = 0x40;
| do {
0x00018550 lw a0, 0x74(sp) | a0 = *(var_74h);
| if (v0 == v1) {
0x00018554 bne v0, v1, 0x1857c |
0x00018558 lw t9, -0x7790(gp) | t9 = sym.imp.g_key_file_get_string;
0x0001855c lw a2, (fp) | a2 = *(fp);
0x00018560 lw a0, (s0) | a0 = *(s0);
0x00018564 move a3, s5 | a3 = s5;
0x00018568 move a1, s4 | a1 = s4;
0x0001856c jalr t9 | t9 ();
0x00018570 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018574 sw v0, (s6) | *(s6) = v0;
0x00018578 lw a0, 0x74(sp) | a0 = *(var_74h);
| }
0x0001857c lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
| if (a0 != 0) {
0x00018580 bnez a0, 0x185d4 | goto label_14;
| }
| label_0:
0x00018584 addiu s3, s3, 1 | s3++;
0x00018588 addiu v0, zero, 5 | v0 = 5;
0x0001858c addiu fp, fp, 8 | fp += 8;
0x00018590 addiu s6, s6, 8 | s6 += 8;
| if (s3 == v0) {
0x00018594 beq s3, v0, 0x1865c | goto label_15;
| }
0x00018598 lw v0, 4(fp) | v0 = *(arg_4h);
0x0001859c addiu v1, zero, 0x18 | v1 = 0x18;
0x000185a0 addiu v1, zero, 0x40 | v1 = 0x40;
0x000185a4 bne v0, v1, 0x18550 |
| } while (v0 != v1);
| label_13:
0x000185a8 lw t9, -0x7920(gp) | t9 = sym.imp.g_key_file_get_integer;
0x000185ac lw a0, (s0) | a0 = *(s0);
0x000185b0 lw a2, (fp) | a2 = *(fp);
0x000185b4 move a3, s5 | a3 = s5;
0x000185b8 move a1, s4 | a1 = s4;
0x000185bc jalr t9 | t9 ();
0x000185c0 lw a0, 0x74(sp) | a0 = *(var_74h);
0x000185c4 lw gp, 0x30(sp) | gp = *(var_30h);
0x000185c8 sw v0, 4(s6) | *((s6 + 1)) = v0;
| if (a0 == 0) {
0x000185cc beqz a0, 0x18584 | goto label_0;
| }
0x000185d0 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
| label_14:
0x000185d4 sw a0, 0x3c(sp) | *(var_3ch) = a0;
0x000185d8 jalr t9 | t9 ();
0x000185dc lw gp, 0x30(sp) | gp = *(var_30h);
0x000185e0 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x000185e4 addiu a2, zero, 3 | a2 = 3;
0x000185e8 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x000185ec move a1, v0 | a1 = v0;
0x000185f0 jalr t9 | t9 ();
0x000185f4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x000185f8 bnez v0, 0x18644 |
0x000185fc lw v1, 0x38(sp) | v1 = *(var_38h);
0x00018600 sll s3, s3, 3 | s3 <<= 3;
0x00018604 lw v0, 0x74(sp) | v0 = *(var_74h);
0x00018608 lwx s5, s3(v1) | __asm ("lwx s5, s3(v1)");
0x0001860c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00018610 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00018614 beqz v0, 0x18cf4 | goto label_16;
| }
0x00018618 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001861c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00018620 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018624 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str.focusd_i_cs_read_stored_controller_status */
0x00018628 addiu a3, a3, -0x24f4 | a3 += -0x24f4;
| /* str._3__s:_could_not_get_previous_value__s:__s_n */
0x0001862c addiu a2, a2, -0x2a70 | a2 += -0x2a70;
0x00018630 addiu a1, zero, 1 | a1 = 1;
0x00018634 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00018638 sw s5, 0x10(sp) | *(var_10h_2) = s5;
0x0001863c jalr t9 | t9 ();
0x00018640 lw gp, 0x30(sp) | gp = *(var_30h);
| }
0x00018644 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00018648 addiu a0, sp, 0x74 | a0 = sp + 0x74;
0x0001864c jalr t9 | t9 ();
0x00018650 move s5, zero | s5 = 0;
0x00018654 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018658 b 0x186c0 | goto label_10;
| label_15:
0x0001865c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00018660 lw s3, 0x78(sp) | s3 = *(var_78h);
0x00018664 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
| /* str.i_CS */
0x00018668 addiu a1, a1, -0x7470 | a1 += -0x7470;
0x0001866c move a0, s3 | a0 = s3;
0x00018670 jalr t9 | t9 ();
0x00018674 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00018678 bnez v0, 0x18b44 | goto label_17;
| }
0x0001867c addiu v0, zero, 1 | v0 = 1;
0x00018680 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
| label_6:
0x00018684 lw a3, 0x84(sp) | a3 = *(var_84h);
0x00018688 lw a2, 0x8c(sp) | a2 = *(var_8ch);
0x0001868c lw a1, 0x94(sp) | a1 = *(var_94h);
0x00018690 lw a0, 0x9c(sp) | a0 = *(var_9ch);
0x00018694 subu v1, a2, a3 | __asm ("subu v1, a2, a3");
0x00018698 subu v0, a1, a0 | __asm ("subu v0, a1, a0");
0x0001869c addiu v1, v1, 1 | v1++;
0x000186a0 addiu v0, v0, 1 | v0++;
0x000186a4 sw a3, 0x10(s0) | *((s0 + 4)) = a3;
0x000186a8 sw a2, 0x14(s0) | *((s0 + 5)) = a2;
0x000186ac sw v1, 0x18(s0) | *((s0 + 6)) = v1;
0x000186b0 sw a1, 0x1c(s0) | *((s0 + 7)) = a1;
0x000186b4 sw a0, 0x20(s0) | *((s0 + 8)) = a0;
0x000186b8 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x000186bc nop |
| label_10:
0x000186c0 nop |
0x000186c4 nop |
0x000186c8 addiu s4, zero, 0x40 | s4 = 0x40;
0x000186cc addiu s6, s1, 0x28 | s6 = s1 + 0x28;
0x000186d0 addiu s3, s3, 0x5e9c | s3 += 0x5e9c;
| if (v0 == s4) {
0x000186d4 beq v0, s4, 0x186f0 | goto label_18;
| }
| do {
0x000186d8 addiu s2, s2, 8 | s2 += 8;
0x000186dc lw t9, -0x7834(gp) | t9 = sym.imp.memset;
| if (s2 == s6) {
0x000186e0 beq s2, s6, 0x18710 | goto label_19;
| }
| label_1:
0x000186e4 lw v0, (s3) | v0 = *(s3);
0x000186e8 addiu s3, s3, 8 | s3 += 8;
0x000186ec bne v0, s4, 0x186d8 |
| } while (v0 != s4);
| label_18:
0x000186f0 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x000186f4 lw a0, (s2) | a0 = *(s2);
0x000186f8 addiu s2, s2, 8 | s2 += 8;
0x000186fc jalr t9 | t9 ();
0x00018700 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018704 sw zero, -8(s2) | *((s2 - 2)) = 0;
| if (s2 != s6) {
0x00018708 bne s2, s6, 0x186e4 | goto label_1;
| }
0x0001870c lw t9, -0x7834(gp) | t9 = sym.imp.memset;
| label_19:
0x00018710 addiu a2, zero, 0x78 | a2 = 0x78;
0x00018714 move a1, zero | a1 = 0;
0x00018718 addiu a0, sp, 0x80 | a0 = sp + 0x80;
0x0001871c sw s5, 4(s0) | *((s0 + 1)) = s5;
0x00018720 jalr t9 | t9 ();
0x00018724 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018728 addiu v1, zero, 0x18 | v1 = 0x18;
0x0001872c addiu s5, sp, 0x70 | s5 = sp + 0x70;
0x00018730 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00018734 lw t9, -0x7b10(gp) | t9 = sym.imp.g_bus_get_sync;
| /* str.CamBlockType */
0x00018738 addiu v0, v0, -0x2874 | v0 += -0x2874;
0x0001873c sw v0, 0x78(sp) | *(var_78h) = v0;
0x00018740 addiu v0, zero, 0x40 | v0 = 0x40;
0x00018744 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x00018748 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0001874c sw v1, 0xbc(sp) | *(var_bch) = v1;
| /* str.OpticsMaxMag */
0x00018750 addiu v0, v0, -0x2864 | v0 += -0x2864;
0x00018754 sw v0, 0x98(sp) | *(var_98h) = v0;
0x00018758 addiu v0, zero, 0x3c | v0 = 0x3c;
0x0001875c sw v0, 0x9c(sp) | *(var_9ch) = v0;
0x00018760 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00018764 sw v1, 0xdc(sp) | *(var_dch) = v1;
| /* str.AFNearLimitMax */
0x00018768 addiu v0, v0, -0x2854 | v0 += -0x2854;
0x0001876c sw v0, 0xb8(sp) | *(var_b8h) = v0;
0x00018770 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00018774 move a2, s5 | a2 = s5;
| /* str.AFFarLimitMax */
0x00018778 addiu v0, v0, -0x2844 | v0 += -0x2844;
0x0001877c sw v0, 0xd8(sp) | *(var_d8h) = v0;
0x00018780 move a1, zero | a1 = 0;
0x00018784 addiu a0, zero, 1 | a0 = 1;
0x00018788 sw zero, 0x70(sp) | *(var_70h) = 0;
0x0001878c jalr t9 | t9 ();
0x00018790 move s6, v0 | s6 = v0;
0x00018794 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00018798 beqz v0, 0x18c08 | goto label_20;
| }
0x0001879c addiu v0, sp, 0xf8 | v0 = sp + 0xf8;
0x000187a0 sw v0, 0x38(sp) | *(var_38h) = v0;
0x000187a4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000187a8 move s2, s1 | s2 = s1;
0x000187ac sw v0, 0x48(sp) | *(var_48h) = v0;
0x000187b0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000187b4 addiu fp, sp, 0x74 | fp = sp + 0x74;
0x000187b8 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x000187bc lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* esilref: 'Get' */
0x000187c0 addiu v0, v0, -0x28c4 | v0 += -0x28c4;
0x000187c4 sw v0, 0x5c(sp) | *(var_5ch) = v0;
0x000187c8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000187cc sw v0, 0x50(sp) | *(var_50h) = v0;
0x000187d0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000187d4 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000187d8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000187dc sw v0, 0x58(sp) | *(var_58h) = v0;
0x000187e0 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000187e4 sw v0, 0x44(sp) | *(var_44h) = v0;
0x000187e8 lui v0, 0x51eb | v0 = 0x51eb851f;
0x000187ec ori v0, v0, 0x851f |
0x000187f0 sw v0, 0x60(sp) | *(var_60h) = v0;
0x000187f4 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str._6_Could_not_read__s_from_image_controller___u_retries_done._n */
0x000187f8 addiu v0, v0, -0x297c | v0 += -0x297c;
0x000187fc sw v0, 0x64(sp) | *(var_64h) = v0;
| do {
0x00018800 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00018804 move s3, zero | s3 = 0;
0x00018808 sw v0, 0x40(sp) | *(var_40h) = v0;
| label_2:
0x0001880c lw v0, 0x48(sp) | v0 = *(var_48h);
0x00018810 lw v1, (s2) | v1 = *(s2);
0x00018814 addiu a1, v0, -0x293c | a1 = v0 + -0x293c;
0x00018818 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x0001881c lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
0x00018820 move a2, v1 | a2 = v1;
0x00018824 sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x00018828 addiu a0, v0, -0x2920 | a0 = v0 + -0x2920;
0x0001882c jalr t9 | t9 ();
0x00018830 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00018834 lw v0, 0x5c(sp) | v0 = *(var_5ch);
0x00018838 lw gp, 0x30(sp) | gp = *(var_30h);
0x0001883c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00018840 lw v0, 0x50(sp) | v0 = *(var_50h);
0x00018844 addiu a0, zero, 0x1388 | a0 = 0x1388;
0x00018848 addiu a3, v0, -0x2918 | a3 = v0 + -0x2918;
0x0001884c lw v0, 0x54(sp) | v0 = *(var_54h);
0x00018850 sw a0, 0x20(sp) | *(var_20h) = a0;
0x00018854 addiu a2, v0, -0x28f8 | a2 = v0 + -0x28f8;
0x00018858 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0001885c lw t9, -0x788c(gp) | t9 = sym.imp.g_dbus_connection_call_sync;
0x00018860 addiu a0, zero, 1 | a0 = 1;
0x00018864 sw a0, 0x1c(sp) | *(var_1ch_2) = a0;
0x00018868 sw s5, 0x28(sp) | *(var_28h) = s5;
0x0001886c sw zero, 0x24(sp) | *(var_24h) = 0;
0x00018870 sw zero, 0x18(sp) | *(var_18h) = 0;
0x00018874 addiu a1, v0, -0x28dc | a1 = v0 + -0x28dc;
0x00018878 move a0, s6 | a0 = s6;
0x0001887c jalr t9 | t9 ();
0x00018880 move s4, v0 | s4 = v0;
0x00018884 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018888 lw v1, 0x3c(sp) | v1 = *(var_3ch);
| if (v0 == 0) {
0x0001888c beqz v0, 0x189ac | goto label_21;
| }
0x00018890 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00018894 lw t9, -0x79dc(gp) | t9 = sym.imp.g_variant_get;
0x00018898 move a0, s4 | a0 = s4;
0x0001889c move a2, fp | a2 = fp;
0x000188a0 addiu a1, v0, -0x28c0 | a1 = v0 + -0x28c0;
0x000188a4 sw zero, 0x74(sp) | *(var_74h) = 0;
0x000188a8 jalr t9 | t9 ();
0x000188ac lw a0, 0x74(sp) | a0 = *(var_74h);
0x000188b0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (a0 != 0) {
0x000188b4 beqz a0, 0x188f0 |
0x000188b8 lw v0, 4(s2) | v0 = *((s2 + 1));
0x000188bc addiu v1, zero, 0x3c | v1 = 0x3c;
0x000188c0 addiu v1, zero, 0x40 | v1 = 0x40;
| if (v0 == v1) {
0x000188c4 beq v0, v1, 0x18a60 | goto label_22;
| }
0x000188c8 addiu v1, zero, 0x18 | v1 = 0x18;
| if (v0 == v1) {
0x000188cc beq v0, v1, 0x18a44 | goto label_23;
| }
0x000188d0 lw t9, -0x7774(gp) | t9 = sym.imp.g_variant_get_int32;
| if (v0 == v1) {
0x000188d4 beq v0, v1, 0x18a2c | goto label_24;
| }
| label_4:
0x000188d8 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x000188dc jalr t9 | t9 ();
0x000188e0 nop |
0x000188e4 addiu v0, zero, 1 | v0 = 1;
0x000188e8 lw gp, 0x30(sp) | gp = *(var_30h);
0x000188ec sw v0, 0x1c(s2) | *((s2 + 7)) = v0;
| }
0x000188f0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x000188f4 move a0, s4 | a0 = s4;
0x000188f8 jalr t9 | t9 ();
0x000188fc lw v0, 0x38(sp) | v0 = *(var_38h);
0x00018900 addiu s2, s2, 0x20 | s2 += 0x20;
0x00018904 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018908 bne s2, v0, 0x18800 |
| } while (s2 != v0);
0x0001890c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00018910 move a0, s6 | a0 = s6;
0x00018914 jalr t9 | t9 ();
0x00018918 lw v0, 0x94(sp) | v0 = *(var_94h);
0x0001891c lw gp, 0x30(sp) | gp = *(var_30h);
0x00018920 lw s3, 0x90(sp) | s3 = *(var_90h);
| if (v0 != 0) {
0x00018924 bnez v0, 0x18a80 | goto label_25;
| }
0x00018928 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0001892c move a0, s3 | a0 = s3;
0x00018930 jalr t9 | t9 ();
0x00018934 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018938 sw zero, 0x90(sp) | *(var_90h) = 0;
| label_8:
0x0001893c addiu v0, zero, 2 | v0 = 2;
0x00018940 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x00018944 addiu s2, zero, 1 | s2 = 1;
| label_5:
0x00018948 addiu s3, zero, 0x40 | s3 = 0x40;
0x0001894c lw v0, 4(s1) | v0 = *((s1 + 1));
| do {
0x00018950 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| if (v0 == s3) {
0x00018954 beq v0, s3, 0x18a1c | goto label_26;
| }
| label_3:
0x00018958 lw v0, 0x38(sp) | v0 = *(var_38h);
0x0001895c addiu s1, s1, 0x20 | s1 += 0x20;
0x00018960 lw v0, 4(s1) | v0 = *((s1 + 1));
0x00018964 bnel s1, v0, 0x18950 |
| } while (s1 == v0);
| label_9:
0x00018968 sw s2, 8(s0) | *((s0 + 2)) = s2;
| label_7:
0x0001896c lw a0, 0xfc(sp) | a0 = *(var_fch);
0x00018970 lw v1, (s7) | v1 = *(s7);
0x00018974 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00018978 bne a0, v1, 0x18d2c | goto label_27;
| }
0x0001897c lw ra, 0x124(sp) | ra = *(var_124h);
0x00018980 lw fp, 0x120(sp) | fp = *(var_120h);
0x00018984 lw s7, 0x11c(sp) | s7 = *(var_11ch);
0x00018988 lw s6, 0x118(sp) | s6 = *(var_118h);
0x0001898c lw s5, 0x114(sp) | s5 = *(var_114h);
0x00018990 lw s4, 0x110(sp) | s4 = *(var_110h);
0x00018994 lw s3, 0x10c(sp) | s3 = *(var_10ch);
0x00018998 lw s2, 0x108(sp) | s2 = *(var_108h);
0x0001899c lw s1, 0x104(sp) | s1 = *(var_104h);
0x000189a0 lw s0, 0x100(sp) | s0 = *(var_100h);
0x000189a4 addiu sp, sp, 0x128 |
0x000189a8 jr ra | return v1;
| label_21:
0x000189ac lw v0, 0x60(sp) | v0 = *(var_60h);
0x000189b0 addiu a0, zero, 0x64 | a0 = 0x64;
0x000189b4 multu s3, v0 | __asm ("multu s3, v0");
0x000189b8 mfhi v0 | __asm ("mfhi v0");
0x000189bc srl v0, v0, 5 | v0 >>= 5;
0x000189c0 mul a1, v0, a0 | __asm ("mul a1, v0, a0");
0x000189c4 subu v0, s3, a1 | __asm ("subu v0, s3, a1");
0x000189c8 lw v0, 0x40(sp) | v0 = *(var_40h);
0x000189cc beqz v0, 0x189f8 |
| while (1) {
0x000189d0 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x000189d4 move a0, s5 | a0 = s5;
0x000189d8 jalr t9 | t9 ();
0x000189dc lw gp, 0x30(sp) | gp = *(var_30h);
0x000189e0 addiu a0, zero, 0x2710 | a0 = 0x2710;
0x000189e4 lw t9, -0x7b30(gp) | t9 = sym.imp.g_usleep;
0x000189e8 addiu s3, s3, 1 | s3++;
0x000189ec jalr t9 | t9 ();
0x000189f0 lw gp, 0x30(sp) | gp = *(var_30h);
0x000189f4 b 0x1880c | goto label_2;
0x000189f8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000189fc lw a2, 0x64(sp) | a2 = *(var_64h);
0x00018a00 lw a0, (v0) | a0 = *(v0);
0x00018a04 move a3, v1 | a3 = v1;
0x00018a08 sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x00018a0c addiu a1, zero, 1 | a1 = 1;
0x00018a10 jalr t9 | t9 ();
0x00018a14 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018a18 b 0x189d0 |
| }
| label_26:
0x00018a1c lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x00018a20 jalr t9 | t9 ();
0x00018a24 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018a28 b 0x18958 | goto label_3;
| label_24:
0x00018a2c jalr t9 | t9 ();
0x00018a30 nop |
0x00018a34 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018a38 sw v0, 8(s2) | *((s2 + 2)) = v0;
0x00018a3c lw a0, 0x74(sp) | a0 = *(var_74h);
0x00018a40 b 0x188d8 | goto label_4;
| label_23:
0x00018a44 lw t9, -0x76fc(gp) | t9 = sym.imp.g_variant_dup_string;
0x00018a48 move a1, zero | a1 = 0;
0x00018a4c jalr t9 | t9 ();
0x00018a50 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018a54 lw a0, 0x74(sp) | a0 = *(var_74h);
0x00018a58 sw v0, 0x18(s2) | *((s2 + 6)) = v0;
0x00018a5c b 0x188d8 | goto label_4;
| label_22:
0x00018a60 lw t9, -0x7ac4(gp) | t9 = sym.imp.g_variant_get_double;
0x00018a64 jalr t9 | t9 ();
0x00018a68 nop |
0x00018a6c lw gp, 0x30(sp) | gp = *(var_30h);
0x00018a70 sw v0, 0x10(s2) | *((s2 + 4)) = v0;
0x00018a74 sw v1, 0x14(s2) | *((s2 + 5)) = v1;
0x00018a78 lw a0, 0x74(sp) | a0 = *(var_74h);
0x00018a7c b 0x188d8 | goto label_4;
| label_25:
0x00018a80 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00018a84 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
| /* str.i_cs */
0x00018a88 addiu a0, a0, -0x2a78 | a0 += -0x2a78;
0x00018a8c move a1, s3 | a1 = s3;
0x00018a90 jalr t9 | t9 ();
0x00018a94 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018a98 move s2, v0 | s2 = v0;
0x00018a9c move a0, s3 | a0 = s3;
0x00018aa0 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| if (v0 != 0) {
0x00018aa4 bnez v0, 0x18bc8 | goto label_28;
| }
0x00018aa8 jalr t9 | t9 ();
0x00018aac nop |
0x00018ab0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018ab4 lw s4, 0xa8(sp) | s4 = *(var_a8h);
0x00018ab8 lw s5, 0xac(sp) | s5 = *(var_ach);
0x00018abc lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00018ac0 lw t9, -0x7ec0(gp) | t9 = *(gp);
0x00018ac4 move a0, s4 | a0 = s4;
0x00018ac8 lw a2, -0x24c0(v0) | a2 = *((v0 - 2352));
0x00018acc lw a3, -0x24bc(v0) | a3 = *((v0 - 2351));
0x00018ad0 addiu v0, zero, 1 | v0 = 1;
0x00018ad4 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x00018ad8 addiu v0, zero, 0x4000 | v0 = 0x4000;
0x00018adc move a1, s5 | a1 = s5;
0x00018ae0 sw zero, 0x90(sp) | *(var_90h) = 0;
0x00018ae4 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x00018ae8 jalr t9 | t9 ();
0x00018aec lw gp, 0x30(sp) | gp = *(var_30h);
0x00018af0 move a1, v1 | a1 = v1;
0x00018af4 lw t9, -0x7ebc(gp) | t9 = *(gp);
0x00018af8 move a0, v0 | a0 = v0;
0x00018afc jalr t9 | t9 ();
0x00018b00 slti v1, v0, 0x4000 | v1 = (v0 < 0x4000) ? 1 : 0;
0x00018b04 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018b08 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
| if (v1 != 0) {
0x00018b0c bnez v1, 0x18c7c | goto label_29;
| }
0x00018b10 lw v1, 0xc0(sp) | v1 = *(var_c0h);
0x00018b14 lw a3, 0xe0(sp) | a3 = *(var_e0h);
0x00018b18 addiu v0, v0, -0x3fff | v0 += -0x3fff;
0x00018b1c slt a0, v1, a3 | a0 = (v1 < a3) ? 1 : 0;
0x00018b20 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x00018b24 sw v1, 0x38(s0) | *((s0 + 14)) = v1;
0x00018b28 sw a3, 0x3c(s0) | *((s0 + 15)) = a3;
| if (a0 != 0) {
0x00018b2c bnez a0, 0x18bdc | goto label_30;
| }
0x00018b30 subu v1, v1, a3 | __asm ("subu v1, v1, a3");
0x00018b34 addiu v1, v1, 1 | v1++;
0x00018b38 sw v1, 0x40(s0) | *((s0 + 16)) = v1;
0x00018b3c addiu s2, zero, 1 | s2 = 1;
0x00018b40 b 0x18948 | goto label_5;
| label_17:
0x00018b44 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00018b48 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
| /* str.backfocus */
0x00018b4c addiu a1, a1, -0x2a14 | a1 += -0x2a14;
0x00018b50 move a0, s3 | a0 = s3;
0x00018b54 jalr t9 | t9 ();
0x00018b58 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00018b5c bnez v0, 0x18c4c | goto label_31;
| }
0x00018b60 addiu v0, zero, 2 | v0 = 2;
0x00018b64 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00018b68 b 0x18684 | goto label_6;
| label_12:
0x00018b6c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00018b70 lw v0, 0x6c(sp) | v0 = *(var_6ch);
0x00018b74 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00018b78 beqz v0, 0x18cac | goto label_32;
| }
0x00018b7c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018b80 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00018b84 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._lib_persistent_var_lib_focusd_i_cs.state */
0x00018b88 addiu a3, s3, -0x2af0 | a3 = s3 + -aav.0x00002af0;
| /* str._3_Could_not_load_i_CS_info__s:__s_n */
0x00018b8c addiu a2, a2, -0x2ac4 | a2 += -0x2ac4;
0x00018b90 addiu a1, zero, 1 | a1 = 1;
0x00018b94 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00018b98 jalr t9 | t9 ();
0x00018b9c lw gp, 0x30(sp) | gp = *(var_30h);
0x00018ba0 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00018ba4 move a0, s2 | a0 = s2;
0x00018ba8 jalr t9 | t9 ();
0x00018bac lw gp, 0x30(sp) | gp = *(var_30h);
| do {
0x00018bb0 lw t9, -0x7e40(gp) | t9 = sym.focusd_i_cs_close;
0x00018bb4 move a0, s0 | a0 = s0;
0x00018bb8 bal 0x18360 | sym_focusd_i_cs_close ();
0x00018bbc move s0, zero | s0 = 0;
0x00018bc0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018bc4 b 0x1896c | goto label_7;
| label_28:
0x00018bc8 jalr t9 | t9 ();
0x00018bcc nop |
0x00018bd0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018bd4 sw zero, 0x90(sp) | *(var_90h) = 0;
0x00018bd8 b 0x1893c | goto label_8;
| label_30:
0x00018bdc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00018be0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018be4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018be8 lw a0, (v0) | a0 = *(v0);
| /* str._3_i_CS__bad_focus_range__nl__d_max__d_n */
0x00018bec addiu a2, a2, -0x289c | a2 += -aav.0x0000289c;
0x00018bf0 sw a3, 0x10(sp) | *(var_10h_2) = a3;
0x00018bf4 addiu a1, zero, 1 | a1 = 1;
0x00018bf8 move a3, v1 | a3 = v1;
0x00018bfc jalr t9 | t9 ();
0x00018c00 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018c04 b 0x18948 | goto label_5;
| label_20:
0x00018c08 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00018c0c lw v0, 0x70(sp) | v0 = *(var_70h);
0x00018c10 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x00018c14 beqz v0, 0x18ccc | goto label_33;
| }
0x00018c18 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018c1c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018c20 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._3_i_cs_init__failed_to_get_D_Bus_connection:__s_n */
0x00018c24 addiu a2, a2, -0x29e0 | a2 += -0x29e0;
0x00018c28 addiu a1, zero, 1 | a1 = 1;
0x00018c2c jalr t9 | t9 ();
0x00018c30 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018c34 move a0, s5 | a0 = s5;
0x00018c38 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00018c3c move s2, zero | s2 = 0;
0x00018c40 jalr t9 | t9 ();
0x00018c44 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018c48 b 0x18968 | goto label_9;
| label_31:
0x00018c4c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00018c50 lw a0, (v0) | a0 = *(v0);
| if (s3 == 0) {
0x00018c54 beqz s3, 0x18d20 | goto label_34;
| }
| label_11:
0x00018c58 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018c5c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018c60 move a3, s3 | a3 = s3;
| /* str._4_Read_unknown_i_CS_optics_type__s_n */
0x00018c64 addiu a2, a2, -0x2a08 | a2 += -0x2a08;
0x00018c68 addiu a1, zero, 1 | a1 = 1;
0x00018c6c jalr t9 | t9 ();
0x00018c70 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018c74 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x00018c78 b 0x18684 | goto label_6;
| label_29:
0x00018c7c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00018c80 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018c84 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018c88 lw a0, (v1) | a0 = *(v1);
0x00018c8c move a3, v0 | a3 = v0;
0x00018c90 sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x00018c94 sw s5, 0x14(sp) | *(var_14h) = s5;
| /* str._3_i_CS__bad_max_zoom__d___f__n */
0x00018c98 addiu a2, a2, -0x28bc | a2 += -0x28bc;
0x00018c9c addiu a1, zero, 1 | a1 = 1;
0x00018ca0 jalr t9 | t9 ();
0x00018ca4 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018ca8 b 0x18948 | goto label_5;
| label_32:
0x00018cac lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018cb0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._lib_persistent_var_lib_focusd_i_cs.state */
0x00018cb4 addiu a3, s3, -0x2af0 | a3 = s3 + -aav.0x00002af0;
| /* str._3_Could_not_load_i_CS_info__s_n */
0x00018cb8 addiu a2, a2, -0x2a9c | a2 += -0x2a9c;
0x00018cbc addiu a1, zero, 1 | a1 = 1;
0x00018cc0 jalr t9 | t9 ();
0x00018cc4 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018cc8 b 0x18bb0 |
| } while (1);
| label_33:
0x00018ccc move a3, a0 | a3 = a0;
0x00018cd0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00018cd4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00018cd8 addiu a2, zero, 0x2d | a2 = 0x2d;
0x00018cdc addiu a1, zero, 1 | a1 = 1;
| /* str._3_i_cs_init__failed_to_get_D_Bus_connection_n */
0x00018ce0 addiu a0, a0, -0x29ac | a0 += -0x29ac;
0x00018ce4 jalr t9 | t9 ();
0x00018ce8 move s2, zero | s2 = 0;
0x00018cec lw gp, 0x30(sp) | gp = *(var_30h);
0x00018cf0 b 0x18968 | goto label_9;
| label_16:
0x00018cf4 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00018cf8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018cfc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00018d00 sw s5, 0x10(sp) | *(var_10h_2) = s5;
| /* str.focusd_i_cs_read_stored_controller_status */
0x00018d04 addiu a3, a3, -0x24f4 | a3 += -0x24f4;
| /* str._3__s:_could_not_get_previous_value__s_n */
0x00018d08 addiu a2, a2, -0x2a40 | a2 += -0x2a40;
0x00018d0c addiu a1, zero, 1 | a1 = 1;
0x00018d10 jalr t9 | t9 ();
0x00018d14 move s5, zero | s5 = 0;
0x00018d18 lw gp, 0x30(sp) | gp = *(var_30h);
0x00018d1c b 0x186c0 | goto label_10;
| label_34:
0x00018d20 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x00018d24 addiu s3, s3, -0x64a8 | s3 += -0x64a8;
0x00018d28 b 0x18c58 | goto label_11;
| label_27:
0x00018d2c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00018d30 jalr t9 | t9 ();
0x00018d34 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x18dd0 */
| #include <stdint.h>
|
; (fcn) sym.focusd_i_cs_store_controller_data () | void focusd_i_cs_store_controller_data () {
0x00018dd0 lui gp, 5 |
0x00018dd4 addiu gp, gp, 0x5db0 |
0x00018dd8 addu gp, gp, t9 | gp += t9;
0x00018ddc addiu sp, sp, -0x48 |
0x00018de0 addiu v1, zero, -1 | v1 = -1;
0x00018de4 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00018de8 lw s2, -0x7a04(gp) | s2 = *((gp - 7809));
0x00018dec sw gp, 0x18(sp) | *(var_18h) = gp;
0x00018df0 sw ra, 0x44(sp) | *(var_44h) = ra;
0x00018df4 lw v0, (s2) | v0 = *(s2);
0x00018df8 sw s4, 0x40(sp) | *(var_40h) = s4;
0x00018dfc sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x00018e00 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00018e04 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00018e08 sw v1, 0x24(sp) | *(var_24h) = v1;
0x00018e0c sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00018e10 sw zero, 0x28(sp) | *(var_28h) = 0;
| if (a0 == 0) {
0x00018e14 beqz a0, 0x18fc4 | goto label_2;
| }
0x00018e18 move s0, a0 | s0 = a0;
0x00018e1c lw a0, (a0) | a0 = *(a0);
0x00018e20 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
| if (a0 == 0) {
0x00018e24 beqz a0, 0x18fe8 | goto label_3;
| }
0x00018e28 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x00018e2c addiu a3, a3, 0x5e84 | a3 += 0x5e84;
0x00018e30 sll v0, v0, 2 | v0 <<= 2;
0x00018e34 lw s1, -0x7fd8(gp) | s1 = *(gp);
0x00018e38 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018e3c lwx a3, v0(a3) | __asm ("lwx a3, v0(a3)");
0x00018e40 lw t9, -0x77f8(gp) | t9 = sym.imp.g_key_file_set_string;
| /* str.i_cs */
0x00018e44 addiu a1, s1, -0x2a78 | a1 = s1 + -0x2a78;
| /* esilref: 'mode' */
0x00018e48 addiu a2, a2, 0x59c | a2 += 0x59c;
0x00018e4c jalr t9 | t9 ();
0x00018e50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018e54 lw a3, 0x2c(s0) | a3 = *((s0 + 11));
0x00018e58 lw a0, (s0) | a0 = *(s0);
0x00018e5c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018e60 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.i_cs */
0x00018e64 addiu a1, s1, -0x2a78 | a1 = s1 + -0x2a78;
| /* str.zoom_min */
0x00018e68 addiu a2, a2, -0x280c | a2 += -0x280c;
0x00018e6c jalr t9 | t9 ();
0x00018e70 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018e74 lw a3, 0x30(s0) | a3 = *((s0 + 12));
0x00018e78 lw a0, (s0) | a0 = *(s0);
0x00018e7c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018e80 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.i_cs */
0x00018e84 addiu a1, s1, -0x2a78 | a1 = s1 + -0x2a78;
| /* str.zoom_max */
0x00018e88 addiu a2, a2, -0x2800 | a2 += -0x2800;
0x00018e8c jalr t9 | t9 ();
0x00018e90 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018e94 lw a3, 0x38(s0) | a3 = *((s0 + 14));
0x00018e98 lw a0, (s0) | a0 = *(s0);
0x00018e9c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018ea0 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.i_cs */
0x00018ea4 addiu a1, s1, -0x2a78 | a1 = s1 + -0x2a78;
| /* str.focus_nl */
0x00018ea8 addiu a2, a2, -0x27f4 | a2 += -0x27f4;
0x00018eac jalr t9 | t9 ();
0x00018eb0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018eb4 lw a3, 0x3c(s0) | a3 = *((s0 + 15));
0x00018eb8 lw a0, (s0) | a0 = *(s0);
0x00018ebc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018ec0 lw t9, -0x7b24(gp) | t9 = sym.imp.g_key_file_set_integer;
| /* str.i_cs */
0x00018ec4 addiu a1, s1, -0x2a78 | a1 = s1 + -0x2a78;
| /* str.focus_max */
0x00018ec8 addiu a2, a2, -0x27e8 | a2 += -0x27e8;
0x00018ecc jalr t9 | t9 ();
0x00018ed0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018ed4 addiu s3, sp, 0x28 | s3 = sp + 0x28;
0x00018ed8 lw a0, (s0) | a0 = *(s0);
0x00018edc lw t9, -0x798c(gp) | t9 = sym.imp.g_key_file_to_data;
0x00018ee0 move a2, s3 | a2 = s3;
0x00018ee4 addiu a1, sp, 0x24 | a1 = sp + 0x24;
0x00018ee8 jalr t9 | t9 ();
0x00018eec move s1, v0 | s1 = v0;
0x00018ef0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018ef4 beqz v0, 0x19010 | goto label_4;
| }
0x00018ef8 lw t9, -0x7a10(gp) | t9 = sym.imp.getuid;
0x00018efc lw s3, 0x24(sp) | s3 = *(var_24h);
0x00018f00 jalr t9 | t9 ();
0x00018f04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f08 lw t9, -0x7c04(gp) | t9 = sym.imp.getgid;
0x00018f0c move s4, v0 | s4 = v0;
0x00018f10 jalr t9 | t9 ();
0x00018f14 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018f18 addiu v1, zero, 0x1a4 | v1 = segment.NOTE;
0x00018f1c sw v1, 0x14(sp) | *(var_14h) = v1;
0x00018f20 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00018f24 lw t9, -0x7d64(gp) | t9 = sym.focusd_safe_file_write;
0x00018f28 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00018f2c move a3, s4 | a3 = s4;
0x00018f30 move a2, s3 | a2 = s3;
0x00018f34 move a1, s1 | a1 = s1;
| /* str._lib_persistent_var_lib_focusd_i_cs.state */
0x00018f38 addiu a0, a0, -0x2af0 | a0 += -aav.0x00002af0;
0x00018f3c bal 0x38654 | sym_focusd_safe_file_write ();
0x00018f40 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00018f44 beqz v0, 0x19054 | goto label_5;
| }
0x00018f48 lw t0, 0x28(s0) | t0 = *((s0 + 10));
0x00018f4c lw a3, 0x2c(s0) | a3 = *((s0 + 11));
0x00018f50 lw a2, 0x30(s0) | a2 = *((s0 + 12));
0x00018f54 lw a1, 0x34(s0) | a1 = *((s0 + 13));
0x00018f58 lw a0, 0x38(s0) | a0 = *((s0 + 14));
0x00018f5c lw v1, 0x3c(s0) | v1 = *((s0 + 15));
0x00018f60 lw v0, 0x40(s0) | v0 = *((s0 + 16));
0x00018f64 sw t0, 0xc(s0) | *((s0 + 3)) = t0;
0x00018f68 sw a3, 0x10(s0) | *((s0 + 4)) = a3;
0x00018f6c sw a2, 0x14(s0) | *((s0 + 5)) = a2;
0x00018f70 sw a1, 0x18(s0) | *((s0 + 6)) = a1;
0x00018f74 sw a0, 0x1c(s0) | *((s0 + 7)) = a0;
0x00018f78 sw v1, 0x20(s0) | *((s0 + 8)) = v1;
0x00018f7c sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00018f80 addiu s0, zero, 1 | s0 = 1;
| label_1:
0x00018f84 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00018f88 move a0, s1 | a0 = s1;
0x00018f8c jalr t9 | t9 ();
0x00018f90 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_0:
0x00018f94 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00018f98 lw v1, (s2) | v1 = *(s2);
0x00018f9c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00018fa0 bne a0, v1, 0x19084 | goto label_6;
| }
0x00018fa4 lw ra, 0x44(sp) | ra = *(var_44h);
0x00018fa8 lw s4, 0x40(sp) | s4 = *(var_40h);
0x00018fac lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00018fb0 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00018fb4 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00018fb8 lw s0, 0x30(sp) | s0 = *(var_30h);
0x00018fbc addiu sp, sp, 0x48 |
0x00018fc0 jr ra | return v0;
| label_2:
0x00018fc4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018fc8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00018fcc lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.icsd___NULL */
0x00018fd0 addiu a2, a2, -0x2b00 | a2 += -0x2b00;
| /* str.focusd_i_cs_store_controller_data */
0x00018fd4 addiu a1, a1, -0x255c | a1 += -0x255c;
0x00018fd8 jalr t9 | t9 ();
0x00018fdc move s0, zero | s0 = 0;
0x00018fe0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00018fe4 b 0x18f94 |
| } while (1);
| label_3:
0x00018fe8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00018fec lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00018ff0 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.icsd__controller_data___NULL */
0x00018ff4 addiu a2, a2, -0x282c | a2 += -0x282c;
| /* str.focusd_i_cs_store_controller_data */
0x00018ff8 addiu a1, a1, -0x255c | a1 += -0x255c;
0x00018ffc move a0, zero | a0 = 0;
0x00019000 jalr t9 | t9 ();
0x00019004 move s0, zero | s0 = 0;
0x00019008 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001900c b 0x18f94 | goto label_0;
| label_4:
0x00019010 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x00019014 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00019018 lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x0001901c beqz v0, 0x1905c |
0x00019020 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00019024 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00019028 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._3_Failed_to_create_i_CS_controller_data:__s_n */
0x0001902c addiu a2, a2, -0x27dc | a2 += -0x27dc;
0x00019030 addiu a1, zero, 1 | a1 = 1;
0x00019034 jalr t9 | t9 ();
0x00019038 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001903c move a0, s3 | a0 = s3;
0x00019040 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00019044 move s0, zero | s0 = 0;
0x00019048 jalr t9 | t9 ();
0x0001904c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019050 b 0x18f84 | goto label_1;
| label_5:
0x00019054 move s0, zero | s0 = 0;
0x00019058 b 0x18f84 | goto label_1;
| }
0x0001905c move a3, a0 | a3 = a0;
0x00019060 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00019064 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00019068 addiu a2, zero, 0x29 | a2 = 0x29;
0x0001906c addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_create_i_CS_controller_data_n */
0x00019070 addiu a0, a0, -0x27ac | a0 += -0x27ac;
0x00019074 jalr t9 | t9 ();
0x00019078 move s0, zero | s0 = 0;
0x0001907c lw gp, 0x18(sp) | gp = *(var_18h);
0x00019080 b 0x18f84 | goto label_1;
| label_6:
0x00019084 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00019088 jalr t9 | t9 ();
0x0001908c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1a8d4 */
| #include <stdint.h>
|
; (fcn) sym.focusd_imaged_proxy_autofocus () | void focusd_imaged_proxy_autofocus () {
0x0001a8d4 lui gp, 5 |
0x0001a8d8 addiu gp, gp, 0x42ac |
0x0001a8dc addu gp, gp, t9 | gp += t9;
0x0001a8e0 addiu sp, sp, -0x60 |
0x0001a8e4 sw s3, 0x44(sp) | *(var_44h) = s3;
0x0001a8e8 lw s3, -0x7a04(gp) | s3 = *((gp - 7809));
0x0001a8ec sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0001a8f0 lw s1, -0x7f6c(gp) | s1 = *(gp);
0x0001a8f4 lw v0, (s3) | v0 = *(s3);
0x0001a8f8 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0001a8fc sw gp, 0x20(sp) | *(var_20h) = gp;
0x0001a900 move t9, s1 | t9 = s1;
0x0001a904 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0001a908 sw s7, 0x54(sp) | *(var_54h) = s7;
0x0001a90c sw s6, 0x50(sp) | *(var_50h) = s6;
0x0001a910 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0001a914 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0001a918 sw s2, 0x40(sp) | *(var_40h) = s2;
0x0001a91c sw s0, 0x38(sp) | *(var_38h) = s0;
0x0001a920 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0001a924 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x0001a928 move s2, a0 | s2 = a0;
0x0001a92c move s5, a1 | s5 = a1;
0x0001a930 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001a934 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a938 move a1, v0 | a1 = v0;
0x0001a93c move a0, s2 | a0 = s2;
0x0001a940 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001a944 addiu fp, sp, 0x30 | fp = sp + 0x30;
0x0001a948 jalr t9 | t9 ();
0x0001a94c move t9, s1 | t9 = s1;
0x0001a950 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0001a954 move s0, v0 | s0 = v0;
0x0001a958 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001a95c lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a960 move a1, v0 | a1 = v0;
0x0001a964 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001a968 move a0, s2 | a0 = s2;
0x0001a96c jalr t9 | t9 ();
0x0001a970 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a974 move a0, v0 | a0 = v0;
0x0001a978 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001a97c move s1, v0 | s1 = v0;
0x0001a980 jalr t9 | t9 ();
0x0001a984 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a988 lw s7, 8(s1) | s7 = *((s1 + 2));
0x0001a98c lw s4, 0x14(s1) | s4 = *((s1 + 5));
0x0001a990 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001a994 lw t9, -0x7900(gp) | t9 = sym.imp.g_variant_new_string;
0x0001a998 lw s6, -0x7fd8(gp) | s6 = *(gp);
| /* str.custom_focus_area */
0x0001a99c addiu a0, a0, -0x21c4 | a0 += -0x21c4;
0x0001a9a0 jalr t9 | t9 ();
0x0001a9a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a9a8 move a1, s4 | a1 = s4;
0x0001a9ac move a3, v0 | a3 = v0;
0x0001a9b0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001a9b4 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.FocusState */
0x0001a9b8 addiu a2, a2, -0x21b0 | a2 += -0x21b0;
0x0001a9bc lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* str._ssv_ */
0x0001a9c0 addiu a0, s6, -0x21a4 | a0 = s6 + -0x21a4;
0x0001a9c4 jalr t9 | t9 ();
0x0001a9c8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a9cc move a2, v0 | a2 = v0;
0x0001a9d0 addiu v0, zero, -1 | v0 = -1;
0x0001a9d4 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001a9d8 move a0, s7 | a0 = s7;
0x0001a9dc move a3, zero | a3 = 0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001a9e0 addiu a1, s4, -0x219c | a1 = s4 + -0x219c;
0x0001a9e4 sw fp, 0x18(sp) | *(var_18h) = fp;
0x0001a9e8 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0001a9ec sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001a9f0 jalr t9 | t9 ();
0x0001a9f4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001a9f8 move s7, v0 | s7 = v0;
0x0001a9fc lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001aa00 move a0, s1 | a0 = s1;
0x0001aa04 jalr t9 | t9 ();
0x0001aa08 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s7 == 0) {
0x0001aa0c beqz s7, 0x1ab8c | goto label_2;
| }
0x0001aa10 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001aa14 move a0, s7 | a0 = s7;
0x0001aa18 jalr t9 | t9 ();
0x0001aa1c lw gp, 0x20(sp) | gp = *(var_20h);
| label_0:
0x0001aa20 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001aa24 move a0, s0 | a0 = s0;
0x0001aa28 jalr t9 | t9 ();
0x0001aa2c lw gp, 0x20(sp) | gp = *(var_20h);
0x0001aa30 move a0, s2 | a0 = s2;
0x0001aa34 lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.0001a154 */
0x0001aa38 addiu t9, t9, -0x5eac | t9 += -0x5eac;
0x0001aa3c sw zero, 0x1c(s0) | *((s0 + 7)) = 0;
0x0001aa40 bal 0x1a154 | fcn_0001a154 ();
0x0001aa44 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0001aa48 beqz v0, 0x1abcc | goto label_3;
| }
0x0001aa4c lw t9, -0x7900(gp) | t9 = sym.imp.g_variant_new_string;
0x0001aa50 move a0, s5 | a0 = s5;
0x0001aa54 lw s1, 0x14(s0) | s1 = *((s0 + 5));
0x0001aa58 lw s7, 8(s0) | s7 = *((s0 + 2));
0x0001aa5c lw s5, 0x20(s0) | s5 = *((s0 + 8));
0x0001aa60 jalr t9 | t9 ();
0x0001aa64 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001aa68 move a1, s1 | a1 = s1;
0x0001aa6c move a3, v0 | a3 = v0;
0x0001aa70 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001aa74 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.FocusScan */
0x0001aa78 addiu a2, a2, -0x20f8 | a2 += -0x20f8;
| /* str._ssv_ */
0x0001aa7c addiu a0, s6, -0x21a4 | a0 = s6 + -0x21a4;
0x0001aa80 jalr t9 | t9 ();
0x0001aa84 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001aa88 move a2, v0 | a2 = v0;
0x0001aa8c addiu s1, sp, 0x2c | s1 = sp + 0x2c;
0x0001aa90 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001aa94 addiu v0, zero, -1 | v0 = -1;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001aa98 addiu a1, s4, -0x219c | a1 = s4 + -0x219c;
0x0001aa9c move a3, zero | a3 = 0;
0x0001aaa0 move a0, s7 | a0 = s7;
0x0001aaa4 sw s1, 0x18(sp) | *(var_18h) = s1;
0x0001aaa8 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0001aaac sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001aab0 jalr t9 | t9 ();
0x0001aab4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001aab8 move s4, v0 | s4 = v0;
0x0001aabc lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001aac0 move a0, s0 | a0 = s0;
0x0001aac4 jalr t9 | t9 ();
0x0001aac8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s4 != 0) {
0x0001aacc bnez s4, 0x1ab48 | goto label_4;
| }
0x0001aad0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001aad4 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0001aad8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0001aadc beqz v0, 0x1ac28 | goto label_5;
| }
0x0001aae0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001aae4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001aae8 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_focus_scan:__s_n */
0x0001aaec addiu a2, a2, -0x20ec | a2 += -0x20ec;
0x0001aaf0 addiu a1, zero, 1 | a1 = 1;
0x0001aaf4 jalr t9 | t9 ();
0x0001aaf8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001aafc lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001ab00 move a0, s1 | a0 = s1;
0x0001ab04 jalr t9 | t9 ();
0x0001ab08 lw gp, 0x20(sp) | gp = *(var_20h);
| do {
| label_1:
0x0001ab0c lw v1, 0x34(sp) | v1 = *(var_34h);
0x0001ab10 lw v0, (s3) | v0 = *(s3);
0x0001ab14 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (v1 != v0) {
0x0001ab18 bne v1, v0, 0x1ac4c | goto label_6;
| }
0x0001ab1c lw fp, 0x58(sp) | fp = *(var_58h);
0x0001ab20 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0001ab24 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0001ab28 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0001ab2c lw s4, 0x48(sp) | s4 = *(var_48h);
0x0001ab30 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0001ab34 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0001ab38 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0001ab3c lw s0, 0x38(sp) | s0 = *(var_38h);
0x0001ab40 addiu sp, sp, 0x60 |
0x0001ab44 jr ra | return v0;
| label_4:
0x0001ab48 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001ab4c move a0, s4 | a0 = s4;
0x0001ab50 jalr t9 | t9 ();
0x0001ab54 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ab58 addiu v0, zero, 1 | v0 = 1;
0x0001ab5c sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001ab60 lw t9, -0x7f50(gp) | t9 = *(gp);
0x0001ab64 move v0, zero | v0 = 0;
0x0001ab68 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001ab6c move a3, s5 | a3 = s5;
0x0001ab70 move a2, zero | a2 = 0;
0x0001ab74 addiu a1, zero, 1 | a1 = 1;
| /* fcn.0001a62c */
0x0001ab78 addiu t9, t9, -0x59d4 | t9 += -0x59d4;
0x0001ab7c move a0, s2 | a0 = s2;
0x0001ab80 bal 0x1a62c | fcn_0001a62c ();
0x0001ab84 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ab88 b 0x1ab0c |
| } while (1);
| label_2:
0x0001ab8c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001ab90 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001ab94 lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x0001ab98 beqz v0, 0x1ac04 |
0x0001ab9c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001aba0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001aba4 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_Custom_Focus_Area:__s_n */
0x0001aba8 addiu a2, a2, -0x2178 | a2 += -0x2178;
0x0001abac addiu a1, zero, 1 | a1 = 1;
0x0001abb0 jalr t9 | t9 ();
0x0001abb4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001abb8 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001abbc move a0, fp | a0 = fp;
0x0001abc0 jalr t9 | t9 ();
0x0001abc4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001abc8 b 0x1aa20 | goto label_0;
| label_3:
0x0001abcc lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001abd0 move a0, s0 | a0 = s0;
0x0001abd4 jalr t9 | t9 ();
0x0001abd8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001abdc addiu a2, zero, 0x33 | a2 = 0x33;
0x0001abe0 addiu a1, zero, 1 | a1 = 1;
0x0001abe4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001abe8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001abec lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001abf0 lw a3, (v0) | a3 = *(v0);
| /* str._4_autofocus_failed__could_not_sample_status_cache_n */
0x0001abf4 addiu a0, a0, -0x212c | a0 += -0x212c;
0x0001abf8 jalr t9 | t9 ();
0x0001abfc lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ac00 b 0x1ab0c | goto label_1;
| }
0x0001ac04 move a3, a0 | a3 = a0;
0x0001ac08 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001ac0c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001ac10 addiu a2, zero, 0x23 | a2 = 0x23;
0x0001ac14 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_Custom_Focus_Area_n */
0x0001ac18 addiu a0, a0, -0x2150 | a0 += -0x2150;
0x0001ac1c jalr t9 | t9 ();
0x0001ac20 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ac24 b 0x1aa20 | goto label_0;
| label_5:
0x0001ac28 move a3, a0 | a3 = a0;
0x0001ac2c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001ac30 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001ac34 addiu a2, zero, 0x29 | a2 = 0x29;
0x0001ac38 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_focus_scan_n */
0x0001ac3c addiu a0, a0, -0x20bc | a0 += -0x20bc;
0x0001ac40 jalr t9 | t9 ();
0x0001ac44 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ac48 b 0x1ab0c | goto label_1;
| label_6:
0x0001ac4c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001ac50 jalr t9 | t9 ();
0x0001ac54 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1b9dc */
| #include <stdint.h>
|
; (fcn) sym.focusd_imaged_proxy_seek_home () | void focusd_imaged_proxy_seek_home () {
0x0001b9dc lui gp, 5 |
0x0001b9e0 addiu gp, gp, 0x31a4 |
0x0001b9e4 addu gp, gp, t9 | gp += t9;
0x0001b9e8 addiu sp, sp, -0x60 |
0x0001b9ec lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001b9f0 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0001b9f4 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001b9f8 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0001b9fc sw gp, 0x20(sp) | *(var_20h) = gp;
0x0001ba00 lw v0, (s1) | v0 = *(s1);
0x0001ba04 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0001ba08 sw s0, 0x38(sp) | *(var_38h) = s0;
0x0001ba0c sw s7, 0x54(sp) | *(var_54h) = s7;
0x0001ba10 sw s6, 0x50(sp) | *(var_50h) = s6;
0x0001ba14 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0001ba18 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0001ba1c sw s3, 0x44(sp) | *(var_44h) = s3;
0x0001ba20 sw s2, 0x40(sp) | *(var_40h) = s2;
0x0001ba24 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0001ba28 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0001ba2c move s0, a0 | s0 = a0;
0x0001ba30 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001ba34 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ba38 move a1, v0 | a1 = v0;
0x0001ba3c lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001ba40 move a0, s0 | a0 = s0;
0x0001ba44 jalr t9 | t9 ();
0x0001ba48 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ba4c move a0, v0 | a0 = v0;
0x0001ba50 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001ba54 move fp, v0 | fp = v0;
0x0001ba58 jalr t9 | t9 ();
0x0001ba5c lw gp, 0x20(sp) | gp = *(var_20h);
0x0001ba60 move a0, s0 | a0 = s0;
0x0001ba64 lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.0001a154 */
0x0001ba68 addiu t9, t9, -0x5eac | t9 += -0x5eac;
0x0001ba6c sw zero, 0x1c(fp) | *(arg_1ch) = 0;
0x0001ba70 bal 0x1a154 | fcn_0001a154 ();
0x0001ba74 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0001ba78 beqz v0, 0x1bca4 | goto label_1;
| }
0x0001ba7c lw v1, 0x28(fp) | v1 = *(arg_28h);
0x0001ba80 lw a0, 0x2c(fp) | a0 = *(arg_2ch);
0x0001ba84 sw v1, 0x28(sp) | *(var_28h) = v1;
0x0001ba88 lw v1, 0x20(fp) | v1 = *(arg_20h);
0x0001ba8c addiu v0, zero, 1 | v0 = 1;
0x0001ba90 sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
| if (a0 == v0) {
0x0001ba94 beq a0, v0, 0x1bc24 | goto label_2;
| }
0x0001ba98 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0001ba9c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001baa0 beq a0, v0, 0x1bc28 |
| while (1) {
0x0001baa4 lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x0001baa8 addiu a0, zero, 1 | a0 = 1;
0x0001baac lw s2, 0x14(fp) | s2 = *(arg_14h);
0x0001bab0 lw s6, -0x7fd8(gp) | s6 = *(gp);
0x0001bab4 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x0001bab8 lw s7, 8(fp) | s7 = *(arg_8h);
0x0001babc jalr t9 | t9 ();
0x0001bac0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bac4 move a1, s2 | a1 = s2;
0x0001bac8 move a3, v0 | a3 = v0;
0x0001bacc lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.ResetOpticsMotorPos */
0x0001bad0 addiu a2, s6, -0x1d70 | a2 = s6 + -0x1d70;
0x0001bad4 lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* str._ssv_ */
0x0001bad8 addiu a0, s5, -0x21a4 | a0 = s5 + -0x21a4;
0x0001badc jalr t9 | t9 ();
0x0001bae0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bae4 addiu s2, sp, 0x30 | s2 = sp + 0x30;
0x0001bae8 addiu s3, zero, -1 | s3 = -1;
0x0001baec lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001baf0 sw s2, 0x18(sp) | *(var_18h_2) = s2;
0x0001baf4 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0001baf8 sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x0001bafc move a3, zero | a3 = 0;
0x0001bb00 move a2, v0 | a2 = v0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001bb04 addiu a1, s4, -0x219c | a1 = s4 + -0x219c;
0x0001bb08 move a0, s7 | a0 = s7;
0x0001bb0c jalr t9 | t9 ();
0x0001bb10 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0001bb14 beqz v0, 0x1bc50 | goto label_3;
| }
0x0001bb18 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001bb1c move a0, v0 | a0 = v0;
0x0001bb20 jalr t9 | t9 ();
0x0001bb24 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bb28 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001bb2c lw a3, 0x2c(sp) | a3 = *(var_2ch_2);
0x0001bb30 lw t9, -0x7f50(gp) | t9 = *(gp);
0x0001bb34 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0001bb38 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001bb3c addiu a2, zero, 1 | a2 = 1;
0x0001bb40 addiu a1, zero, 1 | a1 = 1;
| /* fcn.0001a62c */
0x0001bb44 addiu t9, t9, -0x59d4 | t9 += -0x59d4;
0x0001bb48 move a0, s0 | a0 = s0;
0x0001bb4c bal 0x1a62c | fcn_0001a62c ();
0x0001bb50 move s7, v0 | s7 = v0;
0x0001bb54 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0001bb58 beqz v0, 0x1bcbc | goto label_4;
| }
0x0001bb5c lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x0001bb60 move a0, zero | a0 = 0;
0x0001bb64 lw s0, 8(fp) | s0 = *(arg_8h);
0x0001bb68 lw s7, 0x14(fp) | s7 = *(arg_14h);
0x0001bb6c jalr t9 | t9 ();
0x0001bb70 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bb74 move a3, v0 | a3 = v0;
| /* str.ResetOpticsMotorPos */
0x0001bb78 addiu a2, s6, -0x1d70 | a2 = s6 + -0x1d70;
0x0001bb7c lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
0x0001bb80 move a1, s7 | a1 = s7;
| /* str._ssv_ */
0x0001bb84 addiu a0, s5, -0x21a4 | a0 = s5 + -0x21a4;
0x0001bb88 jalr t9 | t9 ();
0x0001bb8c lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bb90 move a0, s0 | a0 = s0;
0x0001bb94 move a3, zero | a3 = 0;
0x0001bb98 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001bb9c move a2, v0 | a2 = v0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001bba0 addiu a1, s4, -0x219c | a1 = s4 + -0x219c;
0x0001bba4 sw s2, 0x18(sp) | *(var_18h_2) = s2;
0x0001bba8 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0001bbac sw s3, 0x10(sp) | *(var_10h_2) = s3;
0x0001bbb0 jalr t9 | t9 ();
0x0001bbb4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bbb8 move s0, v0 | s0 = v0;
0x0001bbbc lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001bbc0 move a0, fp | a0 = fp;
0x0001bbc4 jalr t9 | t9 ();
0x0001bbc8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == 0) {
0x0001bbcc beqz s0, 0x1bcf4 | goto label_5;
| }
0x0001bbd0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001bbd4 move a0, s0 | a0 = s0;
0x0001bbd8 jalr t9 | t9 ();
0x0001bbdc lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bbe0 addiu s7, zero, 1 | s7 = 1;
| label_0:
0x0001bbe4 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0001bbe8 lw v1, (s1) | v1 = *(s1);
0x0001bbec move v0, s7 | v0 = s7;
| if (a0 != v1) {
0x0001bbf0 bne a0, v1, 0x1bd60 | goto label_6;
| }
0x0001bbf4 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0001bbf8 lw fp, 0x58(sp) | fp = *(var_58h);
0x0001bbfc lw s7, 0x54(sp) | s7 = *(var_54h);
0x0001bc00 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0001bc04 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0001bc08 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0001bc0c lw s3, 0x44(sp) | s3 = *(var_44h);
0x0001bc10 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0001bc14 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0001bc18 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0001bc1c addiu sp, sp, 0x60 |
0x0001bc20 jr ra | return v0;
| label_2:
0x0001bc24 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001bc28 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001bc2c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001bc30 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001bc34 lw a0, (v0) | a0 = *(v0);
| /* str.focusd_imaged_proxy_seek_home */
0x0001bc38 addiu a3, a3, -0x1c00 | a3 += -0x1c00;
| /* str._4__s__already_moving_n */
0x0001bc3c addiu a2, a2, -0x1fc0 | a2 += -0x1fc0;
0x0001bc40 addiu a1, zero, 1 | a1 = 1;
0x0001bc44 jalr t9 | t9 ();
0x0001bc48 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bc4c b 0x1baa4 |
| }
| label_3:
0x0001bc50 lw a0, -0x7990(gp) | a0 = *((gp - 7780));
0x0001bc54 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001bc58 lw a0, (a0) | a0 = *(a0);
| if (v0 == 0) {
0x0001bc5c beqz v0, 0x1bcd0 | goto label_7;
| }
0x0001bc60 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001bc64 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001bc68 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_reset_motor_position:__s_n */
0x0001bc6c addiu a2, a2, -0x1d5c | a2 += -0x1d5c;
0x0001bc70 addiu a1, zero, 1 | a1 = 1;
0x0001bc74 jalr t9 | t9 ();
0x0001bc78 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bc7c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001bc80 move a0, s2 | a0 = s2;
0x0001bc84 jalr t9 | t9 ();
0x0001bc88 lw gp, 0x20(sp) | gp = *(var_20h);
| do {
0x0001bc8c lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001bc90 move a0, fp | a0 = fp;
0x0001bc94 jalr t9 | t9 ();
0x0001bc98 move s7, zero | s7 = 0;
0x0001bc9c lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bca0 b 0x1bbe4 | goto label_0;
| label_1:
0x0001bca4 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001bca8 move a0, fp | a0 = fp;
0x0001bcac move s7, v0 | s7 = v0;
0x0001bcb0 jalr t9 | t9 ();
0x0001bcb4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bcb8 b 0x1bbe4 | goto label_0;
| label_4:
0x0001bcbc lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001bcc0 move a0, fp | a0 = fp;
0x0001bcc4 jalr t9 | t9 ();
0x0001bcc8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bccc b 0x1bbe4 | goto label_0;
| label_7:
0x0001bcd0 move a3, a0 | a3 = a0;
0x0001bcd4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001bcd8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001bcdc addiu a2, zero, 0x33 | a2 = 0x33;
0x0001bce0 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_reset_motor_position_n */
0x0001bce4 addiu a0, a0, -0x1d24 | a0 += -0x1d24;
0x0001bce8 jalr t9 | t9 ();
0x0001bcec lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bcf0 b 0x1bc8c |
| } while (1);
| label_5:
0x0001bcf4 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001bcf8 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0001bcfc lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x0001bd00 beqz v0, 0x1bd38 |
0x0001bd04 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001bd08 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001bd0c lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_clear_ImageControl_reset_motor_position:__s_n */
0x0001bd10 addiu a2, a2, -0x1cf0 | a2 += -0x1cf0;
0x0001bd14 addiu a1, zero, 1 | a1 = 1;
0x0001bd18 jalr t9 | t9 ();
0x0001bd1c lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bd20 move a0, s2 | a0 = s2;
0x0001bd24 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001bd28 move s7, zero | s7 = 0;
0x0001bd2c jalr t9 | t9 ();
0x0001bd30 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bd34 b 0x1bbe4 | goto label_0;
| }
0x0001bd38 move a3, a0 | a3 = a0;
0x0001bd3c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001bd40 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001bd44 addiu a2, zero, 0x35 | a2 = 0x35;
0x0001bd48 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_clear_ImageControl_reset_motor_position_n */
0x0001bd4c addiu a0, a0, -0x1cb4 | a0 += -0x1cb4;
0x0001bd50 jalr t9 | t9 ();
0x0001bd54 move s7, zero | s7 = 0;
0x0001bd58 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001bd5c b 0x1bbe4 | goto label_0;
| label_6:
0x0001bd60 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001bd64 jalr t9 | t9 ();
0x0001bd68 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1adfc */
| #include <stdint.h>
|
; (fcn) sym.focusd_imaged_proxy_set_af_far_limit () | void focusd_imaged_proxy_set_af_far_limit () {
0x0001adfc lui gp, 5 |
0x0001ae00 addiu gp, gp, 0x3d84 |
0x0001ae04 addu gp, gp, t9 | gp += t9;
0x0001ae08 addiu sp, sp, -0x50 |
0x0001ae0c lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001ae10 sw s1, 0x40(sp) | *(var_40h_3) = s1;
0x0001ae14 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001ae18 sw ra, 0x4c(sp) | *(var_4ch_3) = ra;
0x0001ae1c sw gp, 0x20(sp) | *(var_20h_3) = gp;
0x0001ae20 lw v0, (s1) | v0 = *(s1);
0x0001ae24 sw s3, 0x48(sp) | *(var_48h_3) = s3;
0x0001ae28 sw s2, 0x44(sp) | *(var_44h_3) = s2;
0x0001ae2c sw s0, 0x3c(sp) | *(var_3ch_3) = s0;
0x0001ae30 sw a0, 0x2c(sp) | *(var_2ch_3) = a0;
0x0001ae34 sw v0, 0x34(sp) | *(var_34h_3) = v0;
0x0001ae38 sw zero, 0x30(sp) | *(var_30h_3) = 0;
0x0001ae3c move s2, a1 | s2 = a1;
0x0001ae40 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001ae44 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001ae48 lw a0, 0x2c(sp) | a0 = *(var_2ch_3);
0x0001ae4c lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001ae50 move a1, v0 | a1 = v0;
0x0001ae54 jalr t9 | t9 ();
0x0001ae58 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001ae5c move a0, v0 | a0 = v0;
0x0001ae60 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001ae64 move s0, v0 | s0 = v0;
0x0001ae68 jalr t9 | t9 ();
0x0001ae6c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001ae70 move a0, s2 | a0 = s2;
0x0001ae74 lw s3, 0x14(s0) | s3 = *((s0 + 5));
0x0001ae78 lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x0001ae7c lw s2, 8(s0) | s2 = *((s0 + 2));
0x0001ae80 jalr t9 | t9 ();
0x0001ae84 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001ae88 move a1, s3 | a1 = s3;
0x0001ae8c move a3, v0 | a3 = v0;
0x0001ae90 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001ae94 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001ae98 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.AFFarLimit */
0x0001ae9c addiu a2, a2, -0x2028 | a2 += -0x2028;
| /* str._ssv_ */
0x0001aea0 addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0001aea4 jalr t9 | t9 ();
0x0001aea8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001aeac move a2, v0 | a2 = v0;
0x0001aeb0 addiu s3, sp, 0x30 | s3 = sp + 0x30;
0x0001aeb4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001aeb8 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001aebc addiu v0, zero, -1 | v0 = -1;
0x0001aec0 move a0, s2 | a0 = s2;
0x0001aec4 move a3, zero | a3 = 0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001aec8 addiu a1, a1, -0x219c | a1 += -0x219c;
0x0001aecc sw s3, 0x18(sp) | *(var_18h_3) = s3;
0x0001aed0 sw zero, 0x14(sp) | *(var_14h_3) = 0;
0x0001aed4 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x0001aed8 jalr t9 | t9 ();
0x0001aedc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001aee0 move s2, v0 | s2 = v0;
0x0001aee4 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001aee8 move a0, s0 | a0 = s0;
0x0001aeec jalr t9 | t9 ();
0x0001aef0 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (s2 == 0) {
0x0001aef4 beqz s2, 0x1af30 | goto label_3;
| }
0x0001aef8 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001aefc move a0, s2 | a0 = s2;
0x0001af00 jalr t9 | t9 ();
0x0001af04 lw gp, 0x20(sp) | gp = *(var_20h_3);
| do {
| label_0:
0x0001af08 lw v1, 0x34(sp) | v1 = *(var_34h_3);
0x0001af0c lw v0, (s1) | v0 = *(s1);
0x0001af10 lw ra, 0x4c(sp) | ra = *(var_4ch_3);
| if (v1 != v0) {
0x0001af14 bne v1, v0, 0x1af94 | goto label_4;
| }
0x0001af18 lw s3, 0x48(sp) | s3 = *(var_48h_3);
0x0001af1c lw s2, 0x44(sp) | s2 = *(var_44h_3);
0x0001af20 lw s1, 0x40(sp) | s1 = *(var_40h_3);
0x0001af24 lw s0, 0x3c(sp) | s0 = *(var_3ch_3);
0x0001af28 addiu sp, sp, 0x50 |
0x0001af2c jr ra | return v0;
| label_3:
0x0001af30 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001af34 lw v0, 0x30(sp) | v0 = *(var_30h_3);
0x0001af38 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0001af3c beqz v0, 0x1af70 | goto label_5;
| }
0x0001af40 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001af44 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001af48 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_far_limit_:__s_n */
0x0001af4c addiu a2, a2, -0x201c | a2 += -0x201c;
0x0001af50 addiu a1, zero, 1 | a1 = 1;
0x0001af54 jalr t9 | t9 ();
0x0001af58 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001af5c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001af60 move a0, s3 | a0 = s3;
0x0001af64 jalr t9 | t9 ();
0x0001af68 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001af6c b 0x1af08 |
| } while (1);
| label_5:
0x0001af70 move a3, a0 | a3 = a0;
0x0001af74 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001af78 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001af7c addiu a2, zero, 0x29 | a2 = 0x29;
0x0001af80 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_far_limit__n */
0x0001af84 addiu a0, a0, -0x1fec | a0 += -0x1fec;
0x0001af88 jalr t9 | t9 ();
0x0001af8c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0001af90 b 0x1af08 | goto label_0;
| label_4:
0x0001af94 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001af98 jalr t9 | t9 ();
0x0001af9c nop |
0x0001afa0 lui gp, 5 |
0x0001afa4 addiu gp, gp, 0x3be0 |
0x0001afa8 addu gp, gp, t9 | gp += t9;
0x0001afac addiu sp, sp, -0x50 |
0x0001afb0 lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001afb4 sw s2, 0x3c(sp) | *(var_3ch_4) = s2;
0x0001afb8 lw s2, -0x7a04(gp) | s2 = *((gp - 7809));
0x0001afbc sw ra, 0x4c(sp) | *(var_4ch_4) = ra;
0x0001afc0 sw gp, 0x20(sp) | *(var_20h_4) = gp;
0x0001afc4 lw v0, (s2) | v0 = *(s2);
0x0001afc8 sw s3, 0x40(sp) | *(var_40h_4) = s3;
0x0001afcc sw s1, 0x38(sp) | *(var_38h_2) = s1;
0x0001afd0 sw s0, 0x34(sp) | *(var_34h_4) = s0;
0x0001afd4 sw s5, 0x48(sp) | *(var_48h_4) = s5;
0x0001afd8 sw s4, 0x44(sp) | *(var_44h_4) = s4;
0x0001afdc sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0001afe0 sw zero, 0x28(sp) | *(var_28h) = 0;
0x0001afe4 move s1, a0 | s1 = a0;
0x0001afe8 move s3, a1 | s3 = a1;
0x0001afec bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001aff0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001aff4 move a1, v0 | a1 = v0;
0x0001aff8 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001affc move a0, s1 | a0 = s1;
0x0001b000 jalr t9 | t9 ();
0x0001b004 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b008 move a0, v0 | a0 = v0;
0x0001b00c lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001b010 move s0, v0 | s0 = v0;
0x0001b014 jalr t9 | t9 ();
0x0001b018 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b01c move a0, s1 | a0 = s1;
0x0001b020 lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.0001a154 */
0x0001b024 addiu t9, t9, -0x5eac | t9 += -0x5eac;
0x0001b028 sw zero, 0x1c(s0) | *((s0 + 7)) = 0;
0x0001b02c bal 0x1a154 | fcn_0001a154 ();
0x0001b030 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (v0 == 0) {
0x0001b034 beqz v0, 0x1b188 | goto label_6;
| }
0x0001b038 lw v1, 0x24(s0) | v1 = *((s0 + 9));
0x0001b03c addiu v0, zero, 1 | v0 = 1;
0x0001b040 lw s5, 0x20(s0) | s5 = *((s0 + 8));
| if (v1 == v0) {
0x0001b044 beq v1, v0, 0x1b1c8 | goto label_7;
| }
| label_2:
0x0001b048 lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x0001b04c move a0, s3 | a0 = s3;
0x0001b050 lw s4, 0x14(s0) | s4 = *((s0 + 5));
0x0001b054 lw s3, 8(s0) | s3 = *((s0 + 2));
0x0001b058 jalr t9 | t9 ();
0x0001b05c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b060 move a1, s4 | a1 = s4;
0x0001b064 move a3, v0 | a3 = v0;
0x0001b068 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b06c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001b070 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.FocusPosition */
0x0001b074 addiu a2, a2, -0x1fa8 | a2 += -0x1fa8;
| /* str._ssv_ */
0x0001b078 addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0001b07c jalr t9 | t9 ();
0x0001b080 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b084 move a2, v0 | a2 = v0;
0x0001b088 addiu s4, sp, 0x28 | s4 = sp + 0x28;
0x0001b08c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001b090 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001b094 addiu v0, zero, -1 | v0 = -1;
0x0001b098 move a0, s3 | a0 = s3;
0x0001b09c move a3, zero | a3 = 0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001b0a0 addiu a1, a1, -0x219c | a1 += -0x219c;
0x0001b0a4 sw s4, 0x18(sp) | *(var_18h_5) = s4;
0x0001b0a8 sw zero, 0x14(sp) | *(var_14h_5) = 0;
0x0001b0ac sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x0001b0b0 jalr t9 | t9 ();
0x0001b0b4 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b0b8 move s3, v0 | s3 = v0;
0x0001b0bc lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001b0c0 move a0, s0 | a0 = s0;
0x0001b0c4 jalr t9 | t9 ();
0x0001b0c8 lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (s3 == 0) {
0x0001b0cc beqz s3, 0x1b144 | goto label_8;
| }
0x0001b0d0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001b0d4 move a0, s3 | a0 = s3;
0x0001b0d8 jalr t9 | t9 ();
0x0001b0dc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b0e0 addiu v0, zero, 1 | v0 = 1;
0x0001b0e4 sw v0, 0x14(sp) | *(var_14h_5) = v0;
0x0001b0e8 lw t9, -0x7f50(gp) | t9 = *(gp);
0x0001b0ec move v0, zero | v0 = 0;
0x0001b0f0 sw v0, 0x10(sp) | *(var_10h_5) = v0;
0x0001b0f4 move a3, s5 | a3 = s5;
0x0001b0f8 move a2, zero | a2 = 0;
0x0001b0fc addiu a1, zero, 1 | a1 = 1;
| /* fcn.0001a62c */
0x0001b100 addiu t9, t9, -0x59d4 | t9 += -0x59d4;
0x0001b104 move a0, s1 | a0 = s1;
0x0001b108 bal 0x1a62c | fcn_0001a62c ();
0x0001b10c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b110 sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
| do {
| label_1:
0x0001b114 lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x0001b118 lw v1, (s2) | v1 = *(s2);
0x0001b11c lw ra, 0x4c(sp) | ra = *(var_4ch_4);
| if (a0 != v1) {
0x0001b120 bne a0, v1, 0x1b1f4 | goto label_9;
| }
0x0001b124 lw s5, 0x48(sp) | s5 = *(var_48h_4);
0x0001b128 lw s4, 0x44(sp) | s4 = *(var_44h_4);
0x0001b12c lw s3, 0x40(sp) | s3 = *(var_40h_4);
0x0001b130 lw s2, 0x3c(sp) | s2 = *(var_3ch_4);
0x0001b134 lw s1, 0x38(sp) | s1 = *(var_38h_2);
0x0001b138 lw s0, 0x34(sp) | s0 = *(var_34h_4);
0x0001b13c addiu sp, sp, 0x50 |
0x0001b140 jr ra | return v0;
| label_8:
0x0001b144 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001b148 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0001b14c lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0001b150 beqz v0, 0x1b1a0 | goto label_10;
| }
0x0001b154 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b158 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001b15c lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_focus_position:__s_n */
0x0001b160 addiu a2, a2, -0x1f98 | a2 += -0x1f98;
0x0001b164 addiu a1, zero, 1 | a1 = 1;
0x0001b168 jalr t9 | t9 ();
0x0001b16c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b170 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001b174 move a0, s4 | a0 = s4;
0x0001b178 jalr t9 | t9 ();
0x0001b17c lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b180 addiu v0, zero, 1 | v0 = 1;
0x0001b184 b 0x1b114 |
| } while (1);
| label_6:
0x0001b188 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001b18c move a0, s0 | a0 = s0;
0x0001b190 jalr t9 | t9 ();
0x0001b194 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b198 addiu v0, zero, 1 | v0 = 1;
0x0001b19c b 0x1b114 | goto label_1;
| label_10:
0x0001b1a0 move a3, a0 | a3 = a0;
0x0001b1a4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001b1a8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001b1ac addiu a2, zero, 0x2d | a2 = 0x2d;
0x0001b1b0 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_focus_position_n */
0x0001b1b4 addiu a0, a0, -0x1f64 | a0 += -0x1f64;
0x0001b1b8 jalr t9 | t9 ();
0x0001b1bc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b1c0 addiu v0, zero, 1 | v0 = 1;
0x0001b1c4 b 0x1b114 | goto label_1;
| label_7:
0x0001b1c8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001b1cc lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0001b1d0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b1d4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001b1d8 lw a0, (v0) | a0 = *(v0);
| /* str.focusd_imaged_proxy_set_focus */
0x0001b1dc addiu a3, a3, -0x1bc0 | a3 += -0x1bc0;
| /* str._4__s__already_moving_n */
0x0001b1e0 addiu a2, a2, -0x1fc0 | a2 += -0x1fc0;
0x0001b1e4 addiu a1, zero, 1 | a1 = 1;
0x0001b1e8 jalr t9 | t9 ();
0x0001b1ec lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0001b1f0 b 0x1b048 | goto label_2;
| label_9:
0x0001b1f4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001b1f8 jalr t9 | t9 ();
0x0001b1fc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1ac58 */
| #include <stdint.h>
|
; (fcn) sym.focusd_imaged_proxy_set_af_near_limit () | void focusd_imaged_proxy_set_af_near_limit () {
0x0001ac58 lui gp, 5 |
0x0001ac5c addiu gp, gp, 0x3f28 |
0x0001ac60 addu gp, gp, t9 | gp += t9;
0x0001ac64 addiu sp, sp, -0x50 |
0x0001ac68 lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001ac6c sw s1, 0x40(sp) | *(var_40h_2) = s1;
0x0001ac70 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001ac74 sw ra, 0x4c(sp) | *(var_4ch_2) = ra;
0x0001ac78 sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x0001ac7c lw v0, (s1) | v0 = *(s1);
0x0001ac80 sw s3, 0x48(sp) | *(var_48h_2) = s3;
0x0001ac84 sw s2, 0x44(sp) | *(var_44h_2) = s2;
0x0001ac88 sw s0, 0x3c(sp) | *(var_3ch_2) = s0;
0x0001ac8c sw a0, 0x2c(sp) | *(var_2ch_2) = a0;
0x0001ac90 sw v0, 0x34(sp) | *(var_34h_2) = v0;
0x0001ac94 sw zero, 0x30(sp) | *(var_30h_2) = 0;
0x0001ac98 move s2, a1 | s2 = a1;
0x0001ac9c bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001aca0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001aca4 lw a0, 0x2c(sp) | a0 = *(var_2ch_2);
0x0001aca8 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001acac move a1, v0 | a1 = v0;
0x0001acb0 jalr t9 | t9 ();
0x0001acb4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001acb8 move a0, v0 | a0 = v0;
0x0001acbc lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001acc0 move s0, v0 | s0 = v0;
0x0001acc4 jalr t9 | t9 ();
0x0001acc8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001accc move a0, s2 | a0 = s2;
0x0001acd0 lw s3, 0x14(s0) | s3 = *((s0 + 5));
0x0001acd4 lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x0001acd8 lw s2, 8(s0) | s2 = *((s0 + 2));
0x0001acdc jalr t9 | t9 ();
0x0001ace0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001ace4 move a1, s3 | a1 = s3;
0x0001ace8 move a3, v0 | a3 = v0;
0x0001acec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001acf0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001acf4 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.AFNearLimit */
0x0001acf8 addiu a2, a2, -0x2090 | a2 += -0x2090;
| /* str._ssv_ */
0x0001acfc addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0001ad00 jalr t9 | t9 ();
0x0001ad04 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001ad08 move a2, v0 | a2 = v0;
0x0001ad0c addiu s3, sp, 0x30 | s3 = sp + 0x30;
0x0001ad10 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001ad14 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001ad18 addiu v0, zero, -1 | v0 = -1;
0x0001ad1c move a0, s2 | a0 = s2;
0x0001ad20 move a3, zero | a3 = 0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001ad24 addiu a1, a1, -0x219c | a1 += -0x219c;
0x0001ad28 sw s3, 0x18(sp) | *(var_18h_2) = s3;
0x0001ad2c sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0001ad30 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0001ad34 jalr t9 | t9 ();
0x0001ad38 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001ad3c move s2, v0 | s2 = v0;
0x0001ad40 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001ad44 move a0, s0 | a0 = s0;
0x0001ad48 jalr t9 | t9 ();
0x0001ad4c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (s2 == 0) {
0x0001ad50 beqz s2, 0x1ad8c | goto label_1;
| }
0x0001ad54 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001ad58 move a0, s2 | a0 = s2;
0x0001ad5c jalr t9 | t9 ();
0x0001ad60 lw gp, 0x20(sp) | gp = *(var_20h_2);
| do {
| label_0:
0x0001ad64 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x0001ad68 lw v0, (s1) | v0 = *(s1);
0x0001ad6c lw ra, 0x4c(sp) | ra = *(var_4ch_2);
| if (v1 != v0) {
0x0001ad70 bne v1, v0, 0x1adf0 | goto label_2;
| }
0x0001ad74 lw s3, 0x48(sp) | s3 = *(var_48h_2);
0x0001ad78 lw s2, 0x44(sp) | s2 = *(var_44h_2);
0x0001ad7c lw s1, 0x40(sp) | s1 = *(var_40h_2);
0x0001ad80 lw s0, 0x3c(sp) | s0 = *(var_3ch_2);
0x0001ad84 addiu sp, sp, 0x50 |
0x0001ad88 jr ra | return v0;
| label_1:
0x0001ad8c lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001ad90 lw v0, 0x30(sp) | v0 = *(var_30h_2);
0x0001ad94 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0001ad98 beqz v0, 0x1adcc | goto label_3;
| }
0x0001ad9c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001ada0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001ada4 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_near_limit_:__s_n */
0x0001ada8 addiu a2, a2, -0x2084 | a2 += -0x2084;
0x0001adac addiu a1, zero, 1 | a1 = 1;
0x0001adb0 jalr t9 | t9 ();
0x0001adb4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001adb8 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001adbc move a0, s3 | a0 = s3;
0x0001adc0 jalr t9 | t9 ();
0x0001adc4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001adc8 b 0x1ad64 |
| } while (1);
| label_3:
0x0001adcc move a3, a0 | a3 = a0;
0x0001add0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001add4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001add8 addiu a2, zero, 0x2a | a2 = 0x2a;
0x0001addc addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_near_limit__n */
0x0001ade0 addiu a0, a0, -0x2054 | a0 += -0x2054;
0x0001ade4 jalr t9 | t9 ();
0x0001ade8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001adec b 0x1ad64 | goto label_0;
| label_2:
0x0001adf0 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001adf4 jalr t9 | t9 ();
0x0001adf8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1bd6c */
| #include <stdint.h>
|
; (fcn) sym.focusd_imaged_proxy_set_focus_window () | void focusd_imaged_proxy_set_focus_window () {
0x0001bd6c lui gp, 5 |
0x0001bd70 addiu gp, gp, 0x2e14 |
0x0001bd74 addu gp, gp, t9 | gp += t9;
0x0001bd78 addiu sp, sp, -0x50 |
0x0001bd7c lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001bd80 sw s1, 0x40(sp) | *(var_40h_2) = s1;
0x0001bd84 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001bd88 sw ra, 0x4c(sp) | *(var_4ch_2) = ra;
0x0001bd8c sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x0001bd90 lw v0, (s1) | v0 = *(s1);
0x0001bd94 sw s3, 0x48(sp) | *(var_48h_2) = s3;
0x0001bd98 sw s2, 0x44(sp) | *(var_44h_2) = s2;
0x0001bd9c sw s0, 0x3c(sp) | *(var_3ch_2) = s0;
0x0001bda0 sw a0, 0x2c(sp) | *(var_2ch) = a0;
0x0001bda4 sw v0, 0x34(sp) | *(var_34h_2) = v0;
0x0001bda8 sw zero, 0x30(sp) | *(var_30h_2) = 0;
0x0001bdac move s2, a1 | s2 = a1;
0x0001bdb0 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001bdb4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001bdb8 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0001bdbc lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001bdc0 move a1, v0 | a1 = v0;
0x0001bdc4 jalr t9 | t9 ();
0x0001bdc8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001bdcc move a0, v0 | a0 = v0;
0x0001bdd0 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001bdd4 move s0, v0 | s0 = v0;
0x0001bdd8 jalr t9 | t9 ();
0x0001bddc lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001bde0 move a0, s2 | a0 = s2;
0x0001bde4 lw s3, 0x14(s0) | s3 = *((s0 + 5));
0x0001bde8 lw t9, -0x7900(gp) | t9 = sym.imp.g_variant_new_string;
0x0001bdec lw s2, 8(s0) | s2 = *((s0 + 2));
0x0001bdf0 jalr t9 | t9 ();
0x0001bdf4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001bdf8 move a1, s3 | a1 = s3;
0x0001bdfc move a3, v0 | a3 = v0;
0x0001be00 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001be04 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001be08 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.CustomFocusArea0 */
0x0001be0c addiu a2, a2, -0x1c7c | a2 += -0x1c7c;
| /* str._ssv_ */
0x0001be10 addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0001be14 jalr t9 | t9 ();
0x0001be18 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001be1c move a2, v0 | a2 = v0;
0x0001be20 addiu s3, sp, 0x30 | s3 = sp + 0x30;
0x0001be24 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001be28 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001be2c addiu v0, zero, -1 | v0 = -1;
0x0001be30 move a0, s2 | a0 = s2;
0x0001be34 move a3, zero | a3 = 0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001be38 addiu a1, a1, -0x219c | a1 += -0x219c;
0x0001be3c sw s3, 0x18(sp) | *(var_18h) = s3;
0x0001be40 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0001be44 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001be48 jalr t9 | t9 ();
0x0001be4c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001be50 move s2, v0 | s2 = v0;
0x0001be54 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001be58 move a0, s0 | a0 = s0;
0x0001be5c jalr t9 | t9 ();
0x0001be60 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (s2 == 0) {
0x0001be64 beqz s2, 0x1bea0 | goto label_1;
| }
0x0001be68 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001be6c move a0, s2 | a0 = s2;
0x0001be70 jalr t9 | t9 ();
0x0001be74 lw gp, 0x20(sp) | gp = *(var_20h_2);
| do {
| label_0:
0x0001be78 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x0001be7c lw v0, (s1) | v0 = *(s1);
0x0001be80 lw ra, 0x4c(sp) | ra = *(var_4ch_2);
| if (v1 != v0) {
0x0001be84 bne v1, v0, 0x1bf04 | goto label_2;
| }
0x0001be88 lw s3, 0x48(sp) | s3 = *(var_48h_2);
0x0001be8c lw s2, 0x44(sp) | s2 = *(var_44h_2);
0x0001be90 lw s1, 0x40(sp) | s1 = *(var_40h_2);
0x0001be94 lw s0, 0x3c(sp) | s0 = *(var_3ch_2);
0x0001be98 addiu sp, sp, 0x50 |
0x0001be9c jr ra | return v0;
| label_1:
0x0001bea0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001bea4 lw v0, 0x30(sp) | v0 = *(var_30h_2);
0x0001bea8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0001beac beqz v0, 0x1bee0 | goto label_3;
| }
0x0001beb0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001beb4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001beb8 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_focus_window:__s_n */
0x0001bebc addiu a2, a2, -0x1c68 | a2 += -0x1c68;
0x0001bec0 addiu a1, zero, 1 | a1 = 1;
0x0001bec4 jalr t9 | t9 ();
0x0001bec8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001becc lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001bed0 move a0, s3 | a0 = s3;
0x0001bed4 jalr t9 | t9 ();
0x0001bed8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001bedc b 0x1be78 |
| } while (1);
| label_3:
0x0001bee0 move a3, a0 | a3 = a0;
0x0001bee4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001bee8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001beec addiu a2, zero, 0x2b | a2 = 0x2b;
0x0001bef0 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_focus_window_n */
0x0001bef4 addiu a0, a0, -0x1c38 | a0 += -0x1c38;
0x0001bef8 jalr t9 | t9 ();
0x0001befc lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0001bf00 b 0x1be78 | goto label_0;
| label_2:
0x0001bf04 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001bf08 jalr t9 | t9 ();
0x0001bf0c nop |
0x0001bf10 jr ra | return v0;
0x0001bf14 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x1b200 */
| #include <stdint.h>
|
; (fcn) sym.focusd_imaged_proxy_stop_focus () | void focusd_imaged_proxy_stop_focus () {
0x0001b200 lui gp, 5 |
0x0001b204 addiu gp, gp, 0x3980 |
0x0001b208 addu gp, gp, t9 | gp += t9;
0x0001b20c addiu sp, sp, -0x48 |
0x0001b210 lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0001b214 sw s1, 0x34(sp) | *(var_34h_5) = s1;
0x0001b218 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0001b21c sw ra, 0x44(sp) | *(var_44h_5) = ra;
0x0001b220 sw gp, 0x20(sp) | *(var_20h_5) = gp;
0x0001b224 lw v0, (s1) | v0 = *(s1);
0x0001b228 sw s4, 0x40(sp) | *(var_40h_5) = s4;
0x0001b22c sw s3, 0x3c(sp) | *(var_3ch_5) = s3;
0x0001b230 sw s2, 0x38(sp) | *(var_38h_3) = s2;
0x0001b234 sw s0, 0x30(sp) | *(var_30h_4) = s0;
0x0001b238 sw zero, 0x28(sp) | *(var_28h_2) = 0;
0x0001b23c sw v0, 0x2c(sp) | *(var_2ch_5) = v0;
0x0001b240 move s2, a0 | s2 = a0;
0x0001b244 bal 0x19730 | sym_focusd_imaged_proxy_get_type ();
0x0001b248 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b24c move a1, v0 | a1 = v0;
0x0001b250 lw t9, -0x7a84(gp) | t9 = sym.imp.g_type_instance_get_private;
0x0001b254 move a0, s2 | a0 = s2;
0x0001b258 jalr t9 | t9 ();
0x0001b25c lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b260 move s0, v0 | s0 = v0;
0x0001b264 move a0, v0 | a0 = v0;
0x0001b268 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0001b26c addiu v0, zero, 1 | v0 = 1;
0x0001b270 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
0x0001b274 jalr t9 | t9 ();
0x0001b278 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b27c addiu a0, zero, 1 | a0 = 1;
0x0001b280 lw s3, 8(s0) | s3 = *((s0 + 2));
0x0001b284 lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x0001b288 lw s4, 0x14(s0) | s4 = *((s0 + 5));
0x0001b28c jalr t9 | t9 ();
0x0001b290 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b294 move a1, s4 | a1 = s4;
0x0001b298 move a3, v0 | a3 = v0;
0x0001b29c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b2a0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001b2a4 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.FocusStop */
0x0001b2a8 addiu a2, a2, -0x1f34 | a2 += -0x1f34;
| /* str._ssv_ */
0x0001b2ac addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0001b2b0 jalr t9 | t9 ();
0x0001b2b4 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b2b8 move a2, v0 | a2 = v0;
0x0001b2bc addiu s4, sp, 0x28 | s4 = sp + 0x28;
0x0001b2c0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0001b2c4 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0001b2c8 addiu v0, zero, -1 | v0 = -1;
0x0001b2cc move a0, s3 | a0 = s3;
0x0001b2d0 move a3, zero | a3 = 0;
| /* str.org.freedesktop.DBus.Properties.Set */
0x0001b2d4 addiu a1, a1, -0x219c | a1 += -0x219c;
0x0001b2d8 sw s4, 0x18(sp) | *(var_18h_4) = s4;
0x0001b2dc sw zero, 0x14(sp) | *(var_14h_4) = 0;
0x0001b2e0 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x0001b2e4 jalr t9 | t9 ();
0x0001b2e8 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b2ec move s3, v0 | s3 = v0;
0x0001b2f0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0001b2f4 move a0, s0 | a0 = s0;
0x0001b2f8 jalr t9 | t9 ();
0x0001b2fc lw gp, 0x20(sp) | gp = *(var_20h_5);
| if (s3 == 0) {
0x0001b300 beqz s3, 0x1b360 | goto label_1;
| }
0x0001b304 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0001b308 move a0, s3 | a0 = s3;
0x0001b30c jalr t9 | t9 ();
0x0001b310 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b314 move a2, zero | a2 = 0;
0x0001b318 addiu a1, zero, 1 | a1 = 1;
0x0001b31c lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.0001a4d0 */
0x0001b320 addiu t9, t9, -0x5b30 | t9 += -0x5b30;
0x0001b324 move a0, s2 | a0 = s2;
0x0001b328 bal 0x1a4d0 | fcn_0001a4d0 ();
0x0001b32c lw gp, 0x20(sp) | gp = *(var_20h_5);
| if (v0 == 0) {
0x0001b330 beqz v0, 0x1b3a0 | goto label_2;
| }
| do {
| label_0:
0x0001b334 lw v1, 0x2c(sp) | v1 = *(var_2ch_5);
0x0001b338 lw v0, (s1) | v0 = *(s1);
0x0001b33c lw ra, 0x44(sp) | ra = *(var_44h_5);
| if (v1 != v0) {
0x0001b340 bne v1, v0, 0x1b3ec | goto label_3;
| }
0x0001b344 lw s4, 0x40(sp) | s4 = *(var_40h_5);
0x0001b348 lw s3, 0x3c(sp) | s3 = *(var_3ch_5);
0x0001b34c lw s2, 0x38(sp) | s2 = *(var_38h_3);
0x0001b350 lw s1, 0x34(sp) | s1 = *(var_34h_5);
0x0001b354 lw s0, 0x30(sp) | s0 = *(var_30h_4);
0x0001b358 addiu sp, sp, 0x48 |
0x0001b35c jr ra | return v0;
| label_1:
0x0001b360 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0001b364 lw v0, 0x28(sp) | v0 = *(var_28h_2);
0x0001b368 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0001b36c beqz v0, 0x1b3c8 | goto label_4;
| }
0x0001b370 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0001b374 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0001b378 lw a3, 8(v0) | a3 = *((v0 + 2));
| /* str._4_Failed_to_set_ImageControl_stop_focus_:__s_n */
0x0001b37c addiu a2, a2, -0x1ee8 | a2 += -0x1ee8;
0x0001b380 addiu a1, zero, 1 | a1 = 1;
0x0001b384 jalr t9 | t9 ();
0x0001b388 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b38c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0001b390 move a0, s4 | a0 = s4;
0x0001b394 jalr t9 | t9 ();
0x0001b398 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b39c b 0x1b334 |
| } while (1);
| label_2:
0x0001b3a0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0001b3a4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001b3a8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001b3ac lw a3, (v0) | a3 = *(v0);
0x0001b3b0 addiu a2, zero, 0x3d | a2 = 0x3d;
0x0001b3b4 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Stop_focus_failed__could_not_get_states_from_status_cache_n */
0x0001b3b8 addiu a0, a0, -0x1f28 | a0 += -aav.0x00001f28;
0x0001b3bc jalr t9 | t9 ();
0x0001b3c0 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b3c4 b 0x1b334 | goto label_0;
| label_4:
0x0001b3c8 move a3, a0 | a3 = a0;
0x0001b3cc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0001b3d0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0001b3d4 addiu a2, zero, 0x2a | a2 = 0x2a;
0x0001b3d8 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_set_ImageControl_stop_focus__n */
0x0001b3dc addiu a0, a0, -0x1eb8 | a0 += -0x1eb8;
0x0001b3e0 jalr t9 | t9 ();
0x0001b3e4 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0001b3e8 b 0x1b334 | goto label_0;
| label_3:
0x0001b3ec lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001b3f0 jalr t9 | t9 ();
0x0001b3f4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x37fa4 */
| #include <stdint.h>
|
; (fcn) sym.focusd_measure_focus_new () | void focusd_measure_focus_new () {
0x00037fa4 lui gp, 3 |
0x00037fa8 addiu gp, gp, 0x6bdc |
0x00037fac addu gp, gp, t9 | gp += t9;
0x00037fb0 addiu sp, sp, -0x28 |
0x00037fb4 lw t9, -0x7780(gp) | t9 = sym.imp.g_type_from_name;
0x00037fb8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00037fbc sw s1, 0x20(sp) | *(var_20h) = s1;
0x00037fc0 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00037fc4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00037fc8 move s1, a0 | s1 = a0;
0x00037fcc move s0, a1 | s0 = a1;
0x00037fd0 jalr t9 | t9 ();
0x00037fd4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00037fd8 beqz v0, 0x380b4 |
0x00037fdc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037fe0 lw t9, -0x78ec(gp) | t9 = sym.imp.g_object_new;
0x00037fe4 move a2, s0 | a2 = s0;
0x00037fe8 move a3, zero | a3 = 0;
| /* str.source */
0x00037fec addiu a1, a1, -0x615c | a1 += -0x615c;
0x00037ff0 move a0, v0 | a0 = v0;
0x00037ff4 jalr t9 | t9 ();
0x00037ff8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037ffc lw t9, -0x7f54(gp) | t9 = sym.focusd_measure_focus_get_type;
0x00038000 move s0, v0 | s0 = v0;
0x00038004 bal 0x1c79c | sym_focusd_measure_focus_get_type ();
0x00038008 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != 0) {
0x0003800c beqz s0, 0x3806c |
0x00038010 lw v1, (s0) | v1 = *(s0);
0x00038014 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x00038018 beqz v1, 0x38028 |
0x0003801c lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x00038020 beql v1, v0, 0x38040 | goto label_0;
| }
0x00038024 lw t9, -0x7f54(gp) | t9 = sym.focusd_measure_focus_get_type;
| }
0x00038028 move a1, v0 | a1 = v0;
0x0003802c move a0, s0 | a0 = s0;
0x00038030 jalr t9 | t9 ();
0x00038034 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00038038 beqz v0, 0x3806c | goto label_1;
| }
0x0003803c lw t9, -0x7f54(gp) | t9 = sym.focusd_measure_focus_get_type;
| label_0:
0x00038040 bal 0x1c79c | sym_focusd_measure_focus_get_type ();
0x00038044 nop |
0x00038048 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003804c lw ra, 0x24(sp) | ra = *(var_24h);
0x00038050 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00038054 move a0, s0 | a0 = s0;
0x00038058 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0003805c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00038060 move a1, v0 | a1 = v0;
0x00038064 addiu sp, sp, 0x28 |
0x00038068 jr t9 | t9 ();
| }
| label_1:
0x0003806c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00038070 move a0, s0 | a0 = s0;
0x00038074 jalr t9 | t9 ();
0x00038078 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003807c move a3, s1 | a3 = s1;
0x00038080 addiu a1, zero, 1 | a1 = 1;
0x00038084 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038088 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003808c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038090 lw a0, (v0) | a0 = *(v0);
| /* str._3_Type_name__s_does_not_specify_a_MeasureFocus_subclass_n */
0x00038094 addiu a2, a2, 0x2de4 | a2 += 0x2de4;
0x00038098 jalr t9 | t9 ();
0x0003809c lw ra, 0x24(sp) | ra = *(var_24h);
0x000380a0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000380a4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000380a8 move v0, zero | v0 = 0;
0x000380ac addiu sp, sp, 0x28 |
0x000380b0 jr ra | return v0;
| }
0x000380b4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000380b8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000380bc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000380c0 lw a0, (v0) | a0 = *(v0);
0x000380c4 move a3, s1 | a3 = s1;
| /* str._3_Unknown_focus_measure_type__s_n */
0x000380c8 addiu a2, a2, 0x2dc0 | a2 += 0x2dc0;
0x000380cc addiu a1, zero, 1 | a1 = 1;
0x000380d0 jalr t9 | t9 ();
0x000380d4 lw ra, 0x24(sp) | ra = *(var_24h);
0x000380d8 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000380dc lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000380e0 move v0, zero | v0 = 0;
0x000380e4 addiu sp, sp, 0x28 |
0x000380e8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x2fef8 */
| #include <stdint.h>
|
; (fcn) sym.focusd_optics_motorized_focus_setup_configuration () | void focusd_optics_motorized_focus_setup_configuration () {
0x0002fef8 lui gp, 4 |
0x0002fefc addiu gp, gp, -0x1378 |
0x0002ff00 addu gp, gp, t9 | gp += t9;
0x0002ff04 addiu sp, sp, -0x68 |
0x0002ff08 lw t9, -0x7cd8(gp) | t9 = sym.focusd_optics_focus_mode_get_type;
0x0002ff0c sw s4, 0x58(sp) | *(var_58h) = s4;
0x0002ff10 lw s4, -0x7a04(gp) | s4 = *((gp - 7809));
0x0002ff14 sw ra, 0x64(sp) | *(var_64h) = ra;
0x0002ff18 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0002ff1c lw v0, (s4) | v0 = *(s4);
0x0002ff20 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0002ff24 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0002ff28 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0002ff2c sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0002ff30 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0002ff34 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0002ff38 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0002ff3c move s0, a0 | s0 = a0;
0x0002ff40 bal 0x17498 | sym_focusd_optics_focus_mode_get_type ();
0x0002ff44 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002ff48 lw t9, -0x79b0(gp) | t9 = sym.imp.g_type_class_peek;
0x0002ff4c move a0, v0 | a0 = v0;
0x0002ff50 jalr t9 | t9 ();
0x0002ff54 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002ff58 lw t9, -0x7cd4(gp) | t9 = *(gp);
0x0002ff5c move s6, v0 | s6 = v0;
0x0002ff60 bal 0x1768c | sym_focusd_focus_temperature_correction_get_type ();
0x0002ff64 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002ff68 lw t9, -0x79b0(gp) | t9 = sym.imp.g_type_class_peek;
0x0002ff6c move a0, v0 | a0 = v0;
0x0002ff70 jalr t9 | t9 ();
0x0002ff74 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002ff78 lw t9, -0x7fb4(gp) | t9 = sym.focusd_optics_get_type;
0x0002ff7c move s5, v0 | s5 = v0;
0x0002ff80 bal 0x228b0 | sym_focusd_optics_get_type ();
0x0002ff84 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002ff88 move a1, v0 | a1 = v0;
0x0002ff8c lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0002ff90 move a0, s0 | a0 = s0;
0x0002ff94 jalr t9 | t9 ();
0x0002ff98 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002ff9c lw s1, 0x10(v0) | s1 = *((v0 + 4));
0x0002ffa0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0002ffa4 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0002ffa8 move a1, s1 | a1 = s1;
| /* str.ImageSource.I_u.Focus */
0x0002ffac addiu a0, a0, -0x6c10 | a0 += -0x6c10;
0x0002ffb0 jalr t9 | t9 ();
0x0002ffb4 lw v1, 0xd4(s0) | v1 = *((s0 + 53));
0x0002ffb8 move s2, v0 | s2 = v0;
0x0002ffbc lw v0, 0x64(v1) | v0 = *((v1 + 25));
0x0002ffc0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0002ffc4 beqz v0, 0x2ffd4 |
0x0002ffc8 lw v0, 0xb8(s0) | v0 = *((s0 + 46));
0x0002ffcc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v0 == 0) {
0x0002ffd0 beqz v0, 0x30654 | goto label_10;
| }
| }
| label_6:
0x0002ffd4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0002ffd8 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
| /* str.Mode */
0x0002ffdc addiu a1, a1, 0x1814 | a1 += 0x1814;
0x0002ffe0 move a0, s2 | a0 = s2;
0x0002ffe4 bal 0x3c4dc | sym_settings_get_string ();
0x0002ffe8 move s3, v0 | s3 = v0;
0x0002ffec lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0002fff0 beqz v0, 0x3002c |
0x0002fff4 lw t9, -0x7944(gp) | t9 = sym.imp.g_type_check_class_cast;
0x0002fff8 addiu a1, zero, 0x30 | a1 = 0x30;
0x0002fffc move a0, s6 | a0 = s6;
0x00030000 jalr t9 | t9 ();
0x00030004 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030008 move a1, s3 | a1 = s3;
0x0003000c lw t9, -0x7aa4(gp) | t9 = sym.imp.g_enum_get_value_by_nick;
0x00030010 move a0, v0 | a0 = v0;
0x00030014 jalr t9 | t9 ();
0x00030018 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003001c beqz v0, 0x3002c |
0x00030020 lw v0, (v0) | v0 = *(v0);
0x00030024 sw v0, 0xc0(s0) | *((s0 + 48)) = v0;
0x00030028 b 0x30050 |
| }
| } else {
0x0003002c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00030030 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00030034 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00030038 lw a3, (v0) | a3 = *(v0);
0x0003003c addiu a2, zero, 0x27 | a2 = 0x27;
0x00030040 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_focus_mode_parameter_n */
0x00030044 addiu a0, a0, 0x181c | a0 += 0x181c;
0x00030048 jalr t9 | t9 ();
0x0003004c lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x00030050 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00030054 move a0, s3 | a0 = s3;
0x00030058 jalr t9 | t9 ();
0x0003005c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030060 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x00030064 addiu a3, zero, 7 | a3 = 7;
0x00030068 lw t9, -0x7d44(gp) | t9 = sym.focusd_state_get_int;
0x0003006c move a2, zero | a2 = 0;
0x00030070 move a1, s1 | a1 = s1;
0x00030074 bal 0x33518 | sym_focusd_state_get_int ();
0x00030078 addiu v1, zero, -1 | v1 = -1;
0x0003007c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030080 lw s3, 0xd4(s0) | s3 = *((s0 + 53));
| if (v0 == v1) {
0x00030084 beq v0, v1, 0x30418 | goto label_11;
| }
0x00030088 sw v0, 0xbc(s3) | *((s3 + 47)) = v0;
| label_1:
0x0003008c lw t9, -0x7d44(gp) | t9 = sym.focusd_state_get_int;
0x00030090 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x00030094 addiu a3, zero, 1 | a3 = 1;
0x00030098 move a2, zero | a2 = 0;
0x0003009c move a1, s1 | a1 = s1;
0x000300a0 bal 0x33518 | sym_focusd_state_get_int ();
0x000300a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000300a8 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x000300ac move a1, s1 | a1 = s1;
0x000300b0 lw t9, -0x7d44(gp) | t9 = sym.focusd_state_get_int;
0x000300b4 addiu a3, zero, 2 | a3 = 2;
0x000300b8 move a2, zero | a2 = 0;
0x000300bc sw v0, 0x30(s3) | *((s3 + 12)) = v0;
0x000300c0 bal 0x33518 | sym_focusd_state_get_int ();
0x000300c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000300c8 move a0, v0 | a0 = v0;
0x000300cc lw t9, -0x7f8c(gp) | t9 = *(gp);
0x000300d0 lw s3, 0xd4(s0) | s3 = *((s0 + 53));
0x000300d4 bal 0x44980 | fcn_00044980 ();
0x000300d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000300dc lw t9, -0x7f38(gp) | t9 = *(gp);
0x000300e0 move a0, v0 | a0 = v0;
0x000300e4 bal 0x448b0 | fcn_000448b0 ();
0x000300e8 lw a1, 0x30(s3) | a1 = *((s3 + 12));
0x000300ec lw gp, 0x20(sp) | gp = *(var_20h);
0x000300f0 sw v0, 0x38(s3) | *((s3 + 14)) = v0;
| if (a1 < 0) {
0x000300f4 bltz a1, 0x303ec | goto label_12;
| }
0x000300f8 lw t9, -0x7f20(gp) | t9 = sym.focusd_motor_position_encoding_convert_steps_to_fraction;
0x000300fc lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00030100 bal 0x20834 | sym_focusd_motor_position_encoding_convert_steps_to_fraction ();
0x00030104 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030108 lw s3, 0xd4(s0) | s3 = *((s0 + 53));
0x0003010c move a1, v1 | a1 = v1;
0x00030110 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00030114 move a0, v0 | a0 = v0;
0x00030118 bal 0x47280 | fcn_00047280 ();
0x0003011c lw v1, 0x44(s3) | v1 = *((s3 + 17));
0x00030120 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030124 sw v0, 0x2c(s3) | *((s3 + 11)) = v0;
| if (v1 != 0) {
0x00030128 bnez v1, 0x3057c | goto label_13;
| }
0x0003012c sw v0, 0x28(s3) | *((s3 + 10)) = v0;
0x00030130 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00030134 lw v0, -0x5cb8(v0) | v0 = *((v0 - 5934));
0x00030138 sw v0, 0x34(s3) | *((s3 + 13)) = v0;
| label_0:
0x0003013c lw s1, -0x7eec(gp) | s1 = *(gp);
0x00030140 move a2, zero | a2 = 0;
| /* fcn.0002833c */
0x00030144 addiu s1, s1, -0x7cc4 | s1 += -0x7cc4;
0x00030148 move a1, s2 | a1 = s2;
0x0003014c move t9, s1 | t9 = s1;
0x00030150 move a0, s0 | a0 = s0;
0x00030154 bal 0x2833c | fcn_0002833c ();
0x00030158 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003015c beqz v0, 0x303a0 | goto label_14;
| }
0x00030160 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00030164 addiu a0, zero, 0xb | a0 = 0xb;
0x00030168 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0003016c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030170 bnez v0, 0x30384 |
| while (v0 != 0) {
0x00030174 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x00030178 lw v0, 0x60(v0) | v0 = *((v0 + 24));
0x0003017c lw a1, -0x7fd8(gp) | a1 = *(gp);
| if (v0 != 0) {
0x00030180 bnez v0, 0x30680 | goto label_15;
| }
| label_7:
0x00030184 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00030188 lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x0003018c addiu a2, s0, 0xc4 | a2 = s0 + 0xc4;
| /* str.NearLimit */
0x00030190 addiu a1, a1, -0x5260 | a1 += -0x5260;
0x00030194 move a0, s2 | a0 = s2;
0x00030198 bal 0x3c714 | sym_settings_get_float ();
0x0003019c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000301a0 bnez v0, 0x3052c | goto label_16;
| }
0x000301a4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000301a8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000301ac lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000301b0 lw a3, (v0) | a3 = *(v0);
0x000301b4 addiu a2, zero, 0x27 | a2 = 0x27;
0x000301b8 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Failed_to_read_near_limit_parameter_n */
0x000301bc addiu a0, a0, 0x18f0 | a0 += 0x18f0;
0x000301c0 jalr t9 | t9 ();
0x000301c4 lw gp, 0x20(sp) | gp = *(var_20h);
| label_5:
0x000301c8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000301cc lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x000301d0 addiu a2, s0, 0xcc | a2 = s0 + 0xcc;
| /* str.FarLimit */
0x000301d4 addiu a1, a1, -0x5248 | a1 += -0x5248;
0x000301d8 move a0, s2 | a0 = s2;
0x000301dc bal 0x3c714 | sym_settings_get_float ();
0x000301e0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000301e4 bnez v0, 0x30424 | goto label_17;
| }
0x000301e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000301ec lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000301f0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000301f4 lw a3, (v0) | a3 = *(v0);
0x000301f8 addiu a2, zero, 0x26 | a2 = 0x26;
0x000301fc addiu a1, zero, 1 | a1 = 1;
| /* str._6_Failed_to_read_far_limit_parameter_n */
0x00030200 addiu a0, a0, 0x1918 | a0 += 0x1918;
0x00030204 jalr t9 | t9 ();
0x00030208 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003020c lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x00030210 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00030214 bal 0x1fc14 | sym_focusd_motor_length ();
0x00030218 addiu v0, v0, -1 | v0 += -1;
0x0003021c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030220 sw v0, 0xd0(s0) | *((s0 + 52)) = v0;
0x00030224 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x00030228 lw v0, 0x44(v0) | v0 = *((v0 + 17));
0x0003022c lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (v0 == 0) {
0x00030230 beqz v0, 0x3049c | goto label_18;
| }
0x00030234 lw a0, 0xb8(s0) | a0 = *((s0 + 46));
| label_2:
0x00030238 lw t9, -0x7de8(gp) | t9 = sym.focusd_optics_motorized_position;
| if (a0 == 0) {
0x0003023c beqz a0, 0x30734 | goto label_19;
| }
0x00030240 addiu a1, zero, 1 | a1 = 1;
0x00030244 bal 0x25604 | sym_focusd_optics_motorized_position ();
0x00030248 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003024c addiu s1, sp, 0x34 | s1 = sp + 0x34;
0x00030250 move a1, v0 | a1 = v0;
0x00030254 lw t9, -0x7f50(gp) | t9 = *(gp);
0x00030258 move a2, s1 | a2 = s1;
| /* fcn.000273b0 */
0x0003025c addiu t9, t9, 0x73b0 | t9 += 0x73b0;
0x00030260 move a0, s0 | a0 = s0;
0x00030264 bal 0x273b0 | fcn_000273b0 ();
0x00030268 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003026c move a1, s1 | a1 = s1;
0x00030270 lw t9, -0x7eec(gp) | t9 = *(gp);
| /* fcn.000280bc */
0x00030274 addiu t9, t9, -0x7f44 | t9 += -0x7f44;
0x00030278 move a0, s0 | a0 = s0;
0x0003027c bal 0x280bc | fcn_000280bc ();
0x00030280 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x00030284 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030288 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0003028c lw v0, 0x44(v0) | v0 = *((v0 + 17));
0x00030290 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x00030294 lw t9, -0x7f20(gp) | t9 = sym.focusd_motor_position_encoding_convert_steps_to_fraction;
| if (v0 == 0) {
0x00030298 beqz v0, 0x304fc | goto label_20;
| }
| label_3:
0x0003029c bal 0x20834 | sym_focusd_motor_position_encoding_convert_steps_to_fraction ();
0x000302a0 nop |
0x000302a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000302a8 move a1, v1 | a1 = v1;
0x000302ac lw t9, -0x7f18(gp) | t9 = *(gp);
0x000302b0 move a0, v0 | a0 = v0;
0x000302b4 bal 0x47280 | fcn_00047280 ();
0x000302b8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000302bc lw a0, 0xb8(s0) | a0 = *((s0 + 46));
0x000302c0 move a3, zero | a3 = 0;
0x000302c4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000302c8 lw t9, -0x79b8(gp) | t9 = sym.imp.g_object_get;
0x000302cc addiu a2, sp, 0x28 | a2 = sp + 0x28;
| /* str.default_position */
0x000302d0 addiu a1, a1, -0x762c | a1 += -0x762c;
0x000302d4 move s3, v0 | s3 = v0;
0x000302d8 jalr t9 | t9 ();
0x000302dc lw gp, 0x20(sp) | gp = *(var_20h);
0x000302e0 lw a1, 0x28(sp) | a1 = *(var_28h_2);
0x000302e4 move a2, s1 | a2 = s1;
0x000302e8 lw t9, -0x7f50(gp) | t9 = *(gp);
| /* fcn.000273b0 */
0x000302ec addiu t9, t9, 0x73b0 | t9 += 0x73b0;
0x000302f0 move a0, s0 | a0 = s0;
0x000302f4 bal 0x273b0 | fcn_000273b0 ();
0x000302f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000302fc lw s1, 0x34(sp) | s1 = *(var_34h);
0x00030300 move a1, s3 | a1 = s3;
0x00030304 lw t9, -0x7f84(gp) | t9 = *(gp);
0x00030308 move a0, s1 | a0 = s1;
0x0003030c bal 0x43e20 | fcn_00043e20 ();
0x00030310 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 > 0) {
0x00030314 bgtz v0, 0x30700 | goto label_21;
| }
0x00030318 lw s5, 0x3c(sp) | s5 = *(var_3ch_2);
0x0003031c lw t9, -0x7f44(gp) | t9 = *(gp);
0x00030320 move a1, s3 | a1 = s3;
0x00030324 move a0, s5 | a0 = s5;
0x00030328 bal 0x43f40 | fcn_00043f40 ();
0x0003032c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00030330 bltz v0, 0x30808 | goto label_22;
| }
| label_8:
0x00030334 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x00030338 move a1, s1 | a1 = s1;
0x0003033c move a0, s3 | a0 = s3;
0x00030340 bal 0x443a0 | fcn_000443a0 ();
0x00030344 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030348 move a1, s1 | a1 = s1;
0x0003034c move a0, s5 | a0 = s5;
0x00030350 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x00030354 lw s0, 0xd4(s0) | s0 = *((s0 + 53));
0x00030358 move s1, v0 | s1 = v0;
0x0003035c bal 0x443a0 | fcn_000443a0 ();
0x00030360 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030364 move a1, v0 | a1 = v0;
0x00030368 lw t9, -0x7f30(gp) | t9 = *(gp);
0x0003036c move a0, s1 | a0 = s1;
0x00030370 bal 0x439a0 | fcn_000439a0 ();
0x00030374 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030378 sw v0, 0x118(s0) | *(s0) = v0;
0x0003037c addiu s0, zero, 1 | s0 = 1;
0x00030380 b 0x303a4 | goto label_4;
0x00030384 addiu a2, zero, 1 | a2 = 1;
0x00030388 move a1, s2 | a1 = s2;
0x0003038c move t9, s1 | t9 = s1;
0x00030390 move a0, s0 | a0 = s0;
0x00030394 bal 0x2833c | fcn_0002833c ();
0x00030398 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003039c bnez v0, 0x30174 |
| }
| label_14:
0x000303a0 move s0, zero | s0 = 0;
| label_4:
0x000303a4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x000303a8 move a0, s2 | a0 = s2;
0x000303ac jalr t9 | t9 ();
0x000303b0 lw a0, 0x44(sp) | a0 = *(var_44h);
0x000303b4 lw v1, (s4) | v1 = *(s4);
0x000303b8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000303bc move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000303c0 bne a0, v1, 0x30870 | goto label_23;
| }
0x000303c4 lw ra, 0x64(sp) | ra = *(var_64h);
0x000303c8 lw s6, 0x60(sp) | s6 = *(var_60h);
0x000303cc lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x000303d0 lw s4, 0x58(sp) | s4 = *(var_58h);
0x000303d4 lw s3, 0x54(sp) | s3 = *(var_54h);
0x000303d8 lw s2, 0x50(sp) | s2 = *(var_50h);
0x000303dc lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x000303e0 lw s0, 0x48(sp) | s0 = *(var_48h);
0x000303e4 addiu sp, sp, 0x68 |
0x000303e8 jr ra | return v0;
| label_12:
0x000303ec lw t9, -0x7da4(gp) | t9 = sym.focusd_motor_is_synchronized;
0x000303f0 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x000303f4 bal 0x1fab8 | sym_focusd_motor_is_synchronized ();
0x000303f8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000303fc beqz v0, 0x3013c | goto label_0;
| }
0x00030400 lw t9, -0x7eec(gp) | t9 = *(gp);
| /* fcn.000290fc */
0x00030404 addiu t9, t9, -0x6f04 | t9 += -0x6f04;
0x00030408 move a0, s0 | a0 = s0;
0x0003040c bal 0x290fc | fcn_000290fc ();
0x00030410 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030414 b 0x3013c | goto label_0;
| label_11:
0x00030418 addiu v0, zero, 2 | v0 = 2;
0x0003041c sw v0, 0xbc(s3) | *((s3 + 47)) = v0;
0x00030420 b 0x3008c | goto label_1;
| label_17:
0x00030424 lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x00030428 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0003042c lw s1, 0xcc(s0) | s1 = *((s0 + 51));
0x00030430 bal 0x1fc14 | sym_focusd_motor_length ();
0x00030434 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030438 lw t9, -0x7f9c(gp) | t9 = *(gp);
0x0003043c move a0, v0 | a0 = v0;
0x00030440 bal 0x44ab0 | fcn_00044ab0 ();
0x00030444 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030448 move a1, s1 | a1 = s1;
0x0003044c lw t9, -0x7f3c(gp) | t9 = *(gp);
0x00030450 move a0, v0 | a0 = v0;
0x00030454 bal 0x44070 | fcn_00044070 ();
0x00030458 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003045c move a0, v0 | a0 = v0;
0x00030460 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00030464 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x00030468 lw a1, -0x5cbc(v0) | a1 = *((v0 - 5935));
0x0003046c bal 0x443a0 | fcn_000443a0 ();
0x00030470 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030474 lw t9, -0x7ed0(gp) | t9 = *(gp);
0x00030478 move a0, v0 | a0 = v0;
0x0003047c bal 0x44920 | fcn_00044920 ();
0x00030480 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030484 sw v0, 0xd0(s0) | *((s0 + 52)) = v0;
0x00030488 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x0003048c lw v0, 0x44(v0) | v0 = *((v0 + 17));
0x00030490 lw a0, 0xb8(s0) | a0 = *((s0 + 46));
| if (v0 == 0) {
0x00030494 bnel v0, zero, 0x30238 | goto label_2;
| }
0x00030498 lw v0, -0x7fd8(gp) | v0 = *(gp);
| label_18:
0x0003049c lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x000304a0 move v1, zero | v1 = 0;
0x000304a4 lw v0, -0x5cbc(v0) | v0 = *((v0 - 5935));
0x000304a8 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x000304ac sw v1, 0x34(sp) | *(var_34h) = v1;
0x000304b0 sw zero, 0x38(sp) | *(var_38h) = 0;
0x000304b4 sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
0x000304b8 bal 0x1fc14 | sym_focusd_motor_length ();
0x000304bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000304c0 addiu v0, v0, -1 | v0 += -1;
0x000304c4 addiu s1, sp, 0x34 | s1 = sp + 0x34;
0x000304c8 lw t9, -0x7eec(gp) | t9 = *(gp);
0x000304cc move a1, s1 | a1 = s1;
0x000304d0 move a0, s0 | a0 = s0;
| /* fcn.000280bc */
0x000304d4 addiu t9, t9, -0x7f44 | t9 += -0x7f44;
0x000304d8 sw v0, 0x40(sp) | *(var_40h_2) = v0;
0x000304dc bal 0x280bc | fcn_000280bc ();
0x000304e0 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x000304e4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000304e8 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x000304ec lw v0, 0x44(v0) | v0 = *((v0 + 17));
0x000304f0 lw a1, 0x1c(s0) | a1 = *((s0 + 7));
0x000304f4 lw t9, -0x7f20(gp) | t9 = sym.focusd_motor_position_encoding_convert_steps_to_fraction;
| if (v0 != 0) {
0x000304f8 bnez v0, 0x3029c | goto label_3;
| }
| label_20:
0x000304fc bal 0x20834 | sym_focusd_motor_position_encoding_convert_steps_to_fraction ();
0x00030500 nop |
0x00030504 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030508 lw s0, 0xd4(s0) | s0 = *((s0 + 53));
0x0003050c move a0, v0 | a0 = v0;
0x00030510 lw t9, -0x7f18(gp) | t9 = *(gp);
0x00030514 move a1, v1 | a1 = v1;
0x00030518 bal 0x47280 | fcn_00047280 ();
0x0003051c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030520 sw v0, 0x118(s0) | *(s0) = v0;
0x00030524 addiu s0, zero, 1 | s0 = 1;
0x00030528 b 0x303a4 | goto label_4;
| label_16:
0x0003052c lw t9, -0x7d38(gp) | t9 = sym.focusd_motor_length;
0x00030530 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00030534 lw s1, 0xc4(s0) | s1 = *((s0 + 49));
0x00030538 bal 0x1fc14 | sym_focusd_motor_length ();
0x0003053c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030540 lw t9, -0x7f9c(gp) | t9 = *(gp);
0x00030544 addiu a0, v0, -1 | a0 = v0 + -1;
0x00030548 bal 0x44ab0 | fcn_00044ab0 ();
0x0003054c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030550 move a1, s1 | a1 = s1;
0x00030554 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x00030558 move a0, v0 | a0 = v0;
0x0003055c bal 0x44070 | fcn_00044070 ();
0x00030560 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030564 lw t9, -0x7ed0(gp) | t9 = *(gp);
0x00030568 move a0, v0 | a0 = v0;
0x0003056c bal 0x44920 | fcn_00044920 ();
0x00030570 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030574 sw v0, 0xc8(s0) | *((s0 + 50)) = v0;
0x00030578 b 0x301c8 | goto label_5;
| label_13:
0x0003057c lw t9, -0x7c80(gp) | t9 = sym.focusd_state_get_float;
0x00030580 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x00030584 move a1, s1 | a1 = s1;
0x00030588 addiu a3, zero, 3 | a3 = 3;
0x0003058c move a2, zero | a2 = 0;
0x00030590 bal 0x338ec | sym_focusd_state_get_float ();
0x00030594 lw s6, 0xd4(s0) | s6 = *((s0 + 53));
0x00030598 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003059c sw v0, 0x34(s3) | *((s3 + 13)) = v0;
0x000305a0 lw s1, 0x34(s6) | s1 = *((s6 + 13));
0x000305a4 lw t9, -0x7f44(gp) | t9 = *(gp);
0x000305a8 move a1, zero | a1 = 0;
0x000305ac move a0, s1 | a0 = s1;
0x000305b0 bal 0x43f40 | fcn_00043f40 ();
0x000305b4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x000305b8 bltz v0, 0x307e4 | goto label_24;
| }
| label_9:
0x000305bc lw t9, -0x7f84(gp) | t9 = *(gp);
0x000305c0 move a1, zero | a1 = 0;
0x000305c4 move a0, s1 | a0 = s1;
0x000305c8 bal 0x43e20 | fcn_00043e20 ();
0x000305cc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x000305d0 bltz v0, 0x3013c | goto label_0;
| }
0x000305d4 lw t9, -0x7f50(gp) | t9 = *(gp);
0x000305d8 addiu s3, sp, 0x34 | s3 = sp + 0x34;
0x000305dc move a1, s1 | a1 = s1;
0x000305e0 move a2, s3 | a2 = s3;
| /* fcn.000273b0 */
0x000305e4 addiu t9, t9, 0x73b0 | t9 += 0x73b0;
0x000305e8 move a0, s0 | a0 = s0;
0x000305ec bal 0x273b0 | fcn_000273b0 ();
0x000305f0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000305f4 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x000305f8 addiu v1, sp, 0x28 | v1 = sp + 0x28;
0x000305fc sw v1, 0x18(sp) | *(var_18h_2) = v1;
0x00030600 lw t9, -0x7f90(gp) | t9 = *(gp);
0x00030604 lw a0, 0x2c(v0) | a0 = *((v0 + 11));
0x00030608 bal 0x47140 | fcn_00047140 ();
0x0003060c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030610 sw v1, 0x14(sp) | *(var_14h_2) = v1;
0x00030614 addiu a2, zero, 1 | a2 = 1;
0x00030618 lw t9, -0x7eec(gp) | t9 = *(gp);
0x0003061c move a1, s3 | a1 = s3;
0x00030620 move a0, s0 | a0 = s0;
| /* fcn.00028dd4 */
0x00030624 addiu t9, t9, -0x722c | t9 += -0x722c;
0x00030628 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003062c bal 0x28dd4 | fcn_00028dd4 ();
0x00030630 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030634 lw s1, 0xd4(s0) | s1 = *((s0 + 53));
0x00030638 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x0003063c lw t9, -0x7f18(gp) | t9 = *(gp);
0x00030640 lw a1, 0x2c(sp) | a1 = *(var_2ch_2);
0x00030644 bal 0x47280 | fcn_00047280 ();
0x00030648 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003064c sw v0, 0x28(s1) | *((s1 + 10)) = v0;
0x00030650 b 0x3013c | goto label_0;
| label_10:
0x00030654 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00030658 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003065c lw a3, (v0) | a3 = *(v0);
0x00030660 addiu a2, zero, 0x3a | a2 = 0x3a;
0x00030664 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Focus_sets_ir_corr_offset_but_has_no_zoom_component._n */
0x00030668 addiu a0, a0, 0x17d8 | a0 += 0x17d8;
0x0003066c jalr t9 | t9 ();
0x00030670 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x00030674 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030678 sw zero, 0x64(v0) | *((v0 + 25)) = 0;
0x0003067c b 0x2ffd4 | goto label_6;
| label_15:
0x00030680 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
| /* str.TemperatureCorrection */
0x00030684 addiu a1, a1, -0x5230 | a1 += -0x5230;
0x00030688 move a0, s2 | a0 = s2;
0x0003068c bal 0x3c4dc | sym_settings_get_string ();
0x00030690 move s1, v0 | s1 = v0;
0x00030694 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00030698 beqz v0, 0x30184 | goto label_7;
| }
0x0003069c lw t9, -0x7944(gp) | t9 = sym.imp.g_type_check_class_cast;
0x000306a0 addiu a1, zero, 0x30 | a1 = 0x30;
0x000306a4 move a0, s5 | a0 = s5;
0x000306a8 jalr t9 | t9 ();
0x000306ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000306b0 move a1, s1 | a1 = s1;
0x000306b4 lw t9, -0x7aa4(gp) | t9 = sym.imp.g_enum_get_value_by_nick;
0x000306b8 move a0, v0 | a0 = v0;
0x000306bc jalr t9 | t9 ();
0x000306c0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000306c4 move s3, v0 | s3 = v0;
0x000306c8 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x000306cc move a0, s1 | a0 = s1;
0x000306d0 jalr t9 | t9 ();
0x000306d4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s3 == 0) {
0x000306d8 beqz s3, 0x30184 | goto label_7;
| }
0x000306dc lw s1, (s3) | s1 = *(s3);
0x000306e0 addiu v1, zero, 1 | v1 = 1;
0x000306e4 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
| if (s1 != v1) {
0x000306e8 beq s1, v1, 0x30764 |
0x000306ec addiu v1, zero, 2 | v1 = 2;
| if (s1 == v1) {
0x000306f0 beql s1, v1, 0x307d0 | goto label_25;
| }
0x000306f4 lw v1, 0xd8(v0) | v1 = *((v0 + 54));
0x000306f8 sw s1, 0x5c(v0) | *((v0 + 23)) = s1;
0x000306fc b 0x30184 | goto label_7;
| label_21:
0x00030700 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00030704 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00030708 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003070c lw a3, (v0) | a3 = *(v0);
0x00030710 addiu a2, zero, 0x2d | a2 = 0x2d;
0x00030714 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Default_position_is_lower_than_near_limit_n */
0x00030718 addiu a0, a0, 0x1940 | a0 += 0x1940;
0x0003071c jalr t9 | t9 ();
0x00030720 move s3, s1 | s3 = s1;
0x00030724 lw gp, 0x20(sp) | gp = *(var_20h);
0x00030728 lw s5, 0x3c(sp) | s5 = *(var_3ch_2);
0x0003072c lw s1, 0x34(sp) | s1 = *(var_34h);
0x00030730 b 0x30334 | goto label_8;
| label_19:
0x00030734 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00030738 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0003073c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00030740 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00030744 lw a0, (v0) | a0 = *(v0);
| /* str.focusd_optics_motorized_focus_setup_configuration */
0x00030748 addiu a3, a3, 0x19fc | a3 += 0x19fc;
| /* str._3__s:_trace_curve_enabled_without_a_zoom_object_n */
0x0003074c addiu a2, a2, 0x1638 | a2 += 0x1638;
0x00030750 addiu a1, zero, 1 | a1 = 1;
0x00030754 jalr t9 | t9 ();
0x00030758 move s0, zero | s0 = 0;
0x0003075c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030760 b 0x303a4 | goto label_4;
| }
0x00030764 lw t9, -0x7ee4(gp) | t9 = sym.focusd_temperature_mapper_hillcheck_get_type;
0x00030768 lw s3, 0x58(v0) | s3 = *((v0 + 22));
0x0003076c bal 0x34f74 | sym_focusd_temperature_mapper_hillcheck_get_type ();
0x00030770 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s3 != 0) {
0x00030774 beqz s3, 0x30864 |
0x00030778 lw v1, (s3) | v1 = *(s3);
0x0003077c lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x00030780 beqz v1, 0x30790 |
0x00030784 lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x00030788 beql v1, v0, 0x307a8 | goto label_26;
| }
0x0003078c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| }
0x00030790 move a1, v0 | a1 = v0;
0x00030794 move a0, s3 | a0 = s3;
0x00030798 jalr t9 | t9 ();
0x0003079c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000307a0 beqz v0, 0x30864 | goto label_27;
| }
0x000307a4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| label_26:
0x000307a8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000307ac lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000307b0 lw a3, (v0) | a3 = *(v0);
0x000307b4 addiu a2, zero, 0x60 | a2 = 0x60;
0x000307b8 addiu a1, zero, 1 | a1 = 1;
| /* str._6_OpticsMotorizedFocus::_Forcing_temperature_compensation_mode_to_perform_search_for_hillcheck_n */
0x000307bc addiu a0, a0, 0x1844 | a0 += 0x1844;
0x000307c0 jalr t9 | t9 ();
0x000307c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000307c8 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x000307cc lw v1, 0xd8(v0) | v1 = *((v0 + 54));
| label_25:
0x000307d0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
| if (v1 != 0) {
0x000307d4 beqz v1, 0x3083c |
0x000307d8 addiu s1, zero, 2 | s1 = 2;
0x000307dc sw s1, 0x5c(v0) | *((v0 + 23)) = s1;
0x000307e0 b 0x30184 | goto label_7;
| label_24:
0x000307e4 lw t9, -0x7de8(gp) | t9 = sym.focusd_optics_motorized_position;
0x000307e8 lw a0, 0xb8(s0) | a0 = *((s0 + 46));
0x000307ec addiu a1, zero, 1 | a1 = 1;
0x000307f0 bal 0x25604 | sym_focusd_optics_motorized_position ();
0x000307f4 lw v1, 0xd4(s0) | v1 = *((s0 + 53));
0x000307f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000307fc sw v0, 0x34(s6) | *((s6 + 13)) = v0;
0x00030800 lw s1, 0x34(v1) | s1 = *((v1 + 13));
0x00030804 b 0x305bc | goto label_9;
| label_22:
0x00030808 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003080c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00030810 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00030814 lw a3, (v0) | a3 = *(v0);
0x00030818 addiu a2, zero, 0x2d | a2 = 0x2d;
0x0003081c addiu a1, zero, 1 | a1 = 1;
| /* str._4_Default_position_is_higher_than_far_limit_n */
0x00030820 addiu a0, a0, 0x1970 | a0 += 0x1970;
0x00030824 jalr t9 | t9 ();
0x00030828 move s3, s5 | s3 = s5;
0x0003082c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030830 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00030834 lw s5, 0x3c(sp) | s5 = *(var_3ch_2);
0x00030838 b 0x30334 | goto label_8;
| }
0x0003083c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00030840 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00030844 lw a3, (v1) | a3 = *(v1);
0x00030848 sw zero, 0x5c(v0) | *((v0 + 23)) = 0;
0x0003084c addiu a2, zero, 0x46 | a2 = 0x46;
0x00030850 addiu a1, zero, 1 | a1 = 1;
| /* str._4_OpticsMotorizedFocus::_Temperature_compensation_mode_not_supported_n */
0x00030854 addiu a0, a0, 0x18a8 | a0 += 0x18a8;
0x00030858 jalr t9 | t9 ();
0x0003085c lw gp, 0x20(sp) | gp = *(var_20h);
0x00030860 b 0x30184 | goto label_7;
| }
| label_27:
0x00030864 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x00030868 sw s1, 0x5c(v0) | *((v0 + 23)) = s1;
0x0003086c b 0x30184 | goto label_7;
| label_23:
0x00030870 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00030874 jalr t9 | t9 ();
0x00030878 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x382a0 */
| #include <stdint.h>
|
; (fcn) sym.focusd_safe_file_update () | void focusd_safe_file_update () {
0x000382a0 lui gp, 3 |
0x000382a4 addiu gp, gp, 0x68e0 |
0x000382a8 addu gp, gp, t9 | gp += t9;
0x000382ac addiu sp, sp, -0xe0 |
0x000382b0 lw t9, -0x77a0(gp) | t9 = sym.imp.__xstat;
0x000382b4 sw s3, 0xc8(sp) | *(var_c8h) = s3;
0x000382b8 lw s3, -0x7a04(gp) | s3 = *((gp - 7809));
0x000382bc sw gp, 0x18(sp) | *(var_18h) = gp;
0x000382c0 sw s7, 0xd8(sp) | *(var_d8h) = s7;
0x000382c4 lw v0, (s3) | v0 = *(s3);
0x000382c8 sw s6, 0xd4(sp) | *(var_d4h) = s6;
0x000382cc sw s1, 0xc0(sp) | *(var_c0h) = s1;
0x000382d0 sw ra, 0xdc(sp) | *(var_dch) = ra;
0x000382d4 sw s5, 0xd0(sp) | *(var_d0h) = s5;
0x000382d8 sw s4, 0xcc(sp) | *(var_cch) = s4;
0x000382dc sw s2, 0xc4(sp) | *(var_c4h) = s2;
0x000382e0 sw s0, 0xbc(sp) | *(var_bch) = s0;
0x000382e4 move s1, a0 | s1 = a0;
0x000382e8 move s7, a1 | s7 = a1;
0x000382ec move s6, a2 | s6 = a2;
0x000382f0 move a1, a0 | a1 = a0;
0x000382f4 addiu a2, sp, 0x24 | a2 = sp + 0x24;
0x000382f8 addiu a0, zero, 3 | a0 = 3;
0x000382fc sw v0, 0xb4(sp) | *(var_b4h) = v0;
0x00038300 jalr t9 | t9 ();
0x00038304 nop |
0x00038308 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0003830c bnez v0, 0x3844c | goto label_3;
| }
0x00038310 lw t9, -0x7720(gp) | t9 = sym.imp.g_path_get_dirname;
0x00038314 move a0, s1 | a0 = s1;
0x00038318 move s2, v0 | s2 = v0;
0x0003831c jalr t9 | t9 ();
0x00038320 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038324 move a1, s1 | a1 = s1;
0x00038328 move s5, v0 | s5 = v0;
0x0003832c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00038330 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* str._s.tmp */
0x00038334 addiu a0, a0, 0x2eac | a0 += 0x2eac;
0x00038338 jalr t9 | t9 ();
0x0003833c lw gp, 0x18(sp) | gp = *(var_18h);
0x00038340 move a0, v0 | a0 = v0;
0x00038344 lw t9, -0x79cc(gp) | t9 = sym.imp.unlink;
0x00038348 move s0, v0 | s0 = v0;
0x0003834c jalr t9 | t9 ();
0x00038350 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00038354 beqz v0, 0x38374 |
0x00038358 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0003835c jalr t9 | t9 ();
0x00038360 nop |
0x00038364 lw v1, (v0) | v1 = *(v0);
0x00038368 addiu v0, zero, 2 | v0 = 2;
0x0003836c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != v0) {
0x00038370 bne v1, v0, 0x38524 | goto label_4;
| }
| }
0x00038374 lw t9, -0x7704(gp) | t9 = sym.imp.open;
0x00038378 addiu a2, zero, 0x180 | a2 = aav.0x00000180;
0x0003837c addiu a1, zero, 0x4711 | a1 = 0x4711;
0x00038380 move a0, s0 | a0 = s0;
0x00038384 jalr t9 | t9 ();
0x00038388 move s4, v0 | s4 = v0;
0x0003838c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00038390 bltz v0, 0x3854c | goto label_5;
| }
0x00038394 lw t9, -0x7800(gp) | t9 = sym.imp.write;
0x00038398 move a2, s6 | a2 = s6;
0x0003839c move a1, s7 | a1 = s7;
0x000383a0 move a0, v0 | a0 = v0;
0x000383a4 jalr t9 | t9 ();
0x000383a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x000383ac bltz v0, 0x383bc |
0x000383b0 sltu v0, v0, s6 | v0 = (v0 < s6) ? 1 : 0;
0x000383b4 lw t9, -0x7be8(gp) | t9 = sym.imp.fchmod;
| if (v0 == 0) {
0x000383b8 beqz v0, 0x38480 | goto label_6;
| }
| }
0x000383bc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000383c0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000383c4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000383c8 lw a0, (v0) | a0 = *(v0);
0x000383cc move a3, s0 | a3 = s0;
| /* str._4_Could_not_write_to__s:__m._n */
0x000383d0 addiu a2, a2, 0x2ef4 | a2 += 0x2ef4;
0x000383d4 addiu a1, zero, 1 | a1 = 1;
0x000383d8 jalr t9 | t9 ();
0x000383dc lw gp, 0x18(sp) | gp = *(var_18h);
| label_1:
0x000383e0 lw t9, -0x7a54(gp) | t9 = sym.imp.close;
0x000383e4 move a0, s4 | a0 = s4;
0x000383e8 jalr t9 | t9 ();
0x000383ec lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_0:
0x000383f0 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x000383f4 move a0, s0 | a0 = s0;
0x000383f8 jalr t9 | t9 ();
0x000383fc lw gp, 0x18(sp) | gp = *(var_18h);
0x00038400 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00038404 move a0, s5 | a0 = s5;
0x00038408 jalr t9 | t9 ();
0x0003840c lw a0, 0xb4(sp) | a0 = *(var_b4h);
0x00038410 lw v1, (s3) | v1 = *(s3);
0x00038414 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038418 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0003841c bne a0, v1, 0x38648 | goto label_7;
| }
0x00038420 lw ra, 0xdc(sp) | ra = *(var_dch);
0x00038424 lw s7, 0xd8(sp) | s7 = *(var_d8h);
0x00038428 lw s6, 0xd4(sp) | s6 = *(var_d4h);
0x0003842c lw s5, 0xd0(sp) | s5 = *(var_d0h);
0x00038430 lw s4, 0xcc(sp) | s4 = *(var_cch);
0x00038434 lw s3, 0xc8(sp) | s3 = *(var_c8h);
0x00038438 lw s2, 0xc4(sp) | s2 = *(var_c4h);
0x0003843c lw s1, 0xc0(sp) | s1 = *(var_c0h);
0x00038440 lw s0, 0xbc(sp) | s0 = *(var_bch);
0x00038444 addiu sp, sp, 0xe0 |
0x00038448 jr ra | return v0;
| label_3:
0x0003844c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038450 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00038454 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038458 lw a0, (v0) | a0 = *(v0);
0x0003845c move a3, s1 | a3 = s1;
| /* str._4_Could_not_stat__s:__m_n */
0x00038460 addiu a2, a2, 0x2e90 | a2 += 0x2e90;
0x00038464 addiu a1, zero, 1 | a1 = 1;
0x00038468 jalr t9 | t9 ();
0x0003846c move s2, zero | s2 = 0;
0x00038470 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038474 move s5, zero | s5 = 0;
0x00038478 move s0, zero | s0 = 0;
0x0003847c b 0x383f0 |
| } while (1);
| label_6:
0x00038480 lw a1, 0x38(sp) | a1 = *(var_38h_2);
0x00038484 move a0, s4 | a0 = s4;
0x00038488 jalr t9 | t9 ();
0x0003848c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00038490 bnez v0, 0x38574 | goto label_8;
| }
0x00038494 lw t9, -0x77fc(gp) | t9 = sym.imp.fchown;
0x00038498 lw a2, 0x44(sp) | a2 = *(var_44h_2);
0x0003849c lw a1, 0x40(sp) | a1 = *(var_40h_2);
0x000384a0 move a0, s4 | a0 = s4;
0x000384a4 jalr t9 | t9 ();
0x000384a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000384ac bnez v0, 0x385d4 | goto label_9;
| }
0x000384b0 lw t9, -0x7a54(gp) | t9 = sym.imp.close;
0x000384b4 move a0, s4 | a0 = s4;
0x000384b8 jalr t9 | t9 ();
0x000384bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000384c0 move a1, s1 | a1 = s1;
0x000384c4 lw t9, -0x7830(gp) | t9 = sym.imp.rename;
0x000384c8 move a0, s0 | a0 = s0;
0x000384cc jalr t9 | t9 ();
0x000384d0 move s2, v0 | s2 = v0;
0x000384d4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000384d8 bnez v0, 0x385a4 | goto label_10;
| }
0x000384dc lw t9, -0x7704(gp) | t9 = sym.imp.open;
0x000384e0 move a1, zero | a1 = 0;
0x000384e4 move a0, s5 | a0 = s5;
0x000384e8 jalr t9 | t9 ();
0x000384ec move s1, v0 | s1 = v0;
0x000384f0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000384f4 bltz v0, 0x3860c | goto label_11;
| }
0x000384f8 lw t9, -0x796c(gp) | t9 = sym.imp.fsync;
0x000384fc move a0, v0 | a0 = v0;
0x00038500 jalr t9 | t9 ();
0x00038504 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00038508 bnez v0, 0x38620 | goto label_12;
| }
0x0003850c addiu s2, zero, 1 | s2 = 1;
| label_2:
0x00038510 lw t9, -0x7a54(gp) | t9 = sym.imp.close;
0x00038514 move a0, s1 | a0 = s1;
0x00038518 jalr t9 | t9 ();
0x0003851c lw gp, 0x18(sp) | gp = *(var_18h);
0x00038520 b 0x383f0 | goto label_0;
| label_4:
0x00038524 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038528 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003852c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038530 lw a0, (v0) | a0 = *(v0);
0x00038534 move a3, s0 | a3 = s0;
| /* str._4_Could_not_unlink__s:__m._n */
0x00038538 addiu a2, a2, 0x2eb4 | a2 += 0x2eb4;
0x0003853c addiu a1, zero, 1 | a1 = 1;
0x00038540 jalr t9 | t9 ();
0x00038544 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038548 b 0x383f0 | goto label_0;
| label_5:
0x0003854c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038550 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038554 move a3, s0 | a3 = s0;
0x00038558 lw a0, (v0) | a0 = *(v0);
| do {
0x0003855c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00038560 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Could_not_open__s:__m._n */
0x00038564 addiu a2, a2, 0x2ed4 | a2 += 0x2ed4;
0x00038568 jalr t9 | t9 ();
0x0003856c lw gp, 0x18(sp) | gp = *(var_18h);
0x00038570 b 0x383f0 | goto label_0;
| label_8:
0x00038574 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038578 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003857c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038580 lw a0, (v0) | a0 = *(v0);
0x00038584 lw v0, 0x38(sp) | v0 = *(var_38h_2);
0x00038588 move a3, s0 | a3 = s0;
0x0003858c sw v0, 0x10(sp) | *(var_e8h) = v0;
| /* str._4_Could_not_set_mode_on__s_to_0_o:__m._n */
0x00038590 addiu a2, a2, 0x2f18 | a2 += 0x2f18;
0x00038594 addiu a1, zero, 1 | a1 = 1;
0x00038598 jalr t9 | t9 ();
0x0003859c lw gp, 0x18(sp) | gp = *(var_18h);
0x000385a0 b 0x383e0 | goto label_1;
| label_10:
0x000385a4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000385a8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000385ac lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000385b0 lw a0, (v0) | a0 = *(v0);
0x000385b4 move a3, s0 | a3 = s0;
0x000385b8 sw s1, 0x10(sp) | *(var_e8h) = s1;
| /* str._4_Could_not_rename__s__s:__m._n */
0x000385bc addiu a2, a2, 0x2f74 | a2 += 0x2f74;
0x000385c0 addiu a1, zero, 1 | a1 = 1;
0x000385c4 jalr t9 | t9 ();
0x000385c8 move s2, zero | s2 = 0;
0x000385cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000385d0 b 0x383f0 | goto label_0;
| label_9:
0x000385d4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000385d8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000385dc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000385e0 lw a0, (v0) | a0 = *(v0);
0x000385e4 lw v0, 0x44(sp) | v0 = *(var_44h_2);
0x000385e8 move a3, s0 | a3 = s0;
0x000385ec sw v0, 0x14(sp) | *(var_ech) = v0;
0x000385f0 lw v0, 0x40(sp) | v0 = *(var_40h_2);
| /* str._4_Could_not_set_owner_on__s_to___u:_u_:__m._n */
0x000385f4 addiu a2, a2, 0x2f44 | a2 += 0x2f44;
0x000385f8 sw v0, 0x10(sp) | *(var_e8h) = v0;
0x000385fc addiu a1, zero, 1 | a1 = 1;
0x00038600 jalr t9 | t9 ();
0x00038604 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038608 b 0x383e0 | goto label_1;
| label_11:
0x0003860c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038610 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038614 move a3, s5 | a3 = s5;
0x00038618 lw a0, (v0) | a0 = *(v0);
0x0003861c b 0x3855c |
| } while (1);
| label_12:
0x00038620 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038624 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00038628 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003862c lw a0, (v0) | a0 = *(v0);
0x00038630 move a3, s5 | a3 = s5;
| /* str._4_Could_not_sync__s:__m._n */
0x00038634 addiu a2, a2, 0x2f98 | a2 += 0x2f98;
0x00038638 addiu a1, zero, 1 | a1 = 1;
0x0003863c jalr t9 | t9 ();
0x00038640 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038644 b 0x38510 | goto label_2;
| label_7:
0x00038648 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003864c jalr t9 | t9 ();
0x00038650 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x38654 */
| #include <stdint.h>
|
; (fcn) sym.focusd_safe_file_write () | void focusd_safe_file_write () {
0x00038654 lui gp, 3 |
0x00038658 addiu gp, gp, 0x652c |
0x0003865c addu gp, gp, t9 | gp += t9;
0x00038660 addiu sp, sp, -0xd8 |
0x00038664 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x00038668 sw s1, 0xc0(sp) | *(var_c0h_2) = s1;
0x0003866c lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00038670 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00038674 sw ra, 0xd4(sp) | *(var_d4h_2) = ra;
0x00038678 lw v0, (s1) | v0 = *(s1);
0x0003867c sw s5, 0xd0(sp) | *(var_d0h_2) = s5;
0x00038680 sw s4, 0xcc(sp) | *(var_cch_2) = s4;
0x00038684 sw s3, 0xc8(sp) | *(var_c8h_2) = s3;
0x00038688 sw s2, 0xc4(sp) | *(var_c4h_2) = s2;
0x0003868c sw s0, 0xbc(sp) | *(var_bch_2) = s0;
0x00038690 sw v0, 0xb4(sp) | *(var_b4h_2) = v0;
0x00038694 move s0, a0 | s0 = a0;
0x00038698 move s3, a1 | s3 = a1;
0x0003869c move s4, a2 | s4 = a2;
0x000386a0 move s5, a3 | s5 = a3;
0x000386a4 jalr t9 | t9 ();
0x000386a8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000386ac sw zero, (v0) | *(v0) = 0;
0x000386b0 addiu a2, sp, 0x24 | a2 = sp + 0x24;
0x000386b4 lw t9, -0x77a0(gp) | t9 = sym.imp.__xstat;
0x000386b8 move a1, s0 | a1 = s0;
0x000386bc addiu a0, zero, 3 | a0 = 3;
0x000386c0 move s2, v0 | s2 = v0;
0x000386c4 jalr t9 | t9 ();
0x000386c8 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000386cc beqz v0, 0x38798 | goto label_3;
| }
0x000386d0 lw v1, (s2) | v1 = *(s2);
0x000386d4 addiu v0, zero, 2 | v0 = 2;
0x000386d8 lw t9, -0x7704(gp) | t9 = sym.imp.open;
| if (v1 == v0) {
0x000386dc beq v1, v0, 0x38738 | goto label_4;
| }
0x000386e0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000386e4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000386e8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000386ec lw a0, (v0) | a0 = *(v0);
0x000386f0 move a3, s0 | a3 = s0;
| /* str._4_Could_not_stat__s:__m_n */
0x000386f4 addiu a2, a2, 0x2e90 | a2 += 0x2e90;
0x000386f8 addiu a1, zero, 1 | a1 = 1;
0x000386fc jalr t9 | t9 ();
0x00038700 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00038704 move v0, zero | v0 = 0;
| do {
| label_0:
0x00038708 lw a0, 0xb4(sp) | a0 = *(var_b4h_2);
0x0003870c lw v1, (s1) | v1 = *(s1);
0x00038710 lw ra, 0xd4(sp) | ra = *(var_d4h_2);
| if (a0 != v1) {
0x00038714 bne a0, v1, 0x38858 | goto label_5;
| }
0x00038718 lw s5, 0xd0(sp) | s5 = *(var_d0h_2);
0x0003871c lw s4, 0xcc(sp) | s4 = *(var_cch_2);
0x00038720 lw s3, 0xc8(sp) | s3 = *(var_c8h_2);
0x00038724 lw s2, 0xc4(sp) | s2 = *(var_c4h_2);
0x00038728 lw s1, 0xc0(sp) | s1 = *(var_c0h_2);
0x0003872c lw s0, 0xbc(sp) | s0 = *(var_bch_2);
0x00038730 addiu sp, sp, 0xd8 |
0x00038734 jr ra | return v0;
| label_4:
0x00038738 lw a2, 0xec(sp) | a2 = *(var_ech);
0x0003873c addiu a1, zero, 0x4711 | a1 = 0x4711;
0x00038740 move a0, s0 | a0 = s0;
0x00038744 jalr t9 | t9 ();
0x00038748 move s2, v0 | s2 = v0;
0x0003874c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00038750 bltz v0, 0x387f8 | goto label_6;
| }
0x00038754 lw t9, -0x7be8(gp) | t9 = sym.imp.fchmod;
0x00038758 lw a1, 0xec(sp) | a1 = *(var_ech);
0x0003875c move a0, v0 | a0 = v0;
0x00038760 jalr t9 | t9 ();
0x00038764 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00038768 bnez v0, 0x387b4 | goto label_7;
| }
0x0003876c lw t9, -0x77fc(gp) | t9 = sym.imp.fchown;
0x00038770 lw a2, 0xe8(sp) | a2 = *(var_e8h);
0x00038774 move a1, s5 | a1 = s5;
0x00038778 move a0, s2 | a0 = s2;
0x0003877c jalr t9 | t9 ();
0x00038780 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00038784 bnez v0, 0x38824 | goto label_8;
| }
0x00038788 lw t9, -0x7a54(gp) | t9 = sym.imp.close;
0x0003878c move a0, s2 | a0 = s2;
0x00038790 jalr t9 | t9 ();
0x00038794 lw gp, 0x18(sp) | gp = *(var_18h_2);
| label_3:
0x00038798 lw t9, -0x7ee8(gp) | t9 = sym.focusd_safe_file_update;
0x0003879c move a2, s4 | a2 = s4;
0x000387a0 move a1, s3 | a1 = s3;
0x000387a4 move a0, s0 | a0 = s0;
0x000387a8 bal 0x382a0 | sym_focusd_safe_file_update ();
0x000387ac lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000387b0 b 0x38708 |
| } while (1);
| label_7:
0x000387b4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000387b8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000387bc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000387c0 lw a0, (v0) | a0 = *(v0);
0x000387c4 lw v0, 0xec(sp) | v0 = *(var_ech);
0x000387c8 move a3, s0 | a3 = s0;
| /* str._4_Could_not_set_mode_on__s_to_0_o:__m._n */
0x000387cc addiu a2, a2, 0x2f18 | a2 += 0x2f18;
0x000387d0 addiu a1, zero, 1 | a1 = 1;
0x000387d4 sw v0, 0x10(sp) | *((sp + 4)) = v0;
0x000387d8 jalr t9 | t9 ();
0x000387dc lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
0x000387e0 lw t9, -0x7a54(gp) | t9 = sym.imp.close;
0x000387e4 move a0, s2 | a0 = s2;
0x000387e8 jalr t9 | t9 ();
0x000387ec lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000387f0 move v0, zero | v0 = 0;
0x000387f4 b 0x38708 | goto label_0;
| label_6:
0x000387f8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000387fc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00038800 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038804 lw a0, (v0) | a0 = *(v0);
0x00038808 move a3, s0 | a3 = s0;
| /* str._4_Could_not_create__s:__m_n */
0x0003880c addiu a2, a2, 0x2fb8 | a2 += aav.0x00002fb8;
0x00038810 addiu a1, zero, 1 | a1 = 1;
0x00038814 jalr t9 | t9 ();
0x00038818 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0003881c move v0, zero | v0 = 0;
0x00038820 b 0x38708 | goto label_0;
| label_8:
0x00038824 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038828 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003882c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038830 lw a0, (v0) | a0 = *(v0);
0x00038834 lw v0, 0xe8(sp) | v0 = *(var_e8h);
0x00038838 move a3, s0 | a3 = s0;
| /* str._4_Could_not_set_owner_on__s_to___u:_u_:__m._n */
0x0003883c addiu a2, a2, 0x2f44 | a2 += 0x2f44;
0x00038840 addiu a1, zero, 1 | a1 = 1;
0x00038844 sw v0, 0x14(sp) | *((sp + 5)) = v0;
0x00038848 sw s5, 0x10(sp) | *((sp + 4)) = s5;
0x0003884c jalr t9 | t9 ();
0x00038850 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00038854 b 0x387e0 |
| } while (1);
| label_5:
0x00038858 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003885c jalr t9 | t9 ();
0x00038860 nop |
0x00038864 nop |
0x00038868 nop |
0x0003886c nop |
0x00038870 lui gp, 3 |
0x00038874 addiu gp, gp, 0x6310 |
0x00038878 addu gp, gp, t9 | gp += t9;
0x0003887c addiu sp, sp, -0x48 |
0x00038880 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00038884 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00038888 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003888c sw s2, 0x38(sp) | *(var_10h) = s2;
0x00038890 lw v0, (s1) | v0 = *(s1);
0x00038894 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00038898 sw ra, 0x44(sp) | *(var_1ch) = ra;
0x0003889c sw s4, 0x40(sp) | *(var_40h) = s4;
0x000388a0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x000388a4 move s0, a0 | s0 = a0;
0x000388a8 move s2, a1 | s2 = a1;
0x000388ac sw zero, 0x28(sp) | *(var_28h) = 0;
0x000388b0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000388b4 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
| if (a2 != 0) {
0x000388b8 bnez a2, 0x38978 | goto label_9;
| }
0x000388bc lw a0, 0x40(a0) | a0 = *((a0 + 16));
0x000388c0 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
| if (a0 == 0) {
0x000388c4 beqz a0, 0x38ad8 | goto label_10;
| }
0x000388c8 jalr t9 | t9 ();
0x000388cc nop |
0x000388d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000388d4 lw a1, 0x54(s0) | a1 = *((s0 + 21));
0x000388d8 move s0, v0 | s0 = v0;
0x000388dc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000388e0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000388e4 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* esilref: 'Snr' */
0x000388e8 addiu a2, a2, 0x3024 | a2 += 0x3024;
| /* str._ss_ */
0x000388ec addiu a0, a0, -0x2920 | a0 += -0x2920;
0x000388f0 jalr t9 | t9 ();
0x000388f4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000388f8 move a2, v0 | a2 = v0;
0x000388fc addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x00038900 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00038904 sw v0, 0x18(sp) | *((sp + 6)) = v0;
0x00038908 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003890c addiu v0, zero, -1 | v0 = -1;
0x00038910 move a0, s0 | a0 = s0;
0x00038914 move a3, zero | a3 = 0;
| /* esilref: 'Get' */
0x00038918 addiu a1, a1, -0x28c4 | a1 += -0x28c4;
0x0003891c sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x00038920 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00038924 jalr t9 | t9 ();
0x00038928 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003892c move a0, s0 | a0 = s0;
0x00038930 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00038934 move s0, v0 | s0 = v0;
0x00038938 jalr t9 | t9 ();
0x0003893c lw v0, 0x28(sp) | v0 = *(var_28h);
0x00038940 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00038944 beqz v0, 0x38a20 | goto label_11;
| }
| label_2:
0x00038948 move v0, zero | v0 = 0;
| do {
| label_1:
0x0003894c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00038950 lw v1, (s1) | v1 = *(s1);
0x00038954 lw ra, 0x44(sp) | ra = *(var_1ch);
| if (a0 != v1) {
0x00038958 bne a0, v1, 0x38b3c | goto label_12;
| }
0x0003895c lw s4, 0x40(sp) | s4 = *(var_40h);
0x00038960 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00038964 lw s2, 0x38(sp) | s2 = *(var_10h);
0x00038968 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0003896c lw s0, 0x30(sp) | s0 = *(var_30h);
0x00038970 addiu sp, sp, 0x48 |
0x00038974 jr ra | return v0;
| label_9:
0x00038978 addiu s3, a0, 0x34 | s3 = a0 + 0x34;
0x0003897c move a0, s3 | a0 = s3;
0x00038980 jalr t9 | t9 ();
0x00038984 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x00038988 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 == 0) {
0x0003898c beqz a0, 0x38b00 | goto label_13;
| }
0x00038990 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x00038994 addiu s4, sp, 0x28 | s4 = sp + 0x28;
0x00038998 jalr t9 | t9 ();
0x0003899c lw gp, 0x20(sp) | gp = *(var_20h);
0x000389a0 move a0, s3 | a0 = s3;
0x000389a4 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x000389a8 move s3, v0 | s3 = v0;
0x000389ac jalr t9 | t9 ();
0x000389b0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000389b4 lw a1, 0x54(s0) | a1 = *((s0 + 21));
0x000389b8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000389bc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000389c0 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* esilref: 'Snr' */
0x000389c4 addiu a2, a2, 0x3024 | a2 += 0x3024;
| /* str._ss_ */
0x000389c8 addiu a0, a0, -0x2920 | a0 += -0x2920;
0x000389cc jalr t9 | t9 ();
0x000389d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000389d4 move a2, v0 | a2 = v0;
0x000389d8 addiu v0, zero, -1 | v0 = -1;
0x000389dc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000389e0 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x000389e4 move a3, zero | a3 = 0;
| /* esilref: 'Get' */
0x000389e8 addiu a1, a1, -0x28c4 | a1 += -0x28c4;
0x000389ec move a0, s3 | a0 = s3;
0x000389f0 sw s4, 0x18(sp) | *((sp + 6)) = s4;
0x000389f4 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x000389f8 sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x000389fc jalr t9 | t9 ();
0x00038a00 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a04 move a0, s3 | a0 = s3;
0x00038a08 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00038a0c move s0, v0 | s0 = v0;
0x00038a10 jalr t9 | t9 ();
0x00038a14 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00038a18 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00038a1c bnez v0, 0x38a9c | goto label_14;
| }
| label_11:
0x00038a20 lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x00038a24 move a1, zero | a1 = 0;
0x00038a28 move a0, s0 | a0 = s0;
0x00038a2c jalr t9 | t9 ();
0x00038a30 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a34 move a1, zero | a1 = 0;
0x00038a38 move a0, v0 | a0 = v0;
0x00038a3c lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x00038a40 move s3, v0 | s3 = v0;
0x00038a44 jalr t9 | t9 ();
0x00038a48 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a4c move a0, v0 | a0 = v0;
0x00038a50 lw t9, -0x7774(gp) | t9 = sym.imp.g_variant_get_int32;
0x00038a54 move s4, v0 | s4 = v0;
0x00038a58 jalr t9 | t9 ();
0x00038a5c lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a60 sw v0, (s2) | *(s2) = v0;
0x00038a64 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x00038a68 move a0, s4 | a0 = s4;
0x00038a6c jalr t9 | t9 ();
0x00038a70 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a74 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x00038a78 move a0, s3 | a0 = s3;
0x00038a7c jalr t9 | t9 ();
0x00038a80 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a84 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x00038a88 move a0, s0 | a0 = s0;
0x00038a8c jalr t9 | t9 ();
0x00038a90 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038a94 addiu v0, zero, 1 | v0 = 1;
0x00038a98 b 0x3894c |
| } while (1);
| label_14:
0x00038a9c lw a3, 8(v0) | a3 = *((v0 + 2));
0x00038aa0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038aa4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00038aa8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038aac lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_complete_GetSnr:__s_n */
0x00038ab0 addiu a2, a2, 0x2fd8 | a2 += 0x2fd8;
0x00038ab4 addiu a1, zero, 1 | a1 = 1;
0x00038ab8 jalr t9 | t9 ();
0x00038abc lw gp, 0x20(sp) | gp = *(var_20h);
0x00038ac0 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00038ac4 move a0, s4 | a0 = s4;
0x00038ac8 jalr t9 | t9 ();
0x00038acc lw gp, 0x20(sp) | gp = *(var_20h);
0x00038ad0 move v0, zero | v0 = 0;
0x00038ad4 b 0x3894c | goto label_1;
| label_10:
0x00038ad8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038adc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00038ae0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00038ae4 lw a3, (v0) | a3 = *(v0);
0x00038ae8 addiu a2, zero, 0x25 | a2 = 0x25;
0x00038aec addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_get_snr__proxy_is_unset_n */
0x00038af0 addiu a0, a0, 0x2ffc | a0 += 0x2ffc;
0x00038af4 jalr t9 | t9 ();
0x00038af8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038afc b 0x38948 | goto label_2;
| label_13:
0x00038b00 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038b04 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00038b08 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00038b0c lw a3, (v0) | a3 = *(v0);
0x00038b10 addiu a2, zero, 0x25 | a2 = 0x25;
0x00038b14 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_get_snr__proxy_is_unset_n */
0x00038b18 addiu a0, a0, 0x2ffc | a0 += 0x2ffc;
0x00038b1c jalr t9 | t9 ();
0x00038b20 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038b24 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00038b28 move a0, s3 | a0 = s3;
0x00038b2c jalr t9 | t9 ();
0x00038b30 lw gp, 0x20(sp) | gp = *(var_20h);
0x00038b34 move v0, zero | v0 = 0;
0x00038b38 b 0x3894c | goto label_1;
| label_12:
0x00038b3c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00038b40 jalr t9 | t9 ();
0x00038b44 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3812c */
| #include <stdint.h>
|
; (fcn) sym.focusd_temperature_mapper_new () | void focusd_temperature_mapper_new () {
0x0003812c lui gp, 3 |
0x00038130 addiu gp, gp, 0x6a54 |
0x00038134 addu gp, gp, t9 | gp += t9;
0x00038138 addiu sp, sp, -0x30 |
0x0003813c lw t9, -0x7780(gp) | t9 = sym.imp.g_type_from_name;
0x00038140 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00038144 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00038148 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0003814c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00038150 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00038154 move s2, a0 | s2 = a0;
0x00038158 move s1, a1 | s1 = a1;
0x0003815c move s0, a2 | s0 = a2;
0x00038160 jalr t9 | t9 ();
0x00038164 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00038168 beqz v0, 0x38258 |
0x0003816c lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00038170 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00038174 lw t9, -0x78ec(gp) | t9 = sym.imp.g_object_new;
| /* str.max_temp */
0x00038178 addiu a3, a3, 0x225c | a3 += 0x225c;
0x0003817c move a2, s1 | a2 = s1;
| /* str.min_temp */
0x00038180 addiu a1, a1, 0x2224 | a1 += 0x2224;
0x00038184 move a0, v0 | a0 = v0;
0x00038188 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0003818c sw zero, 0x14(sp) | *(var_14h) = 0;
0x00038190 jalr t9 | t9 ();
0x00038194 lw gp, 0x18(sp) | gp = *(var_18h);
0x00038198 lw t9, -0x7ef0(gp) | t9 = sym.focusd_temperature_mapper_get_type;
0x0003819c move s0, v0 | s0 = v0;
0x000381a0 bal 0x342bc | sym_focusd_temperature_mapper_get_type ();
0x000381a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 != 0) {
0x000381a8 beqz s0, 0x3820c |
0x000381ac lw v1, (s0) | v1 = *(s0);
0x000381b0 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x000381b4 beqz v1, 0x381c4 |
0x000381b8 lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x000381bc beql v1, v0, 0x381dc | goto label_0;
| }
0x000381c0 lw t9, -0x7ef0(gp) | t9 = sym.focusd_temperature_mapper_get_type;
| }
0x000381c4 move a1, v0 | a1 = v0;
0x000381c8 move a0, s0 | a0 = s0;
0x000381cc jalr t9 | t9 ();
0x000381d0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000381d4 beqz v0, 0x3820c | goto label_1;
| }
0x000381d8 lw t9, -0x7ef0(gp) | t9 = sym.focusd_temperature_mapper_get_type;
| label_0:
0x000381dc bal 0x342bc | sym_focusd_temperature_mapper_get_type ();
0x000381e0 nop |
0x000381e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000381e8 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000381ec lw s2, 0x28(sp) | s2 = *(var_28h);
0x000381f0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000381f4 move a0, s0 | a0 = s0;
0x000381f8 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x000381fc lw s0, 0x20(sp) | s0 = *(var_20h);
0x00038200 move a1, v0 | a1 = v0;
0x00038204 addiu sp, sp, 0x30 |
0x00038208 jr t9 | t9 ();
| }
| label_1:
0x0003820c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00038210 move a0, s0 | a0 = s0;
0x00038214 jalr t9 | t9 ();
0x00038218 lw gp, 0x18(sp) | gp = *(var_18h);
0x0003821c move a3, s2 | a3 = s2;
0x00038220 addiu a1, zero, 1 | a1 = 1;
0x00038224 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00038228 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003822c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038230 lw a0, (v0) | a0 = *(v0);
| /* str._3_Type_name__s_does_not_specify_a_TemperatureMapper_subclass_n */
0x00038234 addiu a2, a2, 0x2e4c | a2 += 0x2e4c;
0x00038238 jalr t9 | t9 ();
0x0003823c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00038240 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00038244 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00038248 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0003824c move v0, zero | v0 = 0;
0x00038250 addiu sp, sp, 0x30 |
0x00038254 jr ra | return v0;
| }
0x00038258 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003825c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00038260 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00038264 lw a0, (v0) | a0 = *(v0);
0x00038268 move a3, s2 | a3 = s2;
| /* str._3_Unknown_temperature_mapper_type__s_n */
0x0003826c addiu a2, a2, 0x2e20 | a2 += 0x2e20;
0x00038270 addiu a1, zero, 1 | a1 = 1;
0x00038274 jalr t9 | t9 ();
0x00038278 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0003827c lw s2, 0x28(sp) | s2 = *(var_28h);
0x00038280 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00038284 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00038288 move v0, zero | v0 = 0;
0x0003828c addiu sp, sp, 0x30 |
0x00038290 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x37540 */
| #include <stdint.h>
|
; (fcn) sym.focusd_trace_curve_setup () | void focusd_trace_curve_setup () {
0x00037540 lui gp, 3 |
0x00037544 addiu gp, gp, 0x7640 |
0x00037548 addu gp, gp, t9 | gp += t9;
0x0003754c addiu sp, sp, -0x58 |
0x00037550 move v1, a1 | v1 = a1;
0x00037554 sw s5, 0x44(sp) | *(var_44h) = s5;
0x00037558 lw s5, -0x7a04(gp) | s5 = *((gp - 7809));
0x0003755c sw a1, 0x18(sp) | *(var_18h) = a1;
0x00037560 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037564 lw v0, (s5) | v0 = *(s5);
0x00037568 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
0x0003756c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00037570 sw s6, 0x48(sp) | *(var_48h) = s6;
0x00037574 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00037578 sw ra, 0x54(sp) | *(var_54h) = ra;
0x0003757c sw fp, 0x50(sp) | *(var_50h) = fp;
0x00037580 sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x00037584 sw s4, 0x40(sp) | *(var_40h) = s4;
0x00037588 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x0003758c sw s2, 0x38(sp) | *(var_38h) = s2;
0x00037590 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00037594 move s6, a0 | s6 = a0;
| /* str.trace_curve_coefficients */
0x00037598 addiu a1, a1, 0x2a04 | a1 += aav.0x00002a04;
0x0003759c move a0, v1 | a0 = v1;
0x000375a0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000375a4 bal 0x3c4dc | sym_settings_get_string ();
0x000375a8 nop |
0x000375ac move s0, v0 | s0 = v0;
0x000375b0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000375b4 beqz v0, 0x377d0 | goto label_5;
| }
0x000375b8 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000375bc lw t9, -0x7ad0(gp) | t9 = sym.imp.g_strsplit;
0x000375c0 addiu a2, zero, 0xa | a2 = 0xa;
| /* esilref: '' */
0x000375c4 addiu a1, v0, -0x60b4 | a1 = v0 + -0x60b4;
0x000375c8 move a0, s0 | a0 = s0;
0x000375cc sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x000375d0 jalr t9 | t9 ();
0x000375d4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000375d8 move s4, v0 | s4 = v0;
0x000375dc lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x000375e0 move a0, s0 | a0 = s0;
0x000375e4 jalr t9 | t9 ();
0x000375e8 lw a0, (s4) | a0 = *(s4);
0x000375ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == 0) {
0x000375f0 beqz a0, 0x377f8 | goto label_6;
| }
0x000375f4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x000375f8 addiu v1, s6, 0xc | v1 = s6 + 0xc;
0x000375fc sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x00037600 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00037604 move s7, v1 | s7 = v1;
0x00037608 move fp, s4 | fp = s4;
0x0003760c move s0, zero | s0 = 0;
0x00037610 addiu s1, sp, 0x28 | s1 = sp + 0x28;
| /* str._f_c */
0x00037614 addiu s3, v0, 0x1324 | s3 = v0 + 0x1324;
0x00037618 addiu s2, zero, 1 | s2 = 1;
0x0003761c b 0x37638 |
| while (v0 == s2) {
| /* esilref: 'ion: Failed to move opposite gap direction
' */
0x00037620 addiu fp, fp, 4 | fp += 4;
0x00037624 lw a0, (fp) | a0 = *(fp);
0x00037628 addiu v0, s0, 1 | v0 = s0 + 1;
0x0003762c addiu s7, s7, 4 | s7 += 4;
| if (a0 == 0) {
0x00037630 beqz a0, 0x376cc | goto label_7;
| }
0x00037634 move s0, v0 | s0 = v0;
0x00037638 lw t9, -0x77bc(gp) | t9 = sym.imp.__isoc99_sscanf;
0x0003763c move a3, s1 | a3 = s1;
0x00037640 move a2, s7 | a2 = s7;
0x00037644 move a1, s3 | a1 = s3;
0x00037648 jalr t9 | t9 ();
0x0003764c lw gp, 0x10(sp) | gp = *(var_10h);
0x00037650 beq v0, s2, 0x37620 |
| }
0x00037654 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037658 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003765c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037660 lw a3, (fp) | a3 = *(fp);
0x00037664 lw a0, (v0) | a0 = *(v0);
| /* str._3_Invalid_trace_curve_coefficient__s_n */
0x00037668 addiu a2, a2, 0x2a4c | a2 += 0x2a4c;
0x0003766c addiu a1, zero, 1 | a1 = 1;
0x00037670 jalr t9 | t9 ();
0x00037674 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037678 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x0003767c move a0, s4 | a0 = s4;
0x00037680 jalr t9 | t9 ();
0x00037684 lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x00037688 move s0, zero | s0 = 0;
| label_1:
0x0003768c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00037690 lw v1, (s5) | v1 = *(s5);
0x00037694 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00037698 bne a0, v1, 0x37b20 | goto label_8;
| }
0x0003769c lw ra, 0x54(sp) | ra = *(var_54h);
0x000376a0 lw fp, 0x50(sp) | fp = *(var_50h);
0x000376a4 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x000376a8 lw s6, 0x48(sp) | s6 = *(var_48h);
0x000376ac lw s5, 0x44(sp) | s5 = *(var_44h);
0x000376b0 lw s4, 0x40(sp) | s4 = *(var_40h);
0x000376b4 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x000376b8 lw s2, 0x38(sp) | s2 = *(var_38h);
0x000376bc lw s1, 0x34(sp) | s1 = *(var_34h);
0x000376c0 lw s0, 0x30(sp) | s0 = *(var_30h);
0x000376c4 addiu sp, sp, 0x58 |
0x000376c8 jr ra | return v0;
| label_7:
0x000376cc lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x000376d0 move a0, s4 | a0 = s4;
0x000376d4 jalr t9 | t9 ();
0x000376d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000376dc lw t9, -0x7f8c(gp) | t9 = *(gp);
0x000376e0 move a0, s0 | a0 = s0;
0x000376e4 bal 0x44980 | fcn_00044980 ();
0x000376e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000376ec lw a0, 0x18(sp) | a0 = *(var_18h);
0x000376f0 sw v0, 0x5c(s6) | *((s6 + 23)) = v0;
0x000376f4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x000376f8 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
| /* str.trace_curve_coefficient_slopes */
0x000376fc addiu a1, a1, 0x2aa0 | a1 += 0x2aa0;
0x00037700 bal 0x3c4dc | sym_settings_get_string ();
0x00037704 move s0, v0 | s0 = v0;
0x00037708 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003770c beqz v0, 0x37918 | goto label_9;
| }
0x00037710 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00037714 lw t9, -0x7ad0(gp) | t9 = sym.imp.g_strsplit;
0x00037718 addiu a2, zero, 0xa | a2 = 0xa;
0x0003771c addiu a1, v0, -0x60b4 | a1 = v0 + -0x60b4;
0x00037720 move a0, s0 | a0 = s0;
0x00037724 jalr t9 | t9 ();
0x00037728 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003772c move s7, v0 | s7 = v0;
0x00037730 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x00037734 move a0, s0 | a0 = s0;
0x00037738 jalr t9 | t9 ();
0x0003773c lw a0, (s7) | a0 = *(s7);
0x00037740 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == 0) {
0x00037744 beqz a0, 0x37830 | goto label_10;
| }
0x00037748 lw v0, 0x24(sp) | v0 = *(var_24h_2);
0x0003774c addiu s2, s6, 0x34 | s2 = s6 + 0x34;
0x00037750 move s3, s7 | s3 = s7;
0x00037754 move s0, zero | s0 = 0;
0x00037758 addiu s4, v0, 0x1324 | s4 = v0 + 0x1324;
0x0003775c addiu fp, zero, 1 | fp = 1;
0x00037760 b 0x3777c |
| while (v0 == fp) {
0x00037764 addiu s3, s3, 4 | s3 += 4;
0x00037768 lw a0, (s3) | a0 = *(s3);
0x0003776c addiu v0, s0, 1 | v0 = s0 + 1;
0x00037770 addiu s2, s2, 4 | s2 += 4;
| if (a0 == 0) {
0x00037774 beqz a0, 0x37834 | goto label_11;
| }
0x00037778 move s0, v0 | s0 = v0;
0x0003777c lw t9, -0x77bc(gp) | t9 = sym.imp.__isoc99_sscanf;
0x00037780 move a3, s1 | a3 = s1;
0x00037784 move a2, s2 | a2 = s2;
0x00037788 move a1, s4 | a1 = s4;
0x0003778c jalr t9 | t9 ();
0x00037790 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037794 beq v0, fp, 0x37764 |
| }
0x00037798 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003779c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x000377a0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x000377a4 lw a3, (s3) | a3 = *(s3);
0x000377a8 lw a0, (v0) | a0 = *(v0);
| /* str._3_Invalid_trace_curve_slope__s_n */
0x000377ac addiu a2, a2, 0x2af4 | a2 += 0x2af4;
0x000377b0 addiu a1, zero, 1 | a1 = 1;
0x000377b4 jalr t9 | t9 ();
0x000377b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000377bc lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x000377c0 move a0, s7 | a0 = s7;
0x000377c4 jalr t9 | t9 ();
0x000377c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000377cc b 0x37688 | goto label_0;
| label_5:
0x000377d0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000377d4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000377d8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000377dc lw a3, (v0) | a3 = *(v0);
0x000377e0 addiu a2, zero, 0x2b | a2 = 0x2b;
0x000377e4 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_trace_curve_coefficients_n */
0x000377e8 addiu a0, a0, 0x2a20 | a0 += 0x2a20;
0x000377ec jalr t9 | t9 ();
0x000377f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000377f4 b 0x3768c | goto label_1;
| label_6:
0x000377f8 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x000377fc move a0, s4 | a0 = s4;
0x00037800 jalr t9 | t9 ();
0x00037804 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037808 addiu a2, zero, 0x28 | a2 = 0x28;
0x0003780c addiu a1, zero, 1 | a1 = 1;
0x00037810 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037814 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00037818 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003781c lw a3, (v0) | a3 = *(v0);
| /* str._3_No_trace_curve_coefficients_provided_n */
0x00037820 addiu a0, a0, 0x2a74 | a0 += 0x2a74;
0x00037824 jalr t9 | t9 ();
0x00037828 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003782c b 0x37688 | goto label_0;
| label_10:
0x00037830 addiu s0, zero, -1 | s0 = -1;
| label_11:
0x00037834 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x00037838 move a0, s7 | a0 = s7;
0x0003783c jalr t9 | t9 ();
0x00037840 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037844 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00037848 move a0, s0 | a0 = s0;
0x0003784c bal 0x44980 | fcn_00044980 ();
0x00037850 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037854 lw a1, 0x5c(s6) | a1 = *((s6 + 23));
0x00037858 lw t9, -0x7f40(gp) | t9 = *(gp);
0x0003785c move a0, v0 | a0 = v0;
0x00037860 bal 0x43d90 | fcn_00043d90 ();
0x00037864 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00037868 bnez v0, 0x37988 | goto label_12;
| }
0x0003786c lw s2, -0x7fd8(gp) | s2 = *(gp);
0x00037870 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037874 lw t9, -0x7acc(gp) | t9 = sym.imp.fopen;
0x00037878 addiu a1, a1, 0xf94 | a1 += 0xf94;
| /* str._lib_persistent_var_lib_focusd_focusd.traceoffset */
0x0003787c addiu a0, s2, 0x2b50 | a0 = s2 + 0x2b50;
0x00037880 jalr t9 | t9 ();
0x00037884 move s0, v0 | s0 = v0;
0x00037888 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003788c beqz v0, 0x37944 | goto label_13;
| }
0x00037890 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037894 lw t9, -0x7778(gp) | t9 = sym.imp.__isoc99_fscanf;
0x00037898 move a2, s1 | a2 = s1;
| /* esilref: '&f' */
0x0003789c addiu a1, a1, -0x605c | a1 += -0x605c;
0x000378a0 move a0, v0 | a0 = v0;
0x000378a4 jalr t9 | t9 ();
0x000378a8 addiu v1, zero, 1 | v1 = 1;
0x000378ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x000378b0 beq v0, v1, 0x379b0 | goto label_14;
| }
0x000378b4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000378b8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000378bc lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000378c0 lw a3, (v0) | a3 = *(v0);
0x000378c4 addiu a2, zero, 0x2b | a2 = 0x2b;
0x000378c8 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_trace_curve_offset_value_n */
0x000378cc addiu a0, a0, 0x2bf0 | a0 += 0x2bf0;
| label_2:
0x000378d0 jalr t9 | t9 ();
0x000378d4 nop |
0x000378d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000378dc lw t9, -0x797c(gp) | t9 = sym.imp.fclose;
0x000378e0 move a0, s0 | a0 = s0;
0x000378e4 jalr t9 | t9 ();
0x000378e8 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
| label_4:
0x000378ec lw a1, -0x7fd8(gp) | a1 = *(gp);
| label_3:
0x000378f0 lw t9, -0x7d1c(gp) | t9 = sym.settings_get_float;
0x000378f4 lw a0, 0x18(sp) | a0 = *(var_18h);
0x000378f8 addiu a2, s6, 0x60 | a2 = s6 + 0x60;
| /* str.trace_delta */
0x000378fc addiu a1, a1, 0x2c4c | a1 += 0x2c4c;
0x00037900 bal 0x3c714 | sym_settings_get_float ();
0x00037904 move s0, v0 | s0 = v0;
0x00037908 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003790c beqz v0, 0x37ae0 | goto label_15;
| }
0x00037910 addiu s0, zero, 1 | s0 = 1;
0x00037914 b 0x3768c | goto label_1;
| label_9:
0x00037918 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003791c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00037920 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00037924 lw a3, (v0) | a3 = *(v0);
0x00037928 addiu a2, zero, 0x31 | a2 = 0x31;
0x0003792c addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_trace_curve_coefficient_slopes_n */
0x00037930 addiu a0, a0, 0x2ac0 | a0 += 0x2ac0;
0x00037934 jalr t9 | t9 ();
0x00037938 move s0, zero | s0 = 0;
0x0003793c lw gp, 0x10(sp) | gp = *(var_10h);
0x00037940 b 0x3768c | goto label_1;
| label_13:
0x00037944 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x00037948 jalr t9 | t9 ();
0x0003794c nop |
0x00037950 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037954 lw v1, (v0) | v1 = *(v0);
0x00037958 addiu v0, zero, 2 | v0 = 2;
0x0003795c lw a0, -0x7990(gp) | a0 = *((gp - 7780));
| /* str._lib_persistent_var_lib_focusd_focusd.traceoffset */
0x00037960 addiu a3, s2, 0x2b50 | a3 = s2 + 0x2b50;
0x00037964 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037968 lw a0, (a0) | a0 = *(a0);
| if (v1 == v0) {
0x0003796c beq v1, v0, 0x37b08 | goto label_16;
| }
0x00037970 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037974 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_open_trace_curve_offset_file__s:__m_n */
0x00037978 addiu a2, a2, 0x2bbc | a2 += 0x2bbc;
0x0003797c jalr t9 | t9 ();
0x00037980 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037984 b 0x378ec |
| } while (1);
| label_12:
0x00037988 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003798c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00037990 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00037994 lw a3, (v0) | a3 = *(v0);
0x00037998 addiu a2, zero, 0x35 | a2 = 0x35;
0x0003799c addiu a1, zero, 1 | a1 = 1;
| /* str._3_Different_number_of_curve_coefficients_and_slopes_n */
0x000379a0 addiu a0, a0, 0x2b18 | a0 += 0x2b18;
0x000379a4 jalr t9 | t9 ();
0x000379a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000379ac b 0x37688 | goto label_0;
| label_14:
0x000379b0 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x000379b4 lw t9, -0x7f44(gp) | t9 = *(gp);
0x000379b8 move a1, zero | a1 = 0;
0x000379bc move a0, s1 | a0 = s1;
0x000379c0 bal 0x43f40 | fcn_00043f40 ();
0x000379c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x000379c8 bltz v0, 0x379e8 |
0x000379cc lw s2, -0x7fd8(gp) | s2 = *(gp);
0x000379d0 lw t9, -0x7f84(gp) | t9 = *(gp);
0x000379d4 move a0, s1 | a0 = s1;
0x000379d8 lw a1, -0x5cbc(s2) | a1 = *((s2 - 5935));
0x000379dc bal 0x43e20 | fcn_00043e20 ();
0x000379e0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 <= 0) {
0x000379e4 blez v0, 0x37a08 | goto label_17;
| }
| }
0x000379e8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x000379ec lw a0, -0x7fd8(gp) | a0 = *(gp);
0x000379f0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x000379f4 lw a3, (v0) | a3 = *(v0);
0x000379f8 addiu a2, zero, 0x2f | a2 = 0x2f;
0x000379fc addiu a1, zero, 1 | a1 = 1;
| /* str._3_Bad_or_nonexistent_trace_curve_offset_value_n */
0x00037a00 addiu a0, a0, 0x2c1c | a0 += 0x2c1c;
0x00037a04 b 0x378d0 | goto label_2;
| label_17:
0x00037a08 lw t9, -0x797c(gp) | t9 = sym.imp.fclose;
0x00037a0c move a0, s0 | a0 = s0;
0x00037a10 jalr t9 | t9 ();
0x00037a14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037a18 lw s1, 0xc(s6) | s1 = *((s6 + 3));
0x00037a1c lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x00037a20 lw t9, -0x7ecc(gp) | t9 = *(gp);
0x00037a24 move a1, s1 | a1 = s1;
0x00037a28 bal 0x443a0 | fcn_000443a0 ();
0x00037a2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00037a30 lw a1, -0x5cbc(s2) | a1 = *((s2 - 5935));
0x00037a34 lw a0, 0x5c(s6) | a0 = *((s6 + 23));
0x00037a38 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00037a3c move s3, v0 | s3 = v0;
0x00037a40 bal 0x43490 | fcn_00043490 ();
0x00037a44 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037a48 move a1, zero | a1 = 0;
0x00037a4c move a0, v0 | a0 = v0;
0x00037a50 lw t9, -0x7f84(gp) | t9 = *(gp);
0x00037a54 move s2, v0 | s2 = v0;
0x00037a58 bal 0x43e20 | fcn_00043e20 ();
0x00037a5c move s0, zero | s0 = 0;
0x00037a60 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 > 0) {
0x00037a64 bgtz v0, 0x37a74 | goto label_18;
| }
0x00037a68 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037a6c b 0x378f0 | goto label_3;
| do {
0x00037a70 lw s1, 4(s4) | s1 = *((s4 + 1));
| label_18:
0x00037a74 lw s4, 0x1c(sp) | s4 = *(var_1ch);
0x00037a78 lw t9, -0x7f3c(gp) | t9 = *(gp);
0x00037a7c move a0, s3 | a0 = s3;
0x00037a80 lw a1, 0x28(s4) | a1 = *((s4 + 10));
0x00037a84 addiu s0, s0, 1 | s0++;
0x00037a88 bal 0x44070 | fcn_00044070 ();
0x00037a8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00037a90 move a1, s1 | a1 = s1;
0x00037a94 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00037a98 move a0, v0 | a0 = v0;
0x00037a9c bal 0x43490 | fcn_00043490 ();
0x00037aa0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037aa4 move a0, s0 | a0 = s0;
0x00037aa8 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00037aac sw v0, (s4) | *(s4) = v0;
0x00037ab0 bal 0x44980 | fcn_00044980 ();
0x00037ab4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037ab8 move a1, s2 | a1 = s2;
0x00037abc lw t9, -0x7f44(gp) | t9 = *(gp);
0x00037ac0 move a0, v0 | a0 = v0;
0x00037ac4 bal 0x43f40 | fcn_00043f40 ();
0x00037ac8 addiu v1, s4, 4 | v1 = s4 + 4;
0x00037acc lw gp, 0x10(sp) | gp = *(var_10h);
0x00037ad0 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00037ad4 bltz v0, 0x37a70 |
| } while (v0 < 0);
0x00037ad8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037adc b 0x378f0 | goto label_3;
| label_15:
0x00037ae0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037ae4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00037ae8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00037aec lw a3, (v0) | a3 = *(v0);
0x00037af0 addiu a2, zero, 0x34 | a2 = 0x34;
0x00037af4 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_trace_curve_search_interval_delta_n */
0x00037af8 addiu a0, a0, 0x2c58 | a0 += 0x2c58;
0x00037afc jalr t9 | t9 ();
0x00037b00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037b04 b 0x3768c | goto label_1;
| label_16:
0x00037b08 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037b0c addiu a1, zero, 1 | a1 = 1;
| /* str._6_Trace_curve_offset_file__s_not_present__skipping_n */
0x00037b10 addiu a2, a2, 0x2b84 | a2 += 0x2b84;
0x00037b14 jalr t9 | t9 ();
0x00037b18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00037b1c b 0x378ec | goto label_4;
| label_8:
0x00037b20 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00037b24 jalr t9 | t9 ();
0x00037b28 nop |
0x00037b2c nop |
0x00037b30 lui gp, 3 |
0x00037b34 addiu gp, gp, 0x7050 |
0x00037b38 addu gp, gp, t9 | gp += t9;
0x00037b3c addiu sp, sp, -0x30 |
0x00037b40 lw t9, -0x7780(gp) | t9 = sym.imp.g_type_from_name;
0x00037b44 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00037b48 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00037b4c sw s1, 0x24(sp) | *(var_24h) = s1;
0x00037b50 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00037b54 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00037b58 move s2, a0 | s2 = a0;
0x00037b5c move s1, a1 | s1 = a1;
0x00037b60 move s0, a2 | s0 = a2;
0x00037b64 jalr t9 | t9 ();
0x00037b68 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00037b6c beqz v0, 0x37c5c |
0x00037b70 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x00037b74 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00037b78 lw t9, -0x78ec(gp) | t9 = sym.imp.g_object_new;
| /* str.source */
0x00037b7c addiu a3, a3, -0x615c | a3 += -0x615c;
0x00037b80 move a2, s1 | a2 = s1;
| /* str.motor_function */
0x00037b84 addiu a1, a1, -0x1578 | a1 += -0x1578;
0x00037b88 move a0, v0 | a0 = v0;
0x00037b8c sw s0, 0x10(sp) | *(var_10h_2) = s0;
0x00037b90 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00037b94 jalr t9 | t9 ();
0x00037b98 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00037b9c lw t9, -0x7f24(gp) | t9 = sym.focusd_motor_get_type;
0x00037ba0 move s0, v0 | s0 = v0;
0x00037ba4 bal 0x1f07c | sym_focusd_motor_get_type ();
0x00037ba8 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s0 != 0) {
0x00037bac beqz s0, 0x37c10 |
0x00037bb0 lw v1, (s0) | v1 = *(s0);
0x00037bb4 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
| if (v1 != 0) {
0x00037bb8 beqz v1, 0x37bc8 |
0x00037bbc lw v1, (v1) | v1 = *(v1);
| if (v1 == v0) {
0x00037bc0 beql v1, v0, 0x37be0 | goto label_19;
| }
0x00037bc4 lw t9, -0x7f24(gp) | t9 = sym.focusd_motor_get_type;
| }
0x00037bc8 move a1, v0 | a1 = v0;
0x00037bcc move a0, s0 | a0 = s0;
0x00037bd0 jalr t9 | t9 ();
0x00037bd4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00037bd8 beqz v0, 0x37c10 | goto label_20;
| }
0x00037bdc lw t9, -0x7f24(gp) | t9 = sym.focusd_motor_get_type;
| label_19:
0x00037be0 bal 0x1f07c | sym_focusd_motor_get_type ();
0x00037be4 nop |
0x00037be8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00037bec lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00037bf0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00037bf4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00037bf8 move a0, s0 | a0 = s0;
0x00037bfc lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x00037c00 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00037c04 move a1, v0 | a1 = v0;
0x00037c08 addiu sp, sp, 0x30 |
0x00037c0c jr t9 | t9 ();
| }
| label_20:
0x00037c10 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00037c14 move a0, s0 | a0 = s0;
0x00037c18 jalr t9 | t9 ();
0x00037c1c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00037c20 move a3, s2 | a3 = s2;
0x00037c24 addiu a1, zero, 1 | a1 = 1;
0x00037c28 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037c2c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037c30 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037c34 lw a0, (v0) | a0 = *(v0);
| /* str._3_Type_name__s_does_not_specify_a_Motor_subclass_n */
0x00037c38 addiu a2, a2, 0x2cb4 | a2 += 0x2cb4;
0x00037c3c jalr t9 | t9 ();
0x00037c40 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00037c44 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00037c48 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00037c4c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00037c50 move v0, zero | v0 = 0;
0x00037c54 addiu sp, sp, 0x30 |
0x00037c58 jr ra | return v0;
| }
0x00037c5c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00037c60 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00037c64 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00037c68 lw a0, (v0) | a0 = *(v0);
0x00037c6c move a3, s2 | a3 = s2;
| /* str._3_Unknown_focus_motor_type__s_n */
0x00037c70 addiu a2, a2, 0x2c90 | a2 += 0x2c90;
0x00037c74 addiu a1, zero, 1 | a1 = 1;
0x00037c78 jalr t9 | t9 ();
0x00037c7c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00037c80 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00037c84 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00037c88 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00037c8c move v0, zero | v0 = 0;
0x00037c90 addiu sp, sp, 0x30 |
0x00037c94 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3a3b8 */
| #include <stdint.h>
|
; (fcn) sym.imaged_get_dciris_state () | void imaged_get_dciris_state () {
0x0003a3b8 lui gp, 3 |
0x0003a3bc addiu gp, gp, 0x47c8 |
0x0003a3c0 addu gp, gp, t9 | gp += t9;
0x0003a3c4 addiu sp, sp, -0x50 |
0x0003a3c8 sw s1, 0x38(sp) | *(var_38h_5) = s1;
0x0003a3cc lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0003a3d0 sw gp, 0x20(sp) | *(var_20h_5) = gp;
0x0003a3d4 sw ra, 0x4c(sp) | *(var_4ch_3) = ra;
0x0003a3d8 lw v0, (s1) | v0 = *(s1);
0x0003a3dc sw s5, 0x48(sp) | *(var_48h_3) = s5;
0x0003a3e0 sw s4, 0x44(sp) | *(var_44h_5) = s4;
0x0003a3e4 sw s3, 0x40(sp) | *(var_40h_5) = s3;
0x0003a3e8 sw s2, 0x3c(sp) | *(var_3ch_5) = s2;
0x0003a3ec sw s0, 0x34(sp) | *(var_34h_5) = s0;
0x0003a3f0 sw zero, 0x28(sp) | *(var_28h_5) = 0;
0x0003a3f4 sw v0, 0x2c(sp) | *(var_2ch_5) = v0;
0x0003a3f8 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x0003a3fc beqz a0, 0x3a53c | goto label_2;
| }
0x0003a400 lw v0, 0x58(a0) | v0 = *((a0 + 22));
0x0003a404 move s0, a0 | s0 = a0;
0x0003a408 move s2, a1 | s2 = a1;
| if (v0 != 0) {
0x0003a40c bnez v0, 0x3a450 | goto label_3;
| }
0x0003a410 addiu v0, zero, 1 | v0 = 1;
0x0003a414 sw v0, (a1) | *(a1) = v0;
0x0003a418 addiu s0, zero, 1 | s0 = 1;
| do {
| label_0:
0x0003a41c lw a0, 0x2c(sp) | a0 = *(var_2ch_5);
0x0003a420 lw v1, (s1) | v1 = *(s1);
0x0003a424 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0003a428 bne a0, v1, 0x3a698 | goto label_4;
| }
0x0003a42c lw ra, 0x4c(sp) | ra = *(var_4ch_3);
0x0003a430 lw s5, 0x48(sp) | s5 = *(var_48h_3);
0x0003a434 lw s4, 0x44(sp) | s4 = *(var_44h_5);
0x0003a438 lw s3, 0x40(sp) | s3 = *(var_40h_5);
0x0003a43c lw s2, 0x3c(sp) | s2 = *(var_3ch_5);
0x0003a440 lw s1, 0x38(sp) | s1 = *(var_38h_5);
0x0003a444 lw s0, 0x34(sp) | s0 = *(var_34h_5);
0x0003a448 addiu sp, sp, 0x50 |
0x0003a44c jr ra | return v0;
| label_3:
0x0003a450 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003a454 addiu s3, a0, 0x34 | s3 = a0 + 0x34;
0x0003a458 move a0, s3 | a0 = s3;
0x0003a45c jalr t9 | t9 ();
0x0003a460 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x0003a464 lw gp, 0x20(sp) | gp = *(var_20h_5);
| if (a0 == 0) {
0x0003a468 beqz a0, 0x3a630 | goto label_5;
| }
0x0003a46c lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x0003a470 jalr t9 | t9 ();
0x0003a474 nop |
0x0003a478 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a47c move a0, s3 | a0 = s3;
0x0003a480 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003a484 move s3, v0 | s3 = v0;
0x0003a488 jalr t9 | t9 ();
0x0003a48c lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a490 lw a1, 0x54(s0) | a1 = *((s0 + 21));
0x0003a494 addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x0003a498 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003a49c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a4a0 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.IrisEnabled */
0x0003a4a4 addiu a2, a2, 0x33b4 | a2 += 0x33b4;
| /* str._ss_ */
0x0003a4a8 addiu a0, a0, -0x2920 | a0 += -0x2920;
0x0003a4ac jalr t9 | t9 ();
0x0003a4b0 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a4b4 move a2, v0 | a2 = v0;
0x0003a4b8 addiu v0, zero, -1 | v0 = -1;
0x0003a4bc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a4c0 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003a4c4 move a0, s3 | a0 = s3;
0x0003a4c8 move a3, zero | a3 = 0;
| /* esilref: 'Get' */
0x0003a4cc addiu a1, a1, -0x28c4 | a1 += -0x28c4;
0x0003a4d0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0003a4d4 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003a4d8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0003a4dc jalr t9 | t9 ();
0x0003a4e0 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a4e4 move a0, s3 | a0 = s3;
0x0003a4e8 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x0003a4ec move s3, v0 | s3 = v0;
0x0003a4f0 jalr t9 | t9 ();
0x0003a4f4 lw v0, 0x28(sp) | v0 = *(var_28h_5);
0x0003a4f8 lw gp, 0x20(sp) | gp = *(var_20h_5);
| if (v0 == 0) {
0x0003a4fc beqz v0, 0x3a55c | goto label_6;
| }
0x0003a500 lw a3, 8(v0) | a3 = *((v0 + 2));
0x0003a504 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a508 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003a50c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003a510 lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_complete_GetEnabled:__s_n */
0x0003a514 addiu a2, a2, 0x3418 | a2 += 0x3418;
0x0003a518 addiu a1, zero, 1 | a1 = 1;
0x0003a51c jalr t9 | t9 ();
0x0003a520 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a524 move a0, s0 | a0 = s0;
0x0003a528 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003a52c move s0, zero | s0 = 0;
0x0003a530 jalr t9 | t9 ();
0x0003a534 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a538 b 0x3a41c |
| } while (1);
| label_2:
0x0003a53c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a540 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.id___NULL */
0x0003a544 addiu a2, a2, 0x3164 | a2 += 0x3164;
| /* str.imaged_get_dciris_state */
0x0003a548 addiu a1, a1, 0x36c0 | a1 += 0x36c0;
0x0003a54c jalr t9 | t9 ();
0x0003a550 move s0, zero | s0 = 0;
0x0003a554 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a558 b 0x3a41c | goto label_0;
| label_6:
0x0003a55c lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x0003a560 move a1, zero | a1 = 0;
0x0003a564 move a0, s3 | a0 = s3;
0x0003a568 jalr t9 | t9 ();
0x0003a56c lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a570 move a1, zero | a1 = 0;
0x0003a574 move a0, v0 | a0 = v0;
0x0003a578 lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x0003a57c move s4, v0 | s4 = v0;
0x0003a580 jalr t9 | t9 ();
0x0003a584 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a588 move a1, zero | a1 = 0;
0x0003a58c move a0, v0 | a0 = v0;
0x0003a590 lw t9, -0x7bf0(gp) | t9 = sym.imp.g_variant_get_string;
0x0003a594 move s5, v0 | s5 = v0;
0x0003a598 jalr t9 | t9 ();
0x0003a59c lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a5a0 addiu a2, zero, 3 | a2 = 3;
0x0003a5a4 move a0, v0 | a0 = v0;
0x0003a5a8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a5ac lw t9, -0x7b4c(gp) | t9 = sym.imp.strncmp;
| /* esilref: 'yes' */
0x0003a5b0 addiu a1, a1, -0x7458 | a1 += -0x7458;
0x0003a5b4 move s0, v0 | s0 = v0;
0x0003a5b8 jalr t9 | t9 ();
0x0003a5bc lw gp, 0x20(sp) | gp = *(var_20h_5);
| if (v0 != 0) {
0x0003a5c0 bnez v0, 0x3a604 | goto label_7;
| }
0x0003a5c4 addiu v0, zero, 1 | v0 = 1;
0x0003a5c8 sw v0, (s2) | *(s2) = v0;
0x0003a5cc addiu s0, zero, 1 | s0 = 1;
| do {
| label_1:
0x0003a5d0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003a5d4 move a0, s5 | a0 = s5;
0x0003a5d8 jalr t9 | t9 ();
0x0003a5dc lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a5e0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003a5e4 move a0, s4 | a0 = s4;
0x0003a5e8 jalr t9 | t9 ();
0x0003a5ec lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a5f0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003a5f4 move a0, s3 | a0 = s3;
0x0003a5f8 jalr t9 | t9 ();
0x0003a5fc lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a600 b 0x3a41c | goto label_0;
| label_7:
0x0003a604 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a608 lw t9, -0x7b4c(gp) | t9 = sym.imp.strncmp;
0x0003a60c addiu a2, zero, 2 | a2 = 2;
| /* esilref: 'no' */
0x0003a610 addiu a1, a1, -0x7454 | a1 += -0x7454;
0x0003a614 move a0, s0 | a0 = s0;
0x0003a618 jalr t9 | t9 ();
0x0003a61c lw gp, 0x20(sp) | gp = *(var_20h_5);
| if (v0 != 0) {
0x0003a620 bnez v0, 0x3a66c | goto label_8;
| }
0x0003a624 sw zero, (s2) | *(s2) = 0;
0x0003a628 addiu s0, zero, 1 | s0 = 1;
0x0003a62c b 0x3a5d0 |
| } while (1);
| label_5:
0x0003a630 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a634 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a638 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003a63c lw a3, (v0) | a3 = *(v0);
0x0003a640 addiu a2, zero, 0x2e | a2 = 0x2e;
0x0003a644 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_get_dciris_state__proxy_is_unset_n */
0x0003a648 addiu a0, a0, 0x33e8 | a0 += 0x33e8;
0x0003a64c jalr t9 | t9 ();
0x0003a650 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a654 move a0, s3 | a0 = s3;
0x0003a658 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003a65c move s0, zero | s0 = 0;
0x0003a660 jalr t9 | t9 ();
0x0003a664 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a668 b 0x3a41c | goto label_0;
| label_8:
0x0003a66c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a670 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a674 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003a678 lw a3, (v0) | a3 = *(v0);
0x0003a67c addiu a2, zero, 0x29 | a2 = 0x29;
0x0003a680 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Invalid_string_returned_from_Enabled._n */
0x0003a684 addiu a0, a0, 0x3440 | a0 += 0x3440;
0x0003a688 jalr t9 | t9 ();
0x0003a68c move s0, zero | s0 = 0;
0x0003a690 lw gp, 0x20(sp) | gp = *(var_20h_5);
0x0003a694 b 0x3a5d0 | goto label_1;
| label_4:
0x0003a698 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003a69c jalr t9 | t9 ();
0x0003a6a0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x39f00 */
| #include <stdint.h>
|
; (fcn) sym.imaged_get_iris_position () | void imaged_get_iris_position () {
0x00039f00 lui gp, 3 |
0x00039f04 addiu gp, gp, 0x4c80 |
0x00039f08 addu gp, gp, t9 | gp += t9;
0x00039f0c addiu sp, sp, -0x50 |
0x00039f10 sw s1, 0x38(sp) | *(var_38h_3) = s1;
0x00039f14 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00039f18 sw gp, 0x20(sp) | *(var_20h_3) = gp;
0x00039f1c sw ra, 0x4c(sp) | *(var_4ch_2) = ra;
0x00039f20 lw v0, (s1) | v0 = *(s1);
0x00039f24 sw s5, 0x48(sp) | *(var_48h_2) = s5;
0x00039f28 sw s4, 0x44(sp) | *(var_44h_3) = s4;
0x00039f2c sw s3, 0x40(sp) | *(var_40h_3) = s3;
0x00039f30 sw s2, 0x3c(sp) | *(var_3ch_3) = s2;
0x00039f34 sw s0, 0x34(sp) | *(var_34h_3) = s0;
0x00039f38 sw zero, 0x28(sp) | *(var_28h_3) = 0;
0x00039f3c sw v0, 0x2c(sp) | *(var_2ch_3) = v0;
0x00039f40 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x00039f44 beqz a0, 0x3a080 | goto label_1;
| }
0x00039f48 lw v0, 0x58(a0) | v0 = *((a0 + 22));
0x00039f4c move s0, a0 | s0 = a0;
0x00039f50 move s2, a1 | s2 = a1;
| if (v0 != 0) {
0x00039f54 bnez v0, 0x39f94 | goto label_2;
| }
0x00039f58 sw zero, (a1) | *(a1) = 0;
0x00039f5c addiu s0, zero, 1 | s0 = 1;
| do {
| label_0:
0x00039f60 lw a0, 0x2c(sp) | a0 = *(var_2ch_3);
0x00039f64 lw v1, (s1) | v1 = *(s1);
0x00039f68 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00039f6c bne a0, v1, 0x3a18c | goto label_3;
| }
0x00039f70 lw ra, 0x4c(sp) | ra = *(var_4ch_2);
0x00039f74 lw s5, 0x48(sp) | s5 = *(var_48h_2);
0x00039f78 lw s4, 0x44(sp) | s4 = *(var_44h_3);
0x00039f7c lw s3, 0x40(sp) | s3 = *(var_40h_3);
0x00039f80 lw s2, 0x3c(sp) | s2 = *(var_3ch_3);
0x00039f84 lw s1, 0x38(sp) | s1 = *(var_38h_3);
0x00039f88 lw s0, 0x34(sp) | s0 = *(var_34h_3);
0x00039f8c addiu sp, sp, 0x50 |
0x00039f90 jr ra | return v0;
| label_2:
0x00039f94 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x00039f98 addiu s3, a0, 0x34 | s3 = a0 + 0x34;
0x00039f9c move a0, s3 | a0 = s3;
0x00039fa0 jalr t9 | t9 ();
0x00039fa4 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x00039fa8 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (a0 == 0) {
0x00039fac beqz a0, 0x3a124 | goto label_4;
| }
0x00039fb0 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x00039fb4 jalr t9 | t9 ();
0x00039fb8 nop |
0x00039fbc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00039fc0 move a0, s3 | a0 = s3;
0x00039fc4 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00039fc8 move s3, v0 | s3 = v0;
0x00039fcc jalr t9 | t9 ();
0x00039fd0 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00039fd4 lw a1, 0x54(s0) | a1 = *((s0 + 21));
0x00039fd8 addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x00039fdc lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00039fe0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00039fe4 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.IrisPosition */
0x00039fe8 addiu a2, a2, 0x32d0 | a2 += 0x32d0;
| /* str._ss_ */
0x00039fec addiu a0, a0, -0x2920 | a0 += -0x2920;
0x00039ff0 jalr t9 | t9 ();
0x00039ff4 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x00039ff8 move a2, v0 | a2 = v0;
0x00039ffc addiu v0, zero, -1 | v0 = -1;
0x0003a000 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a004 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003a008 move a0, s3 | a0 = s3;
0x0003a00c move a3, zero | a3 = 0;
| /* esilref: 'Get' */
0x0003a010 addiu a1, a1, -0x28c4 | a1 += -0x28c4;
0x0003a014 sw s0, 0x18(sp) | *(var_18h_3) = s0;
0x0003a018 sw zero, 0x14(sp) | *(var_14h_3) = 0;
0x0003a01c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x0003a020 jalr t9 | t9 ();
0x0003a024 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a028 move a0, s3 | a0 = s3;
0x0003a02c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x0003a030 move s3, v0 | s3 = v0;
0x0003a034 jalr t9 | t9 ();
0x0003a038 lw v0, 0x28(sp) | v0 = *(var_28h_3);
0x0003a03c lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v0 == 0) {
0x0003a040 beqz v0, 0x3a0a0 | goto label_5;
| }
0x0003a044 lw a3, 8(v0) | a3 = *((v0 + 2));
0x0003a048 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a04c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003a050 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003a054 lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_complete_GetPosition:__s_n */
0x0003a058 addiu a2, a2, 0x3338 | a2 += 0x3338;
0x0003a05c addiu a1, zero, 1 | a1 = 1;
0x0003a060 jalr t9 | t9 ();
0x0003a064 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a068 move a0, s0 | a0 = s0;
0x0003a06c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003a070 move s0, zero | s0 = 0;
0x0003a074 jalr t9 | t9 ();
0x0003a078 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a07c b 0x39f60 |
| } while (1);
| label_1:
0x0003a080 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a084 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.id___NULL */
0x0003a088 addiu a2, a2, 0x3164 | a2 += 0x3164;
| /* str.imaged_get_iris_position */
0x0003a08c addiu a1, a1, 0x36f0 | a1 += 0x36f0;
0x0003a090 jalr t9 | t9 ();
0x0003a094 move s0, zero | s0 = 0;
0x0003a098 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a09c b 0x39f60 | goto label_0;
| label_5:
0x0003a0a0 lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x0003a0a4 move a1, zero | a1 = 0;
0x0003a0a8 move a0, s3 | a0 = s3;
0x0003a0ac jalr t9 | t9 ();
0x0003a0b0 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a0b4 move a1, zero | a1 = 0;
0x0003a0b8 move a0, v0 | a0 = v0;
0x0003a0bc lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x0003a0c0 move s4, v0 | s4 = v0;
0x0003a0c4 jalr t9 | t9 ();
0x0003a0c8 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a0cc move a0, v0 | a0 = v0;
0x0003a0d0 lw t9, -0x7774(gp) | t9 = sym.imp.g_variant_get_int32;
0x0003a0d4 move s5, v0 | s5 = v0;
0x0003a0d8 jalr t9 | t9 ();
0x0003a0dc sltiu v1, v0, 0x65 | v1 = (v0 < 0x65) ? 1 : 0;
0x0003a0e0 lw gp, 0x20(sp) | gp = *(var_20h_3);
| if (v1 == 0) {
0x0003a0e4 beqz v1, 0x3a160 | goto label_6;
| }
0x0003a0e8 sw v0, (s2) | *(s2) = v0;
0x0003a0ec addiu s0, zero, 1 | s0 = 1;
| do {
0x0003a0f0 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003a0f4 move a0, s5 | a0 = s5;
0x0003a0f8 jalr t9 | t9 ();
0x0003a0fc lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a100 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003a104 move a0, s4 | a0 = s4;
0x0003a108 jalr t9 | t9 ();
0x0003a10c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a110 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003a114 move a0, s3 | a0 = s3;
0x0003a118 jalr t9 | t9 ();
0x0003a11c lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a120 b 0x39f60 | goto label_0;
| label_4:
0x0003a124 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a128 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a12c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003a130 lw a3, (v0) | a3 = *(v0);
0x0003a134 addiu a2, zero, 0x2f | a2 = 0x2f;
0x0003a138 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_get_iris_position__proxy_is_unset_n */
0x0003a13c addiu a0, a0, 0x3308 | a0 += 0x3308;
0x0003a140 jalr t9 | t9 ();
0x0003a144 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a148 move a0, s3 | a0 = s3;
0x0003a14c lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003a150 move s0, zero | s0 = 0;
0x0003a154 jalr t9 | t9 ();
0x0003a158 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a15c b 0x39f60 | goto label_0;
| label_6:
0x0003a160 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a164 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a168 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003a16c lw a3, (v0) | a3 = *(v0);
0x0003a170 addiu a2, zero, 0x27 | a2 = 0x27;
0x0003a174 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Invalid_int_returned_from_Position._n */
0x0003a178 addiu a0, a0, 0x3360 | a0 += 0x3360;
0x0003a17c jalr t9 | t9 ();
0x0003a180 move s0, zero | s0 = 0;
0x0003a184 lw gp, 0x20(sp) | gp = *(var_20h_3);
0x0003a188 b 0x3a0f0 |
| } while (1);
| label_3:
0x0003a18c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003a190 jalr t9 | t9 ();
0x0003a194 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x39a10 */
| #include <stdint.h>
|
; (fcn) sym.imaged_get_positionable_iris () | void imaged_get_positionable_iris () {
0x00039a10 lui gp, 3 |
0x00039a14 addiu gp, gp, 0x5170 |
0x00039a18 addu gp, gp, t9 | gp += t9;
0x00039a1c addiu sp, sp, -0x50 |
0x00039a20 sw s1, 0x38(sp) | *(var_38h) = s1;
0x00039a24 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00039a28 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00039a2c sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00039a30 lw v0, (s1) | v0 = *(s1);
0x00039a34 sw s5, 0x48(sp) | *(var_48h) = s5;
0x00039a38 sw s4, 0x44(sp) | *(var_44h) = s4;
0x00039a3c sw s3, 0x40(sp) | *(var_40h) = s3;
0x00039a40 sw s2, 0x3c(sp) | *(var_3ch) = s2;
0x00039a44 sw s0, 0x34(sp) | *(var_34h) = s0;
0x00039a48 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00039a4c sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00039a50 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x00039a54 beqz a0, 0x39b90 | goto label_2;
| }
0x00039a58 lw v0, 0x58(a0) | v0 = *((a0 + 22));
0x00039a5c move s0, a0 | s0 = a0;
0x00039a60 move s2, a1 | s2 = a1;
| if (v0 != 0) {
0x00039a64 bnez v0, 0x39aa4 | goto label_3;
| }
0x00039a68 sw zero, (a1) | *(a1) = 0;
0x00039a6c addiu s0, zero, 1 | s0 = 1;
| do {
| label_0:
0x00039a70 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00039a74 lw v1, (s1) | v1 = *(s1);
0x00039a78 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00039a7c bne a0, v1, 0x39cec | goto label_4;
| }
0x00039a80 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00039a84 lw s5, 0x48(sp) | s5 = *(var_48h);
0x00039a88 lw s4, 0x44(sp) | s4 = *(var_44h);
0x00039a8c lw s3, 0x40(sp) | s3 = *(var_40h);
0x00039a90 lw s2, 0x3c(sp) | s2 = *(var_3ch);
0x00039a94 lw s1, 0x38(sp) | s1 = *(var_38h);
0x00039a98 lw s0, 0x34(sp) | s0 = *(var_34h);
0x00039a9c addiu sp, sp, 0x50 |
0x00039aa0 jr ra | return v0;
| label_3:
0x00039aa4 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x00039aa8 addiu s3, a0, 0x34 | s3 = a0 + 0x34;
0x00039aac move a0, s3 | a0 = s3;
0x00039ab0 jalr t9 | t9 ();
0x00039ab4 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x00039ab8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 == 0) {
0x00039abc beqz a0, 0x39c84 | goto label_5;
| }
0x00039ac0 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x00039ac4 jalr t9 | t9 ();
0x00039ac8 nop |
0x00039acc lw gp, 0x20(sp) | gp = *(var_20h);
0x00039ad0 move a0, s3 | a0 = s3;
0x00039ad4 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00039ad8 move s3, v0 | s3 = v0;
0x00039adc jalr t9 | t9 ();
0x00039ae0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039ae4 lw a1, 0x54(s0) | a1 = *((s0 + 21));
0x00039ae8 addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x00039aec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00039af0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00039af4 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.PositionableIris */
0x00039af8 addiu a2, a2, 0x3228 | a2 += 0x3228;
| /* str._ss_ */
0x00039afc addiu a0, a0, -0x2920 | a0 += -0x2920;
0x00039b00 jalr t9 | t9 ();
0x00039b04 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039b08 move a2, v0 | a2 = v0;
0x00039b0c addiu v0, zero, -1 | v0 = -1;
0x00039b10 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00039b14 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x00039b18 move a0, s3 | a0 = s3;
0x00039b1c move a3, zero | a3 = 0;
| /* esilref: 'Get' */
0x00039b20 addiu a1, a1, -0x28c4 | a1 += -0x28c4;
0x00039b24 sw s0, 0x18(sp) | *(var_18h_5) = s0;
0x00039b28 sw zero, 0x14(sp) | *(var_14h_5) = 0;
0x00039b2c sw v0, 0x10(sp) | *(var_10h_6) = v0;
0x00039b30 jalr t9 | t9 ();
0x00039b34 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039b38 move a0, s3 | a0 = s3;
0x00039b3c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00039b40 move s3, v0 | s3 = v0;
0x00039b44 jalr t9 | t9 ();
0x00039b48 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00039b4c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00039b50 beqz v0, 0x39bb0 | goto label_6;
| }
0x00039b54 lw a3, 8(v0) | a3 = *((v0 + 2));
0x00039b58 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00039b5c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00039b60 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00039b64 lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_complete_GetPositionableIris:__s_n */
0x00039b68 addiu a2, a2, 0x323c | a2 += 0x323c;
0x00039b6c addiu a1, zero, 1 | a1 = 1;
0x00039b70 jalr t9 | t9 ();
0x00039b74 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039b78 move a0, s0 | a0 = s0;
0x00039b7c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00039b80 move s0, zero | s0 = 0;
0x00039b84 jalr t9 | t9 ();
0x00039b88 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039b8c b 0x39a70 |
| } while (1);
| label_2:
0x00039b90 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00039b94 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.id___NULL */
0x00039b98 addiu a2, a2, 0x3164 | a2 += 0x3164;
| /* str.imaged_get_positionable_iris */
0x00039b9c addiu a1, a1, 0x3728 | a1 += 0x3728;
0x00039ba0 jalr t9 | t9 ();
0x00039ba4 move s0, zero | s0 = 0;
0x00039ba8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039bac b 0x39a70 | goto label_0;
| label_6:
0x00039bb0 lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x00039bb4 move a1, zero | a1 = 0;
0x00039bb8 move a0, s3 | a0 = s3;
0x00039bbc jalr t9 | t9 ();
0x00039bc0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039bc4 move a1, zero | a1 = 0;
0x00039bc8 move a0, v0 | a0 = v0;
0x00039bcc lw t9, -0x78e8(gp) | t9 = sym.imp.g_variant_get_child_value;
0x00039bd0 move s4, v0 | s4 = v0;
0x00039bd4 jalr t9 | t9 ();
0x00039bd8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039bdc move a1, zero | a1 = 0;
0x00039be0 move a0, v0 | a0 = v0;
0x00039be4 lw t9, -0x7bf0(gp) | t9 = sym.imp.g_variant_get_string;
0x00039be8 move s5, v0 | s5 = v0;
0x00039bec jalr t9 | t9 ();
0x00039bf0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039bf4 addiu a2, zero, 3 | a2 = 3;
0x00039bf8 move a0, v0 | a0 = v0;
0x00039bfc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00039c00 lw t9, -0x7b4c(gp) | t9 = sym.imp.strncmp;
| /* esilref: 'yes' */
0x00039c04 addiu a1, a1, -0x7458 | a1 += -0x7458;
0x00039c08 move s0, v0 | s0 = v0;
0x00039c0c jalr t9 | t9 ();
0x00039c10 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00039c14 bnez v0, 0x39c58 | goto label_7;
| }
0x00039c18 addiu v0, zero, 1 | v0 = 1;
0x00039c1c sw v0, (s2) | *(s2) = v0;
0x00039c20 addiu s0, zero, 1 | s0 = 1;
| do {
| label_1:
0x00039c24 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x00039c28 move a0, s5 | a0 = s5;
0x00039c2c jalr t9 | t9 ();
0x00039c30 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039c34 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x00039c38 move a0, s4 | a0 = s4;
0x00039c3c jalr t9 | t9 ();
0x00039c40 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039c44 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x00039c48 move a0, s3 | a0 = s3;
0x00039c4c jalr t9 | t9 ();
0x00039c50 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039c54 b 0x39a70 | goto label_0;
| label_7:
0x00039c58 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00039c5c lw t9, -0x7b4c(gp) | t9 = sym.imp.strncmp;
0x00039c60 addiu a2, zero, 2 | a2 = 2;
| /* esilref: 'no' */
0x00039c64 addiu a1, a1, -0x7454 | a1 += -0x7454;
0x00039c68 move a0, s0 | a0 = s0;
0x00039c6c jalr t9 | t9 ();
0x00039c70 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00039c74 bnez v0, 0x39cc0 | goto label_8;
| }
0x00039c78 sw zero, (s2) | *(s2) = 0;
0x00039c7c addiu s0, zero, 1 | s0 = 1;
0x00039c80 b 0x39c24 |
| } while (1);
| label_5:
0x00039c84 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00039c88 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00039c8c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00039c90 lw a3, (v0) | a3 = *(v0);
0x00039c94 addiu a2, zero, 0x39 | a2 = 0x39;
0x00039c98 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_get_positionable_iris_state__proxy_is_unset_n */
0x00039c9c addiu a0, a0, 0x31ec | a0 += 0x31ec;
0x00039ca0 jalr t9 | t9 ();
0x00039ca4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039ca8 move a0, s3 | a0 = s3;
0x00039cac lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00039cb0 move s0, zero | s0 = 0;
0x00039cb4 jalr t9 | t9 ();
0x00039cb8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039cbc b 0x39a70 | goto label_0;
| label_8:
0x00039cc0 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00039cc4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00039cc8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00039ccc lw a3, (v0) | a3 = *(v0);
0x00039cd0 addiu a2, zero, 0x32 | a2 = 0x32;
0x00039cd4 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Invalid_string_returned_from_PositionableIris._n */
0x00039cd8 addiu a0, a0, 0x326c | a0 += 0x326c;
0x00039cdc jalr t9 | t9 ();
0x00039ce0 move s0, zero | s0 = 0;
0x00039ce4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00039ce8 b 0x39c24 | goto label_1;
| label_4:
0x00039cec lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00039cf0 jalr t9 | t9 ();
0x00039cf4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3a98c */
| #include <stdint.h>
|
; (fcn) sym.imaged_init () | void imaged_init () {
0x0003a98c lui gp, 3 |
0x0003a990 addiu gp, gp, 0x41f4 |
0x0003a994 addu gp, gp, t9 | gp += t9;
0x0003a998 addiu sp, sp, -0x70 |
0x0003a99c lw t9, -0x7878(gp) | t9 = sym.imp.g_malloc;
0x0003a9a0 sw s7, 0x64(sp) | *(var_64h) = s7;
0x0003a9a4 lw s7, -0x7a04(gp) | s7 = *((gp - 7809));
0x0003a9a8 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0003a9ac sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003a9b0 lw v0, (s7) | v0 = *(s7);
0x0003a9b4 sw fp, 0x68(sp) | *(var_68h) = fp;
0x0003a9b8 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0003a9bc sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0003a9c0 sw s0, 0x48(sp) | *(var_48h) = s0;
0x0003a9c4 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0003a9c8 move s0, a0 | s0 = a0;
0x0003a9cc sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0003a9d0 addiu a0, zero, 0x5c | a0 = 0x5c;
0x0003a9d4 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0003a9d8 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0003a9dc sw v0, 0x44(sp) | *(var_44h) = v0;
0x0003a9e0 jalr t9 | t9 ();
0x0003a9e4 nop |
0x0003a9e8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003a9ec addiu a2, zero, 0x5c | a2 = 0x5c;
0x0003a9f0 move a1, zero | a1 = 0;
0x0003a9f4 lw t9, -0x7834(gp) | t9 = sym.imp.memset;
0x0003a9f8 move a0, v0 | a0 = v0;
0x0003a9fc move fp, v0 | fp = v0;
0x0003aa00 jalr t9 | t9 ();
0x0003aa04 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003aa08 addiu v0, zero, 2 | v0 = 2;
0x0003aa0c addiu a1, zero, 1 | a1 = 1;
0x0003aa10 addiu s1, fp, 0x34 | s1 = fp + 0x34;
0x0003aa14 lw t9, -0x78d4(gp) | t9 = sym.imp.g_mutex_init;
0x0003aa18 sw v0, 4(fp) | *(arg_4h) = v0;
0x0003aa1c sw a1, 0x24(fp) | *(arg_24h) = a1;
0x0003aa20 sw v0, 0x28(fp) | *(arg_28h) = v0;
0x0003aa24 move a0, s1 | a0 = s1;
0x0003aa28 sw s0, (fp) | *(fp) = s0;
0x0003aa2c jalr t9 | t9 ();
0x0003aa30 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003aa34 lw t9, -0x78d4(gp) | t9 = sym.imp.g_mutex_init;
0x0003aa38 addiu a0, fp, 0x18 | a0 = fp + 0x18;
0x0003aa3c jalr t9 | t9 ();
0x0003aa40 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003aa44 addiu a2, fp, 0x10 | a2 = fp + 0x10;
0x0003aa48 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0003aa4c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003aa50 lw t9, -0x7fbc(gp) | t9 = sym.settings_get_uint;
| /* str.iris_open_settle_time */
0x0003aa54 addiu a1, a1, 0x346c | a1 += 0x346c;
| /* str.image_control */
0x0003aa58 addiu a0, s3, 0x3484 | a0 = s3 + 0x3484;
0x0003aa5c bal 0x3c450 | sym_settings_get_uint ();
0x0003aa60 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003aa64 bnez v0, 0x3aa74 |
0x0003aa68 lui v0, 0x1e | v0 = 0x1e8480;
0x0003aa6c ori v0, v0, 0x8480 |
0x0003aa70 sw v0, 0x10(fp) | *(arg_10h) = v0;
| }
0x0003aa74 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003aa78 lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
0x0003aa7c addiu a2, fp, 0x30 | a2 = fp + 0x30;
| /* str.irled_controls_day_night_mode */
0x0003aa80 addiu a1, a1, 0x3494 | a1 += 0x3494;
| /* str.image_control */
0x0003aa84 addiu a0, s3, 0x3484 | a0 = s3 + 0x3484;
0x0003aa88 bal 0x3be5c | sym_settings_get_boolean ();
0x0003aa8c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003aa90 bnez v0, 0x3ad20 | goto label_8;
| }
0x0003aa94 sw zero, 0x30(fp) | *(arg_30h) = 0;
| label_2:
0x0003aa98 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003aa9c move a0, s1 | a0 = s1;
0x0003aaa0 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x0003aaa4 jalr t9 | t9 ();
0x0003aaa8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003aaac lw a1, (fp) | a1 = *(fp);
0x0003aab0 move s0, zero | s0 = 0;
0x0003aab4 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003aab8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003aabc lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
| /* str.com.axis.ImageControl */
0x0003aac0 addiu v0, v0, -0x28dc | v0 += -0x28dc;
| /* str._com_axis_ImageControl__u_0 */
0x0003aac4 addiu a0, a0, -0x18f8 | a0 += -0x18f8;
0x0003aac8 lw s2, -0x7990(gp) | s2 = *((gp - 7780));
0x0003aacc sw v0, 0x4c(fp) | *(arg_4ch) = v0;
0x0003aad0 jalr t9 | t9 ();
0x0003aad4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003aad8 lw a0, (s2) | a0 = *(s2);
0x0003aadc lw a3, 0x4c(fp) | a3 = *(arg_4ch);
0x0003aae0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003aae4 lw a2, -0x7fd8(gp) | a2 = *(gp);
| /* str.com.axis.ImageControlStream */
0x0003aae8 addiu a1, a1, -0x293c | a1 += -0x293c;
0x0003aaec lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003aaf0 sw a1, 0x54(fp) | *(arg_54h) = a1;
0x0003aaf4 sw a1, 0x14(sp) | *(var_14h) = a1;
0x0003aaf8 sw v0, 0x50(fp) | *(arg_50h) = v0;
0x0003aafc sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._6_Probing_for_image_controller__s_s_o_s_i_s_n */
0x0003ab00 addiu a2, a2, 0x3504 | a2 += 0x3504;
0x0003ab04 addiu a1, zero, 1 | a1 = 1;
0x0003ab08 jalr t9 | t9 ();
0x0003ab0c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ab10 sw zero, 0x40(fp) | *(arg_40h) = 0;
0x0003ab14 move v0, zero | v0 = 0;
0x0003ab18 lw s5, -0x7fd8(gp) | s5 = *(gp);
0x0003ab1c lw s4, -0x7edc(gp) | s4 = *(gp);
| /* str.org.freedesktop.DBus.Properties */
0x0003ab20 addiu v1, s5, -0x2918 | v1 = s5 + -0x2918;
0x0003ab24 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003ab28 sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x0003ab2c addiu v1, s4, -0x7790 | v1 = s4 + -0x7790;
0x0003ab30 sw v1, 0x30(sp) | *(var_30h) = v1;
0x0003ab34 lw s4, -0x7fd8(gp) | s4 = *(gp);
| /* str._6_Could_not_connect_to_image_controller___u_retries_done._n */
0x0003ab38 addiu v1, a0, 0x356c | v1 = a0 + 0x356c;
0x0003ab3c addiu s6, sp, 0x3c | s6 = sp + 0x3c;
0x0003ab40 addiu s5, sp, 0x40 | s5 = sp + 0x40;
0x0003ab44 sw v1, 0x34(sp) | *(var_34h) = v1;
| label_0:
0x0003ab48 lw v1, 0x2c(sp) | v1 = *(var_2ch);
| if (v0 != 0) {
0x0003ab4c bnez v0, 0x3ab94 | goto label_9;
| }
0x0003ab50 lw v0, 0x50(fp) | v0 = *(arg_50h);
0x0003ab54 lw t9, -0x7ba4(gp) | t9 = sym.imp.g_dbus_proxy_new_for_bus_sync;
0x0003ab58 lw a3, 0x4c(fp) | a3 = *(arg_4ch);
0x0003ab5c addiu a0, zero, 1 | a0 = 1;
0x0003ab60 sw s6, 0x1c(sp) | *(var_1ch) = s6;
0x0003ab64 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0003ab68 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0003ab6c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003ab70 move a2, zero | a2 = 0;
0x0003ab74 addiu a1, zero, 5 | a1 = 5;
0x0003ab78 jalr t9 | t9 ();
0x0003ab7c lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0003ab80 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ab84 sw v0, 0x40(fp) | *(arg_40h) = v0;
| if (a0 == 0) {
0x0003ab88 beqz a0, 0x3ac5c | goto label_10;
| }
| label_1:
0x0003ab8c lui v0, 0x51eb | v0 = 0x51eb0000;
| if (v0 == 0) {
0x0003ab90 beqz v0, 0x3ac9c | goto label_11;
| }
| do {
| label_9:
0x0003ab94 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0003ab98 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (v0 == 0) {
0x0003ab9c beqz v0, 0x3ada8 | goto label_12;
| }
0x0003aba0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003aba4 lw a3, 8(v0) | a3 = *((v0 + 2));
0x0003aba8 lw a0, (s2) | a0 = *(s2);
| /* str._4_Could_not_create_dbus_properties_proxy:__s_n */
0x0003abac addiu a2, a2, 0x35a8 | a2 += 0x35a8;
0x0003abb0 addiu a1, zero, 1 | a1 = 1;
0x0003abb4 jalr t9 | t9 ();
0x0003abb8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003abbc lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003abc0 move a0, s6 | a0 = s6;
0x0003abc4 jalr t9 | t9 ();
0x0003abc8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003abcc sw zero, 0x40(fp) | *(arg_40h) = 0;
| label_5:
0x0003abd0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003abd4 move a0, s1 | a0 = s1;
0x0003abd8 jalr t9 | t9 ();
0x0003abdc lw gp, 0x20(sp) | gp = *(var_20h);
| label_6:
0x0003abe0 lw t9, -0x7f80(gp) | t9 = sym.imaged_enable_image_control;
0x0003abe4 move a0, fp | a0 = fp;
0x0003abe8 bal 0x3a954 | sym_imaged_enable_image_control ();
0x0003abec lw gp, 0x20(sp) | gp = *(var_20h);
0x0003abf0 addiu a2, fp, 0x58 | a2 = fp + 0x58;
| /* str.image_control */
0x0003abf4 addiu a0, s3, 0x3484 | a0 = s3 + 0x3484;
0x0003abf8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003abfc lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
| /* str.iris_control */
0x0003ac00 addiu a1, a1, 0x3638 | a1 += 0x3638;
0x0003ac04 bal 0x3be5c | sym_settings_get_boolean ();
0x0003ac08 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003ac0c beqz v0, 0x3ad6c | goto label_13;
| }
0x0003ac10 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x0003ac14 lw t9, -0x7c48(gp) | t9 = sym.imaged_get_positionable_iris;
| if (v0 != 0) {
0x0003ac18 bnez v0, 0x3ad78 | goto label_14;
| }
| label_3:
0x0003ac1c lw a1, 0x44(sp) | a1 = *(var_44h);
0x0003ac20 lw a0, (s7) | a0 = *(s7);
0x0003ac24 move v0, fp | v0 = fp;
| if (a1 != a0) {
0x0003ac28 bne a1, a0, 0x3af30 | goto label_15;
| }
0x0003ac2c lw ra, 0x6c(sp) | ra = *(var_6ch);
0x0003ac30 lw fp, 0x68(sp) | fp = *(var_68h);
0x0003ac34 lw s7, 0x64(sp) | s7 = *(var_64h);
0x0003ac38 lw s6, 0x60(sp) | s6 = *(var_60h);
0x0003ac3c lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x0003ac40 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0003ac44 lw s3, 0x54(sp) | s3 = *(var_54h);
0x0003ac48 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0003ac4c lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0003ac50 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0003ac54 addiu sp, sp, 0x70 |
0x0003ac58 jr ra | return v0;
| label_10:
0x0003ac5c lw t9, 0x30(sp) | t9 = *(var_30h);
0x0003ac60 move a2, zero | a2 = 0;
0x0003ac64 move a1, s5 | a1 = s5;
0x0003ac68 move a0, fp | a0 = fp;
0x0003ac6c jalr t9 | t9 ();
0x0003ac70 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003ac74 bnez v0, 0x3acec | goto label_16;
| }
0x0003ac78 lw a0, 0x40(fp) | a0 = *(arg_40h);
0x0003ac7c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
| if (a0 == 0) {
0x0003ac80 beqz a0, 0x3ac98 | goto label_17;
| }
0x0003ac84 sw zero, 0x40(fp) | *(arg_40h) = 0;
0x0003ac88 jalr t9 | t9 ();
0x0003ac8c lw v0, 0x40(fp) | v0 = *(arg_40h);
0x0003ac90 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ac94 bnez v0, 0x3ab94 |
| } while (v0 != 0);
| label_17:
0x0003ac98 lui v0, 0x51eb | v0 = 0x51eb851f;
| label_11:
0x0003ac9c ori v0, v0, 0x851f |
0x0003aca0 multu s0, v0 | __asm ("multu s0, v0");
0x0003aca4 mfhi v0 | __asm ("mfhi v0");
0x0003aca8 addiu a0, zero, 0x64 | a0 = 0x64;
0x0003acac srl v0, v0, 5 | v0 >>= 5;
0x0003acb0 mul v1, v0, a0 | __asm ("mul v1, v0, a0");
0x0003acb4 subu v0, s0, v1 | __asm ("subu v0, s0, v1");
0x0003acb8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| if (v0 == 0) {
0x0003acbc beqz v0, 0x3ad8c | goto label_18;
| }
| label_4:
0x0003acc0 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003acc4 move a0, s6 | a0 = s6;
0x0003acc8 jalr t9 | t9 ();
0x0003accc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003acd0 addiu a0, zero, 0x2710 | a0 = 0x2710;
0x0003acd4 lw t9, -0x7b30(gp) | t9 = sym.imp.g_usleep;
0x0003acd8 addiu s0, s0, 1 | s0++;
0x0003acdc jalr t9 | t9 ();
0x0003ace0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ace4 lw v0, 0x40(fp) | v0 = *(arg_40h);
0x0003ace8 b 0x3ab48 | goto label_0;
| label_16:
0x0003acec lw a1, 0x54(fp) | a1 = *(arg_54h);
0x0003acf0 lw v0, 0x50(fp) | v0 = *(arg_50h);
0x0003acf4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003acf8 lw a0, (s2) | a0 = *(s2);
0x0003acfc lw a3, 0x4c(fp) | a3 = *(arg_4ch);
0x0003ad00 sw a1, 0x14(sp) | *(var_14h) = a1;
0x0003ad04 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._6_Using_image_controller_s_s_o_s_i_s_n */
0x0003ad08 addiu a2, s4, 0x353c | a2 = s4 + 0x353c;
0x0003ad0c addiu a1, zero, 1 | a1 = 1;
0x0003ad10 jalr t9 | t9 ();
0x0003ad14 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ad18 lw v0, 0x40(fp) | v0 = *(arg_40h);
0x0003ad1c b 0x3ab8c | goto label_1;
| label_8:
0x0003ad20 lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0003ad24 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| if (v0 == 0) {
0x0003ad28 beqz v0, 0x3aa98 | goto label_2;
| }
0x0003ad2c addiu a0, zero, 0x10 | a0 = 0x10;
0x0003ad30 jalr t9 | t9 ();
0x0003ad34 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003ad38 beqz v0, 0x3aa98 | goto label_2;
| }
0x0003ad3c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003ad40 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003ad44 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003ad48 lw a3, (v0) | a3 = *(v0);
| /* str._3_IR_light_controlled_day_night_mode_is_not_compatible_with_multiple_optics._n */
0x0003ad4c addiu a0, a0, 0x34b4 | a0 += 0x34b4;
0x0003ad50 addiu a2, zero, 0x4e | a2 = 0x4e;
0x0003ad54 addiu a1, zero, 1 | a1 = 1;
0x0003ad58 jalr t9 | t9 ();
0x0003ad5c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ad60 lw t9, -0x7bd4(gp) | t9 = sym.imp.exit;
0x0003ad64 addiu a0, zero, 1 | a0 = 1;
0x0003ad68 jalr t9 | t9 ();
| label_13:
0x0003ad6c addiu v0, zero, 1 | v0 = 1;
0x0003ad70 sw v0, 0x58(fp) | *(arg_58h) = v0;
0x0003ad74 lw t9, -0x7c48(gp) | t9 = sym.imaged_get_positionable_iris;
| label_14:
0x0003ad78 addiu a1, fp, 0xc | a1 = fp + 0xc;
0x0003ad7c move a0, fp | a0 = fp;
0x0003ad80 bal 0x39a10 | sym_imaged_get_positionable_iris ();
0x0003ad84 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ad88 b 0x3ac1c | goto label_3;
| label_18:
0x0003ad8c lw a0, (s2) | a0 = *(s2);
0x0003ad90 lw a2, 0x34(sp) | a2 = *(var_34h);
0x0003ad94 move a3, s0 | a3 = s0;
0x0003ad98 addiu a1, zero, 1 | a1 = 1;
0x0003ad9c jalr t9 | t9 ();
0x0003ada0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ada4 b 0x3acc0 | goto label_4;
| label_12:
0x0003ada8 lw a0, 0x54(fp) | a0 = *(arg_54h);
0x0003adac lw v0, 0x50(fp) | v0 = *(arg_50h);
0x0003adb0 lw t9, -0x7ba4(gp) | t9 = sym.imp.g_dbus_proxy_new_for_bus_sync;
0x0003adb4 lw a3, 0x4c(fp) | a3 = *(arg_4ch);
0x0003adb8 sw a0, 0x14(sp) | *(var_14h) = a0;
0x0003adbc sw s6, 0x1c(sp) | *(var_1ch) = s6;
0x0003adc0 addiu a0, zero, 1 | a0 = 1;
0x0003adc4 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0003adc8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003adcc move a2, zero | a2 = 0;
0x0003add0 addiu a1, zero, 5 | a1 = 5;
0x0003add4 jalr t9 | t9 ();
0x0003add8 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0003addc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ade0 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
| if (a0 == 0) {
0x0003ade4 beqz a0, 0x3ae18 | goto label_19;
| }
0x0003ade8 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_error_free;
0x0003adec jalr t9 | t9 ();
0x0003adf0 nop |
0x0003adf4 lw a0, 0x40(fp) | a0 = *(arg_40h);
0x0003adf8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003adfc sw zero, 0x3c(fp) | *(arg_3ch) = 0;
| if (a0 == 0) {
0x0003ae00 beqz a0, 0x3abd0 | goto label_5;
| }
0x0003ae04 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x0003ae08 sw zero, 0x40(fp) | *(arg_40h) = 0;
0x0003ae0c jalr t9 | t9 ();
0x0003ae10 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ae14 b 0x3abd0 | goto label_5;
| label_19:
0x0003ae18 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003ae1c move a0, s1 | a0 = s1;
0x0003ae20 jalr t9 | t9 ();
0x0003ae24 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ae28 lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.00038b48 */
0x0003ae2c addiu t9, t9, -0x74b8 | t9 += -0x74b8;
0x0003ae30 move a0, fp | a0 = fp;
0x0003ae34 bal 0x38b48 | fcn_00038b48 ();
0x0003ae38 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ae3c lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003ae40 move a0, s1 | a0 = s1;
0x0003ae44 jalr t9 | t9 ();
0x0003ae48 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ae4c lw a0, 0x3c(fp) | a0 = *(arg_3ch);
0x0003ae50 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003ae54 lw a2, -0x7edc(gp) | a2 = *(gp);
0x0003ae58 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003ae5c lw t9, -0x7a78(gp) | t9 = sym.imp.g_signal_connect_data;
0x0003ae60 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0003ae64 move a3, fp | a3 = fp;
0x0003ae68 addiu a2, a2, -0x72b8 | a2 += -0x72b8;
| /* str.notify::g_name_owner */
0x0003ae6c addiu a1, a1, -0x54d8 | a1 += -0x54d8;
0x0003ae70 jalr t9 | t9 ();
0x0003ae74 sw v0, 0x48(fp) | *(arg_48h) = v0;
0x0003ae78 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003ae7c beqz v0, 0x3af0c | goto label_20;
| }
| label_7:
0x0003ae80 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003ae84 move a0, s1 | a0 = s1;
0x0003ae88 jalr t9 | t9 ();
0x0003ae8c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ae90 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0003ae94 addiu a0, zero, 0xa | a0 = 0xa;
0x0003ae98 jalr t9 | t9 ();
0x0003ae9c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003aea0 beqz v0, 0x3abe0 | goto label_6;
| }
0x0003aea4 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003aea8 move a0, s1 | a0 = s1;
0x0003aeac jalr t9 | t9 ();
0x0003aeb0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003aeb4 lw a0, 0x3c(fp) | a0 = *(arg_3ch);
0x0003aeb8 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003aebc lw a2, -0x7edc(gp) | a2 = *(gp);
0x0003aec0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003aec4 lw t9, -0x7a78(gp) | t9 = sym.imp.g_signal_connect_data;
0x0003aec8 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0003aecc move a3, fp | a3 = fp;
0x0003aed0 addiu a2, a2, -0x6ddc | a2 += -0x6ddc;
| /* str.g_signal */
0x0003aed4 addiu a1, a1, 0x3608 | a1 += 0x3608;
0x0003aed8 jalr t9 | t9 ();
0x0003aedc sw v0, 0x44(fp) | *(arg_44h) = v0;
0x0003aee0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003aee4 bnez v0, 0x3abd0 | goto label_5;
| }
0x0003aee8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003aeec lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003aef0 lw a3, (s2) | a3 = *(s2);
0x0003aef4 addiu a2, zero, 0x23 | a2 = 0x23;
0x0003aef8 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_connect_signal:_IsDay_n */
0x0003aefc addiu a0, a0, 0x3614 | a0 += 0x3614;
0x0003af00 jalr t9 | t9 ();
0x0003af04 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003af08 b 0x3abd0 | goto label_5;
| label_20:
0x0003af0c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003af10 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003af14 lw a3, (s2) | a3 = *(s2);
0x0003af18 addiu a2, zero, 0x2e | a2 = 0x2e;
0x0003af1c addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_connect_signal:_NameOwnerChanged_n */
0x0003af20 addiu a0, a0, 0x35d8 | a0 += 0x35d8;
0x0003af24 jalr t9 | t9 ();
0x0003af28 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003af2c b 0x3ae80 | goto label_7;
| label_15:
0x0003af30 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003af34 jalr t9 | t9 ();
0x0003af38 nop |
0x0003af3c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3a198 */
| #include <stdint.h>
|
; (fcn) sym.imaged_set_dciris_state () | void imaged_set_dciris_state () {
0x0003a198 lui gp, 3 |
0x0003a19c addiu gp, gp, 0x49e8 |
0x0003a1a0 addu gp, gp, t9 | gp += t9;
0x0003a1a4 addiu sp, sp, -0x48 |
0x0003a1a8 sw s1, 0x38(sp) | *(var_38h_4) = s1;
0x0003a1ac lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0003a1b0 sw gp, 0x20(sp) | *(var_20h_4) = gp;
0x0003a1b4 sw ra, 0x44(sp) | *(var_44h_4) = ra;
0x0003a1b8 lw v0, (s1) | v0 = *(s1);
0x0003a1bc sw s3, 0x40(sp) | *(var_40h_4) = s3;
0x0003a1c0 sw s2, 0x3c(sp) | *(var_3ch_4) = s2;
0x0003a1c4 sw s0, 0x34(sp) | *(var_34h_4) = s0;
0x0003a1c8 sw zero, 0x28(sp) | *(var_28h_4) = 0;
0x0003a1cc sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0003a1d0 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x0003a1d4 beqz a0, 0x3a33c | goto label_3;
| }
0x0003a1d8 lw v0, 0x58(a0) | v0 = *((a0 + 22));
0x0003a1dc move s0, a0 | s0 = a0;
| if (v0 != 0) {
0x0003a1e0 bnez v0, 0x3a214 | goto label_4;
| }
0x0003a1e4 addiu s0, zero, 1 | s0 = 1;
| do {
| label_0:
0x0003a1e8 lw a0, 0x2c(sp) | a0 = *(var_2ch_4);
0x0003a1ec lw v1, (s1) | v1 = *(s1);
0x0003a1f0 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0003a1f4 bne a0, v1, 0x3a3ac | goto label_5;
| }
0x0003a1f8 lw ra, 0x44(sp) | ra = *(var_44h_4);
0x0003a1fc lw s3, 0x40(sp) | s3 = *(var_40h_4);
0x0003a200 lw s2, 0x3c(sp) | s2 = *(var_3ch_4);
0x0003a204 lw s1, 0x38(sp) | s1 = *(var_38h_4);
0x0003a208 lw s0, 0x34(sp) | s0 = *(var_34h_4);
0x0003a20c addiu sp, sp, 0x48 |
0x0003a210 jr ra | return v0;
| label_4:
0x0003a214 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003a218 addiu s3, a0, 0x34 | s3 = a0 + 0x34;
0x0003a21c move a0, s3 | a0 = s3;
0x0003a220 move s2, a1 | s2 = a1;
0x0003a224 jalr t9 | t9 ();
0x0003a228 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x0003a22c lw gp, 0x20(sp) | gp = *(var_20h_4);
| if (a0 == 0) {
0x0003a230 beqz a0, 0x3a370 | goto label_6;
| }
0x0003a234 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x0003a238 jalr t9 | t9 ();
0x0003a23c nop |
0x0003a240 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a244 move a0, s3 | a0 = s3;
0x0003a248 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003a24c move s3, v0 | s3 = v0;
0x0003a250 jalr t9 | t9 ();
0x0003a254 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a258 lw s0, 0x54(s0) | s0 = *((s0 + 21));
| if (s2 != 0) {
0x0003a25c bnez s2, 0x3a35c | goto label_7;
| }
0x0003a260 lw a0, -0x7fd8(gp) | a0 = *(gp);
| /* esilref: 'no' */
0x0003a264 addiu a0, a0, -0x7454 | a0 += -0x7454;
| label_1:
0x0003a268 lw t9, -0x7900(gp) | t9 = sym.imp.g_variant_new_string;
0x0003a26c jalr t9 | t9 ();
0x0003a270 nop |
0x0003a274 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a278 move a1, s0 | a1 = s0;
0x0003a27c move a3, v0 | a3 = v0;
0x0003a280 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003a284 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a288 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.IrisEnabled */
0x0003a28c addiu a2, a2, 0x33b4 | a2 += 0x33b4;
| /* str._ssv_ */
0x0003a290 addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x0003a294 jalr t9 | t9 ();
0x0003a298 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a29c addiu v1, zero, -1 | v1 = -1;
0x0003a2a0 addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x0003a2a4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a2a8 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003a2ac sw v1, 0x10(sp) | *(var_10h_3) = v1;
0x0003a2b0 sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x0003a2b4 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0003a2b8 move a3, zero | a3 = 0;
0x0003a2bc move a2, v0 | a2 = v0;
| /* esilref: 'Set' */
0x0003a2c0 addiu a1, a1, -0x217c | a1 += -0x217c;
0x0003a2c4 move a0, s3 | a0 = s3;
0x0003a2c8 jalr t9 | t9 ();
0x0003a2cc lw v1, 0x28(sp) | v1 = *(var_28h_4);
0x0003a2d0 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a2d4 move s2, v0 | s2 = v0;
| if (v1 == 0) {
0x0003a2d8 beqz v1, 0x3a368 | goto label_8;
| }
0x0003a2dc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a2e0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003a2e4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003a2e8 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0003a2ec lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_complete_SetEnabled:__s_n */
0x0003a2f0 addiu a2, a2, 0x33c0 | a2 += 0x33c0;
0x0003a2f4 addiu a1, zero, 1 | a1 = 1;
0x0003a2f8 jalr t9 | t9 ();
0x0003a2fc lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a300 move a0, s0 | a0 = s0;
0x0003a304 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003a308 move s0, zero | s0 = 0;
0x0003a30c jalr t9 | t9 ();
0x0003a310 lw gp, 0x20(sp) | gp = *(var_20h_4);
| label_2:
0x0003a314 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
| if (s2 != 0) {
0x0003a318 beqz s2, 0x3a328 |
0x0003a31c move a0, s2 | a0 = s2;
0x0003a320 jalr t9 | t9 ();
0x0003a324 lw gp, 0x20(sp) | gp = *(var_20h_4);
| }
0x0003a328 lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x0003a32c move a0, s3 | a0 = s3;
0x0003a330 jalr t9 | t9 ();
0x0003a334 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a338 b 0x3a1e8 |
| } while (1);
| label_3:
0x0003a33c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003a340 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.id___NULL */
0x0003a344 addiu a2, a2, 0x3164 | a2 += 0x3164;
| /* str.imaged_set_dciris_state */
0x0003a348 addiu a1, a1, 0x36d8 | a1 += 0x36d8;
0x0003a34c jalr t9 | t9 ();
0x0003a350 move s0, zero | s0 = 0;
0x0003a354 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a358 b 0x3a1e8 | goto label_0;
| label_7:
0x0003a35c lw a0, -0x7fd8(gp) | a0 = *(gp);
| /* esilref: 'yes' */
0x0003a360 addiu a0, a0, -0x7458 | a0 += -0x7458;
0x0003a364 b 0x3a268 | goto label_1;
| label_8:
0x0003a368 addiu s0, zero, 1 | s0 = 1;
0x0003a36c b 0x3a314 | goto label_2;
| label_6:
0x0003a370 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003a374 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003a378 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003a37c lw a3, (v0) | a3 = *(v0);
0x0003a380 addiu a2, zero, 0x28 | a2 = 0x28;
0x0003a384 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_set_dciris__proxy_is_unset_n */
0x0003a388 addiu a0, a0, 0x3388 | a0 += 0x3388;
0x0003a38c jalr t9 | t9 ();
0x0003a390 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a394 move a0, s3 | a0 = s3;
0x0003a398 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003a39c move s0, zero | s0 = 0;
0x0003a3a0 jalr t9 | t9 ();
0x0003a3a4 lw gp, 0x20(sp) | gp = *(var_20h_4);
0x0003a3a8 b 0x3a1e8 | goto label_0;
| label_5:
0x0003a3ac lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003a3b0 jalr t9 | t9 ();
0x0003a3b4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x39cf8 */
| #include <stdint.h>
|
; (fcn) sym.imaged_set_iris_position () | void imaged_set_iris_position () {
0x00039cf8 lui gp, 3 |
0x00039cfc addiu gp, gp, 0x4e88 |
0x00039d00 addu gp, gp, t9 | gp += t9;
0x00039d04 addiu sp, sp, -0x48 |
0x00039d08 sw s1, 0x38(sp) | *(var_38h_2) = s1;
0x00039d0c lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x00039d10 sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x00039d14 sw ra, 0x44(sp) | *(var_44h_2) = ra;
0x00039d18 lw v0, (s1) | v0 = *(s1);
0x00039d1c sw s3, 0x40(sp) | *(var_40h_2) = s3;
0x00039d20 sw s2, 0x3c(sp) | *(var_3ch_2) = s2;
0x00039d24 sw s0, 0x34(sp) | *(var_34h_2) = s0;
0x00039d28 sw zero, 0x28(sp) | *(var_28h_2) = 0;
0x00039d2c sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x00039d30 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x00039d34 beqz a0, 0x39e90 | goto label_2;
| }
0x00039d38 lw v0, 0x58(a0) | v0 = *((a0 + 22));
0x00039d3c move s0, a0 | s0 = a0;
| if (v0 != 0) {
0x00039d40 bnez v0, 0x39d74 | goto label_3;
| }
0x00039d44 addiu s0, zero, 1 | s0 = 1;
| do {
| label_0:
0x00039d48 lw a0, 0x2c(sp) | a0 = *(var_2ch_2);
0x00039d4c lw v1, (s1) | v1 = *(s1);
0x00039d50 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00039d54 bne a0, v1, 0x39ef4 | goto label_4;
| }
0x00039d58 lw ra, 0x44(sp) | ra = *(var_44h_2);
0x00039d5c lw s3, 0x40(sp) | s3 = *(var_40h_2);
0x00039d60 lw s2, 0x3c(sp) | s2 = *(var_3ch_2);
0x00039d64 lw s1, 0x38(sp) | s1 = *(var_38h_2);
0x00039d68 lw s0, 0x34(sp) | s0 = *(var_34h_2);
0x00039d6c addiu sp, sp, 0x48 |
0x00039d70 jr ra | return v0;
| label_3:
0x00039d74 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x00039d78 addiu s3, a0, 0x34 | s3 = a0 + 0x34;
0x00039d7c move a0, s3 | a0 = s3;
0x00039d80 move s2, a1 | s2 = a1;
0x00039d84 jalr t9 | t9 ();
0x00039d88 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x00039d8c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (a0 == 0) {
0x00039d90 beqz a0, 0x39eb8 | goto label_5;
| }
0x00039d94 lw t9, -0x78f8(gp) | t9 = sym.imp.g_object_ref;
0x00039d98 jalr t9 | t9 ();
0x00039d9c nop |
0x00039da0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039da4 move a0, s3 | a0 = s3;
0x00039da8 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00039dac move s3, v0 | s3 = v0;
0x00039db0 jalr t9 | t9 ();
0x00039db4 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039db8 move a0, s2 | a0 = s2;
0x00039dbc lw t9, -0x78fc(gp) | t9 = sym.imp.g_variant_new_int32;
0x00039dc0 lw s0, 0x54(s0) | s0 = *((s0 + 21));
0x00039dc4 jalr t9 | t9 ();
0x00039dc8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039dcc move a1, s0 | a1 = s0;
0x00039dd0 move a3, v0 | a3 = v0;
0x00039dd4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00039dd8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00039ddc lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.IrisPosition */
0x00039de0 addiu a2, a2, 0x32d0 | a2 += 0x32d0;
| /* str._ssv_ */
0x00039de4 addiu a0, a0, -0x21a4 | a0 += -0x21a4;
0x00039de8 jalr t9 | t9 ();
0x00039dec lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039df0 addiu v1, zero, -1 | v1 = -1;
0x00039df4 addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x00039df8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00039dfc lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x00039e00 sw v1, 0x10(sp) | *(var_10h_5) = v1;
0x00039e04 sw s0, 0x18(sp) | *(var_18h_4) = s0;
0x00039e08 sw zero, 0x14(sp) | *(var_14h_4) = 0;
0x00039e0c move a3, zero | a3 = 0;
0x00039e10 move a2, v0 | a2 = v0;
| /* esilref: 'Set' */
0x00039e14 addiu a1, a1, -0x217c | a1 += -0x217c;
0x00039e18 move a0, s3 | a0 = s3;
0x00039e1c jalr t9 | t9 ();
0x00039e20 lw v1, 0x28(sp) | v1 = *(var_28h_2);
0x00039e24 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039e28 move s2, v0 | s2 = v0;
| if (v1 == 0) {
0x00039e2c beqz v1, 0x39eb0 | goto label_6;
| }
0x00039e30 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00039e34 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00039e38 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00039e3c lw a3, 8(v1) | a3 = *((v1 + 2));
0x00039e40 lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_complete_SetPosition:__s_n */
0x00039e44 addiu a2, a2, 0x32e0 | a2 += 0x32e0;
0x00039e48 addiu a1, zero, 1 | a1 = 1;
0x00039e4c jalr t9 | t9 ();
0x00039e50 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039e54 move a0, s0 | a0 = s0;
0x00039e58 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x00039e5c move s0, zero | s0 = 0;
0x00039e60 jalr t9 | t9 ();
0x00039e64 lw gp, 0x20(sp) | gp = *(var_20h_2);
| label_1:
0x00039e68 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
| if (s2 != 0) {
0x00039e6c beqz s2, 0x39e7c |
0x00039e70 move a0, s2 | a0 = s2;
0x00039e74 jalr t9 | t9 ();
0x00039e78 lw gp, 0x20(sp) | gp = *(var_20h_2);
| }
0x00039e7c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x00039e80 move a0, s3 | a0 = s3;
0x00039e84 jalr t9 | t9 ();
0x00039e88 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039e8c b 0x39d48 |
| } while (1);
| label_2:
0x00039e90 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00039e94 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.id___NULL */
0x00039e98 addiu a2, a2, 0x3164 | a2 += 0x3164;
| /* str.imaged_set_iris_position */
0x00039e9c addiu a1, a1, 0x370c | a1 += 0x370c;
0x00039ea0 jalr t9 | t9 ();
0x00039ea4 move s0, zero | s0 = 0;
0x00039ea8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039eac b 0x39d48 | goto label_0;
| label_6:
0x00039eb0 addiu s0, zero, 1 | s0 = 1;
0x00039eb4 b 0x39e68 | goto label_1;
| label_5:
0x00039eb8 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x00039ebc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00039ec0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00039ec4 lw a3, (v0) | a3 = *(v0);
0x00039ec8 addiu a2, zero, 0x2f | a2 = 0x2f;
0x00039ecc addiu a1, zero, 1 | a1 = 1;
| /* str._6_Could_not_set_iris_position__proxy_is_unset_n */
0x00039ed0 addiu a0, a0, 0x32a0 | a0 += 0x32a0;
0x00039ed4 jalr t9 | t9 ();
0x00039ed8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039edc move a0, s3 | a0 = s3;
0x00039ee0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x00039ee4 move s0, zero | s0 = 0;
0x00039ee8 jalr t9 | t9 ();
0x00039eec lw gp, 0x20(sp) | gp = *(var_20h_2);
0x00039ef0 b 0x39d48 | goto label_0;
| label_4:
0x00039ef4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x00039ef8 jalr t9 | t9 ();
0x00039efc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3cee0 */
| #include <stdint.h>
|
; (fcn) sym.motion_detection () | void motion_detection () {
0x0003cee0 lui gp, 3 |
0x0003cee4 addiu gp, gp, 0x1ca0 |
0x0003cee8 addu gp, gp, t9 | gp += t9;
0x0003ceec addiu sp, sp, -0x28 |
0x0003cef0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0003cef4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003cef8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0003cefc sw ra, 0x24(sp) | *(var_24h) = ra;
0x0003cf00 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0003cf04 move s1, a0 | s1 = a0;
0x0003cf08 addiu a0, zero, 7 | a0 = 7;
0x0003cf0c jalr t9 | t9 ();
0x0003cf10 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003cf14 beqz v0, 0x3cfb0 | goto label_2;
| }
0x0003cf18 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
| if (s1 != 0) {
0x0003cf1c bnez s1, 0x3cfcc | goto label_3;
| }
0x0003cf20 sync | __asm ("sync");
| do {
0x0003cf24 ll v0, 0x77c0(v1) | __asm ("ll v0, 0x77c0(v1)");
0x0003cf28 addiu at, v0, 1 | at = v0 + 1;
0x0003cf2c sc at, 0x77c0(v1) | __asm ("sc at, 0x77c0(v1)");
0x0003cf30 beqz at, 0x3cf24 |
| } while (at == 0);
0x0003cf34 nop |
0x0003cf38 sync | __asm ("sync");
0x0003cf3c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003cf40 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
| /* str.IGNORE_0 */
0x0003cf44 addiu a1, a1, 0x3b30 | a1 += 0x3b30;
| label_0:
0x0003cf48 addiu s0, zero, 1 | s0 = 1;
| if (v0 != 0) {
0x0003cf4c beqz v0, 0x3cfb4 |
0x0003cf50 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003cf54 lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.0003cb90 */
0x0003cf58 addiu t9, t9, -0x3470 | t9 += -0x3470;
| /* str._var_run_motion_requestsocket */
0x0003cf5c addiu a0, a0, 0x3b94 | a0 += 0x3b94;
0x0003cf60 bal 0x3cb90 | fcn_0003cb90 ();
0x0003cf64 move s0, v0 | s0 = v0;
0x0003cf68 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0003cf6c bnez v0, 0x3cfb4 | goto label_4;
| }
0x0003cf70 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003cf74 lw a0, (v0) | a0 = *(v0);
| if (s1 != 0) {
0x0003cf78 bnez s1, 0x3cffc | goto label_5;
| }
0x0003cf7c lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.disable */
0x0003cf80 addiu a3, a3, 0x3090 | a3 += 0x3090;
| label_1:
0x0003cf84 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003cf88 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._4_Could_not__s_motion_detection_n */
0x0003cf8c addiu a2, a2, 0x3bb4 | a2 += 0x3bb4;
0x0003cf90 addiu a1, zero, 1 | a1 = 1;
0x0003cf94 jalr t9 | t9 ();
0x0003cf98 lw ra, 0x24(sp) | ra = *(var_24h);
0x0003cf9c move v0, s0 | v0 = s0;
0x0003cfa0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0003cfa4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0003cfa8 addiu sp, sp, 0x28 |
0x0003cfac jr ra | return v0;
| label_2:
0x0003cfb0 addiu s0, zero, 1 | s0 = 1;
| }
| label_4:
0x0003cfb4 lw ra, 0x24(sp) | ra = *(var_24h);
0x0003cfb8 move v0, s0 | v0 = s0;
0x0003cfbc lw s1, 0x20(sp) | s1 = *(var_20h);
0x0003cfc0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0003cfc4 addiu sp, sp, 0x28 |
0x0003cfc8 jr ra | return v0;
| label_3:
0x0003cfcc sync | __asm ("sync");
| do {
0x0003cfd0 ll v0, 0x77c0(v1) | __asm ("ll v0, 0x77c0(v1)");
0x0003cfd4 addiu at, v0, -1 | at = v0 + -1;
0x0003cfd8 sc at, 0x77c0(v1) | __asm ("sc at, 0x77c0(v1)");
0x0003cfdc beqz at, 0x3cfd0 |
| } while (at == 0);
0x0003cfe0 nop |
0x0003cfe4 sync | __asm ("sync");
0x0003cfe8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003cfec xori v0, v0, 1 | v0 ^= 1;
0x0003cff0 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
| /* str.RESTART_0_0 */
0x0003cff4 addiu a1, a1, 0x3b3c | a1 += 0x3b3c;
0x0003cff8 b 0x3cf48 | goto label_0;
| label_5:
0x0003cffc lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.enable */
0x0003d000 addiu a3, a3, 0x3088 | a3 += 0x3088;
0x0003d004 b 0x3cf84 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x99b8 */
| #include <stdint.h>
|
; (fcn) sym.real_main () | void real_main () {
0x000099b8 lui gp, 6 |
0x000099bc addiu gp, gp, 0x51c8 |
0x000099c0 addu gp, gp, t9 | gp += t9;
0x000099c4 lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x000099c8 addiu sp, sp, -0x180 |
0x000099cc lw t9, -0x7e70(gp) | t9 = sym.focusd_feature_init;
0x000099d0 sw v0, 0x48(sp) | *(var_48h) = v0;
0x000099d4 lw v0, (v0) | v0 = *(v0);
0x000099d8 sw ra, 0x17c(sp) | *(var_17ch) = ra;
0x000099dc sw gp, 0x30(sp) | *(var_30h) = gp;
0x000099e0 sw a1, 0x5c(sp) | *(var_5ch) = a1;
0x000099e4 sw s1, 0x15c(sp) | *(var_15ch) = s1;
0x000099e8 sw s0, 0x158(sp) | *(var_158h) = s0;
0x000099ec sw a0, 0x180(sp) | *(arg_180h) = a0;
0x000099f0 sw v0, 0x154(sp) | *(var_154h) = v0;
0x000099f4 sw fp, 0x178(sp) | *(var_178h) = fp;
0x000099f8 sw s7, 0x174(sp) | *(var_174h) = s7;
0x000099fc sw s6, 0x170(sp) | *(var_170h) = s6;
0x00009a00 sw s5, 0x16c(sp) | *(var_16ch) = s5;
0x00009a04 sw s4, 0x168(sp) | *(var_168h) = s4;
0x00009a08 sw s3, 0x164(sp) | *(var_164h) = s3;
0x00009a0c sw s2, 0x160(sp) | *(var_160h) = s2;
0x00009a10 sw zero, 0x60(sp) | *(var_60h) = 0;
0x00009a14 sw zero, 0xa8(sp) | *(var_a8h) = 0;
0x00009a18 sw zero, 0xac(sp) | *(var_ach) = 0;
0x00009a1c sw zero, 0xb0(sp) | *(var_b0h) = 0;
0x00009a20 sw zero, 0xb4(sp) | *(var_b4h) = 0;
0x00009a24 sw zero, 0xb8(sp) | *(var_b8h) = 0;
0x00009a28 sw zero, 0xbc(sp) | *(var_bch) = 0;
0x00009a2c sw zero, 0xc0(sp) | *(var_c0h) = 0;
0x00009a30 bal 0x17ff8 | sym_focusd_feature_init ();
0x00009a34 nop |
0x00009a38 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009a3c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00009a40 lw t9, -0x7b34(gp) | t9 = sym.imp.g_option_context_new;
0x00009a44 addiu a0, a0, -0x64a8 | a0 += -0x64a8;
0x00009a48 jalr t9 | t9 ();
0x00009a4c lw gp, 0x30(sp) | gp = *(var_30h);
0x00009a50 move a0, v0 | a0 = v0;
0x00009a54 move a2, zero | a2 = 0;
0x00009a58 lw t9, -0x7894(gp) | t9 = sym.imp.g_option_context_add_main_entries;
0x00009a5c addiu a1, sp, 0xa8 | a1 = sp + 0xa8;
0x00009a60 move s0, v0 | s0 = v0;
0x00009a64 jalr t9 | t9 ();
0x00009a68 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009a6c addiu v0, sp, 0x60 | v0 = sp + 0x60;
0x00009a70 move a3, v0 | a3 = v0;
0x00009a74 lw t9, -0x79b4(gp) | t9 = sym.imp.g_option_context_parse;
0x00009a78 addiu a2, sp, 0x5c | a2 = sp + 0x5c;
0x00009a7c addiu a1, sp, 0x180 | a1 = sp + aav.0x00000180;
0x00009a80 move a0, s0 | a0 = s0;
0x00009a84 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x00009a88 jalr t9 | t9 ();
0x00009a8c lw gp, 0x30(sp) | gp = *(var_30h);
0x00009a90 move s1, v0 | s1 = v0;
0x00009a94 lw t9, -0x7794(gp) | t9 = sym.imp.g_option_context_free;
0x00009a98 move a0, s0 | a0 = s0;
0x00009a9c jalr t9 | t9 ();
0x00009aa0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s1 == 0) {
0x00009aa4 beqz s1, 0xb67c | goto label_41;
| }
0x00009aa8 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009aac addiu a0, zero, 2 | a0 = 2;
0x00009ab0 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009ab4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009ab8 beqz v0, 0x9ad8 |
0x00009abc lw s0, -0x7fd8(gp) | s0 = *(gp);
0x00009ac0 lw t9, -0x7e6c(gp) | t9 = *(gp);
0x00009ac4 move a1, zero | a1 = 0;
| /* str._usr_share_focusd_motors.conf */
0x00009ac8 addiu a0, s0, -0x7438 | a0 = s0 + -0x7438;
0x00009acc jalr t9 | t9 ();
0x00009ad0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009ad4 beqz v0, 0xab7c | goto label_42;
| }
| }
0x00009ad8 lw s2, -0x7fd8(gp) | s2 = *(gp);
0x00009adc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00009ae0 lw t9, -0x7fbc(gp) | t9 = sym.settings_get_uint;
0x00009ae4 addiu a2, sp, 0x68 | a2 = sp + 0x68;
| /* str.nbr_of_sources */
0x00009ae8 addiu a1, a1, -0x73f4 | a1 += -0x73f4;
| /* esilref: 'features' */
0x00009aec addiu a0, s2, -0x6dc0 | a0 = s2 + -0x6dc0;
0x00009af0 jalr t9 | t9 ();
0x00009af4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009af8 beqz v0, 0xa374 | goto label_43;
| }
0x00009afc lw v0, 0x68(sp) | v0 = *(var_68h);
0x00009b00 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v0 == 0) {
0x00009b04 beqz v0, 0xb698 | goto label_44;
| }
0x00009b08 lw t9, -0x7e68(gp) | t9 = sym.focusd_feature_enable;
| if (v0 == 0) {
0x00009b0c bnez v0, 0x9b20 |
0x00009b10 addiu a0, zero, 0x10 | a0 = 0x10;
0x00009b14 bal 0x17f10 | sym_focusd_feature_enable ();
0x00009b18 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009b1c beqz v0, 0xb3c0 | goto label_40;
| }
| }
| label_2:
0x00009b20 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00009b24 lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
0x00009b28 addiu a2, sp, 0x64 | a2 = sp + 0x64;
| /* str.production_test */
0x00009b2c addiu a1, a1, -0x73b8 | a1 += -0x73b8;
| /* esilref: 'features' */
0x00009b30 addiu a0, s2, -0x6dc0 | a0 = s2 + -0x6dc0;
0x00009b34 jalr t9 | t9 ();
0x00009b38 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009b3c bnez v0, 0xa440 | goto label_45;
| }
0x00009b40 sw zero, 0x64(sp) | *(var_64h) = 0;
| label_4:
0x00009b44 lw t9, -0x7e64(gp) | t9 = sym.focusd_feature_disable;
0x00009b48 addiu a0, zero, 0x11 | a0 = 0x11;
0x00009b4c bal 0x17f84 | sym_focusd_feature_disable ();
0x00009b50 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009b54 beqz v0, 0xb3c0 | goto label_40;
| }
| label_5:
0x00009b58 lw t9, -0x7878(gp) | t9 = sym.imp.g_malloc;
0x00009b5c addiu a0, zero, 0x3c | a0 = 0x3c;
0x00009b60 jalr t9 | t9 ();
0x00009b64 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009b68 addiu a2, zero, 0x3c | a2 = 0x3c;
0x00009b6c move a1, zero | a1 = 0;
0x00009b70 lw t9, -0x7834(gp) | t9 = sym.imp.memset;
0x00009b74 move a0, v0 | a0 = v0;
0x00009b78 move s0, v0 | s0 = v0;
0x00009b7c lw s1, 0x68(sp) | s1 = *(var_68h);
0x00009b80 jalr t9 | t9 ();
0x00009b84 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009b88 addiu a1, zero, 0x1c | a1 = 0x1c;
0x00009b8c move a0, s1 | a0 = s1;
0x00009b90 lw t9, -0x78e0(gp) | t9 = sym.imp.g_malloc0_n;
0x00009b94 sw s1, 0xc(s0) | *((s0 + 3)) = s1;
0x00009b98 jalr t9 | t9 ();
0x00009b9c lw gp, 0x30(sp) | gp = *(var_30h);
0x00009ba0 addiu v1, s0, 0x20 | v1 = s0 + 0x20;
0x00009ba4 move a0, v1 | a0 = v1;
0x00009ba8 lw t9, -0x78d4(gp) | t9 = sym.imp.g_mutex_init;
0x00009bac sw v1, 0x54(sp) | *(var_54h) = v1;
0x00009bb0 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00009bb4 jalr t9 | t9 ();
0x00009bb8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009bbc lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009bc0 addiu a0, zero, 2 | a0 = 2;
0x00009bc4 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009bc8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009bcc bnez v0, 0xa380 | goto label_46;
| }
0x00009bd0 lw s5, -0x7990(gp) | s5 = *((gp - 7780));
0x00009bd4 lw t9, -0x7e60(gp) | t9 = sym.create_transfer_socket;
| label_3:
0x00009bd8 bal 0xe910 | sym_create_transfer_socket ();
0x00009bdc nop |
0x00009be0 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00009be4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00009be8 bltz v0, 0xb664 | goto label_47;
| }
0x00009bec lw s1, -0x7fd8(gp) | s1 = *(gp);
0x00009bf0 lw t9, -0x7bb8(gp) | t9 = sym.imp.getpwnam;
| /* esilref: 'focus' */
0x00009bf4 addiu a0, s1, -0x2a10 | a0 = s1 + -0x2a10;
0x00009bf8 jalr t9 | t9 ();
0x00009bfc move s3, v0 | s3 = v0;
0x00009c00 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009c04 beqz v0, 0xb074 | goto label_48;
| }
0x00009c08 lw t9, -0x77d0(gp) | t9 = sym.imp.getgrnam;
| /* esilref: 'focus' */
0x00009c0c addiu a0, s1, -0x2a10 | a0 = s1 + -0x2a10;
0x00009c10 jalr t9 | t9 ();
0x00009c14 move s4, v0 | s4 = v0;
0x00009c18 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009c1c beqz v0, 0xb0d0 | goto label_49;
| }
0x00009c20 lw t9, -0x7b94(gp) | t9 = sym.imp.setgid;
0x00009c24 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00009c28 jalr t9 | t9 ();
0x00009c2c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00009c30 bltz v0, 0xb0ac | goto label_50;
| }
0x00009c34 lw t9, -0x7a60(gp) | t9 = sym.imp.initgroups;
0x00009c38 lw a1, 8(s4) | a1 = *((s4 + 2));
0x00009c3c lw a0, (s3) | a0 = *(s3);
0x00009c40 jalr t9 | t9 ();
0x00009c44 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00009c48 bltz v0, 0xb16c | goto label_51;
| }
0x00009c4c lw t9, -0x7968(gp) | t9 = sym.imp.setuid;
0x00009c50 lw a0, 8(s3) | a0 = *((s3 + 2));
0x00009c54 jalr t9 | t9 ();
0x00009c58 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 < 0) {
0x00009c5c bltz v0, 0xb430 | goto label_52;
| }
0x00009c60 lw t9, -0x76f4(gp) | t9 = sym.imp.sigemptyset;
0x00009c64 addiu a0, sp, 0xcc | a0 = sp + 0xcc;
0x00009c68 sw zero, 0xc4(sp) | *(var_c4h) = 0;
0x00009c6c jalr t9 | t9 ();
0x00009c70 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009c74 addiu s1, sp, 0xc4 | s1 = sp + 0xc4;
0x00009c78 move a2, zero | a2 = 0;
0x00009c7c lw v0, -0x7fd0(gp) | v0 = *(gp);
0x00009c80 lw t9, -0x792c(gp) | t9 = sym.imp.sigaction;
0x00009c84 addiu v0, v0, -0x74e0 | v0 += -0x74e0;
0x00009c88 move a1, s1 | a1 = s1;
0x00009c8c addiu a0, zero, 2 | a0 = 2;
0x00009c90 sw v0, 0xc8(sp) | *(var_c8h) = v0;
0x00009c94 jalr t9 | t9 ();
0x00009c98 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009c9c move a2, zero | a2 = 0;
0x00009ca0 move a1, s1 | a1 = s1;
0x00009ca4 lw t9, -0x792c(gp) | t9 = sym.imp.sigaction;
0x00009ca8 addiu a0, zero, 0xf | a0 = 0xf;
0x00009cac jalr t9 | t9 ();
0x00009cb0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009cb4 move a2, zero | a2 = 0;
0x00009cb8 move a1, s1 | a1 = s1;
0x00009cbc lw t9, -0x792c(gp) | t9 = sym.imp.sigaction;
0x00009cc0 addiu a0, zero, 0xd | a0 = 0xd;
0x00009cc4 jalr t9 | t9 ();
0x00009cc8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009ccc lw a3, (s5) | a3 = *(s5);
0x00009cd0 addiu a2, zero, 0xc | a2 = 0xc;
0x00009cd4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x00009cd8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x00009cdc addiu a1, zero, 1 | a1 = 1;
| /* str._6_Starting_n */
0x00009ce0 addiu a0, a0, -0x7058 | a0 += -0x7058;
0x00009ce4 jalr t9 | t9 ();
0x00009ce8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009cec move a1, zero | a1 = 0;
0x00009cf0 lw t9, -0x78ac(gp) | t9 = sym.imp.g_main_loop_new;
0x00009cf4 move a0, zero | a0 = 0;
0x00009cf8 jalr t9 | t9 ();
0x00009cfc lw gp, 0x30(sp) | gp = *(var_30h);
0x00009d00 sw v0, (s0) | *(s0) = v0;
0x00009d04 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009d08 addiu a0, zero, 2 | a0 = 2;
0x00009d0c bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009d10 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009d14 beqz v0, 0x9d70 | goto label_53;
| }
0x00009d18 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009d1c lw t9, -0x7e5c(gp) | t9 = sym.temperature_ctrld_init;
| if (v0 == 0) {
0x00009d20 beqz v0, 0x9d60 | goto label_54;
| }
0x00009d24 move s4, zero | s4 = 0;
0x00009d28 move s1, zero | s1 = 0;
| do {
0x00009d2c lw t9, -0x7e58(gp) | t9 = sym.imaged_init;
0x00009d30 lw s3, 8(s0) | s3 = *((s0 + 2));
0x00009d34 move a0, s1 | a0 = s1;
0x00009d38 jalr t9 | t9 ();
0x00009d3c lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x00009d40 addu s3, s3, s4 | s3 += s4;
0x00009d44 addiu s1, s1, 1 | s1++;
0x00009d48 sltu v1, s1, v1 | v1 = (s1 < v1) ? 1 : 0;
0x00009d4c lw gp, 0x30(sp) | gp = *(var_30h);
0x00009d50 sw v0, 0x18(s3) | *((s3 + 6)) = v0;
0x00009d54 addiu s4, s4, 0x1c | s4 += 0x1c;
0x00009d58 bnez v1, 0x9d2c |
| } while (v1 != 0);
0x00009d5c lw t9, -0x7e5c(gp) | t9 = sym.temperature_ctrld_init;
| label_54:
0x00009d60 jalr t9 | t9 ();
0x00009d64 nop |
0x00009d68 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009d6c beqz v0, 0xb144 | goto label_55;
| }
| label_53:
0x00009d70 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00009d74 lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
0x00009d78 addiu a2, s0, 0x38 | a2 = s0 + 0x38;
| /* esilref: 'i_cs' */
0x00009d7c addiu a1, a1, -0x6fe4 | a1 += -0x6fe4;
| /* esilref: 'features' */
0x00009d80 addiu a0, s2, -0x6dc0 | a0 = s2 + -0x6dc0;
0x00009d84 jalr t9 | t9 ();
0x00009d88 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009d8c bnez v0, 0x9d94 |
0x00009d90 sw zero, 0x38(s0) | *((s0 + 14)) = 0;
| }
0x00009d94 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009d98 addiu a0, zero, 0x10 | a0 = 0x10;
0x00009d9c bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009da0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009da4 beqz v0, 0x9db4 |
0x00009da8 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x00009dac lw a0, -0x7fd8(gp) | a0 = *(gp);
| if (v0 != 0) {
0x00009db0 bnez v0, 0xb76c | goto label_56;
| }
| }
0x00009db4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00009db8 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
| /* str.motor_controller_type */
0x00009dbc addiu a1, a1, -0x6f98 | a1 += -0x6f98;
| /* esilref: 'features' */
0x00009dc0 addiu a0, s2, -0x6dc0 | a0 = s2 + -0x6dc0;
0x00009dc4 jalr t9 | t9 ();
0x00009dc8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009dcc sw v0, 0x30(s0) | *((s0 + 12)) = v0;
| if (v0 == 0) {
0x00009dd0 beqz v0, 0xb634 | goto label_57;
| }
0x00009dd4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x00009dd8 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
| /* str.focus_measure_type */
0x00009ddc addiu a1, a1, -0x6f58 | a1 += -0x6f58;
| /* esilref: 'features' */
0x00009de0 addiu a0, s2, -0x6dc0 | a0 = s2 + -0x6dc0;
0x00009de4 jalr t9 | t9 ();
0x00009de8 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009dec sw v0, 0x34(s0) | *((s0 + 13)) = v0;
| if (v0 == 0) {
0x00009df0 beqz v0, 0xb64c | goto label_58;
| }
0x00009df4 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x00009df8 lw a0, -0x7fd8(gp) | a0 = *(gp);
| if (v0 != 0) {
0x00009dfc beqz v0, 0x9f64 |
0x00009e00 lw t9, -0x7e54(gp) | t9 = sym.focusd_i_cs_init;
0x00009e04 bal 0x183d8 | sym_focusd_i_cs_init ();
0x00009e08 nop |
0x00009e0c move s1, v0 | s1 = v0;
0x00009e10 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009e14 beqz v0, 0xb754 | goto label_59;
| }
0x00009e18 lw t9, -0x7e50(gp) | t9 = sym.focusd_i_cs_changed;
0x00009e1c move a0, v0 | a0 = v0;
0x00009e20 bal 0x19090 | sym_focusd_i_cs_changed ();
0x00009e24 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009e28 beqz v0, 0xa9e0 | goto label_60;
| }
0x00009e2c lw t9, -0x7e4c(gp) | t9 = sym.focusd_i_cs_previous_mode;
0x00009e30 move a0, s1 | a0 = s1;
0x00009e34 lw s2, (s5) | s2 = *(s5);
0x00009e38 bal 0x18d84 | sym_focusd_i_cs_previous_mode ();
0x00009e3c addiu v1, zero, 1 | v1 = 1;
0x00009e40 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == v1) {
0x00009e44 beq v0, v1, 0xb1d8 | goto label_61;
| }
0x00009e48 lw t9, -0x7e4c(gp) | t9 = sym.focusd_i_cs_previous_mode;
0x00009e4c move a0, s1 | a0 = s1;
0x00009e50 bal 0x18d84 | sym_focusd_i_cs_previous_mode ();
0x00009e54 addiu v1, zero, 2 | v1 = 2;
0x00009e58 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == v1) {
0x00009e5c beq v0, v1, 0xb4f8 | goto label_62;
| }
0x00009e60 lw s3, -0x7fd8(gp) | s3 = *(gp);
| /* str.unknown */
0x00009e64 addiu s3, s3, -0x7460 | s3 += -0x7460;
| label_31:
0x00009e68 lw t9, -0x7e48(gp) | t9 = sym.focusd_i_cs_mode;
0x00009e6c move a0, s1 | a0 = s1;
0x00009e70 bal 0x18d38 | sym_focusd_i_cs_mode ();
0x00009e74 addiu v1, zero, 1 | v1 = 1;
0x00009e78 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == v1) {
0x00009e7c beq v0, v1, 0xb1e4 | goto label_63;
| }
0x00009e80 lw t9, -0x7e48(gp) | t9 = sym.focusd_i_cs_mode;
0x00009e84 move a0, s1 | a0 = s1;
0x00009e88 bal 0x18d38 | sym_focusd_i_cs_mode ();
0x00009e8c addiu v1, zero, 2 | v1 = 2;
0x00009e90 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == v1) {
0x00009e94 beq v0, v1, 0xb4ec | goto label_64;
| }
0x00009e98 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.unknown */
0x00009e9c addiu v0, v0, -0x7460 | v0 += -0x7460;
| label_32:
0x00009ea0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x00009ea4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x00009ea8 move a3, s3 | a3 = s3;
0x00009eac move a0, s2 | a0 = s2;
| /* str._6_mounted_lens_changed__old_type__s__new_type__s_n */
0x00009eb0 addiu a2, a2, -0x6efc | a2 += -0x6efc;
0x00009eb4 addiu a1, zero, 1 | a1 = 1;
0x00009eb8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00009ebc jalr t9 | t9 ();
0x00009ec0 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009ec4 move a0, s1 | a0 = s1;
0x00009ec8 lw t9, -0x7e48(gp) | t9 = sym.focusd_i_cs_mode;
0x00009ecc addiu s2, zero, 1 | s2 = 1;
0x00009ed0 bal 0x18d38 | sym_focusd_i_cs_mode ();
0x00009ed4 move s3, v0 | s3 = v0;
0x00009ed8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == s2) {
0x00009edc beq v0, s2, 0xb370 | goto label_65;
| }
0x00009ee0 lw t9, -0x7e48(gp) | t9 = sym.focusd_i_cs_mode;
0x00009ee4 move a0, s1 | a0 = s1;
0x00009ee8 bal 0x18d38 | sym_focusd_i_cs_mode ();
0x00009eec addiu v1, zero, 2 | v1 = 2;
0x00009ef0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != v1) {
0x00009ef4 bne v0, v1, 0xb700 | goto label_66;
| }
0x00009ef8 lw t9, -0x7e44(gp) | t9 = sym.focusd_i_cs_store_controller_data;
0x00009efc sw s2, 0x10(s0) | *((s0 + 4)) = s2;
0x00009f00 sw zero, 0x14(s0) | *((s0 + 5)) = 0;
0x00009f04 move a0, s1 | a0 = s1;
0x00009f08 bal 0x18dd0 | sym_focusd_i_cs_store_controller_data ();
0x00009f0c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009f10 beqz v0, 0xb3a0 | goto label_67;
| }
| label_14:
0x00009f14 lw t9, -0x7e64(gp) | t9 = sym.focusd_feature_disable;
0x00009f18 addiu a0, zero, 4 | a0 = 4;
0x00009f1c bal 0x17f84 | sym_focusd_feature_disable ();
0x00009f20 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009f24 beqz v0, 0xb3c0 | goto label_40;
| }
0x00009f28 lw t9, -0x7e68(gp) | t9 = sym.focusd_feature_enable;
0x00009f2c addiu a0, zero, 3 | a0 = 3;
0x00009f30 bal 0x17f10 | sym_focusd_feature_enable ();
0x00009f34 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009f38 beqz v0, 0xb3c0 | goto label_40;
| }
0x00009f3c lw t9, -0x7e68(gp) | t9 = sym.focusd_feature_enable;
0x00009f40 addiu a0, zero, 8 | a0 = 8;
0x00009f44 bal 0x17f10 | sym_focusd_feature_enable ();
0x00009f48 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009f4c beqz v0, 0xb3c0 | goto label_40;
| }
0x00009f50 lw t9, -0x7e40(gp) | t9 = sym.focusd_i_cs_close;
0x00009f54 move a0, s1 | a0 = s1;
0x00009f58 bal 0x18360 | sym_focusd_i_cs_close ();
0x00009f5c lw gp, 0x30(sp) | gp = *(var_30h);
| label_15:
0x00009f60 lw a0, -0x7fd8(gp) | a0 = *(gp);
| }
0x00009f64 lw t9, -0x7e3c(gp) | t9 = sym.focusd_feature_freeze;
| /* str._var_run_focusd_features */
0x00009f68 addiu a0, a0, -0x6dd0 | a0 += -0x6dd0;
0x00009f6c bal 0x18068 | sym_focusd_feature_freeze ();
0x00009f70 lw gp, 0x30(sp) | gp = *(var_30h);
0x00009f74 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009f78 addiu a0, zero, 0xd | a0 = 0xd;
0x00009f7c bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009f80 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009f84 beqz v0, 0x9f9c |
0x00009f88 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009f8c addiu a0, zero, 3 | a0 = 3;
0x00009f90 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009f94 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009f98 bnez v0, 0xb0f4 | goto label_68;
| }
| }
| label_30:
0x00009f9c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009fa0 addiu a0, zero, 4 | a0 = 4;
0x00009fa4 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009fa8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009fac bnez v0, 0xa6a0 | goto label_69;
| }
| label_10:
0x00009fb0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009fb4 addiu a0, zero, 0xd | a0 = 0xd;
0x00009fb8 bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009fbc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x00009fc0 beqz v0, 0xa280 | goto label_70;
| }
0x00009fc4 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x00009fc8 addiu a0, zero, 3 | a0 = 3;
0x00009fcc bal 0x17e38 | sym_focusd_feature_enabled ();
0x00009fd0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x00009fd4 bnez v0, 0xaba8 | goto label_71;
| }
| label_19:
0x00009fd8 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x00009fdc lw v0, -0x7fd8(gp) | v0 = *(gp);
| if (v0 == 0) {
0x00009fe0 beqz v0, 0xa280 | goto label_70;
| }
0x00009fe4 lw s6, -0x7fd8(gp) | s6 = *(gp);
0x00009fe8 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00009fec lw v0, -0x7fd8(gp) | v0 = *(gp);
0x00009ff0 lw fp, -0x7fd8(gp) | fp = *(gp);
| /* esilref: 'yes' */
0x00009ff4 addiu v0, v0, -0x7458 | v0 += -0x7458;
0x00009ff8 sw v0, 0x40(sp) | *(var_40h) = v0;
0x00009ffc lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000a000 move s3, zero | s3 = 0;
| /* esilref: 'no' */
0x0000a004 addiu v0, v0, -0x7454 | v0 += -0x7454;
0x0000a008 move s2, zero | s2 = 0;
| /* esilref: 'W0' */
0x0000a00c addiu s6, s6, -0x6c60 | s6 += -0x6c60;
0x0000a010 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0000a014 b 0xa220 |
| while (v0 != 0) {
0x0000a018 lw t9, -0x7e38(gp) | t9 = sym.focusd_motor_focus_new;
0x0000a01c lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x0000a020 move a1, s2 | a1 = s2;
0x0000a024 jalr t9 | t9 ();
0x0000a028 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x0000a02c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a030 move a0, v0 | a0 = v0;
0x0000a034 sw v0, 4(s1) | *((s1 + 1)) = v0;
| if (v1 != 0) {
0x0000a038 bnez v1, 0xa564 | goto label_72;
| }
| label_6:
0x0000a03c lw t9, -0x7e34(gp) | t9 = sym.focusd_motor_setup;
0x0000a040 lw a1, 0x28(s0) | a1 = *((s0 + 10));
0x0000a044 bal 0x2054c | sym_focusd_motor_setup ();
0x0000a048 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a04c bnez v0, 0xb5ec | goto label_73;
| }
0x0000a050 lw t9, -0x7e30(gp) | t9 = sym.focusd_optics_motorized_focus_new;
0x0000a054 lw a2, 0x18(s1) | a2 = *((s1 + 6));
0x0000a058 lw a1, (s1) | a1 = *(s1);
0x0000a05c lw a0, 4(s1) | a0 = *((s1 + 1));
0x0000a060 move a3, s2 | a3 = s2;
0x0000a064 jalr t9 | t9 ();
0x0000a068 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a06c lw t9, -0x7fb4(gp) | t9 = sym.focusd_optics_get_type;
0x0000a070 move s4, v0 | s4 = v0;
0x0000a074 bal 0x228b0 | sym_focusd_optics_get_type ();
0x0000a078 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a07c move a0, s4 | a0 = s4;
0x0000a080 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a084 move a1, v0 | a1 = v0;
0x0000a088 jalr t9 | t9 ();
0x0000a08c lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x0000a090 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a094 move s4, v0 | s4 = v0;
0x0000a098 sw v0, 8(s1) | *((s1 + 2)) = v0;
| if (v1 != 0) {
0x0000a09c bnez v1, 0xa57c | goto label_74;
| }
| label_7:
0x0000a0a0 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000a0a4 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a0a8 nop |
0x0000a0ac lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a0b0 move a1, v0 | a1 = v0;
0x0000a0b4 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a0b8 move a0, s4 | a0 = s4;
0x0000a0bc jalr t9 | t9 ();
0x0000a0c0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a0c4 lw a1, 0x28(s0) | a1 = *((s0 + 10));
0x0000a0c8 lw t9, -0x7e2c(gp) | t9 = sym.focusd_optics_motorized_setup;
0x0000a0cc move a0, v0 | a0 = v0;
0x0000a0d0 bal 0x26744 | sym_focusd_optics_motorized_setup ();
0x0000a0d4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a0d8 bnez v0, 0xb604 | goto label_75;
| }
0x0000a0dc lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0000a0e0 move a1, s2 | a1 = s2;
| /* str.ImageSource.I_u.Focus.Window */
0x0000a0e4 addiu a0, fp, -0x6c80 | a0 = fp + -0x6c80;
0x0000a0e8 jalr t9 | t9 ();
0x0000a0ec lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a0f0 move a1, s6 | a1 = s6;
0x0000a0f4 move a0, v0 | a0 = v0;
0x0000a0f8 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
0x0000a0fc move s4, v0 | s4 = v0;
0x0000a100 jalr t9 | t9 ();
0x0000a104 move s7, v0 | s7 = v0;
0x0000a108 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a10c beqz v0, 0xa594 | goto label_76;
| }
0x0000a110 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a114 lw a0, (s1) | a0 = *(s1);
0x0000a118 addiu a1, zero, 0x50 | a1 = 0x50;
0x0000a11c jalr t9 | t9 ();
0x0000a120 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a124 move a0, v0 | a0 = v0;
0x0000a128 move a3, zero | a3 = 0;
0x0000a12c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000a130 lw t9, -0x79ec(gp) | t9 = sym.imp.g_object_set;
0x0000a134 move a2, s7 | a2 = s7;
| /* str.focus_measure_window */
0x0000a138 addiu a1, a1, -0x6c28 | a1 += -0x6c28;
0x0000a13c jalr t9 | t9 ();
0x0000a140 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a144 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000a148 move a0, s7 | a0 = s7;
0x0000a14c jalr t9 | t9 ();
0x0000a150 lw gp, 0x30(sp) | gp = *(var_30h);
| label_8:
0x0000a154 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000a158 move a0, s4 | a0 = s4;
0x0000a15c jalr t9 | t9 ();
0x0000a160 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a164 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0000a168 move a1, s2 | a1 = s2;
0x0000a16c lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0000a170 addiu a0, v0, -0x6c10 | a0 = v0 + -0x6c10;
0x0000a174 jalr t9 | t9 ();
0x0000a178 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a17c addiu a2, sp, 0x94 | a2 = sp + 0x94;
0x0000a180 move a0, v0 | a0 = v0;
0x0000a184 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000a188 lw t9, -0x7fc0(gp) | t9 = sym.settings_get_boolean;
| /* str.AFFullSearch */
0x0000a18c addiu a1, a1, -0x6bf8 | a1 += -0x6bf8;
0x0000a190 move s4, v0 | s4 = v0;
0x0000a194 jalr t9 | t9 ();
0x0000a198 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a19c bnez v0, 0xa1a8 |
0x0000a1a0 addiu v0, zero, 1 | v0 = 1;
0x0000a1a4 sw v0, 0x94(sp) | *(var_94h) = v0;
| }
0x0000a1a8 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000a1ac move a0, s4 | a0 = s4;
0x0000a1b0 jalr t9 | t9 ();
0x0000a1b4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a1b8 lw s1, 8(s1) | s1 = *((s1 + 2));
0x0000a1bc addiu s2, s2, 1 | s2++;
0x0000a1c0 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000a1c4 addiu s3, s3, 0x1c | s3 += 0x1c;
0x0000a1c8 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a1cc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a1d0 move a1, v0 | a1 = v0;
0x0000a1d4 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a1d8 move a0, s1 | a0 = s1;
0x0000a1dc jalr t9 | t9 ();
0x0000a1e0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a1e4 lw a2, 0x94(sp) | a2 = *(var_94h);
0x0000a1e8 lw a0, 0x40(sp) | a0 = *(var_40h);
0x0000a1ec lw v1, 0x44(sp) | v1 = *(var_44h);
0x0000a1f0 lw a1, -0x7fd8(gp) | a1 = *(gp);
| if (a2 == 0) {
0x0000a1f4 movn v1, a0, a2 | v1 = a0;
| }
0x0000a1f8 lw t9, -0x79ec(gp) | t9 = sym.imp.g_object_set;
0x0000a1fc move a0, v0 | a0 = v0;
0x0000a200 move a2, v1 | a2 = v1;
0x0000a204 move a3, zero | a3 = 0;
| /* str.autofocus_full_search */
0x0000a208 addiu a1, a1, -0x6be8 | a1 += -0x6be8;
0x0000a20c jalr t9 | t9 ();
0x0000a210 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000a214 sltu v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x0000a218 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a21c beqz v0, 0xa280 | goto label_70;
| }
| label_0:
0x0000a220 lw t9, -0x7e28(gp) | t9 = *(gp);
0x0000a224 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x0000a228 move a1, s2 | a1 = s2;
0x0000a22c lw s1, 8(s0) | s1 = *((s0 + 2));
0x0000a230 jalr t9 | t9 ();
0x0000a234 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a238 addu s1, s1, s3 | s1 += s3;
0x0000a23c addiu a0, zero, 3 | a0 = 3;
0x0000a240 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000a244 sw v0, (s1) | *(s1) = v0;
0x0000a248 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000a24c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a250 bnez v0, 0xa018 |
| }
0x0000a254 lw t9, -0x7e24(gp) | t9 = sym.focusd_optics_focus_new;
0x0000a258 lw a0, (s1) | a0 = *(s1);
0x0000a25c move a1, s2 | a1 = s2;
0x0000a260 bal 0x23060 | sym_focusd_optics_focus_new ();
0x0000a264 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a268 sw v0, 8(s1) | *((s1 + 2)) = v0;
0x0000a26c lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000a270 addiu s2, s2, 1 | s2++;
0x0000a274 sltu v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x0000a278 addiu s3, s3, 0x1c | s3 += 0x1c;
| if (v0 != 0) {
0x0000a27c bnez v0, 0xa220 | goto label_0;
| }
| label_70:
0x0000a280 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000a284 addiu a0, zero, 4 | a0 = 4;
0x0000a288 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000a28c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a290 beqz v0, 0xa5f4 | goto label_77;
| }
0x0000a294 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000a298 move s3, zero | s3 = 0;
| if (v0 == 0) {
0x0000a29c beqz v0, 0xa5f4 | goto label_77;
| }
0x0000a2a0 move s2, zero | s2 = 0;
0x0000a2a4 b 0xa330 |
| while (v1 == 0) {
| label_1:
0x0000a2a8 lw t9, -0x7e34(gp) | t9 = sym.focusd_motor_setup;
0x0000a2ac lw a1, 0x2c(s0) | a1 = *((s0 + 11));
0x0000a2b0 bal 0x2054c | sym_focusd_motor_setup ();
0x0000a2b4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a2b8 bnez v0, 0xb5a8 | goto label_78;
| }
0x0000a2bc lw t9, -0x7e20(gp) | t9 = sym.focusd_optics_motorized_zoom_new;
0x0000a2c0 lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x0000a2c4 move a1, s2 | a1 = s2;
0x0000a2c8 jalr t9 | t9 ();
0x0000a2cc lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x0000a2d0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a2d4 move s4, v0 | s4 = v0;
0x0000a2d8 sw v0, 0x10(s1) | *((s1 + 4)) = v0;
| if (v1 != 0) {
0x0000a2dc bnez v1, 0xa5b8 | goto label_79;
| }
| label_9:
0x0000a2e0 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000a2e4 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a2e8 nop |
0x0000a2ec lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a2f0 move a1, v0 | a1 = v0;
0x0000a2f4 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a2f8 move a0, s4 | a0 = s4;
0x0000a2fc jalr t9 | t9 ();
0x0000a300 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a304 lw a1, 0x2c(s0) | a1 = *((s0 + 11));
0x0000a308 lw t9, -0x7e2c(gp) | t9 = sym.focusd_optics_motorized_setup;
0x0000a30c move a0, v0 | a0 = v0;
0x0000a310 bal 0x26744 | sym_focusd_optics_motorized_setup ();
0x0000a314 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a318 bnez v0, 0xb5c0 | goto label_80;
| }
0x0000a31c lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000a320 addiu s2, s2, 1 | s2++;
0x0000a324 sltu v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x0000a328 addiu s3, s3, 0x1c | s3 += 0x1c;
| if (v0 == 0) {
0x0000a32c beqz v0, 0xa5f4 | goto label_77;
| }
0x0000a330 lw t9, -0x7e1c(gp) | t9 = sym.focusd_motor_zoom_new;
0x0000a334 lw s1, 8(s0) | s1 = *((s0 + 2));
0x0000a338 lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x0000a33c move a1, s2 | a1 = s2;
0x0000a340 jalr t9 | t9 ();
0x0000a344 addu s1, s1, s3 | s1 += s3;
0x0000a348 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x0000a34c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a350 move a0, v0 | a0 = v0;
0x0000a354 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
0x0000a358 beqz v1, 0xa2a8 |
| }
0x0000a35c lw t9, -0x7e74(gp) | t9 = sym.focusd_motor_reset_state;
0x0000a360 bal 0x20230 | sym_focusd_motor_reset_state ();
0x0000a364 nop |
0x0000a368 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a36c lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x0000a370 b 0xa2a8 | goto label_1;
| label_43:
0x0000a374 addiu v0, zero, 1 | v0 = 1;
0x0000a378 sw v0, 0x68(sp) | *(var_68h) = v0;
0x0000a37c b 0x9b20 | goto label_2;
| label_46:
0x0000a380 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a384 lw t9, -0x7a98(gp) | t9 = sym.imp.bootblock_get;
| /* str.OPTICS_FOCUS */
0x0000a388 addiu a0, a0, -0x721c | a0 += -0x721c;
0x0000a38c jalr t9 | t9 ();
0x0000a390 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a394 beqz v0, 0xa990 | goto label_81;
| }
0x0000a398 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a39c lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0000a3a0 move a1, v0 | a1 = v0;
| /* str.focus__s */
0x0000a3a4 addiu a0, a0, -0x720c | a0 += -0x720c;
0x0000a3a8 jalr t9 | t9 ();
0x0000a3ac lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a3b0 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
| label_12:
0x0000a3b4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a3b8 lw t9, -0x7a98(gp) | t9 = sym.imp.bootblock_get;
| /* str.OPTICS_ZOOM */
0x0000a3bc addiu a0, a0, -0x7200 | a0 += -0x7200;
0x0000a3c0 jalr t9 | t9 ();
0x0000a3c4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a3c8 beqz v0, 0xab58 | goto label_82;
| }
0x0000a3cc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a3d0 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0000a3d4 move a1, v0 | a1 = v0;
| /* str.zoom__s */
0x0000a3d8 addiu a0, a0, -0x71f4 | a0 += -0x71f4;
0x0000a3dc jalr t9 | t9 ();
0x0000a3e0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a3e4 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
| label_16:
0x0000a3e8 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x0000a3ec lw a0, -0x7fd8(gp) | a0 = *(gp);
| if (v0 == 0) {
0x0000a3f0 beqz v0, 0xaecc | goto label_83;
| }
0x0000a3f4 lw v0, 0x2c(s0) | v0 = *((s0 + 11));
0x0000a3f8 lw t9, -0x7a98(gp) | t9 = sym.imp.bootblock_get;
| if (v0 == 0) {
0x0000a3fc beqz v0, 0xaed0 | goto label_84;
| }
| label_25:
0x0000a400 lw s5, -0x7990(gp) | s5 = *((gp - 7780));
| label_24:
0x0000a404 lw t9, -0x79a8(gp) | t9 = sym.imp.bootblock_free;
0x0000a408 jalr t9 | t9 ();
0x0000a40c nop |
0x0000a410 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x0000a414 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a418 beqz v0, 0xa428 | goto label_13;
| }
0x0000a41c lw v0, 0x2c(s0) | v0 = *((s0 + 11));
0x0000a420 lw t9, -0x7e60(gp) | t9 = sym.create_transfer_socket;
| if (v0 == 0) {
0x0000a424 bnel v0, zero, 0x9bd8 | goto label_3;
| }
| label_13:
0x0000a428 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a42c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000a430 lw a3, (s5) | a3 = *(s5);
| /* str._3_Bootblock_parameter_read_failed._Terminating_n */
0x0000a434 addiu a0, a0, -0x7184 | a0 += -0x7184;
0x0000a438 addiu a2, zero, 0x30 | a2 = 0x30;
0x0000a43c b 0xb3b4 | goto label_39;
| label_45:
0x0000a440 lw v0, 0x64(sp) | v0 = *(var_64h);
| if (v0 == 0) {
0x0000a444 beql v0, zero, 0x9b44 | goto label_4;
| }
0x0000a448 sw zero, 0x64(sp) | *(var_64h) = 0;
0x0000a44c lw t9, -0x7b10(gp) | t9 = sym.imp.g_bus_get_sync;
0x0000a450 addiu s6, sp, 0x80 | s6 = sp + 0x80;
0x0000a454 move a2, s6 | a2 = s6;
0x0000a458 move a1, zero | a1 = 0;
0x0000a45c addiu a0, zero, 1 | a0 = 1;
0x0000a460 sw zero, 0x80(sp) | *(var_80h) = 0;
0x0000a464 jalr t9 | t9 ();
0x0000a468 move s1, v0 | s1 = v0;
0x0000a46c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a470 beqz v0, 0xb6c0 | goto label_85;
| }
0x0000a474 addiu v0, zero, -1 | v0 = -1;
0x0000a478 lw s0, -0x7fd8(gp) | s0 = *(gp);
0x0000a47c sw v0, 0x20(sp) | *(var_20h) = v0;
0x0000a480 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0000a484 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0000a488 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000a48c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000a490 lw t9, -0x788c(gp) | t9 = sym.imp.g_dbus_connection_call_sync;
| /* str.GetDefaultTarget */
0x0000a494 addiu v0, v0, -0x72ec | v0 += -0x72ec;
| /* esilref: '(s)' */
0x0000a498 addiu s0, s0, -0x72f0 | s0 += -0x72f0;
0x0000a49c sw s6, 0x28(sp) | *(var_28h) = s6;
0x0000a4a0 sw zero, 0x24(sp) | *(var_24h) = 0;
0x0000a4a4 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x0000a4a8 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0000a4ac sw zero, 0x14(sp) | *(var_14h) = 0;
0x0000a4b0 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.org.freedesktop.systemd1.Manager */
0x0000a4b4 addiu a3, a3, -0x734c | a3 += -0x734c;
| /* str._org_freedesktop_systemd1 */
0x0000a4b8 addiu a2, a2, -0x7328 | a2 += -0x7328;
| /* str.org.freedesktop.systemd1 */
0x0000a4bc addiu a1, a1, -0x730c | a1 += -0x730c;
0x0000a4c0 move a0, s1 | a0 = s1;
0x0000a4c4 jalr t9 | t9 ();
0x0000a4c8 move s3, v0 | s3 = v0;
0x0000a4cc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a4d0 beqz v0, 0xb730 | goto label_86;
| }
0x0000a4d4 lw t9, -0x79dc(gp) | t9 = sym.imp.g_variant_get;
0x0000a4d8 addiu a2, sp, 0x94 | a2 = sp + 0x94;
0x0000a4dc move a1, s0 | a1 = s0;
0x0000a4e0 move a0, v0 | a0 = v0;
0x0000a4e4 sw zero, 0x94(sp) | *(var_94h) = 0;
0x0000a4e8 jalr t9 | t9 ();
0x0000a4ec lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a4f0 lw a0, 0x94(sp) | a0 = *(var_94h);
0x0000a4f4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000a4f8 lw t9, -0x77b8(gp) | t9 = sym.imp.g_strcmp0;
| /* str.production.target */
0x0000a4fc addiu a1, a1, -0x72d8 | a1 += -0x72d8;
0x0000a500 jalr t9 | t9 ();
0x0000a504 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a508 move a0, s3 | a0 = s3;
0x0000a50c lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0000a510 move s0, v0 | s0 = v0;
0x0000a514 jalr t9 | t9 ();
0x0000a518 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a51c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000a520 lw a0, 0x94(sp) | a0 = *(var_94h);
0x0000a524 jalr t9 | t9 ();
0x0000a528 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a52c lw t9, -0x77b0(gp) | t9 = sym.imp.g_object_unref;
0x0000a530 move a0, s1 | a0 = s1;
0x0000a534 jalr t9 | t9 ();
0x0000a538 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s0 != 0) {
0x0000a53c bnez s0, 0xb454 | goto label_87;
| }
0x0000a540 lw v0, 0x64(sp) | v0 = *(var_64h);
0x0000a544 lw t9, -0x7e68(gp) | t9 = sym.focusd_feature_enable;
| if (v0 == 0) {
0x0000a548 beqz v0, 0x9b44 | goto label_4;
| }
0x0000a54c addiu a0, zero, 0x11 | a0 = 0x11;
0x0000a550 bal 0x17f10 | sym_focusd_feature_enable ();
0x0000a554 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a558 bnez v0, 0x9b58 | goto label_5;
| }
0x0000a55c lw t9, -0x7bd4(gp) | t9 = sym.imp.exit;
0x0000a560 b 0xb3c4 | goto label_88;
| label_72:
0x0000a564 lw t9, -0x7e74(gp) | t9 = sym.focusd_motor_reset_state;
0x0000a568 bal 0x20230 | sym_focusd_motor_reset_state ();
0x0000a56c nop |
0x0000a570 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a574 lw a0, 4(s1) | a0 = *((s1 + 1));
0x0000a578 b 0xa03c | goto label_6;
| label_74:
0x0000a57c lw t9, -0x7e78(gp) | t9 = sym.focusd_optics_reset_state;
0x0000a580 move a0, v0 | a0 = v0;
0x0000a584 bal 0x22ce4 | sym_focusd_optics_reset_state ();
0x0000a588 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a58c lw s4, 8(s1) | s4 = *((s1 + 2));
0x0000a590 b 0xa0a0 | goto label_7;
| label_76:
0x0000a594 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a598 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000a59c lw a3, (s5) | a3 = *(s5);
0x0000a5a0 addiu a2, zero, 0x31 | a2 = 0x31;
0x0000a5a4 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Failed_to_read_focus_measure_window_parameter_n */
0x0000a5a8 addiu a0, a0, -0x6c5c | a0 += -0x6c5c;
0x0000a5ac jalr t9 | t9 ();
0x0000a5b0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a5b4 b 0xa154 | goto label_8;
| label_79:
0x0000a5b8 lw t9, -0x7fb4(gp) | t9 = sym.focusd_optics_get_type;
0x0000a5bc bal 0x228b0 | sym_focusd_optics_get_type ();
0x0000a5c0 nop |
0x0000a5c4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a5c8 move a0, s4 | a0 = s4;
0x0000a5cc lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a5d0 move a1, v0 | a1 = v0;
0x0000a5d4 jalr t9 | t9 ();
0x0000a5d8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a5dc lw t9, -0x7e78(gp) | t9 = sym.focusd_optics_reset_state;
0x0000a5e0 move a0, v0 | a0 = v0;
0x0000a5e4 bal 0x22ce4 | sym_focusd_optics_reset_state ();
0x0000a5e8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a5ec lw s4, 0x10(s1) | s4 = *((s1 + 4));
0x0000a5f0 b 0xa2e0 | goto label_9;
| label_77:
0x0000a5f4 lw a0, -0x7fd0(gp) | a0 = *(gp);
0x0000a5f8 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x0000a5fc lw t9, -0x76f8(gp) | t9 = sym.imp.g_thread_pool_new;
0x0000a600 addiu a0, a0, -0x6b68 | a0 += -0x6b68;
0x0000a604 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a608 move a3, zero | a3 = 0;
0x0000a60c addiu a2, zero, 1 | a2 = 1;
0x0000a610 move a1, zero | a1 = 0;
0x0000a614 jalr t9 | t9 ();
0x0000a618 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a61c lw v1, 0x60(sp) | v1 = *(var_60h);
0x0000a620 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000a624 sw v0, 0x74c4(a0) | *((a0 + 7473)) = v0;
| if (v1 != 0) {
0x0000a628 beqz v1, 0xa6f0 |
0x0000a62c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000a630 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000a634 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0000a638 lw a0, (s5) | a0 = *(s5);
| /* str._4_Failed_to_create_optics_initiation_pool:__s_n */
0x0000a63c addiu a2, a2, -0x6b88 | a2 += -0x6b88;
0x0000a640 addiu a1, zero, 1 | a1 = 1;
0x0000a644 jalr t9 | t9 ();
0x0000a648 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a64c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0000a650 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x0000a654 jalr t9 | t9 ();
0x0000a658 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a65c addiu v0, zero, 1 | v0 = 1;
| label_18:
0x0000a660 lw v1, 0x48(sp) | v1 = *(var_48h);
0x0000a664 lw a0, 0x154(sp) | a0 = *(var_154h);
0x0000a668 lw v1, (v1) | v1 = *(v1);
0x0000a66c lw ra, 0x17c(sp) | ra = *(var_17ch);
| if (a0 != v1) {
0x0000a670 bne a0, v1, 0xb6b4 | goto label_89;
| }
0x0000a674 lw fp, 0x178(sp) | fp = *(var_178h);
0x0000a678 lw s7, 0x174(sp) | s7 = *(var_174h);
0x0000a67c lw s6, 0x170(sp) | s6 = *(var_170h);
0x0000a680 lw s5, 0x16c(sp) | s5 = *(var_16ch);
0x0000a684 lw s4, 0x168(sp) | s4 = *(var_168h);
0x0000a688 lw s3, 0x164(sp) | s3 = *(var_164h);
0x0000a68c lw s2, 0x160(sp) | s2 = *(var_160h);
0x0000a690 lw s1, 0x15c(sp) | s1 = *(var_15ch);
0x0000a694 lw s0, 0x158(sp) | s0 = *(var_158h);
0x0000a698 addiu sp, sp, 0x180 |
0x0000a69c jr ra | return v0;
| label_69:
0x0000a6a0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000a6a4 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
0x0000a6a8 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
| /* str.override_configuration */
0x0000a6ac addiu a1, a1, -0x6db4 | a1 += -0x6db4;
0x0000a6b0 jalr t9 | t9 ();
0x0000a6b4 move s1, v0 | s1 = v0;
0x0000a6b8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a6bc beqz v0, 0xa6dc |
0x0000a6c0 lw t9, -0x7fd0(gp) | t9 = *(gp);
0x0000a6c4 lw a1, 0x2c(s0) | a1 = *((s0 + 11));
0x0000a6c8 addiu t9, t9, -0x7468 | t9 += -0x7468;
0x0000a6cc move a0, v0 | a0 = v0;
0x0000a6d0 bal 0x8b98 | fcn_00008b98 ();
0x0000a6d4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a6d8 beqz v0, 0xaf1c | goto label_29;
| }
| }
0x0000a6dc lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000a6e0 move a0, s1 | a0 = s1;
0x0000a6e4 jalr t9 | t9 ();
0x0000a6e8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a6ec b 0x9fb0 | goto label_10;
| }
0x0000a6f0 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000a6f4 addiu a0, zero, 3 | a0 = 3;
0x0000a6f8 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000a6fc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a700 bnez v0, 0xad7c | goto label_90;
| }
| label_20:
0x0000a704 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000a708 addiu a0, zero, 0xd | a0 = 0xd;
0x0000a70c bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000a710 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a714 beqz v0, 0xa75c | goto label_91;
| }
0x0000a718 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000a71c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| if (v0 == 0) {
0x0000a720 beqz v0, 0xa760 | goto label_92;
| }
0x0000a724 move s2, zero | s2 = 0;
0x0000a728 move s1, zero | s1 = 0;
| do {
0x0000a72c lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000a730 lw t9, -0x7e18(gp) | t9 = sym.focusd_optics_motorized_focus_setup_configuration;
0x0000a734 addu v0, v0, s2 | v0 += s2;
0x0000a738 lw a0, 8(v0) | a0 = *((v0 + 2));
0x0000a73c jalr t9 | t9 ();
0x0000a740 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a744 beqz v0, 0xb61c | goto label_93;
| }
0x0000a748 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0000a74c addiu s1, s1, 1 | s1++;
0x0000a750 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0000a754 addiu s2, s2, 0x1c | s2 += 0x1c;
0x0000a758 bnez v0, 0xa72c |
| } while (v0 != 0);
| label_91:
0x0000a75c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
| label_92:
0x0000a760 addiu a0, zero, 2 | a0 = 2;
0x0000a764 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000a768 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a76c beqz v0, 0xac84 | goto label_94;
| }
0x0000a770 lui v0, 0x7fff | v0 = 0x7fff0000;
0x0000a774 lw a0, 0x68(sp) | a0 = *(var_68h);
0x0000a778 lui v1, 0x8000 | v1 = 0x80000000;
0x0000a77c ori v0, v0, 0xffff | v0 |= 0xffff;
0x0000a780 sw v1, 0x6c(sp) | *(var_6ch) = v1;
0x0000a784 sw zero, 0x70(sp) | *(var_70h) = 0;
0x0000a788 sw v1, 0x74(sp) | *(var_74h) = v1;
0x0000a78c sw v0, 0x78(sp) | *(var_78h) = v0;
0x0000a790 sw zero, 0x7c(sp) | *(var_7ch) = 0;
| if (a0 == 0) {
0x0000a794 beqz a0, 0xb5d8 | goto label_95;
| }
0x0000a798 lw v1, -0x7fd0(gp) | v1 = *(gp);
0x0000a79c sw v0, 0x44(sp) | *(var_44h) = v0;
0x0000a7a0 lw v0, -0x7fd0(gp) | v0 = *(gp);
0x0000a7a4 addiu v1, v1, -0x6710 | v1 += -0x6710;
0x0000a7a8 addiu v0, v0, -0x6830 | v0 += -0x6830;
0x0000a7ac move s4, zero | s4 = 0;
0x0000a7b0 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x0000a7b4 sw zero, 0x40(sp) | *(var_40h) = 0;
0x0000a7b8 move s1, zero | s1 = 0;
0x0000a7bc addiu s6, sp, 0x80 | s6 = sp + 0x80;
0x0000a7c0 sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x0000a7c4 lui s7, 0x8000 | s7 = 0x80000000;
0x0000a7c8 addiu fp, sp, 0x94 | fp = sp + 0x94;
0x0000a7cc sw v0, 0x58(sp) | *(var_58h) = v0;
0x0000a7d0 b 0xa8c4 |
| while (s3 == 0) {
0x0000a7d4 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| label_27:
0x0000a7d8 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a7dc nop |
0x0000a7e0 lw v1, (s3) | v1 = *(s3);
0x0000a7e4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v1 != 0) {
0x0000a7e8 beqz v1, 0xa7f8 |
0x0000a7ec lw v1, (v1) | v1 = *(v1);
0x0000a7f0 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| if (v0 == v1) {
0x0000a7f4 beq v0, v1, 0xa814 | goto label_96;
| }
| }
0x0000a7f8 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
0x0000a7fc move a1, v0 | a1 = v0;
0x0000a800 move a0, s3 | a0 = s3;
0x0000a804 jalr t9 | t9 ();
0x0000a808 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a80c beqz v0, 0xa84c |
0x0000a810 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| label_96:
0x0000a814 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a818 nop |
0x0000a81c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a820 move a1, v0 | a1 = v0;
0x0000a824 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a828 move a0, s3 | a0 = s3;
0x0000a82c jalr t9 | t9 ();
0x0000a830 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a834 move a1, fp | a1 = fp;
0x0000a838 lw t9, -0x7e14(gp) | t9 = sym.focusd_optics_motorized_get_operating_temperature_limit;
0x0000a83c move a0, v0 | a0 = v0;
0x0000a840 bal 0x26808 | sym_focusd_optics_motorized_get_operating_temperature_limit ();
0x0000a844 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a848 bnez v0, 0xb04c | goto label_97;
| }
| }
0x0000a84c move v0, s2 | v0 = s2;
| if (s1 == 0) {
0x0000a850 beqz s1, 0xafa4 | goto label_98;
| }
| label_11:
0x0000a854 lw v1, 0x40(sp) | v1 = *(var_40h);
0x0000a858 lw a0, -0x7fd8(gp) | a0 = *(gp);
| if (v1 == v0) {
0x0000a85c bnel v1, v0, 0xb19c | goto label_99;
| }
0x0000a860 lw v1, 0x6c(sp) | v1 = *(var_6ch);
| if (v1 != 0) {
0x0000a864 beqz v1, 0xa898 |
0x0000a868 lw v0, 0x80(sp) | v0 = *(var_80h);
0x0000a86c lw v1, 0x70(sp) | v1 = *(var_70h);
| if (v1 != v0) {
0x0000a870 bne v1, v0, 0xb198 | goto label_100;
| }
0x0000a874 lw v0, 0x84(sp) | v0 = *(var_84h);
0x0000a878 lw v1, 0x74(sp) | v1 = *(var_74h);
| if (v1 != v0) {
0x0000a87c bne v1, v0, 0xb198 | goto label_100;
| }
0x0000a880 lw v0, 0x88(sp) | v0 = *(var_88h);
0x0000a884 lw v1, 0x78(sp) | v1 = *(var_78h);
| if (v1 != v0) {
0x0000a888 bne v1, v0, 0xb198 | goto label_100;
| }
0x0000a88c lw v0, 0x8c(sp) | v0 = *(var_8ch);
0x0000a890 lw a0, -0x7fd8(gp) | a0 = *(gp);
| if (v1 != v0) {
0x0000a894 bne v1, v0, 0xb19c | goto label_99;
| }
| }
0x0000a898 lw v0, 0x90(sp) | v0 = *(var_90h);
| if (s2 != 0) {
0x0000a89c bnez s2, 0xaf54 | goto label_101;
| }
| label_26:
0x0000a8a0 lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0000a8a4 move a0, s6 | a0 = s6;
0x0000a8a8 jalr t9 | t9 ();
0x0000a8ac lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000a8b0 addiu s1, s1, 1 | s1++;
0x0000a8b4 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0000a8b8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a8bc addiu s4, s4, 0x1c | s4 += 0x1c;
| if (v0 == 0) {
0x0000a8c0 beqz v0, 0xabf8 | goto label_102;
| }
0x0000a8c4 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000a8c8 lw v1, 0x44(sp) | v1 = *(var_44h);
0x0000a8cc addu v0, v0, s4 | v0 += s4;
0x0000a8d0 lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0000a8d4 lw s2, 8(v0) | s2 = *((v0 + 2));
0x0000a8d8 move a0, s6 | a0 = s6;
0x0000a8dc sw s7, 0x80(sp) | *(var_80h) = s7;
0x0000a8e0 sw zero, 0x84(sp) | *(var_84h) = 0;
0x0000a8e4 sw s7, 0x88(sp) | *(var_88h) = s7;
0x0000a8e8 sw v1, 0x8c(sp) | *(var_8ch) = v1;
0x0000a8ec sw zero, 0x90(sp) | *(var_90h) = 0;
0x0000a8f0 lw s3, 0x10(v0) | s3 = *((v0 + 4));
0x0000a8f4 jalr t9 | t9 ();
0x0000a8f8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (s2 != 0) {
0x0000a8fc beqz s2, 0xa978 |
0x0000a900 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000a904 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a908 nop |
0x0000a90c lw v1, (s2) | v1 = *(s2);
0x0000a910 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v1 != 0) {
0x0000a914 beqz v1, 0xa924 |
0x0000a918 lw v1, (v1) | v1 = *(v1);
0x0000a91c lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| if (v0 == v1) {
0x0000a920 beq v0, v1, 0xa940 | goto label_103;
| }
| }
0x0000a924 lw t9, -0x7a40(gp) | t9 = sym.imp.g_type_check_instance_is_a;
0x0000a928 move a1, v0 | a1 = v0;
0x0000a92c move a0, s2 | a0 = s2;
0x0000a930 jalr t9 | t9 ();
0x0000a934 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000a938 beqz v0, 0xa978 | goto label_104;
| }
0x0000a93c lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| label_103:
0x0000a940 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000a944 nop |
0x0000a948 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a94c move a1, v0 | a1 = v0;
0x0000a950 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000a954 move a0, s2 | a0 = s2;
0x0000a958 jalr t9 | t9 ();
0x0000a95c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a960 move a1, fp | a1 = fp;
0x0000a964 lw t9, -0x7e14(gp) | t9 = sym.focusd_optics_motorized_get_operating_temperature_limit;
0x0000a968 move a0, v0 | a0 = v0;
0x0000a96c bal 0x26808 | sym_focusd_optics_motorized_get_operating_temperature_limit ();
0x0000a970 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000a974 bnez v0, 0xb024 | goto label_105;
| }
| }
| label_104:
0x0000a978 move s2, zero | s2 = 0;
0x0000a97c bnel s3, zero, 0xa7d4 |
| }
0x0000a980 move v0, zero | v0 = 0;
| if (s1 == 0) {
0x0000a984 beqz s1, 0xaf9c | goto label_106;
| }
0x0000a988 move s2, zero | s2 = 0;
0x0000a98c b 0xa854 | goto label_11;
| label_81:
0x0000a990 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0000a994 jalr t9 | t9 ();
0x0000a998 nop |
0x0000a99c lw v1, (v0) | v1 = *(v0);
0x0000a9a0 addiu v0, zero, 2 | v0 = 2;
0x0000a9a4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v1 == v0) {
0x0000a9a8 beq v1, v0, 0xa3b4 | goto label_12;
| }
0x0000a9ac lw s5, -0x7990(gp) | s5 = *((gp - 7780));
| label_17:
0x0000a9b0 lw a0, (s5) | a0 = *(s5);
| label_35:
0x0000a9b4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000a9b8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_read_bootblock_parameter:__m_n */
0x0000a9bc addiu a2, a2, -0x71b0 | a2 += -0x71b0;
0x0000a9c0 addiu a1, zero, 1 | a1 = 1;
0x0000a9c4 jalr t9 | t9 ();
0x0000a9c8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a9cc lw t9, -0x79a8(gp) | t9 = sym.imp.bootblock_free;
0x0000a9d0 jalr t9 | t9 ();
0x0000a9d4 nop |
0x0000a9d8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000a9dc b 0xa428 | goto label_13;
| label_60:
0x0000a9e0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000a9e4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000a9e8 lw a3, (s5) | a3 = *(s5);
0x0000a9ec addiu a2, zero, 0x33 | a2 = 0x33;
0x0000a9f0 addiu a1, zero, 1 | a1 = 1;
| /* str._6_i_CS_mounting_status_unchanged_since_last_start_n */
0x0000a9f4 addiu a0, a0, -0x6e74 | a0 += -0x6e74;
0x0000a9f8 jalr t9 | t9 ();
0x0000a9fc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aa00 lw t9, -0x7e48(gp) | t9 = sym.focusd_i_cs_mode;
0x0000aa04 move a0, s1 | a0 = s1;
0x0000aa08 bal 0x18d38 | sym_focusd_i_cs_mode ();
0x0000aa0c addiu v1, zero, 2 | v1 = 2;
0x0000aa10 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == v1) {
0x0000aa14 beq v0, v1, 0x9f14 | goto label_14;
| }
| label_33:
0x0000aa18 lw t9, -0x7e10(gp) | t9 = sym.focusd_i_cs_create_configuration;
0x0000aa1c move a0, s1 | a0 = s1;
0x0000aa20 bal 0x19178 | sym_focusd_i_cs_create_configuration ();
0x0000aa24 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aa28 beqz v0, 0xb7bc | goto label_107;
| }
0x0000aa2c lw t9, -0x7e68(gp) | t9 = sym.focusd_feature_enable;
0x0000aa30 addiu a0, zero, 4 | a0 = 4;
0x0000aa34 bal 0x17f10 | sym_focusd_feature_enable ();
0x0000aa38 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aa3c beqz v0, 0xb3c0 | goto label_40;
| }
0x0000aa40 lw t9, -0x7e68(gp) | t9 = sym.focusd_feature_enable;
0x0000aa44 addiu a0, zero, 3 | a0 = 3;
0x0000aa48 bal 0x17f10 | sym_focusd_feature_enable ();
0x0000aa4c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aa50 beqz v0, 0xb3c0 | goto label_40;
| }
0x0000aa54 lw t9, -0x7e64(gp) | t9 = sym.focusd_feature_disable;
0x0000aa58 addiu a0, zero, 8 | a0 = 8;
0x0000aa5c bal 0x17f84 | sym_focusd_feature_disable ();
0x0000aa60 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aa64 beqz v0, 0xb3c0 | goto label_40;
| }
0x0000aa68 lw t9, -0x7e64(gp) | t9 = sym.focusd_feature_disable;
0x0000aa6c addiu a0, zero, 1 | a0 = 1;
0x0000aa70 bal 0x17f84 | sym_focusd_feature_disable ();
0x0000aa74 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aa78 beqz v0, 0xb3c0 | goto label_40;
| }
0x0000aa7c lw t9, -0x7e64(gp) | t9 = sym.focusd_feature_disable;
0x0000aa80 addiu a0, zero, 0xb | a0 = 0xb;
0x0000aa84 bal 0x17f84 | sym_focusd_feature_disable ();
0x0000aa88 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aa8c beqz v0, 0xb3c0 | goto label_40;
| }
0x0000aa90 lw t9, -0x7e64(gp) | t9 = sym.focusd_feature_disable;
0x0000aa94 addiu a0, zero, 0xc | a0 = 0xc;
0x0000aa98 bal 0x17f84 | sym_focusd_feature_disable ();
0x0000aa9c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aaa0 beqz v0, 0xb3c0 | goto label_40;
| }
0x0000aaa4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000aaa8 lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x0000aaac jalr t9 | t9 ();
0x0000aab0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aab4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000aab8 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
| /* str.FocusdMotorImage2d */
0x0000aabc addiu a0, a0, -0x6e18 | a0 += -0x6e18;
0x0000aac0 jalr t9 | t9 ();
0x0000aac4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aac8 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x0000aacc lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000aad0 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
0x0000aad4 jalr t9 | t9 ();
0x0000aad8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aadc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000aae0 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
| /* str.FocusdMeasureFocusImage2d */
0x0000aae4 addiu a0, a0, -0x6e04 | a0 += -0x6e04;
0x0000aae8 jalr t9 | t9 ();
0x0000aaec lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aaf0 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x0000aaf4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000aaf8 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x0000aafc jalr t9 | t9 ();
0x0000ab00 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ab04 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000ab08 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
| /* str.zoom_ics */
0x0000ab0c addiu a0, a0, -0x6de8 | a0 += -0x6de8;
0x0000ab10 jalr t9 | t9 ();
0x0000ab14 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ab18 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x0000ab1c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000ab20 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x0000ab24 jalr t9 | t9 ();
0x0000ab28 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ab2c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000ab30 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
| /* str.focus_ics */
0x0000ab34 addiu a0, a0, -0x6ddc | a0 += -0x6ddc;
0x0000ab38 jalr t9 | t9 ();
0x0000ab3c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ab40 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x0000ab44 lw t9, -0x7e40(gp) | t9 = sym.focusd_i_cs_close;
0x0000ab48 move a0, s1 | a0 = s1;
0x0000ab4c bal 0x18360 | sym_focusd_i_cs_close ();
0x0000ab50 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ab54 b 0x9f60 | goto label_15;
| label_82:
0x0000ab58 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0000ab5c jalr t9 | t9 ();
0x0000ab60 nop |
0x0000ab64 lw v1, (v0) | v1 = *(v0);
0x0000ab68 addiu v0, zero, 2 | v0 = 2;
0x0000ab6c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v1 == v0) {
0x0000ab70 beq v1, v0, 0xa3e8 | goto label_16;
| }
0x0000ab74 lw s5, -0x7990(gp) | s5 = *((gp - 7780));
0x0000ab78 b 0xa9b0 | goto label_17;
| label_42:
0x0000ab7c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0000ab80 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000ab84 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000ab88 lw a0, (v0) | a0 = *(v0);
| /* str._usr_share_focusd_motors.conf */
0x0000ab8c addiu a3, s0, -0x7438 | a3 = s0 + -0x7438;
| /* str._4_Reading_config_file__s_failed_n */
0x0000ab90 addiu a2, a2, -0x7418 | a2 += -0x7418;
0x0000ab94 addiu a1, zero, 1 | a1 = 1;
0x0000ab98 jalr t9 | t9 ();
0x0000ab9c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aba0 addiu v0, zero, 1 | v0 = 1;
0x0000aba4 b 0xa660 | goto label_18;
| label_71:
0x0000aba8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000abac lw t9, -0x7e0c(gp) | t9 = sym.settings_load_config;
0x0000abb0 addiu a1, zero, 1 | a1 = 1;
| /* str._etc_sysconfig_imagesource_focus.conf */
0x0000abb4 addiu a0, a0, -0x6d74 | a0 += -0x6d74;
0x0000abb8 jalr t9 | t9 ();
0x0000abbc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000abc0 beqz v0, 0xb7a4 | goto label_108;
| }
0x0000abc4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000abc8 lw t9, -0x7e0c(gp) | t9 = sym.settings_load_config;
0x0000abcc addiu a1, zero, 1 | a1 = 1;
| /* str._etc_sysconfig_imagesource_focus_positions.conf */
0x0000abd0 addiu a0, a0, -0x6d28 | a0 += -0x6d28;
0x0000abd4 jalr t9 | t9 ();
0x0000abd8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000abdc bnez v0, 0x9fd8 | goto label_19;
| }
0x0000abe0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000abe4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000abe8 lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_load_focus_position_parameters_n */
0x0000abec addiu a0, a0, -0x6cf8 | a0 += -0x6cf8;
0x0000abf0 addiu a2, zero, 0x2c | a2 = 0x2c;
0x0000abf4 b 0xb3b4 | goto label_39;
| label_102:
0x0000abf8 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0000abfc lw a3, 0x74(sp) | a3 = *(var_74h);
| if (v0 == 0) {
0x0000ac00 beqz v0, 0xb52c | goto label_109;
| }
0x0000ac04 lw v0, 0x78(sp) | v0 = *(var_78h);
0x0000ac08 slt v1, v0, a3 | v1 = (v0 < a3) ? 1 : 0;
0x0000ac0c lw a1, -0x7fd0(gp) | a1 = *(gp);
| if (v1 != 0) {
0x0000ac10 bnez v1, 0xb550 | goto label_110;
| }
0x0000ac14 lw t9, -0x7e08(gp) | t9 = sym.temperature_ctrld_set_limit;
0x0000ac18 addiu s1, sp, 0x6c | s1 = sp + 0x6c;
0x0000ac1c move a2, s0 | a2 = s0;
0x0000ac20 addiu a1, a1, -0x6bac | a1 += -0x6bac;
0x0000ac24 move a0, s1 | a0 = s1;
0x0000ac28 jalr t9 | t9 ();
0x0000ac2c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000ac30 beqz v0, 0xb584 | goto label_111;
| }
| label_36:
0x0000ac34 lw t9, 0x3c(sp) | t9 = *(var_3ch);
| label_38:
0x0000ac38 move a0, s1 | a0 = s1;
0x0000ac3c jalr t9 | t9 ();
0x0000ac40 lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000ac44 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000ac48 beqz v0, 0xac84 | goto label_94;
| }
0x0000ac4c move s2, zero | s2 = 0;
0x0000ac50 move s1, zero | s1 = 0;
| do {
0x0000ac54 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000ac58 lw t9, -0x7e04(gp) | t9 = sym.imaged_register_focus;
0x0000ac5c addu v0, v0, s2 | v0 += s2;
0x0000ac60 addiu s1, s1, 1 | s1++;
0x0000ac64 lw a1, 8(v0) | a1 = *((v0 + 2));
0x0000ac68 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x0000ac6c addiu s2, s2, 0x1c | s2 += 0x1c;
0x0000ac70 jalr t9 | t9 ();
0x0000ac74 lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000ac78 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0000ac7c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ac80 bnez v0, 0xac54 |
| } while (v0 != 0);
| label_94:
0x0000ac84 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ac88 addiu a0, zero, 1 | a0 = 1;
0x0000ac8c bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ac90 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000ac94 beqz v0, 0xb1f0 | goto label_112;
| }
0x0000ac98 lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000ac9c lw s4, -0x7fd8(gp) | s4 = *(gp);
| if (v0 == 0) {
0x0000aca0 beqz v0, 0xb1f0 | goto label_112;
| }
0x0000aca4 lw s3, -0x7fd8(gp) | s3 = *(gp);
0x0000aca8 lw s2, -0x7fd8(gp) | s2 = *(gp);
0x0000acac move s6, zero | s6 = 0;
0x0000acb0 move s7, zero | s7 = 0;
| /* str.optic */
0x0000acb4 addiu s4, s4, -0x69fc | s4 += -0x69fc;
| /* str.imaged */
0x0000acb8 addiu s3, s3, -0x6a04 | s3 += -0x6a04;
| /* esilref: 'measure' */
0x0000acbc addiu s2, s2, -0x58b8 | s2 += -0x58b8;
0x0000acc0 b 0xacd8 |
| while (v0 != 0) {
0x0000acc4 lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000acc8 addiu s7, s7, 1 | s7++;
0x0000accc sltu v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x0000acd0 addiu s6, s6, 0x1c | s6 += 0x1c;
| if (v0 == 0) {
0x0000acd4 beqz v0, 0xb1f0 | goto label_112;
| }
0x0000acd8 lw t9, -0x7e00(gp) | t9 = sym.focusd_assistant_get_type;
0x0000acdc lw s1, 8(s0) | s1 = *((s0 + 2));
0x0000ace0 bal 0x11c00 | sym_focusd_assistant_get_type ();
0x0000ace4 addu s1, s1, s6 | s1 += s6;
0x0000ace8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000acec lw a0, (s1) | a0 = *(s1);
0x0000acf0 move fp, v0 | fp = v0;
0x0000acf4 lw t9, -0x7f4c(gp) | t9 = sym.focusd_measure_get_type;
0x0000acf8 sw a0, 0x3c(sp) | *(var_3ch) = a0;
0x0000acfc bal 0x1c170 | sym_focusd_measure_get_type ();
0x0000ad00 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ad04 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x0000ad08 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000ad0c move a1, v0 | a1 = v0;
0x0000ad10 jalr t9 | t9 ();
0x0000ad14 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x0000ad18 lw v1, 8(s1) | v1 = *((s1 + 2));
0x0000ad1c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ad20 sw s4, 0x14(sp) | *(var_14h) = s4;
0x0000ad24 sw v1, 0x18(sp) | *(var_18h) = v1;
0x0000ad28 lw v1, 0x18(s1) | v1 = *((s1 + 6));
0x0000ad2c lw t9, -0x78ec(gp) | t9 = sym.imp.g_object_new;
0x0000ad30 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0000ad34 move a3, s3 | a3 = s3;
0x0000ad38 move a2, v0 | a2 = v0;
0x0000ad3c move a1, s2 | a1 = s2;
0x0000ad40 move a0, fp | a0 = fp;
0x0000ad44 jalr t9 | t9 ();
0x0000ad48 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ad4c sw v0, 0x14(s1) | *((s1 + 5)) = v0;
0x0000ad50 bnez v0, 0xacc4 |
| }
0x0000ad54 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000ad58 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000ad5c lw a3, (s5) | a3 = *(s5);
0x0000ad60 addiu a2, zero, 0x36 | a2 = 0x36;
0x0000ad64 addiu a1, zero, 1 | a1 = 1;
| /* str._4_focus_assistant_initialization_failed._Terminating_n */
0x0000ad68 addiu a0, a0, -0x69f4 | a0 += -0x69f4;
0x0000ad6c jalr t9 | t9 ();
0x0000ad70 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ad74 addiu v0, zero, 1 | v0 = 1;
0x0000ad78 b 0xa660 | goto label_18;
| label_90:
0x0000ad7c lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0000ad80 addiu a0, zero, 4 | a0 = 4;
0x0000ad84 bal 0x17e38 | sym_focusd_feature_enabled ();
0x0000ad88 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000ad8c beqz v0, 0xa704 | goto label_20;
| }
0x0000ad90 lw v1, 0x68(sp) | v1 = *(var_68h);
0x0000ad94 lw s3, -0x7fd8(gp) | s3 = *(gp);
| if (v1 == 0) {
0x0000ad98 beqz v1, 0xa704 | goto label_20;
| }
0x0000ad9c lw s2, -0x7fd8(gp) | s2 = *(gp);
0x0000ada0 move s6, zero | s6 = 0;
0x0000ada4 move s4, zero | s4 = 0;
| /* str._3_Unable_to_set_zoom_peer_on_focus_object._n */
0x0000ada8 addiu s3, s3, -0x6b28 | s3 += -0x6b28;
| /* str._3_Unable_to_set_focus_peer_on_zoom_object._n */
0x0000adac addiu s2, s2, -0x6b58 | s2 += -0x6b58;
0x0000adb0 b 0xae2c | goto label_113;
| label_23:
0x0000adb4 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000adb8 lw s7, 8(s1) | s7 = *((s1 + 2));
0x0000adbc bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000adc0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000adc4 move a0, s7 | a0 = s7;
0x0000adc8 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000adcc move a1, v0 | a1 = v0;
0x0000add0 jalr t9 | t9 ();
0x0000add4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000add8 lw s7, 0x10(s1) | s7 = *((s1 + 4));
0x0000addc lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000ade0 move s1, v0 | s1 = v0;
0x0000ade4 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000ade8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000adec move a1, v0 | a1 = v0;
0x0000adf0 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000adf4 move a0, s7 | a0 = s7;
0x0000adf8 jalr t9 | t9 ();
0x0000adfc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ae00 move a1, v0 | a1 = v0;
0x0000ae04 lw t9, -0x7dfc(gp) | t9 = sym.focusd_optics_motorized_set_peer;
0x0000ae08 move a0, s1 | a0 = s1;
0x0000ae0c bal 0x26e0c | sym_focusd_optics_motorized_set_peer ();
0x0000ae10 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000ae14 beqz v0, 0xb480 | goto label_114;
| }
0x0000ae18 lw v1, 0x68(sp) | v1 = *(var_68h);
| label_22:
0x0000ae1c addiu s4, s4, 1 | s4++;
| label_21:
0x0000ae20 sltu v0, s4, v1 | v0 = (s4 < v1) ? 1 : 0;
0x0000ae24 addiu s6, s6, 0x1c | s6 += 0x1c;
| if (v0 == 0) {
0x0000ae28 beqz v0, 0xa704 | goto label_20;
| }
| label_113:
0x0000ae2c lw s1, 8(s0) | s1 = *((s0 + 2));
0x0000ae30 addu s1, s1, s6 | s1 += s6;
0x0000ae34 lw v0, 8(s1) | v0 = *((s1 + 2));
| if (v0 == 0) {
0x0000ae38 beql v0, zero, 0xae20 | goto label_21;
| }
0x0000ae3c addiu s4, s4, 1 | s4++;
0x0000ae40 lw s7, 0x10(s1) | s7 = *((s1 + 4));
0x0000ae44 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
| if (s7 == 0) {
0x0000ae48 beqz s7, 0xae1c | goto label_22;
| }
0x0000ae4c bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000ae50 nop |
0x0000ae54 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ae58 move a0, s7 | a0 = s7;
0x0000ae5c lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000ae60 move a1, v0 | a1 = v0;
0x0000ae64 jalr t9 | t9 ();
0x0000ae68 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ae6c lw fp, 8(s1) | fp = *((s1 + 2));
0x0000ae70 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000ae74 move s7, v0 | s7 = v0;
0x0000ae78 bal 0x24344 | sym_focusd_optics_motorized_get_type ();
0x0000ae7c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ae80 move a1, v0 | a1 = v0;
0x0000ae84 lw t9, -0x7a8c(gp) | t9 = sym.imp.g_type_check_instance_cast;
0x0000ae88 move a0, fp | a0 = fp;
0x0000ae8c jalr t9 | t9 ();
0x0000ae90 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000ae94 move a1, v0 | a1 = v0;
0x0000ae98 lw t9, -0x7dfc(gp) | t9 = sym.focusd_optics_motorized_set_peer;
0x0000ae9c move a0, s7 | a0 = s7;
0x0000aea0 bal 0x26e0c | sym_focusd_optics_motorized_set_peer ();
0x0000aea4 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000aea8 bnez v0, 0xadb4 | goto label_23;
| }
0x0000aeac lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000aeb0 lw a3, (s5) | a3 = *(s5);
0x0000aeb4 addiu a2, zero, 0x2c | a2 = 0x2c;
0x0000aeb8 addiu a1, zero, 1 | a1 = 1;
0x0000aebc move a0, s2 | a0 = s2;
0x0000aec0 jalr t9 | t9 ();
0x0000aec4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000aec8 b 0xadb4 | goto label_23;
| label_83:
0x0000aecc lw t9, -0x7a98(gp) | t9 = sym.imp.bootblock_get;
| /* str.OPTICS */
| label_84:
0x0000aed0 addiu a0, a0, -0x71ec | a0 += -0x71ec;
0x0000aed4 jalr t9 | t9 ();
0x0000aed8 move s1, v0 | s1 = v0;
0x0000aedc lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000aee0 beqz v0, 0xb4a4 | goto label_115;
| }
0x0000aee4 lw v0, 0x28(s0) | v0 = *((s0 + 10));
| if (v0 == 0) {
0x0000aee8 beql v0, zero, 0xb534 | goto label_116;
| }
0x0000aeec lw a0, -0x7fd8(gp) | a0 = *(gp);
| label_37:
0x0000aef0 lw v0, 0x2c(s0) | v0 = *((s0 + 11));
0x0000aef4 lw s5, -0x7990(gp) | s5 = *((gp - 7780));
| if (v0 != 0) {
0x0000aef8 bnez v0, 0xa404 | goto label_24;
| }
0x0000aefc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000af00 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0000af04 move a1, s1 | a1 = s1;
| /* str.zoom__s */
0x0000af08 addiu a0, a0, -0x71f4 | a0 += -0x71f4;
0x0000af0c jalr t9 | t9 ();
0x0000af10 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000af14 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x0000af18 b 0xa400 | goto label_25;
| label_29:
0x0000af1c lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000af20 move a0, s1 | a0 = s1;
0x0000af24 jalr t9 | t9 ();
0x0000af28 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000af2c lw a3, (s5) | a3 = *(s5);
0x0000af30 addiu a2, zero, 0x26 | a2 = 0x26;
0x0000af34 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000af38 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000af3c addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_load_settings_overrides._n */
0x0000af40 addiu a0, a0, -0x6d9c | a0 += -0x6d9c;
0x0000af44 jalr t9 | t9 ();
0x0000af48 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000af4c addiu v0, zero, 1 | v0 = 1;
0x0000af50 b 0xa660 | goto label_18;
| label_101:
0x0000af54 lw t9, -0x7868(gp) | t9 = sym.imp.g_strv_contains;
0x0000af58 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x0000af5c lw a1, (v0) | a1 = *(v0);
0x0000af60 jalr t9 | t9 ();
0x0000af64 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000af68 bnez v0, 0xa8a0 | goto label_26;
| }
0x0000af6c lw v1, 0x90(sp) | v1 = *(var_90h);
0x0000af70 lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x0000af74 lw s2, 0x7c(sp) | s2 = *(var_7ch);
0x0000af78 sll v0, a1, 2 | v0 = a1 << 2;
0x0000af7c lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
0x0000af80 lw a0, (v1) | a0 = *(v1);
0x0000af84 addu s2, s2, v0 | s2 += v0;
0x0000af88 addiu s3, a1, 1 | s3 = a1 + 1;
0x0000af8c jalr t9 | t9 ();
0x0000af90 sw v0, (s2) | *(s2) = v0;
0x0000af94 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x0000af98 b 0xa8a0 | goto label_26;
| label_106:
0x0000af9c sw zero, 0x40(sp) | *(var_40h) = 0;
0x0000afa0 b 0xa8a0 | goto label_26;
| if (s2 == 0) {
| label_98:
0x0000afa4 beql s2, zero, 0xa8a0 | goto label_26;
| }
0x0000afa8 sw zero, 0x40(sp) | *(var_40h) = 0;
| do {
0x0000afac lw v0, 0x80(sp) | v0 = *(var_80h);
0x0000afb0 lw a0, 0x68(sp) | a0 = *(var_68h);
0x0000afb4 sw v0, 0x6c(sp) | *(var_6ch) = v0;
0x0000afb8 lw v0, 0x84(sp) | v0 = *(var_84h);
0x0000afbc lw t9, -0x78e0(gp) | t9 = sym.imp.g_malloc0_n;
0x0000afc0 sw v0, 0x70(sp) | *(var_70h) = v0;
0x0000afc4 lw v0, 0x88(sp) | v0 = *(var_88h);
0x0000afc8 addiu a1, zero, 4 | a1 = 4;
0x0000afcc sw v0, 0x74(sp) | *(var_74h) = v0;
0x0000afd0 lw v0, 0x8c(sp) | v0 = *(var_8ch);
0x0000afd4 addiu a0, a0, 1 | a0++;
0x0000afd8 sw v0, 0x78(sp) | *(var_78h) = v0;
0x0000afdc lw v0, 0x90(sp) | v0 = *(var_90h);
0x0000afe0 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x0000afe4 jalr t9 | t9 ();
0x0000afe8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000afec lw v1, 0x90(sp) | v1 = *(var_90h);
0x0000aff0 lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x0000aff4 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
0x0000aff8 sll s2, a1, 2 | s2 = a1 << 2;
0x0000affc lw a0, (v1) | a0 = *(v1);
0x0000b000 addu s2, v0, s2 | s2 = v0 + s2;
0x0000b004 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x0000b008 addiu s3, a1, 1 | s3 = a1 + 1;
0x0000b00c jalr t9 | t9 ();
0x0000b010 sw v0, (s2) | *(s2) = v0;
0x0000b014 addiu v0, zero, 1 | v0 = 1;
0x0000b018 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x0000b01c sw v0, 0x40(sp) | *(var_40h) = v0;
0x0000b020 b 0xa8a0 | goto label_26;
| label_105:
0x0000b024 lw t9, 0x58(sp) | t9 = *(var_58h);
0x0000b028 move a1, fp | a1 = fp;
0x0000b02c move a0, s6 | a0 = s6;
0x0000b030 jalr t9 | t9 ();
0x0000b034 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000b038 beqz v0, 0xb718 | goto label_117;
| }
0x0000b03c addiu s2, zero, 1 | s2 = 1;
| if (s3 != 0) {
0x0000b040 beqz s3, 0xb064 |
0x0000b044 lw t9, -0x7fb8(gp) | t9 = sym.focusd_optics_motorized_get_type;
0x0000b048 b 0xa7d8 | goto label_27;
| label_97:
0x0000b04c lw t9, 0x58(sp) | t9 = *(var_58h);
0x0000b050 move a1, fp | a1 = fp;
0x0000b054 move a0, s6 | a0 = s6;
0x0000b058 jalr t9 | t9 ();
0x0000b05c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000b060 beqz v0, 0xb718 | goto label_117;
| }
| }
0x0000b064 addiu v0, zero, 1 | v0 = 1;
0x0000b068 beqz s1, 0xafac |
| } while (s1 == 0);
0x0000b06c addiu s2, zero, 1 | s2 = 1;
0x0000b070 b 0xa854 | goto label_11;
| label_48:
0x0000b074 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b078 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000b07c lw a0, (s5) | a0 = *(s5);
| /* esilref: 'focus' */
0x0000b080 addiu a3, s1, -0x2a10 | a3 = s1 + -0x2a10;
| /* str.Couldnt_get_uid_for_user___s_._n */
0x0000b084 addiu a2, a2, -0x7124 | a2 += -0x7124;
0x0000b088 addiu a1, zero, 1 | a1 = 1;
0x0000b08c jalr t9 | t9 ();
0x0000b090 lw gp, 0x30(sp) | gp = *(var_30h);
| do {
| label_28:
0x0000b094 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b098 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b09c lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_setting_uid_and_gid_of_the_process._n */
0x0000b0a0 addiu a0, a0, -0x7048 | a0 += -0x7048;
0x0000b0a4 addiu a2, zero, 0x2e | a2 = 0x2e;
0x0000b0a8 b 0xb3b4 | goto label_39;
| label_50:
0x0000b0ac lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b0b0 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000b0b4 lw a3, 8(s4) | a3 = *((s4 + 2));
0x0000b0b8 lw a0, (s5) | a0 = *(s5);
| /* str._3_Could_not_set_gid_to__d:__m_n */
0x0000b0bc addiu a2, a2, -0x70d8 | a2 += -0x70d8;
0x0000b0c0 addiu a1, zero, 1 | a1 = 1;
0x0000b0c4 jalr t9 | t9 ();
0x0000b0c8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b0cc b 0xb094 |
| } while (1);
| label_49:
0x0000b0d0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b0d4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000b0d8 lw a0, (s5) | a0 = *(s5);
| /* esilref: 'focus' */
0x0000b0dc addiu a3, s1, -0x2a10 | a3 = s1 + -0x2a10;
| /* str._3_Couldnt_get_gid_for_group__s._n */
0x0000b0e0 addiu a2, a2, -0x7100 | a2 += -0x7100;
0x0000b0e4 addiu a1, zero, 1 | a1 = 1;
0x0000b0e8 jalr t9 | t9 ();
0x0000b0ec lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b0f0 b 0xb094 | goto label_28;
| label_68:
0x0000b0f4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0000b0f8 lw t9, -0x7fc8(gp) | t9 = sym.settings_get_string;
0x0000b0fc lw a0, 0x28(s0) | a0 = *((s0 + 10));
| /* str.override_configuration */
0x0000b100 addiu a1, a1, -0x6db4 | a1 += -0x6db4;
0x0000b104 jalr t9 | t9 ();
0x0000b108 move s1, v0 | s1 = v0;
0x0000b10c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000b110 beqz v0, 0xb130 | goto label_118;
| }
0x0000b114 lw t9, -0x7fd0(gp) | t9 = *(gp);
0x0000b118 lw a1, 0x28(s0) | a1 = *((s0 + 10));
0x0000b11c addiu t9, t9, -0x7468 | t9 += -0x7468;
0x0000b120 move a0, v0 | a0 = v0;
0x0000b124 bal 0x8b98 | fcn_00008b98 ();
0x0000b128 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000b12c beqz v0, 0xaf1c | goto label_29;
| }
| label_118:
0x0000b130 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000b134 move a0, s1 | a0 = s1;
0x0000b138 jalr t9 | t9 ();
0x0000b13c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b140 b 0x9f9c | goto label_30;
| label_55:
0x0000b144 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b148 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b14c lw a3, (s5) | a3 = *(s5);
0x0000b150 addiu a2, zero, 0x31 | a2 = 0x31;
0x0000b154 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Failed_to_init_temperature_ctrld_D_Bus_client_n */
0x0000b158 addiu a0, a0, -0x7018 | a0 += -0x7018;
0x0000b15c jalr t9 | t9 ();
0x0000b160 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b164 addiu v0, zero, 1 | v0 = 1;
0x0000b168 b 0xa660 | goto label_18;
| label_51:
0x0000b16c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b170 lw v0, 8(s4) | v0 = *((s4 + 2));
0x0000b174 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000b178 lw a3, (s3) | a3 = *(s3);
0x0000b17c lw a0, (s5) | a0 = *(s5);
| /* str._3_Could_not_run_initgroups___with_username:__s__gid:__d:__m_n */
0x0000b180 addiu a2, a2, -0x70b8 | a2 += -0x70b8;
0x0000b184 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b188 addiu a1, zero, 1 | a1 = 1;
0x0000b18c jalr t9 | t9 ();
0x0000b190 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b194 b 0xb094 | goto label_28;
| label_100:
0x0000b198 lw a0, -0x7fd8(gp) | a0 = *(gp);
| label_99:
0x0000b19c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b1a0 lw a3, (s5) | a3 = *(s5);
0x0000b1a4 addiu a2, zero, 0x3d | a2 = 0x3d;
0x0000b1a8 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Inconsistent_focus_optics_temperature_limit_configuration_n */
0x0000b1ac addiu a0, a0, -0x6a9c | a0 += -0x6a9c;
0x0000b1b0 jalr t9 | t9 ();
0x0000b1b4 lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0000b1b8 addiu a0, sp, 0x6c | a0 = sp + 0x6c;
0x0000b1bc jalr t9 | t9 ();
0x0000b1c0 lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0000b1c4 move a0, s6 | a0 = s6;
0x0000b1c8 jalr t9 | t9 ();
0x0000b1cc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b1d0 addiu v0, zero, 1 | v0 = 1;
0x0000b1d4 b 0xa660 | goto label_18;
| label_61:
0x0000b1d8 lw s3, -0x7fd8(gp) | s3 = *(gp);
| /* str.i_CS */
0x0000b1dc addiu s3, s3, -0x7470 | s3 += -0x7470;
0x0000b1e0 b 0x9e68 | goto label_31;
| label_63:
0x0000b1e4 lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.i_CS */
0x0000b1e8 addiu v0, v0, -0x7470 | v0 += -0x7470;
0x0000b1ec b 0x9ea0 | goto label_32;
| label_112:
0x0000b1f0 lw t9, -0x7df8(gp) | t9 = sym.api_init;
0x0000b1f4 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x0000b1f8 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0000b1fc lw a2, 0x50(sp) | a2 = *(var_50h);
0x0000b200 bal 0xeb8c | sym_api_init ();
0x0000b204 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 == 0) {
0x0000b208 beqz v0, 0xb504 | goto label_119;
| }
0x0000b20c lw t9, -0x7df4(gp) | t9 = sym.focusd_dbus_init;
0x0000b210 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x0000b214 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0000b218 bal 0x159a4 | sym_focusd_dbus_init ();
0x0000b21c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b220 sw v0, 4(s0) | *((s0 + 1)) = v0;
| if (v0 == 0) {
0x0000b224 beqz v0, 0xb408 | goto label_120;
| }
0x0000b228 lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000b22c lw a1, -0x7fd0(gp) | a1 = *(gp);
| if (v0 == 0) {
0x0000b230 beqz v0, 0xb29c | goto label_121;
| }
0x0000b234 lw s1, -0x7fd8(gp) | s1 = *(gp);
0x0000b238 move s2, zero | s2 = 0;
0x0000b23c move s3, zero | s3 = 0;
| /* str.dbus_server */
0x0000b240 addiu s1, s1, -0x695c | s1 += -0x695c;
| do {
0x0000b244 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000b248 addu v0, v0, s2 | v0 += s2;
0x0000b24c lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x0000b250 lw t9, -0x79ec(gp) | t9 = sym.imp.g_object_set;
| if (a0 != 0) {
0x0000b254 beqz a0, 0xb278 |
0x0000b258 lw a2, 4(s0) | a2 = *((s0 + 1));
0x0000b25c move a3, zero | a3 = 0;
0x0000b260 move a1, s1 | a1 = s1;
0x0000b264 jalr t9 | t9 ();
0x0000b268 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0000b26c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b270 addu v0, v0, s2 | v0 += s2;
0x0000b274 lw a0, 0x14(v0) | a0 = *((v0 + 5));
| }
0x0000b278 lw t9, -0x7df0(gp) | t9 = sym.assistant_init;
0x0000b27c addiu s3, s3, 1 | s3++;
0x0000b280 bal 0xf360 | sym_assistant_init ();
0x0000b284 lw v0, 0x68(sp) | v0 = *(var_68h);
0x0000b288 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b28c sltu v0, s3, v0 | v0 = (s3 < v0) ? 1 : 0;
0x0000b290 addiu s2, s2, 0x1c | s2 += 0x1c;
0x0000b294 bnez v0, 0xb244 |
| } while (v0 != 0);
0x0000b298 lw a1, -0x7fd0(gp) | a1 = *(gp);
| label_121:
0x0000b29c lw t9, -0x790c(gp) | t9 = sym.imp.g_timeout_add_seconds;
0x0000b2a0 move a2, s0 | a2 = s0;
0x0000b2a4 addiu a1, a1, -0x74a8 | a1 += -0x74a8;
0x0000b2a8 addiu a0, zero, 1 | a0 = 1;
0x0000b2ac jalr t9 | t9 ();
0x0000b2b0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b2b4 move a2, s0 | a2 = s0;
0x0000b2b8 addiu a0, zero, 1 | a0 = 1;
0x0000b2bc lw a1, -0x7fd0(gp) | a1 = *(gp);
0x0000b2c0 lw t9, -0x790c(gp) | t9 = sym.imp.g_timeout_add_seconds;
0x0000b2c4 addiu a1, a1, -0x6c20 | a1 += -0x6c20;
0x0000b2c8 jalr t9 | t9 ();
0x0000b2cc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b2d0 lw t9, -0x7bf8(gp) | t9 = sym.imp.command_source_register_mainloop_thread;
0x0000b2d4 jalr t9 | t9 ();
0x0000b2d8 nop |
0x0000b2dc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b2e0 lw t9, -0x7bb0(gp) | t9 = sym.imp.g_main_loop_run;
0x0000b2e4 lw a0, (s0) | a0 = *(s0);
0x0000b2e8 jalr t9 | t9 ();
0x0000b2ec lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x0000b2f0 lw gp, 0x30(sp) | gp = *(var_30h);
| if (a0 != 0) {
0x0000b2f4 beqz a0, 0xb308 |
0x0000b2f8 lw t9, -0x7c00(gp) | t9 = sym.imp.g_thread_join;
0x0000b2fc jalr t9 | t9 ();
0x0000b300 nop |
0x0000b304 lw gp, 0x30(sp) | gp = *(var_30h);
| }
0x0000b308 lw t9, -0x7b6c(gp) | t9 = sym.imp.g_mutex_clear;
0x0000b30c lw a0, 0x54(sp) | a0 = *(var_54h);
0x0000b310 jalr t9 | t9 ();
0x0000b314 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b318 lw t9, -0x7b04(gp) | t9 = sym.imp.g_main_loop_unref;
0x0000b31c lw a0, (s0) | a0 = *(s0);
0x0000b320 jalr t9 | t9 ();
0x0000b324 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b328 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000b32c lw a0, 8(s0) | a0 = *((s0 + 2));
0x0000b330 jalr t9 | t9 ();
0x0000b334 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b338 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0000b33c move a0, s0 | a0 = s0;
0x0000b340 jalr t9 | t9 ();
0x0000b344 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b348 lw a3, (s5) | a3 = *(s5);
0x0000b34c addiu a2, zero, 0xf | a2 = 0xf;
0x0000b350 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b354 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b358 addiu a1, zero, 1 | a1 = 1;
| /* str._6_Terminating_n */
0x0000b35c addiu a0, a0, -0x6950 | a0 += -0x6950;
0x0000b360 jalr t9 | t9 ();
0x0000b364 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b368 move v0, zero | v0 = 0;
0x0000b36c b 0xa660 | goto label_18;
| label_65:
0x0000b370 lw t9, -0x7e4c(gp) | t9 = sym.focusd_i_cs_previous_mode;
0x0000b374 move a0, s1 | a0 = s1;
0x0000b378 bal 0x18d84 | sym_focusd_i_cs_previous_mode ();
0x0000b37c lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != s3) {
0x0000b380 bne v0, s3, 0xb3cc | goto label_122;
| }
0x0000b384 lw t9, -0x7e44(gp) | t9 = sym.focusd_i_cs_store_controller_data;
0x0000b388 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x0000b38c sw zero, 0x14(s0) | *((s0 + 5)) = 0;
0x0000b390 move a0, s1 | a0 = s1;
0x0000b394 bal 0x18dd0 | sym_focusd_i_cs_store_controller_data ();
0x0000b398 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000b39c bnez v0, 0xaa18 | goto label_33;
| }
| label_67:
0x0000b3a0 lw a0, -0x7fd8(gp) | a0 = *(gp);
| label_34:
0x0000b3a4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b3a8 lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_store_i_CS_motor_controller_data_n */
0x0000b3ac addiu a0, a0, -0x6ea4 | a0 += -0x6ea4;
0x0000b3b0 addiu a2, zero, 0x2e | a2 = 0x2e;
| label_39:
0x0000b3b4 addiu a1, zero, 1 | a1 = 1;
0x0000b3b8 jalr t9 | t9 ();
0x0000b3bc lw gp, 0x30(sp) | gp = *(var_30h);
| label_40:
0x0000b3c0 lw t9, -0x7bd4(gp) | t9 = sym.imp.exit;
| label_88:
0x0000b3c4 addiu a0, zero, 1 | a0 = 1;
0x0000b3c8 jalr t9 | t9 ();
| label_122:
0x0000b3cc lw t9, -0x7e4c(gp) | t9 = sym.focusd_i_cs_previous_mode;
0x0000b3d0 move a0, s1 | a0 = s1;
0x0000b3d4 bal 0x18d84 | sym_focusd_i_cs_previous_mode ();
0x0000b3d8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b3dc xori v0, v0, 2 | v0 ^= 2;
0x0000b3e0 sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x0000b3e4 lw t9, -0x7e44(gp) | t9 = sym.focusd_i_cs_store_controller_data;
0x0000b3e8 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x0000b3ec sw s3, 0x14(s0) | *((s0 + 5)) = s3;
0x0000b3f0 move a0, s1 | a0 = s1;
0x0000b3f4 bal 0x18dd0 | sym_focusd_i_cs_store_controller_data ();
0x0000b3f8 lw gp, 0x30(sp) | gp = *(var_30h);
| if (v0 != 0) {
0x0000b3fc bnez v0, 0x9f14 | goto label_14;
| }
0x0000b400 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b404 b 0xb3a4 | goto label_34;
| label_120:
0x0000b408 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b40c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b410 lw a3, (s5) | a3 = *(s5);
0x0000b414 addiu a2, zero, 0x33 | a2 = 0x33;
0x0000b418 addiu a1, zero, 1 | a1 = 1;
| /* str._4_Focusd_D_Bus_initialization_failed._Terminating_n */
0x0000b41c addiu a0, a0, -0x6990 | a0 += -0x6990;
0x0000b420 jalr t9 | t9 ();
0x0000b424 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b428 addiu v0, zero, 1 | v0 = 1;
0x0000b42c b 0xa660 | goto label_18;
| label_52:
0x0000b430 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b434 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000b438 lw a3, 8(s3) | a3 = *((s3 + 2));
0x0000b43c lw a0, (s5) | a0 = *(s5);
| /* str._3_Could_not_set_uid_to__d:__m_n */
0x0000b440 addiu a2, a2, -0x7078 | a2 += -0x7078;
0x0000b444 addiu a1, zero, 1 | a1 = 1;
0x0000b448 jalr t9 | t9 ();
0x0000b44c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b450 b 0xb094 | goto label_28;
| label_87:
0x0000b454 lw s5, -0x7990(gp) | s5 = *((gp - 7780));
0x0000b458 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b45c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b460 lw a3, (s5) | a3 = *(s5);
0x0000b464 addiu a2, zero, 0x49 | a2 = 0x49;
0x0000b468 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Configuration_sets_production_test_mode_in_non_production_test_build._n */
0x0000b46c addiu a0, a0, -0x7268 | a0 += -0x7268;
0x0000b470 jalr t9 | t9 ();
0x0000b474 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b478 sw zero, 0x64(sp) | *(var_64h) = 0;
0x0000b47c b 0x9b44 | goto label_4;
| label_114:
0x0000b480 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b484 lw a3, (s5) | a3 = *(s5);
0x0000b488 addiu a2, zero, 0x2c | a2 = 0x2c;
0x0000b48c addiu a1, zero, 1 | a1 = 1;
0x0000b490 move a0, s3 | a0 = s3;
0x0000b494 jalr t9 | t9 ();
0x0000b498 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b49c lw v1, 0x68(sp) | v1 = *(var_68h);
0x0000b4a0 b 0xae1c | goto label_22;
| label_115:
0x0000b4a4 lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0000b4a8 lw s5, -0x7990(gp) | s5 = *((gp - 7780));
0x0000b4ac jalr t9 | t9 ();
0x0000b4b0 nop |
0x0000b4b4 lw v1, (v0) | v1 = *(v0);
0x0000b4b8 addiu v0, zero, 2 | v0 = 2;
0x0000b4bc lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b4c0 lw a0, (s5) | a0 = *(s5);
| if (v1 != v0) {
0x0000b4c4 bne v1, v0, 0xa9b4 | goto label_35;
| }
0x0000b4c8 move a3, a0 | a3 = a0;
0x0000b4cc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b4d0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b4d4 addiu a2, zero, 0x30 | a2 = 0x30;
0x0000b4d8 addiu a1, zero, 1 | a1 = 1;
| /* str._4_No_optics_related_bootblock_parameters_found_n */
0x0000b4dc addiu a0, a0, -0x71e4 | a0 += -0x71e4;
0x0000b4e0 jalr t9 | t9 ();
0x0000b4e4 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b4e8 b 0xa404 | goto label_24;
| label_64:
0x0000b4ec lw v0, -0x7fd8(gp) | v0 = *(gp);
| /* str.manual */
0x0000b4f0 addiu v0, v0, -0x7468 | v0 += -0x7468;
0x0000b4f4 b 0x9ea0 | goto label_32;
| label_62:
0x0000b4f8 lw s3, -0x7fd8(gp) | s3 = *(gp);
| /* str.manual */
0x0000b4fc addiu s3, s3, -0x7468 | s3 += -0x7468;
0x0000b500 b 0x9e68 | goto label_31;
| label_119:
0x0000b504 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b508 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b50c lw a3, (s5) | a3 = *(s5);
0x0000b510 addiu a2, zero, 0x2a | a2 = 0x2a;
0x0000b514 addiu a1, zero, 1 | a1 = 1;
| /* str._4_API_initialization_failed._Terminating_n */
0x0000b518 addiu a0, a0, -0x69bc | a0 += -0x69bc;
0x0000b51c jalr t9 | t9 ();
0x0000b520 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b524 addiu v0, zero, 1 | v0 = 1;
0x0000b528 b 0xa660 | goto label_18;
| label_109:
0x0000b52c addiu s1, sp, 0x6c | s1 = sp + 0x6c;
0x0000b530 b 0xac34 | goto label_36;
| label_116:
0x0000b534 lw t9, -0x7918(gp) | t9 = sym.imp.g_strdup_printf;
0x0000b538 move a1, s1 | a1 = s1;
| /* str.focus__s */
0x0000b53c addiu a0, a0, -0x720c | a0 += -0x720c;
0x0000b540 jalr t9 | t9 ();
0x0000b544 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b548 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
0x0000b54c b 0xaef0 | goto label_37;
| label_110:
0x0000b550 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b554 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0000b558 lw a0, (s5) | a0 = *(s5);
| /* str._4_temperature_limit_invalid_min:__d_max__d_n */
0x0000b55c addiu a2, a2, -0x6a5c | a2 += -0x6a5c;
0x0000b560 addiu a1, zero, 1 | a1 = 1;
0x0000b564 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b568 jalr t9 | t9 ();
0x0000b56c lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0000b570 addiu a0, sp, 0x6c | a0 = sp + 0x6c;
0x0000b574 jalr t9 | t9 ();
0x0000b578 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b57c addiu v0, zero, 1 | v0 = 1;
0x0000b580 b 0xa660 | goto label_18;
| label_111:
0x0000b584 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b588 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b58c lw a3, (s5) | a3 = *(s5);
0x0000b590 addiu a2, zero, 0x24 | a2 = 0x24;
0x0000b594 addiu a1, zero, 1 | a1 = 1;
| /* str._4_failed_to_set_temperature_limits_n */
0x0000b598 addiu a0, a0, -0x6a2c | a0 += -0x6a2c;
0x0000b59c jalr t9 | t9 ();
0x0000b5a0 lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0000b5a4 b 0xac38 | goto label_38;
| label_78:
0x0000b5a8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b5ac lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b5b0 lw a3, (s5) | a3 = *(s5);
| /* str._3_Could_not_set_up_zoom_motor._n */
0x0000b5b4 addiu a0, a0, -0x6bd0 | a0 += -0x6bd0;
0x0000b5b8 addiu a2, zero, 0x20 | a2 = 0x20;
0x0000b5bc b 0xb3b4 | goto label_39;
| label_80:
0x0000b5c0 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b5c4 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b5c8 lw a3, (s5) | a3 = *(s5);
| /* str._3_Could_not_set_up_zoom_optics._n */
0x0000b5cc addiu a0, a0, -0x6bac | a0 += -0x6bac;
0x0000b5d0 addiu a2, zero, 0x21 | a2 = 0x21;
0x0000b5d4 b 0xb3b4 | goto label_39;
| label_95:
0x0000b5d8 lw v0, -0x7fd0(gp) | v0 = *(gp);
0x0000b5dc addiu s1, sp, 0x6c | s1 = sp + 0x6c;
0x0000b5e0 addiu v0, v0, -0x6710 | v0 += -0x6710;
0x0000b5e4 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x0000b5e8 b 0xac34 | goto label_36;
| label_73:
0x0000b5ec lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b5f0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b5f4 lw a3, (s5) | a3 = *(s5);
| /* str._3_Could_not_set_up_focus_motor._n */
0x0000b5f8 addiu a0, a0, -0x6cc8 | a0 += -0x6cc8;
0x0000b5fc addiu a2, zero, 0x21 | a2 = 0x21;
0x0000b600 b 0xb3b4 | goto label_39;
| label_75:
0x0000b604 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b608 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b60c lw a3, (s5) | a3 = *(s5);
| /* str._3_Could_not_set_up_focus_optics._n */
0x0000b610 addiu a0, a0, -0x6ca4 | a0 += -0x6ca4;
0x0000b614 addiu a2, zero, 0x22 | a2 = 0x22;
0x0000b618 b 0xb3b4 | goto label_39;
| label_93:
0x0000b61c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b620 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b624 lw a3, (s5) | a3 = *(s5);
| /* str._3_Could_not_set_up_focus_optics_configuration._n */
0x0000b628 addiu a0, a0, -0x6af8 | a0 += -0x6af8;
0x0000b62c addiu a2, zero, 0x30 | a2 = 0x30;
0x0000b630 b 0xb3b4 | goto label_39;
| label_57:
0x0000b634 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b638 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b63c lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_get_motor_controller_type_n */
0x0000b640 addiu a0, a0, -0x6f80 | a0 += -0x6f80;
0x0000b644 addiu a2, zero, 0x27 | a2 = 0x27;
0x0000b648 b 0xb3b4 | goto label_39;
| label_58:
0x0000b64c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b650 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b654 lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_get_focus_measure_type_n */
0x0000b658 addiu a0, a0, -0x6f44 | a0 += -0x6f44;
0x0000b65c addiu a2, zero, 0x24 | a2 = 0x24;
0x0000b660 b 0xb3b4 | goto label_39;
| label_47:
0x0000b664 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b668 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b66c lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_create_the_transfer_socket._n */
0x0000b670 addiu a0, a0, -0x7150 | a0 += -0x7150;
0x0000b674 addiu a2, zero, 0x29 | a2 = 0x29;
0x0000b678 b 0xb3b4 | goto label_39;
| label_41:
0x0000b67c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0000b680 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b684 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b688 lw a3, (v0) | a3 = *(v0);
| /* str._3_bad_command_line_n */
0x0000b68c addiu a0, a0, -0x7450 | a0 += -0x7450;
0x0000b690 addiu a2, zero, 0x14 | a2 = 0x14;
0x0000b694 b 0xb3b4 | goto label_39;
| label_44:
0x0000b698 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0000b69c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b6a0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b6a4 lw a3, (v0) | a3 = *(v0);
| /* str._4_At_least_one_optics_source_is_required._n */
0x0000b6a8 addiu a0, a0, -0x73e4 | a0 += -0x73e4;
0x0000b6ac addiu a2, zero, 0x2b | a2 = 0x2b;
0x0000b6b0 b 0xb3b4 | goto label_39;
| label_89:
0x0000b6b4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000b6b8 jalr t9 | t9 ();
0x0000b6bc nop |
| label_85:
0x0000b6c0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0000b6c4 lw v0, 0x80(sp) | v0 = *(var_80h);
0x0000b6c8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0000b6cc beqz v0, 0xb7d4 | goto label_123;
| }
0x0000b6d0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b6d4 lw a3, 8(v0) | a3 = *((v0 + 2));
0x0000b6d8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_get_system_D_Bus_connection:__s_n */
0x0000b6dc addiu a2, a2, -0x73a8 | a2 += -0x73a8;
| do {
0x0000b6e0 addiu a1, zero, 1 | a1 = 1;
0x0000b6e4 jalr t9 | t9 ();
0x0000b6e8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b6ec lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0000b6f0 move a0, s6 | a0 = s6;
0x0000b6f4 jalr t9 | t9 ();
0x0000b6f8 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b6fc b 0xb3c0 | goto label_40;
| label_66:
0x0000b700 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b704 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b708 lw a3, (s5) | a3 = *(s5);
| /* str._3_Unknown_i_CS_optics_mode_n */
0x0000b70c addiu a0, a0, -0x6ec4 | a0 += -0x6ec4;
0x0000b710 addiu a2, zero, 0x1c | a2 = 0x1c;
0x0000b714 b 0xb3b4 | goto label_39;
| label_117:
0x0000b718 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b71c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b720 lw a3, (s5) | a3 = *(s5);
| /* str._3_Could_not_merge_temperature_limits_n */
0x0000b724 addiu a0, a0, -0x6ac4 | a0 += -0x6ac4;
0x0000b728 addiu a2, zero, 0x26 | a2 = 0x26;
0x0000b72c b 0xb3b4 | goto label_39;
| label_86:
0x0000b730 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0000b734 lw v0, 0x80(sp) | v0 = *(var_80h);
0x0000b738 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0000b73c beqz v0, 0xb780 | goto label_124;
| }
0x0000b740 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0000b744 lw a3, 8(v0) | a3 = *((v0 + 2));
0x0000b748 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._3_Could_not_get_systemd_default_target:__s_n */
0x0000b74c addiu a2, a2, -0x72c4 | a2 += -0x72c4;
0x0000b750 b 0xb6e0 |
| } while (1);
| label_59:
0x0000b754 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b758 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b75c lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_initialize_i_CS_n */
0x0000b760 addiu a0, a0, -0x6f1c | a0 += -0x6f1c;
0x0000b764 addiu a2, zero, 0x1d | a2 = 0x1d;
0x0000b768 b 0xb3b4 | goto label_39;
| label_56:
0x0000b76c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b770 lw a3, (s5) | a3 = *(s5);
| /* str._3_i_CS_support_is_not_compatible_with_multiple_source_support._n */
0x0000b774 addiu a0, a0, -0x6fdc | a0 += -0x6fdc;
0x0000b778 addiu a2, zero, 0x40 | a2 = 0x40;
0x0000b77c b 0xb3b4 | goto label_39;
| label_124:
0x0000b780 move a3, a0 | a3 = a0;
0x0000b784 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b788 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b78c addiu a2, zero, 0x28 | a2 = 0x28;
0x0000b790 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_get_systemd_default_target_n */
0x0000b794 addiu a0, a0, -0x7294 | a0 += -0x7294;
0x0000b798 jalr t9 | t9 ();
0x0000b79c lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b7a0 b 0xb3c0 | goto label_40;
| label_108:
0x0000b7a4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b7a8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b7ac lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_load_focus_parameters_n */
0x0000b7b0 addiu a0, a0, -0x6d4c | a0 += -0x6d4c;
0x0000b7b4 addiu a2, zero, 0x23 | a2 = 0x23;
0x0000b7b8 b 0xb3b4 | goto label_39;
| label_107:
0x0000b7bc lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b7c0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b7c4 lw a3, (s5) | a3 = *(s5);
| /* str._3_Failed_to_create_i_CS_configuration_n */
0x0000b7c8 addiu a0, a0, -0x6e40 | a0 += -0x6e40;
0x0000b7cc addiu a2, zero, 0x27 | a2 = 0x27;
0x0000b7d0 b 0xb3b4 | goto label_39;
| label_123:
0x0000b7d4 move a3, a0 | a3 = a0;
0x0000b7d8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0000b7dc lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0000b7e0 addiu a2, zero, 0x29 | a2 = 0x29;
0x0000b7e4 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Could_not_get_system_D_Bus_connection_n */
0x0000b7e8 addiu a0, a0, -0x7378 | a0 += -0x7378;
0x0000b7ec jalr t9 | t9 ();
0x0000b7f0 lw gp, 0x30(sp) | gp = *(var_30h);
0x0000b7f4 b 0xb3c0 | goto label_40;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3bf18 */
| #include <stdint.h>
|
; (fcn) sym.settings_get_int64 () | void settings_get_int64 () {
0x0003bf18 lui gp, 3 |
0x0003bf1c addiu gp, gp, 0x2c68 |
0x0003bf20 addu gp, gp, t9 | gp += t9;
0x0003bf24 addiu sp, sp, -0x38 |
0x0003bf28 lw t9, -0x7edc(gp) | t9 = *(gp);
0x0003bf2c sw s1, 0x28(sp) | *(var_28h) = s1;
0x0003bf30 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0003bf34 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003bf38 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0003bf3c lw v0, (s1) | v0 = *(s1);
0x0003bf40 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0003bf44 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0003bf48 sw s3, 0x30(sp) | *(var_30h) = s3;
0x0003bf4c sw v0, 0x1c(sp) | *(var_1ch) = v0;
| /* fcn.0003b130 */
0x0003bf50 addiu t9, t9, -0x4ed0 | t9 += -0x4ed0;
0x0003bf54 move s2, a2 | s2 = a2;
0x0003bf58 bal 0x3b130 | fcn_0003b130 ();
0x0003bf5c move s0, v0 | s0 = v0;
0x0003bf60 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003bf64 beqz v0, 0x3bf74 | goto label_2;
| }
0x0003bf68 lb v0, (v0) | v0 = *(v0);
0x0003bf6c lw t9, -0x76ec(gp) | t9 = sym.imp.__errno_location;
0x0003bf70 bnez v0, 0x3bfb0 |
| while (a0 == 0) {
| label_2:
0x0003bf74 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| label_0:
0x0003bf78 move a0, s0 | a0 = s0;
0x0003bf7c jalr t9 | t9 ();
0x0003bf80 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003bf84 move v0, zero | v0 = 0;
| label_1:
0x0003bf88 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x0003bf8c lw v1, (s1) | v1 = *(s1);
0x0003bf90 lw ra, 0x34(sp) | ra = *(var_34h);
| if (a0 != v1) {
0x0003bf94 bne a0, v1, 0x3c050 | goto label_3;
| }
0x0003bf98 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0003bf9c lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0003bfa0 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0003bfa4 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0003bfa8 addiu sp, sp, 0x38 |
0x0003bfac jr ra | return v0;
0x0003bfb0 jalr t9 | t9 ();
0x0003bfb4 nop |
0x0003bfb8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003bfbc move a0, s0 | a0 = s0;
0x0003bfc0 sw zero, (v0) | *(v0) = 0;
0x0003bfc4 lw t9, -0x7768(gp) | t9 = sym.imp.g_ascii_strtoll;
0x0003bfc8 addiu a2, zero, 0xa | a2 = 0xa;
0x0003bfcc addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0003bfd0 move s3, v0 | s3 = v0;
0x0003bfd4 jalr t9 | t9 ();
0x0003bfd8 lw a0, 0x18(sp) | a0 = *(var_18h_5);
0x0003bfdc lw gp, 0x10(sp) | gp = *(var_10h);
0x0003bfe0 sw v0, (s2) | *(s2) = v0;
0x0003bfe4 sw v1, 4(s2) | *((s2 + 1)) = v1;
0x0003bfe8 beqz a0, 0x3bf74 |
| }
0x0003bfec lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| if (a0 == s0) {
0x0003bff0 beq a0, s0, 0x3bf78 | goto label_0;
| }
0x0003bff4 lb a0, (a0) | a0 = *(a0);
0x0003bff8 addiu a0, zero, 0x22 | a0 = 0x22;
| if (a0 != 0) {
0x0003bffc bnez a0, 0x3bf78 | goto label_0;
| }
0x0003c000 lw a1, (s3) | a1 = *(s3);
0x0003c004 lui a0, 0x7fff | a0 = 0x7fff0000;
| if (a1 != a0) {
0x0003c008 bne a1, a0, 0x3c02c | goto label_4;
| }
0x0003c00c ori a0, a0, 0xffff | a0 |= 0xffff;
0x0003c010 addiu a1, v0, -1 | a1 = v0 + -1;
0x0003c014 addu v1, v1, a0 | v1 += a0;
0x0003c018 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x0003c01c nor v1, zero, v1 | __asm ("nor v1, zero, v1");
0x0003c020 sltiu a1, a1, -2 | a1 = (a1 < -2) ? 1 : 0;
| if (v1 == v0) {
0x0003c024 beq v1, v0, 0x3c040 | goto label_5;
| }
0x0003c028 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| do {
| label_4:
0x0003c02c move a0, s0 | a0 = s0;
0x0003c030 jalr t9 | t9 ();
0x0003c034 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003c038 addiu v0, zero, 1 | v0 = 1;
0x0003c03c b 0x3bf88 | goto label_1;
| label_5:
0x0003c040 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0003c044 bnez a1, 0x3c02c |
| } while (a1 != 0);
0x0003c048 b 0x3bf78 | goto label_0;
0x0003c04c nop |
| label_3:
0x0003c050 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003c054 jalr t9 | t9 ();
0x0003c058 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3c188 */
| #include <stdint.h>
|
; (fcn) sym.settings_get_int () | void settings_get_int () {
0x0003c188 lui gp, 3 |
0x0003c18c addiu gp, gp, 0x29f8 |
0x0003c190 addu gp, gp, t9 | gp += t9;
0x0003c194 addiu sp, sp, -0x38 |
0x0003c198 lw t9, -0x7c44(gp) | t9 = sym.settings_get_int64;
0x0003c19c sw s0, 0x2c(sp) | *(var_2ch_3) = s0;
0x0003c1a0 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0003c1a4 sw gp, 0x10(sp) | *(var_10h_3) = gp;
0x0003c1a8 sw s1, 0x30(sp) | *(var_30h_3) = s1;
0x0003c1ac lw v0, (s0) | v0 = *(s0);
0x0003c1b0 sw ra, 0x34(sp) | *(var_34h_3) = ra;
0x0003c1b4 move s1, a2 | s1 = a2;
0x0003c1b8 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0003c1bc addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0003c1c0 bal 0x3bf18 | sym_settings_get_int64 ();
0x0003c1c4 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 != 0) {
0x0003c1c8 beqz v0, 0x3c1f4 |
0x0003c1cc lw v1, 0x18(sp) | v1 = *(var_18h);
0x0003c1d0 lui v0, 0x8000 | v0 = 0x80000000;
0x0003c1d4 addu v0, v1, v0 | v0 = v1 + v0;
0x0003c1d8 lw a0, 0x1c(sp) | a0 = *(var_1ch_4);
0x0003c1dc sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0003c1e0 addu v0, v0, a0 | v0 += a0;
0x0003c1e4 move v0, zero | v0 = 0;
| if (v0 != 0) {
0x0003c1e8 bnez v0, 0x3c1f4 | goto label_1;
| }
0x0003c1ec sw v1, (s1) | *(s1) = v1;
0x0003c1f0 addiu v0, zero, 1 | v0 = 1;
| }
| label_1:
0x0003c1f4 lw a0, 0x24(sp) | a0 = *(var_24h_3);
0x0003c1f8 lw v1, (s0) | v1 = *(s0);
0x0003c1fc lw ra, 0x34(sp) | ra = *(var_34h_3);
| if (a0 == v1) {
0x0003c200 bne a0, v1, 0x3c214 |
0x0003c204 lw s1, 0x30(sp) | s1 = *(var_30h_3);
0x0003c208 lw s0, 0x2c(sp) | s0 = *(var_2ch_3);
0x0003c20c addiu sp, sp, 0x38 |
0x0003c210 jr ra | return v0;
| }
0x0003c214 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003c218 jalr t9 | t9 ();
0x0003c21c nop |
0x0003c220 lui gp, 3 |
0x0003c224 addiu gp, gp, 0x2960 |
0x0003c228 addu gp, gp, t9 | gp += t9;
0x0003c22c addiu sp, sp, -0x60 |
0x0003c230 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0003c234 sw s1, 0x40(sp) | *(var_40h) = s1;
0x0003c238 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0003c23c lw t9, -0x7820(gp) | t9 = sym.imp.g_key_file_get_integer_list;
0x0003c240 sw s6, 0x54(sp) | *(var_54h) = s6;
0x0003c244 lw v0, (s1) | v0 = *(s1);
0x0003c248 sw s4, 0x4c(sp) | *(var_4ch) = s4;
0x0003c24c move s6, a0 | s6 = a0;
0x0003c250 addiu s4, sp, 0x30 | s4 = sp + 0x30;
0x0003c254 lw a0, 0x77bc(v1) | a0 = *((v1 + 7663));
0x0003c258 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003c25c sw s7, 0x58(sp) | *(var_58h) = s7;
0x0003c260 sw s5, 0x50(sp) | *(var_50h) = s5;
0x0003c264 sw s3, 0x48(sp) | *(var_48h) = s3;
0x0003c268 sw s0, 0x3c(sp) | *(var_3ch) = s0;
0x0003c26c sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0003c270 sw s2, 0x44(sp) | *(var_44h) = s2;
0x0003c274 move s7, a1 | s7 = a1;
0x0003c278 move s0, a2 | s0 = a2;
0x0003c27c move s5, a3 | s5 = a3;
0x0003c280 move a2, a1 | a2 = a1;
0x0003c284 sw s4, 0x10(sp) | *(var_10h_4) = s4;
0x0003c288 addiu a3, sp, 0x2c | a3 = sp + 0x2c;
0x0003c28c move a1, s6 | a1 = s6;
0x0003c290 sw v0, 0x34(sp) | *(var_34h_4) = v0;
0x0003c294 sw zero, 0x30(sp) | *(var_30h_4) = 0;
0x0003c298 jalr t9 | t9 ();
0x0003c29c nop |
0x0003c2a0 lw s3, 0x30(sp) | s3 = *(var_30h_4);
0x0003c2a4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s3 != 0) {
0x0003c2a8 bnez s3, 0x3c358 | goto label_2;
| }
0x0003c2ac move s2, v0 | s2 = v0;
| if (v0 != 0) {
0x0003c2b0 beqz v0, 0x3c2c4 |
0x0003c2b4 lw v0, 0x2c(sp) | v0 = *(var_2ch_4);
0x0003c2b8 sltu v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x0003c2bc sll s0, s0, 2 | s0 <<= 2;
| if (v0 == 0) {
0x0003c2c0 bnel v0, zero, 0x3c338 | goto label_3;
| }
| }
0x0003c2c4 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003c2c8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003c2cc lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003c2d0 lw a3, (v0) | a3 = *(v0);
0x0003c2d4 addiu a2, zero, 0x29 | a2 = 0x29;
0x0003c2d8 addiu a1, zero, 1 | a1 = 1;
| /* str._3_Position_out_exceeds_the_array_length_n */
0x0003c2dc addiu a0, a0, 0x3a14 | a0 += 0x3a14;
0x0003c2e0 jalr t9 | t9 ();
0x0003c2e4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c2e8 move a0, s2 | a0 = s2;
0x0003c2ec lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0003c2f0 move s2, zero | s2 = 0;
0x0003c2f4 jalr t9 | t9 ();
0x0003c2f8 lw gp, 0x20(sp) | gp = *(var_20h);
| do {
| label_0:
0x0003c2fc lw a0, 0x34(sp) | a0 = *(var_34h_4);
0x0003c300 lw v1, (s1) | v1 = *(s1);
0x0003c304 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0003c308 bne a0, v1, 0x3c444 | goto label_4;
| }
0x0003c30c lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0003c310 lw s7, 0x58(sp) | s7 = *(var_58h);
0x0003c314 lw s6, 0x54(sp) | s6 = *(var_54h);
0x0003c318 lw s5, 0x50(sp) | s5 = *(var_50h);
0x0003c31c lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x0003c320 lw s3, 0x48(sp) | s3 = *(var_48h);
0x0003c324 lw s2, 0x44(sp) | s2 = *(var_44h);
0x0003c328 lw s1, 0x40(sp) | s1 = *(var_40h);
0x0003c32c lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x0003c330 addiu sp, sp, 0x60 |
0x0003c334 jr ra | return v0;
| label_3:
0x0003c338 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
0x0003c33c lwx s0, s0(s2) | __asm ("lwx s0, s0(s2)");
0x0003c340 move a0, s2 | a0 = s2;
0x0003c344 sw s0, (s5) | *(s5) = s0;
0x0003c348 jalr t9 | t9 ();
0x0003c34c addiu s2, zero, 1 | s2 = 1;
0x0003c350 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c354 b 0x3c2fc |
| } while (1);
| label_2:
0x0003c358 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x0003c35c jalr t9 | t9 ();
0x0003c360 nop |
0x0003c364 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c368 addiu a2, zero, 4 | a2 = 4;
0x0003c36c move a1, v0 | a1 = v0;
0x0003c370 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0003c374 move a0, s3 | a0 = s3;
0x0003c378 jalr t9 | t9 ();
0x0003c37c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003c380 bnez v0, 0x3c404 |
0x0003c384 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x0003c388 lw s2, 0x30(sp) | s2 = *(var_30h_4);
0x0003c38c jalr t9 | t9 ();
0x0003c390 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c394 move a0, s2 | a0 = s2;
0x0003c398 addiu a2, zero, 3 | a2 = 3;
0x0003c39c lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0003c3a0 move a1, v0 | a1 = v0;
0x0003c3a4 jalr t9 | t9 ();
0x0003c3a8 move s2, v0 | s2 = v0;
0x0003c3ac lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003c3b0 bnez v0, 0x3c404 | goto label_5;
| }
0x0003c3b4 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0003c3b8 lw v0, 0x30(sp) | v0 = *(var_30h_4);
0x0003c3bc lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0003c3c0 beqz v0, 0x3c41c | goto label_6;
| }
0x0003c3c4 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0003c3c8 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003c3cc lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003c3d0 move a3, s6 | a3 = s6;
| /* str._3_Could_not_read_integer__s._s:_u_from_list.:__s_n */
0x0003c3d4 addiu a2, a2, 0x39a8 | a2 += 0x39a8;
0x0003c3d8 addiu a1, zero, 1 | a1 = 1;
0x0003c3dc sw v0, 0x18(sp) | *(var_18h_3) = v0;
0x0003c3e0 sw s0, 0x14(sp) | *(var_14h) = s0;
0x0003c3e4 sw s7, 0x10(sp) | *(var_10h_4) = s7;
0x0003c3e8 jalr t9 | t9 ();
0x0003c3ec lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c3f0 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003c3f4 move a0, s4 | a0 = s4;
0x0003c3f8 jalr t9 | t9 ();
0x0003c3fc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c400 b 0x3c2fc | goto label_0;
| }
| label_5:
0x0003c404 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003c408 move a0, s4 | a0 = s4;
0x0003c40c jalr t9 | t9 ();
0x0003c410 move s2, zero | s2 = 0;
0x0003c414 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c418 b 0x3c2fc | goto label_0;
| label_6:
0x0003c41c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003c420 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003c424 sw s0, 0x14(sp) | *(var_14h) = s0;
0x0003c428 sw s7, 0x10(sp) | *(var_10h_4) = s7;
0x0003c42c move a3, s6 | a3 = s6;
| /* str._3_Could_not_read_integer__s._s:_u_from_list._n */
0x0003c430 addiu a2, a2, 0x39e0 | a2 += 0x39e0;
0x0003c434 addiu a1, zero, 1 | a1 = 1;
0x0003c438 jalr t9 | t9 ();
0x0003c43c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c440 b 0x3c2fc | goto label_0;
| label_4:
0x0003c444 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003c448 jalr t9 | t9 ();
0x0003c44c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3c4f8 */
| #include <stdint.h>
|
; (fcn) sym.settings_get_string_from_list () | void settings_get_string_from_list () {
0x0003c4f8 lui gp, 3 |
0x0003c4fc addiu gp, gp, 0x2688 |
0x0003c500 addu gp, gp, t9 | gp += t9;
0x0003c504 addiu sp, sp, -0x58 |
0x0003c508 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0003c50c sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0003c510 lw s1, -0x7a04(gp) | s1 = *((gp - 7809));
0x0003c514 lw t9, -0x7744(gp) | t9 = sym.imp.g_key_file_get_string_list;
0x0003c518 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0003c51c lw v0, (s1) | v0 = *(s1);
0x0003c520 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0003c524 move s5, a0 | s5 = a0;
0x0003c528 addiu s4, sp, 0x2c | s4 = sp + 0x2c;
0x0003c52c lw a0, 0x77bc(v1) | a0 = *((v1 + 7663));
0x0003c530 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003c534 sw s6, 0x50(sp) | *(var_50h) = s6;
0x0003c538 sw s3, 0x44(sp) | *(var_44h) = s3;
0x0003c53c sw s2, 0x40(sp) | *(var_40h) = s2;
0x0003c540 sw s0, 0x38(sp) | *(var_38h) = s0;
0x0003c544 sw ra, 0x54(sp) | *(var_54h) = ra;
0x0003c548 move s6, a1 | s6 = a1;
0x0003c54c move s2, a2 | s2 = a2;
0x0003c550 sw s4, 0x10(sp) | *(var_10h) = s4;
0x0003c554 move a2, a1 | a2 = a1;
0x0003c558 addiu a3, sp, 0x30 | a3 = sp + 0x30;
0x0003c55c move a1, s5 | a1 = s5;
0x0003c560 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0003c564 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x0003c568 jalr t9 | t9 ();
0x0003c56c nop |
0x0003c570 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0003c574 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c578 move s0, v0 | s0 = v0;
| if (s3 != 0) {
0x0003c57c bnez s3, 0x3c620 | goto label_2;
| }
0x0003c580 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| if (v0 != 0) {
0x0003c584 beqz v0, 0x3c59c |
0x0003c588 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0003c58c sltu v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x0003c590 sll a0, s2, 2 | a0 = s2 << 2;
| if (v0 == 0) {
0x0003c594 bnel v0, zero, 0x3c608 | goto label_3;
| }
0x0003c598 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
| }
0x0003c59c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003c5a0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003c5a4 lw a3, (v0) | a3 = *(v0);
0x0003c5a8 addiu a2, zero, 0x29 | a2 = 0x29;
0x0003c5ac addiu a1, zero, 1 | a1 = 1;
| /* str._3_Position_out_exceeds_the_array_length_n */
0x0003c5b0 addiu a0, a0, 0x3a14 | a0 += 0x3a14;
0x0003c5b4 jalr t9 | t9 ();
0x0003c5b8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c5bc move s2, zero | s2 = 0;
| do {
0x0003c5c0 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x0003c5c4 move a0, s0 | a0 = s0;
0x0003c5c8 jalr t9 | t9 ();
0x0003c5cc lw gp, 0x20(sp) | gp = *(var_20h);
| label_0:
0x0003c5d0 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0003c5d4 lw v1, (s1) | v1 = *(s1);
0x0003c5d8 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0003c5dc bne a0, v1, 0x3c708 | goto label_4;
| }
0x0003c5e0 lw ra, 0x54(sp) | ra = *(var_54h);
0x0003c5e4 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0003c5e8 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0003c5ec lw s4, 0x48(sp) | s4 = *(var_48h);
0x0003c5f0 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0003c5f4 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0003c5f8 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0003c5fc lw s0, 0x38(sp) | s0 = *(var_38h);
0x0003c600 addiu sp, sp, 0x58 |
0x0003c604 jr ra | return v0;
| label_3:
0x0003c608 lw t9, -0x77c4(gp) | t9 = sym.imp.g_strdup;
0x0003c60c lwx a0, a0(s0) | __asm ("lwx a0, a0(s0)");
0x0003c610 jalr t9 | t9 ();
0x0003c614 move s2, v0 | s2 = v0;
0x0003c618 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c61c b 0x3c5c0 |
| } while (1);
| label_2:
0x0003c620 lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x0003c624 jalr t9 | t9 ();
0x0003c628 nop |
0x0003c62c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c630 addiu a2, zero, 4 | a2 = 4;
0x0003c634 move a1, v0 | a1 = v0;
0x0003c638 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0003c63c move a0, s3 | a0 = s3;
0x0003c640 jalr t9 | t9 ();
0x0003c644 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003c648 bnez v0, 0x3c678 | goto label_5;
| }
0x0003c64c lw t9, -0x7b50(gp) | t9 = sym.imp.g_key_file_error_quark;
0x0003c650 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0003c654 jalr t9 | t9 ();
0x0003c658 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c65c addiu a2, zero, 3 | a2 = 3;
0x0003c660 move a1, v0 | a1 = v0;
0x0003c664 lw t9, -0x7a18(gp) | t9 = sym.imp.g_error_matches;
0x0003c668 move a0, s3 | a0 = s3;
0x0003c66c jalr t9 | t9 ();
0x0003c670 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c674 beqz v0, 0x3c6a0 |
| while (1) {
| label_5:
0x0003c678 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003c67c move a0, s4 | a0 = s4;
0x0003c680 jalr t9 | t9 ();
0x0003c684 lw gp, 0x20(sp) | gp = *(var_20h);
| label_1:
0x0003c688 lw t9, -0x7b68(gp) | t9 = sym.imp.g_strfreev;
0x0003c68c move a0, s0 | a0 = s0;
0x0003c690 jalr t9 | t9 ();
0x0003c694 move s2, zero | s2 = 0;
0x0003c698 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c69c b 0x3c5d0 | goto label_0;
0x0003c6a0 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0003c6a4 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0003c6a8 lw a0, (v1) | a0 = *(v1);
| if (v0 == 0) {
0x0003c6ac beqz v0, 0x3c6e0 | goto label_6;
| }
0x0003c6b0 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0003c6b4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003c6b8 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003c6bc move a3, s5 | a3 = s5;
| /* str._3_Could_not_read_string__s._s:_u_from_list:__s_n */
0x0003c6c0 addiu a2, a2, 0x3a40 | a2 += 0x3a40;
0x0003c6c4 addiu a1, zero, 1 | a1 = 1;
0x0003c6c8 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0003c6cc sw s2, 0x14(sp) | *(var_14h) = s2;
0x0003c6d0 sw s6, 0x10(sp) | *(var_10h) = s6;
0x0003c6d4 jalr t9 | t9 ();
0x0003c6d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c6dc b 0x3c678 |
| }
| label_6:
0x0003c6e0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003c6e4 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003c6e8 sw s2, 0x14(sp) | *(var_14h) = s2;
0x0003c6ec sw s6, 0x10(sp) | *(var_10h) = s6;
0x0003c6f0 move a3, s5 | a3 = s5;
| /* str._3_Could_not_read_string__s._s:_u_from_list_n */
0x0003c6f4 addiu a2, a2, 0x3a78 | a2 += 0x3a78;
0x0003c6f8 addiu a1, zero, 1 | a1 = 1;
0x0003c6fc jalr t9 | t9 ();
0x0003c700 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003c704 b 0x3c688 | goto label_1;
| label_4:
0x0003c708 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003c70c jalr t9 | t9 ();
0x0003c710 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3cdb8 */
| #include <stdint.h>
|
; (fcn) sym.tampering () | void tampering () {
0x0003cdb8 lui gp, 3 |
0x0003cdbc addiu gp, gp, 0x1dc8 |
0x0003cdc0 addu gp, gp, t9 | gp += t9;
0x0003cdc4 addiu sp, sp, -0x28 |
0x0003cdc8 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0003cdcc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003cdd0 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0003cdd4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0003cdd8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0003cddc move s1, a0 | s1 = a0;
0x0003cde0 addiu a0, zero, 6 | a0 = 6;
0x0003cde4 jalr t9 | t9 ();
0x0003cde8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003cdec beqz v0, 0x3ce88 | goto label_2;
| }
0x0003cdf0 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
| if (s1 != 0) {
0x0003cdf4 bnez s1, 0x3cea4 | goto label_3;
| }
0x0003cdf8 sync | __asm ("sync");
| do {
0x0003cdfc ll v0, 0x77c4(v1) | __asm ("ll v0, 0x77c4(v1)");
0x0003ce00 addiu at, v0, 1 | at = v0 + 1;
0x0003ce04 sc at, 0x77c4(v1) | __asm ("sc at, 0x77c4(v1)");
0x0003ce08 beqz at, 0x3cdfc |
| } while (at == 0);
0x0003ce0c nop |
0x0003ce10 sync | __asm ("sync");
0x0003ce14 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003ce18 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
| /* str.IGNORE_0 */
0x0003ce1c addiu a1, a1, 0x3b30 | a1 += 0x3b30;
| label_0:
0x0003ce20 addiu s0, zero, 1 | s0 = 1;
| if (v0 != 0) {
0x0003ce24 beqz v0, 0x3ce8c |
0x0003ce28 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003ce2c lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.0003cb90 */
0x0003ce30 addiu t9, t9, -0x3470 | t9 += -0x3470;
| /* str._var_run_tampering_requestsocket */
0x0003ce34 addiu a0, a0, 0x3b48 | a0 += 0x3b48;
0x0003ce38 bal 0x3cb90 | fcn_0003cb90 ();
0x0003ce3c move s0, v0 | s0 = v0;
0x0003ce40 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0003ce44 bnez v0, 0x3ce8c | goto label_4;
| }
0x0003ce48 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003ce4c lw a0, (v0) | a0 = *(v0);
| if (s1 != 0) {
0x0003ce50 bnez s1, 0x3ced4 | goto label_5;
| }
0x0003ce54 lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.disable */
0x0003ce58 addiu a3, a3, 0x3090 | a3 += 0x3090;
| label_1:
0x0003ce5c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003ce60 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
| /* str._4_Could_not__s_tampering_detection_n */
0x0003ce64 addiu a2, a2, 0x3b6c | a2 += 0x3b6c;
0x0003ce68 addiu a1, zero, 1 | a1 = 1;
0x0003ce6c jalr t9 | t9 ();
0x0003ce70 lw ra, 0x24(sp) | ra = *(var_24h);
0x0003ce74 move v0, s0 | v0 = s0;
0x0003ce78 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0003ce7c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0003ce80 addiu sp, sp, 0x28 |
0x0003ce84 jr ra | return v0;
| label_2:
0x0003ce88 addiu s0, zero, 1 | s0 = 1;
| }
| label_4:
0x0003ce8c lw ra, 0x24(sp) | ra = *(var_24h);
0x0003ce90 move v0, s0 | v0 = s0;
0x0003ce94 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0003ce98 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0003ce9c addiu sp, sp, 0x28 |
0x0003cea0 jr ra | return v0;
| label_3:
0x0003cea4 sync | __asm ("sync");
| do {
0x0003cea8 ll v0, 0x77c4(v1) | __asm ("ll v0, 0x77c4(v1)");
0x0003ceac addiu at, v0, -1 | at = v0 + -1;
0x0003ceb0 sc at, 0x77c4(v1) | __asm ("sc at, 0x77c4(v1)");
0x0003ceb4 beqz at, 0x3cea8 |
| } while (at == 0);
0x0003ceb8 nop |
0x0003cebc sync | __asm ("sync");
0x0003cec0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003cec4 xori v0, v0, 1 | v0 ^= 1;
0x0003cec8 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
| /* str.RESTART_0_0 */
0x0003cecc addiu a1, a1, 0x3b3c | a1 += 0x3b3c;
0x0003ced0 b 0x3ce20 | goto label_0;
| label_5:
0x0003ced4 lw a3, -0x7fd8(gp) | a3 = *(gp);
| /* str.enable */
0x0003ced8 addiu a3, a3, 0x3088 | a3 += 0x3088;
0x0003cedc b 0x3ce5c | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3eab4 */
| #include <stdint.h>
|
; (fcn) sym.temperature_ctrld_check_valid_name () | void temperature_ctrld_check_valid_name () {
0x0003eab4 lui gp, 3 |
0x0003eab8 addiu gp, gp, 0xcc |
0x0003eabc addu gp, gp, t9 | gp += t9;
0x0003eac0 addiu sp, sp, -0x50 |
0x0003eac4 sw s0, 0x3c(sp) | *(var_3ch_3) = s0;
0x0003eac8 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0003eacc sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x0003ead0 sw ra, 0x4c(sp) | *(var_4ch_2) = ra;
0x0003ead4 lw v0, (s0) | v0 = *(s0);
0x0003ead8 sw s3, 0x48(sp) | *(var_48h_2) = s3;
0x0003eadc sw s2, 0x44(sp) | *(var_44h_2) = s2;
0x0003eae0 sw s1, 0x40(sp) | *(var_40h_2) = s1;
0x0003eae4 sw zero, 0x30(sp) | *(var_30h_3) = 0;
0x0003eae8 sw v0, 0x34(sp) | *(var_34h_3) = v0;
0x0003eaec lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (a0 == 0) {
0x0003eaf0 beqz a0, 0x3ebcc | goto label_1;
| }
0x0003eaf4 move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x0003eaf8 beqz a1, 0x3ebec | goto label_2;
| }
0x0003eafc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003eb00 lw v0, 0x7818(v0) | v0 = *((v0 + 7686));
| if (v0 == 0) {
0x0003eb04 beqz v0, 0x3eba4 | goto label_0;
| }
0x0003eb08 nop |
0x0003eb0c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003eb10 lw s2, 0x7810(v0) | s2 = *((v0 + 7684));
0x0003eb14 move a1, a0 | a1 = a0;
| if (s2 == 0) {
0x0003eb18 beqz s2, 0x3ec14 | goto label_3;
| }
0x0003eb1c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003eb20 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* esilref: '(s)' */
0x0003eb24 addiu a0, a0, -0x72f0 | a0 += -0x72f0;
0x0003eb28 jalr t9 | t9 ();
0x0003eb2c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003eb30 addiu v1, zero, -1 | v1 = -1;
0x0003eb34 addiu s3, sp, 0x30 | s3 = sp + 0x30;
0x0003eb38 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003eb3c lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003eb40 sw v1, 0x10(sp) | *(var_10h_3) = v1;
0x0003eb44 sw s3, 0x18(sp) | *(var_18h_2) = s3;
0x0003eb48 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0003eb4c move a3, zero | a3 = 0;
0x0003eb50 move a2, v0 | a2 = v0;
| /* str.IsSensorNameValid */
0x0003eb54 addiu a1, a1, 0x4060 | a1 += 0x4060;
0x0003eb58 move a0, s2 | a0 = s2;
0x0003eb5c jalr t9 | t9 ();
0x0003eb60 lw v1, 0x30(sp) | v1 = *(var_30h_3);
0x0003eb64 lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v1 == 0) {
0x0003eb68 beqz v1, 0x3ec40 | goto label_4;
| }
0x0003eb6c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003eb70 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003eb74 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003eb78 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0003eb7c lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_validate_name:__s_n */
0x0003eb80 addiu a2, a2, 0x4074 | a2 += 0x4074;
0x0003eb84 addiu a1, zero, 1 | a1 = 1;
0x0003eb88 jalr t9 | t9 ();
0x0003eb8c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003eb90 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003eb94 move a0, s3 | a0 = s3;
0x0003eb98 jalr t9 | t9 ();
0x0003eb9c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003eba0 move v0, zero | v0 = 0;
| do {
| label_0:
0x0003eba4 lw a0, 0x34(sp) | a0 = *(var_34h_3);
0x0003eba8 lw v1, (s0) | v1 = *(s0);
0x0003ebac lw ra, 0x4c(sp) | ra = *(var_4ch_2);
| if (a0 != v1) {
0x0003ebb0 bne a0, v1, 0x3ec7c | goto label_5;
| }
0x0003ebb4 lw s3, 0x48(sp) | s3 = *(var_48h_2);
0x0003ebb8 lw s2, 0x44(sp) | s2 = *(var_44h_2);
0x0003ebbc lw s1, 0x40(sp) | s1 = *(var_40h_2);
0x0003ebc0 lw s0, 0x3c(sp) | s0 = *(var_3ch_3);
0x0003ebc4 addiu sp, sp, 0x50 |
0x0003ebc8 jr ra | return v0;
| label_1:
0x0003ebcc lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003ebd0 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.name___NULL */
0x0003ebd4 addiu a2, a2, 0x3de8 | a2 += 0x3de8;
| /* str.temperature_ctrld_check_valid_name */
0x0003ebd8 addiu a1, a1, 0x40a0 | a1 += 0x40a0;
0x0003ebdc jalr t9 | t9 ();
0x0003ebe0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003ebe4 move v0, zero | v0 = 0;
0x0003ebe8 b 0x3eba4 |
| } while (1);
| label_2:
0x0003ebec lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003ebf0 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003ebf4 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.valid___NULL */
0x0003ebf8 addiu a2, a2, 0x4050 | a2 += 0x4050;
| /* str.temperature_ctrld_check_valid_name */
0x0003ebfc addiu a1, a1, 0x40a0 | a1 += 0x40a0;
0x0003ec00 move a0, zero | a0 = 0;
0x0003ec04 jalr t9 | t9 ();
0x0003ec08 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003ec0c move v0, zero | v0 = 0;
0x0003ec10 b 0x3eba4 | goto label_0;
| label_3:
0x0003ec14 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003ec18 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003ec1c lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003ec20 lw a3, (v0) | a3 = *(v0);
0x0003ec24 addiu a2, zero, 0x22 | a2 = 0x22;
0x0003ec28 addiu a1, zero, 1 | a1 = 1;
| /* str._4_No_proxy_for_temperature_ctrld_n */
0x0003ec2c addiu a0, a0, 0x3bd8 | a0 += 0x3bd8;
0x0003ec30 jalr t9 | t9 ();
0x0003ec34 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003ec38 move v0, zero | v0 = 0;
0x0003ec3c b 0x3eba4 | goto label_0;
| label_4:
0x0003ec40 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003ec44 lw t9, -0x79dc(gp) | t9 = sym.imp.g_variant_get;
0x0003ec48 move a0, v0 | a0 = v0;
0x0003ec4c move a2, s1 | a2 = s1;
| /* esilref: '(b)' */
0x0003ec50 addiu a1, a1, -0x4f98 | a1 += -0x4f98;
0x0003ec54 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x0003ec58 jalr t9 | t9 ();
0x0003ec5c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003ec60 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
0x0003ec64 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003ec68 move a0, v0 | a0 = v0;
0x0003ec6c jalr t9 | t9 ();
0x0003ec70 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003ec74 addiu v0, zero, 1 | v0 = 1;
0x0003ec78 b 0x3eba4 | goto label_0;
| label_5:
0x0003ec7c lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003ec80 jalr t9 | t9 ();
0x0003ec84 nop |
0x0003ec88 nop |
0x0003ec8c nop |
0x0003ec90 jr ra | return v0;
0x0003ec94 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3e09c */
| #include <stdint.h>
|
; (fcn) sym.temperature_ctrld_get_sensor_number () | void temperature_ctrld_get_sensor_number () {
0x0003e09c lui gp, 3 |
0x0003e0a0 addiu gp, gp, 0xae4 |
0x0003e0a4 addu gp, gp, t9 | gp += t9;
0x0003e0a8 addiu sp, sp, -0x48 |
0x0003e0ac lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003e0b0 sw s0, 0x30(sp) | *(var_30h_2) = s0;
0x0003e0b4 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0003e0b8 lw v0, 0x7818(v0) | v0 = *((v0 + 7686));
0x0003e0bc sw gp, 0x20(sp) | *(var_20h_2) = gp;
0x0003e0c0 lw v1, (s0) | v1 = *(s0);
0x0003e0c4 sw ra, 0x44(sp) | *(var_44h) = ra;
0x0003e0c8 sw s4, 0x40(sp) | *(var_40h) = s4;
0x0003e0cc sw s3, 0x3c(sp) | *(var_3ch_2) = s3;
0x0003e0d0 sw s2, 0x38(sp) | *(var_38h_2) = s2;
0x0003e0d4 sw s1, 0x34(sp) | *(var_34h_2) = s1;
0x0003e0d8 sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
0x0003e0dc sw zero, 0x28(sp) | *(var_28h_2) = 0;
| if (v0 == 0) {
0x0003e0e0 beqz v0, 0x3e184 | goto label_0;
| }
0x0003e0e4 move s1, a0 | s1 = a0;
| if (a0 == 0) {
0x0003e0e8 beqz a0, 0x3e1b0 | goto label_1;
| }
0x0003e0ec move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x0003e0f0 beqz a1, 0x3e1d4 | goto label_2;
| }
0x0003e0f4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003e0f8 lw s3, 0x7810(v0) | s3 = *((v0 + 7684));
0x0003e0fc move a1, a0 | a1 = a0;
| if (s3 == 0) {
0x0003e100 beqz s3, 0x3e1fc | goto label_3;
| }
0x0003e104 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003e108 lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* esilref: '(s)' */
0x0003e10c addiu a0, a0, -0x72f0 | a0 += -0x72f0;
0x0003e110 jalr t9 | t9 ();
0x0003e114 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e118 addiu v1, zero, -1 | v1 = -1;
0x0003e11c addiu s4, sp, 0x28 | s4 = sp + 0x28;
0x0003e120 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e124 lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003e128 move a0, s3 | a0 = s3;
0x0003e12c sw s4, 0x18(sp) | *(var_18h_3) = s4;
0x0003e130 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0003e134 sw v1, 0x10(sp) | *(var_10h_3) = v1;
0x0003e138 move a3, zero | a3 = 0;
0x0003e13c move a2, v0 | a2 = v0;
| /* str.GetTemperatureIdFromName */
0x0003e140 addiu a1, a1, 0x3df8 | a1 += 0x3df8;
0x0003e144 jalr t9 | t9 ();
0x0003e148 move s3, v0 | s3 = v0;
0x0003e14c lw gp, 0x20(sp) | gp = *(var_20h_2);
| if (v0 == 0) {
0x0003e150 beqz v0, 0x3e228 | goto label_4;
| }
0x0003e154 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e158 lw t9, -0x79dc(gp) | t9 = sym.imp.g_variant_get;
0x0003e15c move a0, v0 | a0 = v0;
0x0003e160 move a2, s2 | a2 = s2;
| /* esilref: '(i)' */
0x0003e164 addiu a1, a1, 0x3124 | a1 += 0x3124;
0x0003e168 jalr t9 | t9 ();
0x0003e16c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e170 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003e174 move a0, s3 | a0 = s3;
0x0003e178 jalr t9 | t9 ();
0x0003e17c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e180 addiu v0, zero, 1 | v0 = 1;
| do {
| label_0:
0x0003e184 lw a0, 0x2c(sp) | a0 = *(var_2ch_2);
0x0003e188 lw v1, (s0) | v1 = *(s0);
0x0003e18c lw ra, 0x44(sp) | ra = *(var_44h);
| if (a0 != v1) {
0x0003e190 bne a0, v1, 0x3e298 | goto label_5;
| }
0x0003e194 lw s4, 0x40(sp) | s4 = *(var_40h);
0x0003e198 lw s3, 0x3c(sp) | s3 = *(var_3ch_2);
0x0003e19c lw s2, 0x38(sp) | s2 = *(var_38h_2);
0x0003e1a0 lw s1, 0x34(sp) | s1 = *(var_34h_2);
0x0003e1a4 lw s0, 0x30(sp) | s0 = *(var_30h_2);
0x0003e1a8 addiu sp, sp, 0x48 |
0x0003e1ac jr ra | return v0;
| label_1:
0x0003e1b0 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e1b4 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e1b8 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.name___NULL */
0x0003e1bc addiu a2, a2, 0x3de8 | a2 += 0x3de8;
| /* str.temperature_ctrld_get_sensor_number */
0x0003e1c0 addiu a1, a1, 0x40c4 | a1 += 0x40c4;
0x0003e1c4 jalr t9 | t9 ();
0x0003e1c8 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e1cc move v0, zero | v0 = 0;
0x0003e1d0 b 0x3e184 |
| } while (1);
| label_2:
0x0003e1d4 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e1d8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e1dc lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.id___NULL */
0x0003e1e0 addiu a2, a2, 0x3164 | a2 += 0x3164;
| /* str.temperature_ctrld_get_sensor_number */
0x0003e1e4 addiu a1, a1, 0x40c4 | a1 += 0x40c4;
0x0003e1e8 move a0, zero | a0 = 0;
0x0003e1ec jalr t9 | t9 ();
0x0003e1f0 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e1f4 move v0, zero | v0 = 0;
0x0003e1f8 b 0x3e184 | goto label_0;
| label_3:
0x0003e1fc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003e200 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003e204 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003e208 lw a3, (v0) | a3 = *(v0);
0x0003e20c addiu a2, zero, 0x22 | a2 = 0x22;
0x0003e210 addiu a1, zero, 1 | a1 = 1;
| /* str._4_No_proxy_for_temperature_ctrld_n */
0x0003e214 addiu a0, a0, 0x3bd8 | a0 += 0x3bd8;
0x0003e218 jalr t9 | t9 ();
0x0003e21c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e220 move v0, zero | v0 = 0;
0x0003e224 b 0x3e184 | goto label_0;
| label_4:
0x0003e228 lw v1, -0x7990(gp) | v1 = *((gp - 7780));
0x0003e22c lw v0, 0x28(sp) | v0 = *(var_28h_2);
0x0003e230 lw a0, (v1) | a0 = *(v1);
| if (v0 != 0) {
0x0003e234 beqz v0, 0x3e274 |
0x0003e238 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e23c lw v0, 8(v0) | v0 = *((v0 + 2));
0x0003e240 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003e244 move a3, s1 | a3 = s1;
| /* str._4_Failed_to_get_id_of_temperature_sensor__s:__s_n */
0x0003e248 addiu a2, a2, 0x3e14 | a2 += 0x3e14;
0x0003e24c addiu a1, zero, 1 | a1 = 1;
0x0003e250 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x0003e254 jalr t9 | t9 ();
0x0003e258 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e25c lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003e260 move a0, s4 | a0 = s4;
0x0003e264 jalr t9 | t9 ();
0x0003e268 lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e26c move v0, zero | v0 = 0;
0x0003e270 b 0x3e184 | goto label_0;
| }
0x0003e274 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e278 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003e27c move a3, s1 | a3 = s1;
| /* str._4_Failed_to_get_id_of_temperature_sensor__s_n */
0x0003e280 addiu a2, a2, 0x3e48 | a2 += 0x3e48;
0x0003e284 addiu a1, zero, 1 | a1 = 1;
0x0003e288 jalr t9 | t9 ();
0x0003e28c lw gp, 0x20(sp) | gp = *(var_20h_2);
0x0003e290 move v0, zero | v0 = 0;
0x0003e294 b 0x3e184 | goto label_0;
| label_5:
0x0003e298 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003e29c jalr t9 | t9 ();
0x0003e2a0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3e44c */
| #include <stdint.h>
|
; (fcn) sym.temperature_ctrld_get_temperature () | void temperature_ctrld_get_temperature () {
0x0003e44c lui gp, 3 |
0x0003e450 addiu gp, gp, 0x734 |
0x0003e454 addu gp, gp, t9 | gp += t9;
0x0003e458 addiu sp, sp, -0x50 |
0x0003e45c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003e460 sw s0, 0x3c(sp) | *(var_3ch_2) = s0;
0x0003e464 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0003e468 lw v0, 0x7818(v0) | v0 = *((v0 + 7686));
0x0003e46c sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003e470 lw v1, (s0) | v1 = *(s0);
0x0003e474 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0003e478 sw s3, 0x48(sp) | *(var_48h) = s3;
0x0003e47c sw s2, 0x44(sp) | *(var_44h) = s2;
0x0003e480 sw s1, 0x40(sp) | *(var_40h) = s1;
0x0003e484 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x0003e488 sw zero, 0x30(sp) | *(var_30h_2) = 0;
| if (v0 == 0) {
0x0003e48c beqz v0, 0x3e534 | goto label_0;
| }
0x0003e490 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003e494 lw s1, 0x7810(v0) | s1 = *((v0 + 7684));
0x0003e498 lw a2, -0x7fd8(gp) | a2 = *(gp);
| if (s1 == 0) {
0x0003e49c beqz s1, 0x3e598 | goto label_1;
| }
0x0003e4a0 move s3, a1 | s3 = a1;
0x0003e4a4 move a1, a0 | a1 = a0;
0x0003e4a8 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003e4ac lw t9, -0x7be4(gp) | t9 = sym.imp.g_variant_new;
| /* str.celsius */
0x0003e4b0 addiu a2, a2, 0x3ea0 | a2 += 0x3ea0;
| /* str._is_ */
0x0003e4b4 addiu a0, a0, 0x3ea8 | a0 += 0x3ea8;
0x0003e4b8 jalr t9 | t9 ();
0x0003e4bc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e4c0 addiu v1, zero, -1 | v1 = -1;
0x0003e4c4 addiu s2, sp, 0x30 | s2 = sp + 0x30;
0x0003e4c8 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e4cc lw t9, -0x7860(gp) | t9 = sym.imp.g_dbus_proxy_call_sync;
0x0003e4d0 sw v1, 0x10(sp) | *(var_10h_4) = v1;
0x0003e4d4 sw s2, 0x18(sp) | *(var_18h_4) = s2;
0x0003e4d8 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0003e4dc move a3, zero | a3 = 0;
0x0003e4e0 move a2, v0 | a2 = v0;
| /* str.GetTemperature */
0x0003e4e4 addiu a1, a1, 0x3eb0 | a1 += 0x3eb0;
0x0003e4e8 move a0, s1 | a0 = s1;
0x0003e4ec jalr t9 | t9 ();
0x0003e4f0 lw v1, 0x30(sp) | v1 = *(var_30h_2);
0x0003e4f4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 == 0) {
0x0003e4f8 beqz v1, 0x3e55c | goto label_2;
| }
0x0003e4fc lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003e500 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e504 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003e508 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0003e50c lw a0, (v0) | a0 = *(v0);
| /* str._4_Failed_to_get_temperature:__s_n */
0x0003e510 addiu a2, a2, 0x3ec0 | a2 += 0x3ec0;
0x0003e514 addiu a1, zero, 1 | a1 = 1;
0x0003e518 jalr t9 | t9 ();
0x0003e51c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e520 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003e524 move a0, s2 | a0 = s2;
0x0003e528 jalr t9 | t9 ();
0x0003e52c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e530 move v0, zero | v0 = 0;
| do {
| label_0:
0x0003e534 lw a0, 0x34(sp) | a0 = *(var_34h_2);
0x0003e538 lw v1, (s0) | v1 = *(s0);
0x0003e53c lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (a0 != v1) {
0x0003e540 bne a0, v1, 0x3e5c4 | goto label_3;
| }
0x0003e544 lw s3, 0x48(sp) | s3 = *(var_48h);
0x0003e548 lw s2, 0x44(sp) | s2 = *(var_44h);
0x0003e54c lw s1, 0x40(sp) | s1 = *(var_40h);
0x0003e550 lw s0, 0x3c(sp) | s0 = *(var_3ch_2);
0x0003e554 addiu sp, sp, 0x50 |
0x0003e558 jr ra | return v0;
| label_2:
0x0003e55c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e560 lw t9, -0x79dc(gp) | t9 = sym.imp.g_variant_get;
0x0003e564 move a0, v0 | a0 = v0;
0x0003e568 move a2, s3 | a2 = s3;
| /* esilref: '(d)' */
0x0003e56c addiu a1, a1, -0x4ee4 | a1 += -0x4ee4;
0x0003e570 sw v0, 0x2c(sp) | *(var_2ch_4) = v0;
0x0003e574 jalr t9 | t9 ();
0x0003e578 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e57c lw v0, 0x2c(sp) | v0 = *(var_2ch_4);
0x0003e580 lw t9, -0x7aa0(gp) | t9 = sym.imp.g_variant_unref;
0x0003e584 move a0, v0 | a0 = v0;
0x0003e588 jalr t9 | t9 ();
0x0003e58c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e590 addiu v0, zero, 1 | v0 = 1;
0x0003e594 b 0x3e534 |
| } while (1);
| label_1:
0x0003e598 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003e59c lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003e5a0 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003e5a4 lw a3, (v0) | a3 = *(v0);
0x0003e5a8 addiu a2, zero, 0x22 | a2 = 0x22;
0x0003e5ac addiu a1, zero, 1 | a1 = 1;
| /* str._4_No_proxy_for_temperature_ctrld_n */
0x0003e5b0 addiu a0, a0, 0x3bd8 | a0 += 0x3bd8;
0x0003e5b4 jalr t9 | t9 ();
0x0003e5b8 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e5bc move v0, zero | v0 = 0;
0x0003e5c0 b 0x3e534 | goto label_0;
| label_3:
0x0003e5c4 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003e5c8 jalr t9 | t9 ();
0x0003e5cc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3deb8 */
| #include <stdint.h>
|
; (fcn) sym.temperature_ctrld_init () | void temperature_ctrld_init () {
0x0003deb8 lui gp, 3 |
0x0003debc addiu gp, gp, 0xcc8 |
0x0003dec0 addu gp, gp, t9 | gp += t9;
0x0003dec4 addiu sp, sp, -0x40 |
0x0003dec8 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0003decc sw s0, 0x30(sp) | *(var_30h) = s0;
0x0003ded0 lw s0, -0x7a04(gp) | s0 = *((gp - 7809));
0x0003ded4 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003ded8 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0003dedc lw v0, (s0) | v0 = *(s0);
0x0003dee0 sw s2, 0x38(sp) | *(var_38h) = s2;
0x0003dee4 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0003dee8 addiu a0, zero, 5 | a0 = 5;
0x0003deec sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0003def0 lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x0003def4 jalr t9 | t9 ();
0x0003def8 nop |
0x0003defc lw gp, 0x20(sp) | gp = *(var_20h);
0x0003df00 addiu a0, zero, 9 | a0 = 9;
0x0003df04 lw t9, -0x7ed4(gp) | t9 = sym.focusd_feature_enabled;
0x0003df08 sw v0, 0x7818(s1) | *((s1 + 7686)) = v0;
0x0003df0c jalr t9 | t9 ();
0x0003df10 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003df14 lw a0, 0x7818(s1) | a0 = *((s1 + 7686));
0x0003df18 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x0003df1c lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0003df20 lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x0003df24 sw v0, 0x7814(a1) | *((a1 + 7685)) = v0;
0x0003df28 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003df2c addiu v1, v1, 0x77e4 | v1 += 0x77e4;
0x0003df30 sw zero, 0x7810(s2) | *((s2 + 7684)) = 0;
0x0003df34 sw zero, 0x780c(v0) | *((v0 + 7683)) = 0;
0x0003df38 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003df3c sw zero, 0x18(v1) | *((v1 + 6)) = 0;
0x0003df40 sw zero, 0x1c(v1) | *((v1 + 7)) = 0;
0x0003df44 sw zero, 0x7808(v0) | *((v0 + 7682)) = 0;
| if (a0 == 0) {
0x0003df48 bnez a0, 0x3df74 |
0x0003df4c addiu v0, zero, 1 | v0 = 1;
| label_0:
0x0003df50 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0003df54 lw v1, (s0) | v1 = *(s0);
0x0003df58 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (a0 != v1) {
0x0003df5c bne a0, v1, 0x3e090 | goto label_2;
| }
0x0003df60 lw s2, 0x38(sp) | s2 = *(var_38h);
0x0003df64 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0003df68 lw s0, 0x30(sp) | s0 = *(var_30h);
0x0003df6c addiu sp, sp, 0x40 |
0x0003df70 jr ra | return v0;
| }
0x0003df74 lw v0, 0x20(v1) | v0 = *((v1 + 8));
0x0003df78 addiu v1, zero, 1 | v1 = 1;
| if (v0 == 0) {
0x0003df7c beqz v0, 0x3df94 | goto label_3;
| }
0x0003df80 sw zero, 0xc(v0) | *((v0 + 3)) = 0;
| do {
0x0003df84 sw v1, 0x14(v0) | *((v0 + 5)) = v1;
0x0003df88 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0003df8c sw zero, 0xc(v0) | *((v0 + 3)) = 0;
0x0003df90 bnel v0, zero, 0x3df84 |
| } while (v0 == 0);
| label_3:
0x0003df94 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003df98 lw a1, -0x7edc(gp) | a1 = *(gp);
0x0003df9c lw t9, -0x7808(gp) | t9 = sym.imp.g_list_foreach;
0x0003dfa0 lw a0, 0x77e0(v0) | a0 = *((v0 + 7672));
0x0003dfa4 move a2, zero | a2 = 0;
0x0003dfa8 addiu a1, a1, -0x2edc | a1 += -0x2edc;
0x0003dfac jalr t9 | t9 ();
0x0003dfb0 lw v0, 0x7810(s2) | v0 = *((s2 + 7684));
0x0003dfb4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003dfb8 sw zero, 0x28(sp) | *(var_28h) = 0;
0x0003dfbc beqz v0, 0x3dfd8 |
| while (v1 == 0) {
| label_1:
0x0003dfc0 lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.0003d8e0 */
0x0003dfc4 addiu t9, t9, -0x2720 | t9 += -0x2720;
0x0003dfc8 bal 0x3d8e0 | fcn_0003d8e0 ();
0x0003dfcc nop |
0x0003dfd0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003dfd4 b 0x3df50 | goto label_0;
0x0003dfd8 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0003dfdc lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003dfe0 lw t9, -0x7ba4(gp) | t9 = sym.imp.g_dbus_proxy_new_for_bus_sync;
| /* str.com.axis.TemperatureController */
0x0003dfe4 addiu a3, a3, 0x3d74 | a3 += 0x3d74;
| /* str._com_axis_TemperatureController */
0x0003dfe8 addiu v0, v0, 0x3d94 | v0 += 0x3d94;
0x0003dfec addiu s1, sp, 0x28 | s1 = sp + 0x28;
0x0003dff0 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0003dff4 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0003dff8 sw a3, 0x14(sp) | *(var_14h) = a3;
0x0003dffc sw v0, 0x10(sp) | *(var_10h) = v0;
0x0003e000 move a2, zero | a2 = 0;
0x0003e004 move a1, zero | a1 = 0;
0x0003e008 addiu a0, zero, 1 | a0 = 1;
0x0003e00c jalr t9 | t9 ();
0x0003e010 lw v1, 0x28(sp) | v1 = *(var_28h);
0x0003e014 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e018 sw v0, 0x7810(s2) | *((s2 + 7684)) = v0;
0x0003e01c beqz v1, 0x3dfc0 |
| }
0x0003e020 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003e024 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e028 lw a3, 8(v1) | a3 = *((v1 + 2));
0x0003e02c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003e030 lw a0, (v0) | a0 = *(v0);
| /* str._7_Could_not_connect_to_proxy:__s_n */
0x0003e034 addiu a2, a2, 0x3db4 | a2 += 0x3db4;
0x0003e038 addiu a1, zero, 1 | a1 = 1;
0x0003e03c jalr t9 | t9 ();
0x0003e040 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e044 lw t9, -0x77c8(gp) | t9 = sym.imp.g_clear_error;
0x0003e048 move a0, s1 | a0 = s1;
0x0003e04c jalr t9 | t9 ();
0x0003e050 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e054 addiu a1, zero, 8 | a1 = 8;
0x0003e058 move a0, zero | a0 = 0;
0x0003e05c lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003e060 lw a3, -0x7fd8(gp) | a3 = *(gp);
0x0003e064 lw a2, -0x7fd8(gp) | a2 = *(gp);
| /* str.temperature_ctrld_set_proxy */
0x0003e068 addiu v0, v0, 0x4128 | v0 += 0x4128;
0x0003e06c lw t9, -0x7bdc(gp) | t9 = sym.imp.g_log;
0x0003e070 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0003e074 addiu v0, zero, 0x429 | v0 = 0x429;
0x0003e078 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.temperature.c */
0x0003e07c addiu a3, a3, 0x3dd8 | a3 += 0x3dd8;
| /* str.file__s:_line__d___s_:_should_not_be_reached */
0x0003e080 addiu a2, a2, -0x710 | a2 += -aav.0x00000710;
0x0003e084 jalr t9 | t9 ();
0x0003e088 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003e08c b 0x3dfc0 | goto label_1;
| label_2:
0x0003e090 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003e094 jalr t9 | t9 ();
0x0003e098 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/focusd @ 0x3e5d0 */
| #include <stdint.h>
|
; (fcn) sym.temperature_ctrld_set_limit () | void temperature_ctrld_set_limit () {
0x0003e5d0 lui gp, 3 |
0x0003e5d4 addiu gp, gp, 0x5b0 |
0x0003e5d8 addu gp, gp, t9 | gp += t9;
0x0003e5dc lw v0, -0x7a04(gp) | v0 = *((gp - 7809));
0x0003e5e0 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0003e5e4 addiu sp, sp, -0x88 |
0x0003e5e8 sw s0, 0x60(sp) | *(var_60h) = s0;
0x0003e5ec sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x0003e5f0 lw s0, 0x7818(v1) | s0 = *((v1 + 7686));
0x0003e5f4 lw v0, (v0) | v0 = *(v0);
0x0003e5f8 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x0003e5fc sw ra, 0x84(sp) | *(var_84h) = ra;
0x0003e600 sw fp, 0x80(sp) | *(var_80h) = fp;
0x0003e604 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x0003e608 sw s6, 0x78(sp) | *(var_78h) = s6;
0x0003e60c sw s5, 0x74(sp) | *(var_74h) = s5;
0x0003e610 sw s4, 0x70(sp) | *(var_70h) = s4;
0x0003e614 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x0003e618 sw s2, 0x68(sp) | *(var_68h) = s2;
0x0003e61c sw s1, 0x64(sp) | *(var_64h) = s1;
0x0003e620 sw v0, 0x5c(sp) | *(var_5ch) = v0;
| if (s0 == 0) {
0x0003e624 beql s0, zero, 0x3e9c4 | goto label_6;
| }
0x0003e628 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003e62c move s1, a0 | s1 = a0;
| if (a0 == 0) {
0x0003e630 beqz a0, 0x3e968 | goto label_7;
| }
0x0003e634 lw a0, 0x10(a0) | a0 = *((a0 + 4));
| if (a0 == 0) {
0x0003e638 beql a0, zero, 0x3e9b8 | goto label_8;
| }
0x0003e63c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e640 lw t9, -0x78c0(gp) | t9 = sym.imp.g_strv_length;
0x0003e644 move s3, a1 | s3 = a1;
0x0003e648 move s2, a2 | s2 = a2;
0x0003e64c jalr t9 | t9 ();
0x0003e650 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x0003e654 bnez v0, 0x3e6c0 |
0x0003e658 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e65c lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.g_strv_length__limit__sensor_names____1 */
0x0003e660 addiu a2, a2, 0x3f5c | a2 += 0x3f5c;
| label_2:
0x0003e664 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e668 move a0, zero | a0 = 0;
| /* str.temperature_ctrld_set_limit */
0x0003e66c addiu a1, a1, 0x410c | a1 += 0x410c;
0x0003e670 jalr t9 | t9 ();
0x0003e674 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e678 move s0, zero | s0 = 0;
| label_0:
0x0003e67c lw v0, 0x24(sp) | v0 = *(var_24h_2);
0x0003e680 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x0003e684 lw v1, (v0) | v1 = *(v0);
0x0003e688 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0003e68c bne a0, v1, 0x3eaa8 | goto label_9;
| }
0x0003e690 lw ra, 0x84(sp) | ra = *(var_84h);
0x0003e694 lw fp, 0x80(sp) | fp = *(var_80h);
0x0003e698 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x0003e69c lw s6, 0x78(sp) | s6 = *(var_78h);
0x0003e6a0 lw s5, 0x74(sp) | s5 = *(var_74h);
0x0003e6a4 lw s4, 0x70(sp) | s4 = *(var_70h);
0x0003e6a8 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x0003e6ac lw s2, 0x68(sp) | s2 = *(var_68h);
0x0003e6b0 lw s1, 0x64(sp) | s1 = *(var_64h);
0x0003e6b4 lw s0, 0x60(sp) | s0 = *(var_60h);
0x0003e6b8 addiu sp, sp, 0x88 |
0x0003e6bc jr ra | return v0;
| }
0x0003e6c0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0003e6c4 lw t9, -0x7b00(gp) | t9 = sym.imp.g_mutex_lock;
0x0003e6c8 addiu s0, v0, 0x77e4 | s0 = v0 + 0x77e4;
0x0003e6cc sw v0, 0x2c(sp) | *(var_2ch_3) = v0;
0x0003e6d0 move a0, s0 | a0 = s0;
0x0003e6d4 jalr t9 | t9 ();
0x0003e6d8 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x0003e6dc lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x0003e6e0 bnez v0, 0x3e8dc | goto label_10;
| }
0x0003e6e4 lw v0, 4(s1) | v0 = *((s1 + 1));
0x0003e6e8 lw s7, -0x7fd8(gp) | s7 = *(gp);
0x0003e6ec lw v1, (s1) | v1 = *(s1);
0x0003e6f0 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x0003e6f4 addiu v0, zero, 1 | v0 = 1;
0x0003e6f8 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| /* str.RangeLow */
0x0003e6fc addiu v0, s7, 0x3fcc | v0 = s7 + 0x3fcc;
0x0003e700 sw v0, 0x20(sp) | *(var_20h_3) = v0;
0x0003e704 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003e708 lw s6, -0x7edc(gp) | s6 = *(gp);
0x0003e70c sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x0003e710 lw v0, -0x7fd8(gp) | v0 = *(gp);
0x0003e714 sw s2, 0xc(s0) | *((s0 + 3)) = s2;
| /* str._6_Temperature_too_cold__control_disabled_for__u_seconds._n */
0x0003e718 addiu v0, v0, 0x4014 | v0 += 0x4014;
0x0003e71c sw v0, 0x30(sp) | *(var_30h_4) = v0;
0x0003e720 lw v0, -0x7edc(gp) | v0 = *(gp);
0x0003e724 sw v1, 0x10(s0) | *((s0 + 4)) = v1;
0x0003e728 sw s3, 8(s0) | *((s0 + 2)) = s3;
0x0003e72c move s2, zero | s2 = 0;
0x0003e730 addiu s6, s6, -0x2ff0 | s6 += -0x2ff0;
0x0003e734 sw v0, 0x34(sp) | *(var_34h_4) = v0;
0x0003e738 b 0x3e808 |
| while (v0 != 0) {
0x0003e73c lw t9, -0x7878(gp) | t9 = sym.imp.g_malloc;
0x0003e740 addiu a0, zero, 0x18 | a0 = 0x18;
0x0003e744 jalr t9 | t9 ();
0x0003e748 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e74c move s7, v0 | s7 = v0;
0x0003e750 lw v1, 0x20(sp) | v1 = *(var_20h_3);
0x0003e754 lw t9, -0x7d14(gp) | t9 = sym.temperature_ctrld_register_limit;
0x0003e758 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x0003e75c addiu a1, s7, 0xc | a1 = s7 + 0xc;
0x0003e760 sw v0, 0x18(sp) | *(var_18h_3) = v0;
0x0003e764 move a0, v0 | a0 = v0;
0x0003e768 sw zero, 4(s7) | *((s7 + 1)) = 0;
0x0003e76c sw zero, 0xc(s7) | *((s7 + 3)) = 0;
0x0003e770 sw zero, 0x14(s7) | *((s7 + 5)) = 0;
0x0003e774 sw s0, (s7) | *(s7) = s0;
0x0003e778 sw s4, 8(s7) | *((s7 + 2)) = s4;
0x0003e77c sw s4, 0x10(s7) | *((s7 + 4)) = s4;
0x0003e780 sw s6, 0x48(sp) | *(var_48h_3) = s6;
0x0003e784 sw s7, 0x4c(sp) | *(var_4ch_3) = s7;
0x0003e788 sw v1, 0x50(sp) | *(var_50h) = v1;
0x0003e78c sw s3, 0x54(sp) | *(var_54h) = s3;
0x0003e790 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0003e794 sw t9, 0x1c(sp) | *(var_1ch_2) = t9;
0x0003e798 bal 0x3e2a4 | sym_temperature_ctrld_register_limit ();
0x0003e79c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e7a0 sw v0, 8(s7) | *((s7 + 2)) = v0;
| if (v0 < 0) {
0x0003e7a4 bltz v0, 0x3e914 | goto label_11;
| }
0x0003e7a8 lw v1, 0x28(sp) | v1 = *(var_28h_2);
0x0003e7ac lw a0, 0x18(sp) | a0 = *(var_18h_3);
0x0003e7b0 addiu v0, v1, 0x3fd8 | v0 = v1 + 0x3fd8;
0x0003e7b4 lw t9, 0x1c(sp) | t9 = *(var_1ch_2);
0x0003e7b8 addiu a1, s7, 0x14 | a1 = s7 + 0x14;
0x0003e7bc sw s6, 0x48(sp) | *(var_48h_3) = s6;
0x0003e7c0 sw s7, 0x4c(sp) | *(var_4ch_3) = s7;
0x0003e7c4 sw v0, 0x50(sp) | *(var_50h) = v0;
0x0003e7c8 sw s5, 0x54(sp) | *(var_54h) = s5;
0x0003e7cc sw fp, 0x58(sp) | *(var_58h) = fp;
0x0003e7d0 jalr t9 | t9 ();
0x0003e7d4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e7d8 sw v0, 0x10(s7) | *((s7 + 4)) = v0;
| if (v0 < 0) {
0x0003e7dc bltz v0, 0x3e8f8 | goto label_12;
| }
0x0003e7e0 lw v0, 0x14(s0) | v0 = *((s0 + 5));
| if (v0 != 0) {
0x0003e7e4 beql v0, zero, 0x3e7fc |
0x0003e7e8 lw v0, 0x20(s0) | v0 = *((s0 + 8));
0x0003e7ec lw v0, 0x1c(s0) | v0 = *((s0 + 7));
0x0003e7f0 lw t9, -0x7c60(gp) | t9 = sym.temperature_ctrld_get_temperature;
| if (v0 == 0) {
0x0003e7f4 beqz v0, 0x3e9e8 | goto label_13;
| }
| label_3:
0x0003e7f8 lw v0, 0x20(s0) | v0 = *((s0 + 8));
| }
0x0003e7fc addiu s2, s2, 1 | s2++;
0x0003e800 sw v0, 4(s7) | *((s7 + 1)) = v0;
0x0003e804 sw s7, 0x20(s0) | *((s0 + 8)) = s7;
0x0003e808 lw t9, -0x78c0(gp) | t9 = sym.imp.g_strv_length;
0x0003e80c lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x0003e810 jalr t9 | t9 ();
0x0003e814 sltu v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x0003e818 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x0003e81c beqz v0, 0x3e98c | goto label_14;
| }
0x0003e820 lw v0, 0x10(s1) | v0 = *((s1 + 4));
0x0003e824 sll a3, s2, 2 | a3 = s2 << 2;
0x0003e828 addiu s4, zero, -1 | s4 = -1;
0x0003e82c lwx fp, a3(v0) | __asm ("lwx fp, a3(v0)");
0x0003e830 lw s3, 8(s1) | s3 = *((s1 + 2));
0x0003e834 lw s5, 0xc(s1) | s5 = *((s1 + 3));
0x0003e838 sw s4, 0x3c(sp) | *(var_3ch_4) = s4;
| if (fp == 0) {
0x0003e83c beqz fp, 0x3e944 | goto label_15;
| }
0x0003e840 lw t9, -0x7c64(gp) | t9 = sym.temperature_ctrld_get_sensor_number;
0x0003e844 addiu a1, sp, 0x3c | a1 = sp + 0x3c;
0x0003e848 move a0, fp | a0 = fp;
0x0003e84c bal 0x3e09c | sym_temperature_ctrld_get_sensor_number ();
0x0003e850 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e854 bnez v0, 0x3e73c |
| }
0x0003e858 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003e85c lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e860 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003e864 lw a0, (v0) | a0 = *(v0);
0x0003e868 move a3, fp | a3 = fp;
| /* str._4_Optics_temperature_sensor__s_not_found_n */
0x0003e86c addiu a2, a2, 0x3f9c | a2 += 0x3f9c;
0x0003e870 addiu a1, zero, 1 | a1 = 1;
0x0003e874 jalr t9 | t9 ();
0x0003e878 lw gp, 0x10(sp) | gp = *(var_10h_2);
| label_1:
0x0003e87c lw s1, 0x20(s0) | s1 = *((s0 + 8));
0x0003e880 lw s2, -0x7d04(gp) | s2 = sym.temperature_ctrld_unregister_limit;
| if (s1 == 0) {
0x0003e884 beqz s1, 0x3e8dc | goto label_10;
| }
| do {
0x0003e888 lw v0, 4(s1) | v0 = *((s1 + 1));
0x0003e88c lw a0, 8(s1) | a0 = *((s1 + 2));
0x0003e890 sw v0, 0x20(s0) | *((s0 + 8)) = v0;
| if (a0 >= 0) {
0x0003e894 bltz a0, 0x3e8a8 |
0x0003e898 move t9, s2 | t9 = s2;
0x0003e89c bal 0x3db08 | sym_temperature_ctrld_unregister_limit ();
0x0003e8a0 nop |
0x0003e8a4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| }
0x0003e8a8 lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x0003e8ac lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| if (a0 >= 0) {
0x0003e8b0 bltz a0, 0x3e8c8 |
0x0003e8b4 move t9, s2 | t9 = s2;
0x0003e8b8 bal 0x3db08 | sym_temperature_ctrld_unregister_limit ();
0x0003e8bc nop |
0x0003e8c0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e8c4 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| }
0x0003e8c8 move a0, s1 | a0 = s1;
0x0003e8cc jalr t9 | t9 ();
0x0003e8d0 lw s1, 0x20(s0) | s1 = *((s0 + 8));
0x0003e8d4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e8d8 bnez s1, 0x3e888 |
| } while (s1 != 0);
| label_10:
0x0003e8dc lw v0, 0x2c(sp) | v0 = *(var_2ch_3);
0x0003e8e0 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003e8e4 addiu a0, v0, 0x77e4 | a0 = v0 + 0x77e4;
0x0003e8e8 jalr t9 | t9 ();
0x0003e8ec move s0, zero | s0 = 0;
0x0003e8f0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e8f4 b 0x3e67c | goto label_0;
| label_12:
0x0003e8f8 lw a0, 8(s7) | a0 = *((s7 + 2));
0x0003e8fc lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| if (a0 >= 0) {
0x0003e900 bltz a0, 0x3e934 |
| label_4:
0x0003e904 lw t9, -0x7d04(gp) | t9 = sym.temperature_ctrld_unregister_limit;
0x0003e908 bal 0x3db08 | sym_temperature_ctrld_unregister_limit ();
0x0003e90c nop |
0x0003e910 lw gp, 0x10(sp) | gp = *(var_10h_2);
| label_11:
0x0003e914 lw a0, 0x10(s7) | a0 = *((s7 + 4));
| label_5:
0x0003e918 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| if (a0 < 0) {
0x0003e91c bltz a0, 0x3e934 | goto label_16;
| }
0x0003e920 lw t9, -0x7d04(gp) | t9 = sym.temperature_ctrld_unregister_limit;
0x0003e924 bal 0x3db08 | sym_temperature_ctrld_unregister_limit ();
0x0003e928 nop |
0x0003e92c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e930 lw t9, -0x76f0(gp) | t9 = *((gp - 7612));
| }
| label_16:
0x0003e934 move a0, s7 | a0 = s7;
0x0003e938 jalr t9 | t9 ();
0x0003e93c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e940 b 0x3e87c | goto label_1;
| label_15:
0x0003e944 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e948 lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e94c lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.sensor_name___NULL */
0x0003e950 addiu a2, a2, 0x3f88 | a2 += 0x3f88;
| /* str.temperature_ctrld_limit_add_sensor */
0x0003e954 addiu a1, a1, 0x40e8 | a1 += 0x40e8;
0x0003e958 move a0, zero | a0 = 0;
0x0003e95c jalr t9 | t9 ();
0x0003e960 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e964 b 0x3e87c | goto label_1;
| label_7:
0x0003e968 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003e96c lw a1, -0x7fd8(gp) | a1 = *(gp);
0x0003e970 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.limit___NULL */
0x0003e974 addiu a2, a2, 0x3f30 | a2 += 0x3f30;
| /* str.temperature_ctrld_set_limit */
0x0003e978 addiu a1, a1, 0x410c | a1 += 0x410c;
0x0003e97c jalr t9 | t9 ();
0x0003e980 move s0, zero | s0 = 0;
0x0003e984 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e988 b 0x3e67c | goto label_0;
| label_14:
0x0003e98c lw v0, 0x2c(sp) | v0 = *(var_2ch_3);
0x0003e990 lw t9, -0x7964(gp) | t9 = sym.imp.g_mutex_unlock;
0x0003e994 addiu a0, v0, 0x77e4 | a0 = v0 + 0x77e4;
0x0003e998 jalr t9 | t9 ();
0x0003e99c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e9a0 lw t9, -0x7edc(gp) | t9 = *(gp);
| /* fcn.0003d8e0 */
0x0003e9a4 addiu t9, t9, -0x2720 | t9 += -0x2720;
0x0003e9a8 addiu s0, zero, 1 | s0 = 1;
0x0003e9ac bal 0x3d8e0 | fcn_0003d8e0 ();
0x0003e9b0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e9b4 b 0x3e67c | goto label_0;
| label_8:
0x0003e9b8 lw t9, -0x79d8(gp) | t9 = sym.imp.g_return_if_fail_warning;
| /* str.limit__sensor_names___NULL */
0x0003e9bc addiu a2, a2, 0x3f40 | a2 += 0x3f40;
0x0003e9c0 b 0x3e664 | goto label_2;
| label_6:
0x0003e9c4 lw a0, -0x7fd8(gp) | a0 = *(gp);
0x0003e9c8 lw t9, -0x7a58(gp) | t9 = sym.imp.fwrite;
0x0003e9cc lw a3, (v0) | a3 = *(v0);
0x0003e9d0 addiu a2, zero, 0x4b | a2 = 0x4b;
0x0003e9d4 addiu a1, zero, 1 | a1 = 1;
| /* str._4_temperature_ctrld_set_limit_called__but_temperature_support_is_disabled_n */
0x0003e9d8 addiu a0, a0, 0x3ee4 | a0 += 0x3ee4;
0x0003e9dc jalr t9 | t9 ();
0x0003e9e0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003e9e4 b 0x3e67c | goto label_0;
| label_13:
0x0003e9e8 lw a0, 0x3c(sp) | a0 = *(var_3ch_4);
0x0003e9ec addiu a1, sp, 0x40 | a1 = sp + 0x40;
0x0003e9f0 bal 0x3e44c | sym_temperature_ctrld_get_temperature ();
0x0003e9f4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x0003e9f8 beqz v0, 0x3ea74 | goto label_17;
| }
0x0003e9fc lw t9, -0x7ec4(gp) | t9 = *(gp);
0x0003ea00 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x0003ea04 bal 0x46fc0 | fcn_00046fc0 ();
0x0003ea08 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003ea0c lw a2, 0x40(sp) | a2 = *(var_40h_3);
0x0003ea10 lw a3, 0x44(sp) | a3 = *(var_44h_3);
0x0003ea14 lw t9, -0x7d30(gp) | t9 = *(gp);
0x0003ea18 move a0, v0 | a0 = v0;
0x0003ea1c move a1, v1 | a1 = v1;
0x0003ea20 bal 0x45d80 | fcn_00045d80 ();
0x0003ea24 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 <= 0) {
0x0003ea28 blez v0, 0x3e7f8 | goto label_3;
| }
0x0003ea2c lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003ea30 lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003ea34 lw a3, 0x14(s0) | a3 = *((s0 + 5));
0x0003ea38 lw a0, (v0) | a0 = *(v0);
0x0003ea3c lw a2, 0x30(sp) | a2 = *(var_30h_4);
0x0003ea40 addiu a1, zero, 1 | a1 = 1;
0x0003ea44 jalr t9 | t9 ();
0x0003ea48 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003ea4c lw v0, 0x34(sp) | v0 = *(var_34h_4);
0x0003ea50 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x0003ea54 lw t9, -0x790c(gp) | t9 = sym.imp.g_timeout_add_seconds;
0x0003ea58 addiu a1, v0, -0x26bc | a1 = v0 + -0x26bc;
0x0003ea5c addiu v0, zero, 1 | v0 = 1;
0x0003ea60 move a2, zero | a2 = 0;
0x0003ea64 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
0x0003ea68 jalr t9 | t9 ();
0x0003ea6c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x0003ea70 b 0x3e7f8 | goto label_3;
| label_17:
0x0003ea74 lw v0, -0x7990(gp) | v0 = *((gp - 7780));
0x0003ea78 lw a2, -0x7fd8(gp) | a2 = *(gp);
0x0003ea7c lw t9, -0x7798(gp) | t9 = sym.imp.__fprintf_chk
0x0003ea80 lw a0, (v0) | a0 = *(v0);
0x0003ea84 lw a3, 0x3c(sp) | a3 = *(var_3ch_4);
| /* str._3_Could_not_read_temperature_for_sensor__d_n */
0x0003ea88 addiu a2, a2, 0x3fe4 | a2 += 0x3fe4;
0x0003ea8c addiu a1, zero, 1 | a1 = 1;
0x0003ea90 jalr t9 | t9 ();
0x0003ea94 lw a0, 8(s7) | a0 = *((s7 + 2));
0x0003ea98 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (a0 >= 0) {
0x0003ea9c bgez a0, 0x3e904 | goto label_4;
| }
0x0003eaa0 lw a0, 0x10(s7) | a0 = *((s7 + 4));
0x0003eaa4 b 0x3e918 | goto label_5;
| label_9:
0x0003eaa8 lw t9, -0x7a94(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003eaac jalr t9 | t9 ();
0x0003eab0 nop |
| }
[*] Function fprintf used 186 times focusd