[*] Binary protection state of io2d
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of io2d
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/io2d @ 0x26630 */
| #include <stdint.h>
|
; (fcn) sym.generate_service_registry () | void generate_service_registry () {
0x00026630 lui gp, 2 |
0x00026634 addiu gp, gp, 0x6a50 |
0x00026638 addu gp, gp, t9 | gp += t9;
0x0002663c addiu sp, sp, -0x68 |
0x00026640 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x00026644 sw s6, 0x58(sp) | *(var_58h) = s6;
0x00026648 lw s6, -0x7984(gp) | s6 = *((gp - 7777));
0x0002664c lw t9, -0x7868(gp) | t9 = sym.imp.g_string_new;
0x00026650 sw gp, 0x28(sp) | *(var_28h) = gp;
0x00026654 lw v0, (s6) | v0 = *(s6);
0x00026658 sw ra, 0x64(sp) | *(var_64h) = ra;
0x0002665c sw s5, 0x54(sp) | *(var_54h) = s5;
0x00026660 sw s4, 0x50(sp) | *(var_50h) = s4;
0x00026664 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00026668 sw s2, 0x48(sp) | *(var_48h) = s2;
0x0002666c sw s0, 0x40(sp) | *(var_40h) = s0;
| /* str.__xml_version_1.0__encoding_UTF_8_____n_service_name_com.axis.Configuration.Legacy.IOControl1.IOPort___n___objects__n */
0x00026670 addiu a0, a0, 0xebc | a0 += 0xebc;
0x00026674 sw fp, 0x60(sp) | *(var_60h) = fp;
0x00026678 sw s7, 0x5c(sp) | *(var_5ch) = s7;
0x0002667c sw s1, 0x44(sp) | *(var_44h) = s1;
0x00026680 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00026684 sw zero, 0x38(sp) | *(var_38h) = 0;
0x00026688 move s0, zero | s0 = 0;
0x0002668c jalr t9 | t9 ();
0x00026690 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026694 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x00026698 lw s4, -0x7fdc(gp) | s4 = *(gp);
0x0002669c lw s3, -0x7fdc(gp) | s3 = *(gp);
0x000266a0 move s2, v0 | s2 = v0;
0x000266a4 bal 0xfa14 | sym_io_port_list_length ();
0x000266a8 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000266ac move s5, zero | s5 = 0;
| /* str.ioport */
0x000266b0 addiu s4, s4, -0x29c0 | s4 += -0x29c0;
| /* str._____object_name__com_axis_Configuration_Legacy_IOControl_IOPort__i___n_______interfaces__n_________interface_name_com.axis.Configuration.Legacy.IOControl1.IOPort__emitspropertieschanged_true_____n_________interface_name_com.axis.Configuration.Legacy.IOControl1.Input__emitspropertieschanged_true_____n_________interface_name_com.axis.Configuration.Legacy.IOControl1.Output__emitspropertieschanged_true_____n________interfaces__n______object__n */
0x000266b4 addiu s3, s3, 0xf34 | s3 += 0xf34;
0x000266b8 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x000266bc beqz v0, 0x26718 | goto label_6;
| }
| do {
0x000266c0 lw t9, -0x7e18(gp) | t9 = sym.io_port_list_nth_data;
0x000266c4 move a0, s0 | a0 = s0;
0x000266c8 bal 0xf238 | sym_io_port_list_nth_data ();
0x000266cc move s1, v0 | s1 = v0;
0x000266d0 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x000266d4 beqz v0, 0x26700 |
0x000266d8 lw t9, -0x7f54(gp) | t9 = sym.io_port_get_property;
0x000266dc move a1, s4 | a1 = s4;
0x000266e0 move a0, v0 | a0 = v0;
0x000266e4 bal 0xe530 | sym_io_port_get_property ();
0x000266e8 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x000266ec bnez v0, 0x26b2c | goto label_7;
| }
| label_0:
0x000266f0 lw t9, -0x7f4c(gp) | t9 = sym.io_port_unref;
0x000266f4 move a0, s1 | a0 = s1;
0x000266f8 bal 0xeba4 | sym_io_port_unref ();
0x000266fc lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x00026700 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x00026704 addiu s0, s0, 1 | s0++;
0x00026708 bal 0xfa14 | sym_io_port_list_length ();
0x0002670c slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00026710 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026714 bnez v0, 0x266c0 |
| } while (v0 != 0);
| label_6:
0x00026718 lw a1, -0x7fdc(gp) | a1 = *(gp);
| if (s5 == 0) {
0x0002671c beqz s5, 0x26b84 | goto label_8;
| }
| label_3:
0x00026720 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00026724 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_string_append;
| /* str.____objects__n__service__n */
0x00026728 addiu a1, a1, 0x12b0 | a1 += 0x12b0;
0x0002672c move a0, s2 | a0 = s2;
0x00026730 jalr t9 | t9 ();
0x00026734 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026738 move a1, zero | a1 = 0;
0x0002673c move a0, s2 | a0 = s2;
0x00026740 lw t9, -0x78e4(gp) | t9 = sym.imp.g_string_free;
0x00026744 addiu s7, sp, 0x38 | s7 = sp + 0x38;
0x00026748 jalr t9 | t9 ();
0x0002674c lw gp, 0x28(sp) | gp = *(var_28h);
0x00026750 move a3, s7 | a3 = s7;
0x00026754 addiu a2, zero, -1 | a2 = -1;
0x00026758 lw s5, -0x7fdc(gp) | s5 = *(gp);
0x0002675c lw t9, -0x7a84(gp) | t9 = sym.imp.g_file_set_contents;
0x00026760 move a1, v0 | a1 = v0;
| /* str._etc_io2d.d_legacy.tmp */
0x00026764 addiu a0, s5, 0x12cc | a0 = s5 + 0x12cc;
0x00026768 move s0, v0 | s0 = v0;
0x0002676c jalr t9 | t9 ();
0x00026770 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00026774 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x00026778 beqz v0, 0x26be4 | goto label_9;
| }
0x0002677c lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00026780 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00026784 lw t9, -0x7b68(gp) | t9 = sym.imp.g_log;
0x00026788 addiu a3, a3, 0x3d20 | a3 += 0x3d20;
| /* str._sCouldnt_write_to_service_registry */
0x0002678c addiu a2, a2, 0x12e4 | a2 += 0x12e4;
0x00026790 addiu a1, zero, 0x10 | a1 = 0x10;
0x00026794 move a0, zero | a0 = 0;
0x00026798 jalr t9 | t9 ();
0x0002679c lw gp, 0x28(sp) | gp = *(var_28h);
0x000267a0 lw t9, -0x7ad8(gp) | t9 = sym.imp.g_error_free;
0x000267a4 lw a0, 0x38(sp) | a0 = *(var_38h);
0x000267a8 jalr t9 | t9 ();
0x000267ac lw gp, 0x28(sp) | gp = *(var_28h);
| label_5:
0x000267b0 lw t9, -0x7718(gp) | t9 = *((gp - 7622));
0x000267b4 move a0, s0 | a0 = s0;
0x000267b8 jalr t9 | t9 ();
0x000267bc lw gp, 0x28(sp) | gp = *(var_28h);
0x000267c0 sw zero, 0x38(sp) | *(var_38h) = 0;
0x000267c4 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x000267c8 lw s1, -0x7fdc(gp) | s1 = *(gp);
0x000267cc move s0, zero | s0 = 0;
0x000267d0 bal 0xfa14 | sym_io_port_list_length ();
0x000267d4 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
| /* str.ioport */
0x000267d8 addiu s1, s1, -0x29c0 | s1 += -0x29c0;
0x000267dc lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x000267e0 beqz v0, 0x26838 | goto label_10;
| }
| do {
0x000267e4 lw t9, -0x7e18(gp) | t9 = sym.io_port_list_nth_data;
0x000267e8 move a0, s0 | a0 = s0;
0x000267ec bal 0xf238 | sym_io_port_list_nth_data ();
0x000267f0 move s2, v0 | s2 = v0;
0x000267f4 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x000267f8 beqz v0, 0x26820 |
0x000267fc lw t9, -0x7f54(gp) | t9 = sym.io_port_get_property;
0x00026800 move a1, s1 | a1 = s1;
0x00026804 move a0, v0 | a0 = v0;
0x00026808 bal 0xe530 | sym_io_port_get_property ();
0x0002680c lw gp, 0x28(sp) | gp = *(var_28h);
0x00026810 lw t9, -0x7f4c(gp) | t9 = sym.io_port_unref;
0x00026814 move a0, s2 | a0 = s2;
0x00026818 bal 0xeba4 | sym_io_port_unref ();
0x0002681c lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x00026820 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x00026824 addiu s0, s0, 1 | s0++;
0x00026828 bal 0xfa14 | sym_io_port_list_length ();
0x0002682c slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00026830 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026834 bnez v0, 0x267e4 |
| } while (v0 != 0);
| label_10:
0x00026838 lw a0, -0x7fdc(gp) | a0 = *(gp);
0x0002683c lw t9, -0x7868(gp) | t9 = sym.imp.g_string_new;
| /* str._mapping__n___group_name_root.Input___n_____parameter_name_NbrOfInputs___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort_0__n________________interface_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________name_NbrOfInputs___n_________type_type_int____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_readonly:int:maxlen3_min0_max100_____n_________legacyoption_name_accessControl__n______________________value_operator:1_admin:1_viewer:1_____n________legacyoptions__n______parameter__n____group__n___group_name_root.Output___n_____parameter_name_NbrOfOutputs___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort_0__n________________interface_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________name_NbrOfOutputs___n_________type_type_int____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_readonly:int:maxlen3_min0_max100_____n_________legacyoption_name_accessControl__n______________________value_operator:1_admin:1_viewer:1_____n________legacyoptions__n______parameter__n____group__n___group_name_root.Properties.IO___n_____parameter_name_ManualTriggerNbr___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort_0__n________________interface_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________name_ManualTriggerNbr___n_________type_type_int____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_readonly:int:maxlen3_min0_max100_____n_________legacyoption_name_accessControl__n______________________value_operator:1_admin:1_viewer:1_____n________legacyoptions__n______parameter__n____group__n */
0x00026840 addiu a0, a0, 0x1378 | a0 += 0x1378;
0x00026844 jalr t9 | t9 ();
0x00026848 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002684c move s1, v0 | s1 = v0;
0x00026850 move s0, zero | s0 = 0;
0x00026854 lw fp, -0x7fdc(gp) | fp = *(gp);
0x00026858 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x0002685c addiu v0, fp, 0x3d20 | v0 = fp + 0x3d20;
0x00026860 lw s4, -0x7fdc(gp) | s4 = *(gp);
0x00026864 lw s3, -0x7fdc(gp) | s3 = *(gp);
0x00026868 lw s2, -0x7fdc(gp) | s2 = *(gp);
0x0002686c sw v0, 0x34(sp) | *(var_34h) = v0;
0x00026870 bal 0xfa14 | sym_io_port_list_length ();
0x00026874 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
| /* str.ioport */
0x00026878 addiu s4, s4, -0x29c0 | s4 += -0x29c0;
| /* str.___group_name_root.IOPort.I_d___n_____parameter_name_Configurable___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________name_Configurable___n_________type_type_bool__truevalue_yes__falsevalue_no_____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_readonly:yes_no_____n_________legacyoption_name_accessControl__n______________________value_operator:1_admin:1_viewer:1_____n________legacyoptions__n______parameter__n_____parameter_name_Direction___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________name_Direction___n_________type_type_string____n________property__n_______legacyoptions__n_________legacyoption_name_type__value__senum:inputInput__outputOutput_____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n________legacyoptions__n______parameter__n_____parameter_name_Usage___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________name_Usage___n_________type_type_string____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_string____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n________legacyoptions__n______parameter__n____group__n */
0x0002687c addiu s3, s3, 0x1ae8 | s3 += 0x1ae8;
| /* str.readonly: */
0x00026880 addiu s2, s2, 0xeb0 | s2 += 0xeb0;
0x00026884 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x00026888 beqz v0, 0x2691c | goto label_11;
| }
| do {
0x0002688c lw t9, -0x7e18(gp) | t9 = sym.io_port_list_nth_data;
0x00026890 move a0, s0 | a0 = s0;
0x00026894 bal 0xf238 | sym_io_port_list_nth_data ();
0x00026898 move fp, v0 | fp = v0;
0x0002689c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x000268a0 beqz v0, 0x26904 |
0x000268a4 lw t9, -0x7f54(gp) | t9 = sym.io_port_get_property;
0x000268a8 move a1, s4 | a1 = s4;
0x000268ac move a0, v0 | a0 = v0;
0x000268b0 bal 0xe530 | sym_io_port_get_property ();
0x000268b4 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x000268b8 beqz v0, 0x268f4 |
0x000268bc lw a0, (fp) | a0 = *(fp);
0x000268c0 addiu v0, zero, 2 | v0 = 2;
0x000268c4 lw a3, 0x24(fp) | a3 = *(arg_24h);
| if (a0 == v0) {
0x000268c8 beq a0, v0, 0x26b4c | goto label_12;
| }
0x000268cc move v0, s2 | v0 = s2;
| label_1:
0x000268d0 lw t9, -0x7b64(gp) | t9 = sym.imp.g_string_append_printf
0x000268d4 sw a3, 0x18(sp) | *(var_18h) = a3;
0x000268d8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000268dc sw a3, 0x10(sp) | *(var_10h) = a3;
0x000268e0 move a2, a3 | a2 = a3;
0x000268e4 move a1, s3 | a1 = s3;
0x000268e8 move a0, s1 | a0 = s1;
0x000268ec jalr t9 | t9 ();
0x000268f0 lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x000268f4 lw t9, -0x7f4c(gp) | t9 = sym.io_port_unref;
0x000268f8 move a0, fp | a0 = fp;
0x000268fc bal 0xeba4 | sym_io_port_unref ();
0x00026900 lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x00026904 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x00026908 addiu s0, s0, 1 | s0++;
0x0002690c bal 0xfa14 | sym_io_port_list_length ();
0x00026910 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00026914 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026918 bnez v0, 0x2688c |
| } while (v0 != 0);
| label_11:
0x0002691c lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x00026920 lw s4, -0x7fdc(gp) | s4 = *(gp);
0x00026924 lw s3, -0x7fdc(gp) | s3 = *(gp);
0x00026928 move s2, zero | s2 = 0;
0x0002692c bal 0xfa14 | sym_io_port_list_length ();
0x00026930 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
| /* str.ioport */
0x00026934 addiu s4, s4, -0x29c0 | s4 += -0x29c0;
0x00026938 addiu fp, zero, 1 | fp = 1;
| /* str.___group_name_root.IOPort.I_d.Input___n_____parameter_name_Name___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.Input__n________________name_Name___n_________type_type_string_____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_string____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n________legacyoptions__n______parameter__n_____parameter_name_Trig___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.Input__n________________name_Trig___n_________type_type_string_____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_enum:closedClosed__openOpen_____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n_________legacyoption_name_nicename__n______________________value_Generate_when_circuit_is..._____n_________legacyoption_name_daemon__value_iod_____n_________legacyoption_name_signal__value_1_____n________legacyoptions__n______parameter__n____group__n */
0x0002693c addiu s3, s3, 0x21dc | s3 += 0x21dc;
0x00026940 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x00026944 beqz v0, 0x269cc | goto label_13;
| }
| do {
0x00026948 lw t9, -0x7e18(gp) | t9 = sym.io_port_list_nth_data;
0x0002694c move a0, s2 | a0 = s2;
0x00026950 bal 0xf238 | sym_io_port_list_nth_data ();
0x00026954 move s0, v0 | s0 = v0;
0x00026958 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002695c beqz v0, 0x269b4 |
0x00026960 lw t9, -0x7f54(gp) | t9 = sym.io_port_get_property;
0x00026964 move a1, s4 | a1 = s4;
0x00026968 move a0, v0 | a0 = v0;
0x0002696c bal 0xe530 | sym_io_port_get_property ();
0x00026970 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x00026974 beqz v0, 0x269a4 |
0x00026978 lw v0, (s0) | v0 = *(s0);
0x0002697c lw t9, -0x7f4c(gp) | t9 = sym.io_port_unref;
| if (v0 == fp) {
0x00026980 beq v0, fp, 0x269a8 | goto label_14;
| }
0x00026984 lw a3, 0x24(s0) | a3 = *((s0 + 9));
0x00026988 lw t9, -0x7b64(gp) | t9 = sym.imp.g_string_append_printf
0x0002698c sw a3, 0x10(sp) | *(var_10h) = a3;
0x00026990 move a2, a3 | a2 = a3;
0x00026994 move a1, s3 | a1 = s3;
0x00026998 move a0, s1 | a0 = s1;
0x0002699c jalr t9 | t9 ();
0x000269a0 lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x000269a4 lw t9, -0x7f4c(gp) | t9 = sym.io_port_unref;
| label_14:
0x000269a8 move a0, s0 | a0 = s0;
0x000269ac bal 0xeba4 | sym_io_port_unref ();
0x000269b0 lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x000269b4 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x000269b8 addiu s2, s2, 1 | s2++;
0x000269bc bal 0xfa14 | sym_io_port_list_length ();
0x000269c0 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x000269c4 lw gp, 0x28(sp) | gp = *(var_28h);
0x000269c8 bnez v0, 0x26948 |
| } while (v0 != 0);
| label_13:
0x000269cc lw a1, -0x7fdc(gp) | a1 = *(gp);
0x000269d0 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x000269d4 lw s3, -0x7fdc(gp) | s3 = *(gp);
0x000269d8 move s2, zero | s2 = 0;
| /* str.___group_name_root.IOPort.I_i.Output___n_____parameter_name_DelayTime___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.Output__n________________name_DelayTime___n_________type_type_int_____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_int____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n________legacyoptions__n______parameter__n______parameter_name_Mode___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.Output__n________________name_Mode___n_________type_type_string_____n________property__n_______legacyoptions__n_________legacyoption_name_type__n______________________value_enum:bistableBistable__monostableMonostable_____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n________legacyoptions__n______parameter__n______parameter_name_Name___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.Output__n________________name_Name___n_________type_type_string_____n________property__n_______legacyoptions__n_________legacyoption_name_type__value_string____n_________legacyoption_name_accessControl__n______________________value_operator:3_admin:3_viewer:1_____n________legacyoptions__n______parameter__n_____parameter_name_Active___n_______property_dbus_com.axis.Configuration.Legacy.IOControl1.IOPort__n________________object__com_axis_Configuration_Legacy_IOControl_IOPort__i__n________________interface_com.axis.Configuration.Legacy.IOControl1.Output_ */
0x000269dc addiu s4, a1, 0x2730 | s4 = a1 + 0x2730;
0x000269e0 bal 0xfa14 | sym_io_port_list_length ();
0x000269e4 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
| /* str.ioport */
0x000269e8 addiu s3, s3, -0x29c0 | s3 += -0x29c0;
0x000269ec lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x000269f0 beqz v0, 0x26a58 | goto label_15;
| }
| do {
0x000269f4 lw t9, -0x7e18(gp) | t9 = sym.io_port_list_nth_data;
0x000269f8 move a0, s2 | a0 = s2;
0x000269fc bal 0xf238 | sym_io_port_list_nth_data ();
0x00026a00 move s0, v0 | s0 = v0;
0x00026a04 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x00026a08 beqz v0, 0x26a40 |
0x00026a0c lw t9, -0x7f54(gp) | t9 = sym.io_port_get_property;
0x00026a10 move a1, s3 | a1 = s3;
0x00026a14 move a0, v0 | a0 = v0;
0x00026a18 bal 0xe530 | sym_io_port_get_property ();
0x00026a1c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x00026a20 beqz v0, 0x26a30 |
0x00026a24 lw v0, (s0) | v0 = *(s0);
0x00026a28 lw a3, 0x24(s0) | a3 = *((s0 + 9));
| if (v0 == 0) {
0x00026a2c bnel v0, zero, 0x26b54 | goto label_16;
| }
| }
| label_2:
0x00026a30 lw t9, -0x7f4c(gp) | t9 = sym.io_port_unref;
0x00026a34 move a0, s0 | a0 = s0;
0x00026a38 bal 0xeba4 | sym_io_port_unref ();
0x00026a3c lw gp, 0x28(sp) | gp = *(var_28h);
| }
0x00026a40 lw t9, -0x7d50(gp) | t9 = sym.io_port_list_length;
0x00026a44 addiu s2, s2, 1 | s2++;
0x00026a48 bal 0xfa14 | sym_io_port_list_length ();
0x00026a4c slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x00026a50 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026a54 bnez v0, 0x269f4 |
| } while (v0 != 0);
| label_15:
0x00026a58 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00026a5c lw t9, -0x7b5c(gp) | t9 = sym.imp.g_string_append;
| /* str.__mapping__n */
0x00026a60 addiu a1, a1, 0x34e0 | a1 += 0x34e0;
0x00026a64 move a0, s1 | a0 = s1;
0x00026a68 jalr t9 | t9 ();
0x00026a6c lw gp, 0x28(sp) | gp = *(var_28h);
0x00026a70 move a1, zero | a1 = 0;
0x00026a74 lw t9, -0x78e4(gp) | t9 = sym.imp.g_string_free;
0x00026a78 move a0, s1 | a0 = s1;
0x00026a7c jalr t9 | t9 ();
0x00026a80 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026a84 move a3, s7 | a3 = s7;
0x00026a88 addiu a2, zero, -1 | a2 = -1;
0x00026a8c lw t9, -0x7a84(gp) | t9 = sym.imp.g_file_set_contents;
0x00026a90 move a1, v0 | a1 = v0;
| /* str._etc_io2d.d_legacy.tmp */
0x00026a94 addiu a0, s5, 0x12cc | a0 = s5 + 0x12cc;
0x00026a98 move s0, v0 | s0 = v0;
0x00026a9c jalr t9 | t9 ();
0x00026aa0 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00026aa4 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x00026aa8 beqz v0, 0x26b9c | goto label_17;
| }
0x00026aac lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00026ab0 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00026ab4 lw t9, -0x7b68(gp) | t9 = sym.imp.g_log;
0x00026ab8 addiu a3, a3, 0x3d20 | a3 += 0x3d20;
| /* str._sCouldnt_write_to_legacy_mappings */
0x00026abc addiu a2, a2, 0x34ec | a2 += 0x34ec;
0x00026ac0 addiu a1, zero, 0x10 | a1 = 0x10;
0x00026ac4 move a0, zero | a0 = 0;
0x00026ac8 jalr t9 | t9 ();
0x00026acc lw gp, 0x28(sp) | gp = *(var_28h);
0x00026ad0 lw t9, -0x7ad8(gp) | t9 = sym.imp.g_error_free;
0x00026ad4 lw a0, 0x38(sp) | a0 = *(var_38h);
0x00026ad8 jalr t9 | t9 ();
0x00026adc lw gp, 0x28(sp) | gp = *(var_28h);
| do {
| label_4:
0x00026ae0 lw t9, -0x7718(gp) | t9 = *((gp - 7622));
0x00026ae4 move a0, s0 | a0 = s0;
0x00026ae8 jalr t9 | t9 ();
0x00026aec lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x00026af0 lw v0, (s6) | v0 = *(s6);
0x00026af4 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v1 != v0) {
0x00026af8 bne v1, v0, 0x26c2c | goto label_18;
| }
0x00026afc lw ra, 0x64(sp) | ra = *(var_64h);
0x00026b00 lw fp, 0x60(sp) | fp = *(var_60h);
0x00026b04 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x00026b08 lw s6, 0x58(sp) | s6 = *(var_58h);
0x00026b0c lw s5, 0x54(sp) | s5 = *(var_54h);
0x00026b10 lw s4, 0x50(sp) | s4 = *(var_50h);
0x00026b14 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x00026b18 lw s2, 0x48(sp) | s2 = *(var_48h);
0x00026b1c lw s1, 0x44(sp) | s1 = *(var_44h);
0x00026b20 lw s0, 0x40(sp) | s0 = *(var_40h);
0x00026b24 addiu sp, sp, 0x68 |
0x00026b28 jr ra | return v0;
| label_7:
0x00026b2c lw t9, -0x7b64(gp) | t9 = sym.imp.g_string_append_printf
0x00026b30 lw a2, 0x24(s1) | a2 = *((s1 + 9));
0x00026b34 move a1, s3 | a1 = s3;
0x00026b38 move a0, s2 | a0 = s2;
0x00026b3c jalr t9 | t9 ();
0x00026b40 addiu s5, zero, 1 | s5 = 1;
0x00026b44 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026b48 b 0x266f0 | goto label_0;
| label_12:
0x00026b4c lw v0, 0x34(sp) | v0 = *(var_34h);
0x00026b50 b 0x268d0 | goto label_1;
| label_16:
0x00026b54 lw t9, -0x7b64(gp) | t9 = sym.imp.g_string_append_printf
0x00026b58 sw a3, 0x20(sp) | *(var_20h) = a3;
0x00026b5c sw a3, 0x1c(sp) | *(var_1ch) = a3;
0x00026b60 sw a3, 0x18(sp) | *(var_18h) = a3;
0x00026b64 sw a3, 0x14(sp) | *(var_14h) = a3;
0x00026b68 sw a3, 0x10(sp) | *(var_10h) = a3;
0x00026b6c move a2, a3 | a2 = a3;
0x00026b70 move a1, s4 | a1 = s4;
0x00026b74 move a0, s1 | a0 = s1;
0x00026b78 jalr t9 | t9 ();
0x00026b7c lw gp, 0x28(sp) | gp = *(var_28h);
0x00026b80 b 0x26a30 | goto label_2;
| label_8:
0x00026b84 lw t9, -0x7b5c(gp) | t9 = sym.imp.g_string_append;
| /* str._____object_name__com_axis_Configuration_Legacy_IOControl_IOPort_0___n_______interfaces__n_________interface_name_com.axis.Configuration.Legacy.IOControl1.IOPort__emitspropertieschanged_true_____n_________interface_name_com.axis.Configuration.Legacy.IOControl1.Input__emitspropertieschanged_true_____n_________interface_name_com.axis.Configuration.Legacy.IOControl1.Output__emitspropertieschanged_true_____n________interfaces__n______object__n */
0x00026b88 addiu a1, a1, 0x10f4 | a1 += 0x10f4;
0x00026b8c move a0, s2 | a0 = s2;
0x00026b90 jalr t9 | t9 ();
0x00026b94 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026b98 b 0x26720 | goto label_3;
| label_17:
0x00026b9c lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00026ba0 lw t9, -0x7838(gp) | t9 = sym.imp.rename;
| /* str._etc_legacyconfig_legacymappings.d_io2d.xml */
0x00026ba4 addiu a1, a1, 0x3510 | a1 += 0x3510;
| /* str._etc_io2d.d_legacy.tmp */
0x00026ba8 addiu a0, s5, 0x12cc | a0 = s5 + 0x12cc;
0x00026bac jalr t9 | t9 ();
0x00026bb0 addiu v1, zero, -1 | v1 = -1;
0x00026bb4 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026bb8 bne v0, v1, 0x26ae0 |
| } while (v0 != v1);
0x00026bbc lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00026bc0 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00026bc4 lw t9, -0x7b68(gp) | t9 = sym.imp.g_log;
0x00026bc8 addiu a3, a3, 0x3d20 | a3 += 0x3d20;
| /* str._sCouldnt_move_service_registry_file_correctly */
0x00026bcc addiu a2, a2, 0x1348 | a2 += 0x1348;
0x00026bd0 addiu a1, zero, 0x10 | a1 = 0x10;
0x00026bd4 move a0, zero | a0 = 0;
0x00026bd8 jalr t9 | t9 ();
0x00026bdc lw gp, 0x28(sp) | gp = *(var_28h);
0x00026be0 b 0x26ae0 | goto label_4;
| label_9:
0x00026be4 lw a1, -0x7fdc(gp) | a1 = *(gp);
0x00026be8 lw t9, -0x7838(gp) | t9 = sym.imp.rename;
| /* str._etc_service_registry_services.d_io2d_service_registry.conf */
0x00026bec addiu a1, a1, 0x130c | a1 += 0x130c;
| /* str._etc_io2d.d_legacy.tmp */
0x00026bf0 addiu a0, s5, 0x12cc | a0 = s5 + 0x12cc;
0x00026bf4 jalr t9 | t9 ();
0x00026bf8 addiu v1, zero, -1 | v1 = -1;
0x00026bfc lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != v1) {
0x00026c00 bne v0, v1, 0x267b0 | goto label_5;
| }
0x00026c04 lw a3, -0x7fdc(gp) | a3 = *(gp);
0x00026c08 lw a2, -0x7fdc(gp) | a2 = *(gp);
0x00026c0c lw t9, -0x7b68(gp) | t9 = sym.imp.g_log;
0x00026c10 addiu a3, a3, 0x3d20 | a3 += 0x3d20;
| /* str._sCouldnt_move_service_registry_file_correctly */
0x00026c14 addiu a2, a2, 0x1348 | a2 += 0x1348;
0x00026c18 addiu a1, zero, 0x10 | a1 = 0x10;
0x00026c1c move a0, zero | a0 = 0;
0x00026c20 jalr t9 | t9 ();
0x00026c24 lw gp, 0x28(sp) | gp = *(var_28h);
0x00026c28 b 0x267b0 | goto label_5;
| label_18:
0x00026c2c lw t9, -0x7a10(gp) | t9 = sym.imp.__stack_chk_fail;
0x00026c30 jalr t9 | t9 ();
0x00026c34 nop |
0x00026c38 nop |
0x00026c3c nop |
0x00026c40 lw v1, 8(a0) | v1 = *((a0 + 2));
0x00026c44 addiu v0, zero, 1 | v0 = 1;
0x00026c48 lw v1, 0x28(v1) | v1 = *((v1 + 10));
0x00026c4c addiu v1, zero, -3 | v1 = -3;
| if (v1 != v0) {
0x00026c50 beq v1, v0, 0x26c64 |
0x00026c54 lw v0, (a0) | v0 = *(a0);
0x00026c58 and v0, v0, v1 | v0 &= v1;
0x00026c5c sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00026c60 jr ra | return v0;
| }
0x00026c64 move v0, zero | v0 = 0;
0x00026c68 jr ra | return v0;
| }
[*] Function printf used 5 times io2d