[*] Binary protection state of dbus-update-activation-environment

  
  	Partial RELRO  No Canary found   NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function sprintf tear down of dbus-update-activation-environment

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/dbus-update-activation-environment @ 0x10b84 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) main ()                                          | int32_t main (int32_t argc, char ** argv) {
                                                             |     int32_t var_0h;
                                                             |     char ** var_ch;
                                                             |     char * var_10h;
                                                             |     int32_t var_14h;
                                                             |     void * var_18h;
                                                             |     void * ptr;
                                                             |     void * s;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_68h;
                                                             |     int32_t var_a0h;
                                                             |     int32_t var_d8h;
                                                             |     int32_t var_110h;
                                                             |     int32_t var_178h;
                                                             |     int32_t var_17ch;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
                                                             |     /* [12] -r-x section size 2084 named .text */
    0x00010b84 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010b88 ldr r7, [pc, 0x550]                           |     r7 = *(0x110dc);
    0x00010b8c sub sp, sp, 0x17c                             |     
    0x00010b90 str r1, [sp, 0xc]                             |     var_ch = r1;
    0x00010b94 mov fp, r0                                    |     
    0x00010b98 mov r2, 0x10                                  |     r2 = 0x10;
    0x00010b9c mov r1, 0                                     |     r1 = 0;
    0x00010ba0 add r0, sp, 0x20                              |     r0 += s;
    0x00010ba4 ldr sb, [pc, 0x538]                           |     sb = "--systemd";
    0x00010ba8 bl 0x10a7c                                    |     memset (r0, r1, r2);
    0x00010bac mov r5, 0                                     |     r5 = 0;
    0x00010bb0 mov r3, 1                                     |     r3 = 1;
    0x00010bb4 mov sl, r5                                    |     sl = r5;
    0x00010bb8 mov r4, r3                                    |     r4 = r3;
    0x00010bbc mov r8, r3                                    |     r8 = r3;
    0x00010bc0 strb r3, [sp, 0x28]                           |     var_28h = r3;
                                                             | label_1:
    0x00010bc4 cmp r4, fp                                    |     
                                                             |     if (r4 < fp) {
    0x00010bc8 blt 0x10bf0                                   |         goto label_10;
                                                             |     }
    0x00010bcc mov r4, fp                                    |     r4 = fp;
                                                             |     do {
                                                             | label_0:
    0x00010bd0 cmp r4, fp                                    |         
                                                             |         if (r4 < fp) {
    0x00010bd4 movge r0, 0                                   |             r0 = 0;
                                                             |         }
                                                             |         if (r4 >= fp) {
    0x00010bd8 andlt r0, sl, 1                               |             r0 = sl & 1;
                                                             |         }
    0x00010bdc cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010be0 beq 0x10c8c                                   |             goto label_11;
                                                             |         }
    0x00010be4 ldr r2, [pc, 0x4fc]                           |         r2 = "--systemd";
    0x00010be8 ldr r1, [pc, 0x4fc]                           |         r1 = "dbus_update_activation_environment";
    0x00010bec b 0x10c68                                     |         goto label_12;
                                                             | label_10:
    0x00010bf0 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00010bf4 ldr r6, [r3, r4, lsl 2]                       |         offset_0 = r4 << 2;
                                                             |         r6 = *((r3 + offset_0));
    0x00010bf8 ldrb r2, [r6]                                 |         r2 = *(r6);
    0x00010bfc cmp r2, 0x2d                                  |         
    0x00010c00 bne 0x10bd0                                   |         
                                                             |     } while (r2 != 0x2d);
    0x00010c04 ldr r1, [pc, 0x4e4]                           |     r1 = "_s:_error:___all_cannot_be_used_with_VAR_or_VARVAL_arguments";
    0x00010c08 mov r0, r6                                    |     r0 = r6;
    0x00010c0c bl 0x10a64                                    |     strcmp (r0, "_s:_error:___all_cannot_be_used_with_VAR_or_VARVAL_arguments");
    0x00010c10 add r4, r4, 1                                 |     r4++;
    0x00010c14 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010c18 beq 0x10bd0                                   |         goto label_0;
                                                             |     }
    0x00010c1c mov r1, r7                                    |     r1 = r7;
    0x00010c20 mov r0, r6                                    |     r0 = r6;
    0x00010c24 bl 0x10a64                                    |     r0 = strcmp (r0, r1);
    0x00010c28 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010c2c beq 0x10c7c                                   |         goto label_13;
                                                             |     }
    0x00010c30 mov r1, sb                                    |     r1 = sb;
    0x00010c34 mov r0, r6                                    |     r0 = r6;
    0x00010c38 bl 0x10a64                                    |     r0 = strcmp (r0, r1);
    0x00010c3c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010c40 beq 0x10c84                                   |         goto label_14;
                                                             |     }
    0x00010c44 ldr r1, [pc, 0x4a8]                           |     r1 = "__";
    0x00010c48 mov r0, r6                                    |     r0 = r6;
    0x00010c4c bl 0x10a64                                    |     r0 = strcmp (r0, "__");
    0x00010c50 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010c54 ldreq r3, [pc, 0x49c]                         |         r3 = *(0x000110f8);
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010c58 streq r8, [r3]                                |         *(r3) = r8;
                                                             |         goto label_15;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_15:
    0x00010c5c beq 0x10bc4                                   |         goto label_1;
                                                             |     }
    0x00010c60 ldr r2, [pc, 0x480]                           |     r2 = "--systemd";
    0x00010c64 ldr r1, [pc, 0x490]                           |     r1 = *(0x110f8);
                                                             | label_12:
    0x00010c68 ldr r3, [pc, 0x490]                           |     r3 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010c6c ldr r0, [r3]                                  |     r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010c70 bl 0x10b18                                    |     fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", r1, "--systemd", "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n");
    0x00010c74 mov r0, 0x40                                  |     r0 = 0x40;
                                                             |     do {
                                                             | label_9:
    0x00010c78 bl 0x10b00                                    |         exit (r0);
                                                             | label_13:
    0x00010c7c mov sl, 1                                     |         sl = 1;
    0x00010c80 b 0x10bc4                                     |         goto label_1;
                                                             | label_14:
    0x00010c84 mov r5, 1                                     |         r5 = 1;
    0x00010c88 b 0x10bc4                                     |         goto label_1;
                                                             | label_11:
    0x00010c8c add r1, sp, 0x20                              |         r1 += s;
    0x00010c90 bl 0x10b24                                    |         r0 = dbus_bus_get ();
    0x00010c94 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x00010c98 bne 0x10cbc                                   |             goto label_16;
                                                             |         }
    0x00010c9c ldr r0, [pc, 0x45c]                           |         
    0x00010ca0 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00010ca4 ldr r2, [pc, 0x43c]                           |         r2 = "--systemd";
    0x00010ca8 ldr r1, [pc, 0x454]                           |         r1 = stderr;
    0x00010cac ldr r0, [r0]                                  |         r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010cb0 bl 0x10b18                                    |         fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", r1, "--systemd", r3);
    0x00010cb4 mov r0, 0x47                                  |         r0 = 0x47;
    0x00010cb8 b 0x10c78                                     |         
                                                             |     } while (1);
                                                             | label_16:
    0x00010cbc ldr r2, [pc, 0x444]                           |     r2 = "%s: error: unable to connect to D-Bus: %s\n";
    0x00010cc0 ldr r3, [pc, 0x444]                           |     r3 = "org.freedesktop.DBus";
    0x00010cc4 ldr r1, [pc, 0x444]                           |     r1 = "UpdateActivationEnvironment";
    0x00010cc8 mov r0, r2                                    |     r0 = r2;
    0x00010ccc bl 0x10ac4                                    |     r0 = dbus_message_new_method_call ();
    0x00010cd0 subs r6, r0, 0                                |     r6 = r0 - 0;
    0x00010cd4 bne 0x10ce0                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_2:
    0x00010cd8 ldr r0, [pc, 0x434]                           |         r0 = "/org/freedesktop/DBus";
    0x00010cdc bl 0x11324                                    |         fcn_00011324 ("/org/freedesktop/DBus");
    0x00010ce0 add r1, sp, 0x30                              |         r1 += var_30h;
    0x00010ce4 bl 0x10a04                                    |         dbus_message_iter_init_append ();
    0x00010ce8 add r3, sp, 0x68                              |         r3 += var_68h;
    0x00010cec ldr r2, [pc, 0x424]                           |         r2 = "updating environment";
    0x00010cf0 mov r1, 0x61                                  |         r1 = 0x61;
    0x00010cf4 add r0, sp, 0x30                              |         r0 += var_30h;
    0x00010cf8 bl 0x10a40                                    |         r0 = dbus_message_iter_open_container ();
    0x00010cfc cmp r0, 0                                     |         
    0x00010d00 beq 0x10cd8                                   |         
                                                             |     }
    0x00010d04 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00010d08 beq 0x10d5c                                   |         goto label_17;
                                                             |     }
    0x00010d0c ldr r0, [pc, 0x408]                           |     r0 = "_ss";
    0x00010d10 bl 0x10b6c                                    |     r0 = getenv ("_ss");
    0x00010d14 subs r2, r0, 0                                |     r2 = r0 - 0;
                                                             |     if (r2 == r0) {
    0x00010d18 beq 0x10d50                                   |         goto label_18;
                                                             |     }
    0x00010d1c ldr r1, [pc, 0x3fc]                           |     r1 = "XDG_RUNTIME_DIR";
    0x00010d20 add r0, sp, 0x1c                              |     r0 += ptr;
    0x00010d24 bl 0x10ae8                                    |     r0 = asprintf ()
    0x00010d28 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00010d2c blt 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010d30 add r1, sp, 0x110                             |     r1 += var_110h;
    0x00010d34 ldr r0, [sp, 0x1c]                            |     r0 = ptr;
    0x00010d38 bl 0x10a70                                    |     r0 = stat64 ();
    0x00010d3c mov r7, r0                                    |     r7 = r0;
    0x00010d40 ldr r0, [sp, 0x1c]                            |     r0 = ptr;
    0x00010d44 bl 0x10b60                                    |     free (r0);
    0x00010d48 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x00010d4c beq 0x11008                                   |         goto label_19;
                                                             |     }
                                                             | label_18:
    0x00010d50 ldr r0, [pc, 0x3cc]                           |     r0 = "%s/systemd";
    0x00010d54 bl 0x1127c                                    |     fcn_0001127c ();
    0x00010d58 mov r5, 0                                     |     r5 = 0;
                                                             | label_17:
    0x00010d5c mov r7, r5                                    |     r7 = r5;
    0x00010d60 b 0x11048                                     |     goto label_20;
                                                             | label_3:
    0x00010d64 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00010d68 mov r1, 0x3d                                  |     r1 = 0x3d;
    0x00010d6c bl 0x10adc                                    |     r0 = strchr (r0, r1);
    0x00010d70 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010d74 movne r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010d78 strbne r3, [r0], 1                            |         *(r0) = r3;
                                                             |         r0++;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010d7c strne r0, [sp, 0x14]                          |         var_14h = r0;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010d80 bne 0x10de0                                   |         
    0x00010d84 cmp sl, 0                                     |         
                                                             |         if (sl == 0) {
    0x00010d88 movne r3, sb                                  |             r3 = sb;
                                                             |         }
                                                             |         if (sl == 0) {
    0x00010d8c ldrne r2, [pc, 0x354]                         |             r2 = "dbus_update_activation_environment";
                                                             |         }
                                                             |         if (sl == 0) {
    0x00010d90 ldrne r1, [pc, 0x390]                         |             r1 = "%s: warning: environment variable without '=': %s\n";
                                                             |         }
                                                             |         if (sl != 0) {
    0x00010d94 bne 0x10edc                                   |             goto label_21;
                                                             |         }
    0x00010d98 mov r0, sb                                    |         r0 = sb;
    0x00010d9c bl 0x10b6c                                    |         r0 = getenv (r0);
    0x00010da0 cmp r0, 0                                     |         
    0x00010da4 str r0, [sp, 0x14]                            |         var_14h = r0;
                                                             |         if (r0 == 0) {
    0x00010da8 beq 0x10ee8                                   |             goto label_22;
                                                             |         }
    0x00010dac mov r1, sl                                    |         r1 = sl;
    0x00010db0 bl 0x10a88                                    |         r0 = dbus_validate_utf8 ();
    0x00010db4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00010db8 bne 0x10de0                                   |             goto label_23;
                                                             |         }
    0x00010dbc ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x00010dc0 ldr r0, [pc, 0x338]                           |         
    0x00010dc4 str r2, [sp]                                  |         *(sp) = r2;
    0x00010dc8 mov r3, sb                                    |         r3 = sb;
    0x00010dcc ldr r2, [pc, 0x314]                           |         r2 = "--systemd";
    0x00010dd0 ldr r1, [pc, 0x354]                           |         r1 = "%s: warning: environment variable without '=': %s\n";
    0x00010dd4 ldr r0, [r0]                                  |         r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010dd8 bl 0x10b18                                    |         fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", "%s: warning: environment variable without '=': %s\n", r2, r3);
    0x00010ddc b 0x10ee8                                     |         goto label_22;
                                                             |     }
                                                             | label_23:
    0x00010de0 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00010de4 beq 0x10e20                                   |         goto label_24;
                                                             |     }
    0x00010de8 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x00010dec ldr r1, [pc, 0x33c]                           |     r1 = "_s:_warning:_environment_variable_not_UTF_8:__s_s";
    0x00010df0 add r0, sp, 0x18                              |     r0 += var_18h;
    0x00010df4 bl 0x10ae8                                    |     r0 = asprintf ()
    0x00010df8 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00010dfc blt 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010e00 add r2, sp, 0x18                              |     r2 += var_18h;
    0x00010e04 mov r1, 0x73                                  |     r1 = 0x73;
    0x00010e08 add r0, sp, 0xd8                              |     r0 += var_d8h;
    0x00010e0c bl 0x10a4c                                    |     r0 = dbus_message_iter_append_basic ();
    0x00010e10 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010e14 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010e18 ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x00010e1c bl 0x10b60                                    |     free (r0);
                                                             | label_24:
    0x00010e20 add r3, sp, 0x110                             |     r3 += var_110h;
    0x00010e24 mov r2, 0                                     |     r2 = 0;
    0x00010e28 mov r1, 0x65                                  |     r1 = 0x65;
    0x00010e2c add r0, sp, 0x68                              |     r0 += var_68h;
    0x00010e30 bl 0x10a40                                    |     r0 = dbus_message_iter_open_container ();
    0x00010e34 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010e38 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010e3c add sb, sp, 0x178                             |     sb += var_178h;
    0x00010e40 ldr r1, [sb, -0x168]!                         |     r1 = var_10h;
    0x00010e44 ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x00010e48 ldr r0, [pc, 0x2e4]                           |     r0 = "_s_s";
    0x00010e4c bl 0x1127c                                    |     fcn_0001127c ();
    0x00010e50 mov r2, sb                                    |     r2 = sb;
    0x00010e54 mov r1, 0x73                                  |     r1 = 0x73;
    0x00010e58 add r0, sp, 0x110                             |     r0 += var_110h;
    0x00010e5c bl 0x10a4c                                    |     r0 = dbus_message_iter_append_basic ();
    0x00010e60 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010e64 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010e68 add r2, sp, 0x14                              |     r2 += var_14h;
    0x00010e6c mov r1, 0x73                                  |     r1 = 0x73;
    0x00010e70 add r0, sp, 0x110                             |     r0 += var_110h;
    0x00010e74 bl 0x10a4c                                    |     r0 = dbus_message_iter_append_basic ();
    0x00010e78 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010e7c beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010e80 add r1, sp, 0x110                             |     r1 += var_110h;
    0x00010e84 add r0, sp, 0x68                              |     r0 += var_68h;
    0x00010e88 bl 0x10b78                                    |     r0 = dbus_message_iter_close_container ();
    0x00010e8c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e90 bne 0x10ee8                                   |         goto label_22;
                                                             |     }
    0x00010e94 b 0x10cd8                                     |     goto label_2;
                                                             | label_6:
    0x00010e98 cmp r4, fp                                    |     
                                                             |     if (r4 >= fp) {
    0x00010e9c bge 0x1106c                                   |         goto label_25;
                                                             |     }
    0x00010ea0 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010ea4 ldr sb, [r3, r4, lsl 2]                       |     offset_1 = r4 << 2;
                                                             |     sb = *((r3 + offset_1));
                                                             | label_7:
    0x00010ea8 mov r0, sb                                    |     r0 = sb;
    0x00010eac bl 0x10aa0                                    |     r0 = strdup (r0);
    0x00010eb0 cmp r0, 0                                     |     
    0x00010eb4 str r0, [sp, 0x10]                            |     var_10h = r0;
                                                             |     if (r0 == 0) {
    0x00010eb8 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00010ebc mov r1, 0                                     |     r1 = 0;
    0x00010ec0 mov r0, sb                                    |     r0 = sb;
    0x00010ec4 bl 0x10a88                                    |     r0 = dbus_validate_utf8 ();
    0x00010ec8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010ecc bne 0x10d64                                   |         goto label_3;
                                                             |     }
    0x00010ed0 ldr r2, [pc, 0x210]                           |     r2 = "--systemd";
    0x00010ed4 ldr r1, [pc, 0x25c]                           |     r1 = "setting__s_s";
    0x00010ed8 mov r3, sb                                    |     r3 = sb;
                                                             | label_21:
    0x00010edc ldr r0, [pc, 0x21c]                           |     
    0x00010ee0 ldr r0, [r0]                                  |     r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010ee4 bl 0x10b18                                    |     fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", "setting__s_s", "--systemd", r3);
                                                             | label_22:
    0x00010ee8 ldr r0, [sp, 0x10]                            |     r0 = var_10h;
    0x00010eec bl 0x10b60                                    |     free (r0);
    0x00010ef0 add r4, r4, 1                                 |     r4++;
    0x00010ef4 b 0x11050                                     |     goto label_26;
                                                             | label_8:
    0x00010ef8 mov r1, r6                                    |     r1 = r6;
    0x00010efc add r0, sp, 0x20                              |     r0 += s;
    0x00010f00 bl 0x10b30                                    |     dbus_set_error_from_message ();
    0x00010f04 subs r2, r0, 0                                |     r2 -= s;
    0x00010f08 beq 0x10f24                                   |     
                                                             |     while (r0 == 0) {
    0x00010f0c ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00010f10 ldr r2, [pc, 0x1d0]                           |         r2 = "--systemd";
    0x00010f14 str r3, [sp]                                  |         *(sp) = r3;
    0x00010f18 ldr r1, [pc, 0x21c]                           |         r1 = "_s:_warning:_environment_variable_not_UTF_8:__s";
    0x00010f1c ldr r3, [sp, 0x20]                            |         r3 = s;
    0x00010f20 b 0x110cc                                     |         goto label_27;
    0x00010f24 add r1, sp, 0x20                              |         r1 += s;
    0x00010f28 mov r0, r6                                    |         r0 = r6;
    0x00010f2c bl 0x10a34                                    |         r0 = dbus_message_get_args ();
    0x00010f30 cmp r0, 0                                     |         
    0x00010f34 beq 0x10f0c                                   |         
                                                             |     }
    0x00010f38 mov r0, r4                                    |     r0 = r4;
    0x00010f3c bl 0x10b3c                                    |     dbus_message_unref ();
    0x00010f40 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00010f44 beq 0x10f94                                   |         goto label_28;
                                                             |     }
    0x00010f48 add r3, sp, 0x20                              |     r3 += s;
    0x00010f4c mvn r2, 0                                     |     r2 = ~0;
    0x00010f50 mov r1, r7                                    |     r1 = r7;
    0x00010f54 mov r0, r8                                    |     r0 = r8;
    0x00010f58 bl 0x10ab8                                    |     r0 = dbus_connection_send_with_reply_and_block ();
    0x00010f5c subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00010f60 bne 0x10fb0                                   |         goto label_29;
                                                             |     }
    0x00010f64 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x00010f68 ldr r0, [pc, 0x190]                           |     
    0x00010f6c str r3, [sp]                                  |     *(sp) = r3;
    0x00010f70 ldr r2, [pc, 0x170]                           |     r2 = "--systemd";
    0x00010f74 ldr r3, [sp, 0x20]                            |     r3 = s;
    0x00010f78 ldr r1, [pc, 0x1c0]                           |     r1 = "_s:_error_from_dbus_daemon:__s:__s";
    0x00010f7c ldr r0, [r0]                                  |     r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010f80 bl 0x10b18                                    |     fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", "_s:_error_from_dbus_daemon:__s:__s", "--systemd", r3);
                                                             |     do {
    0x00010f84 mov r0, r7                                    |         r0 = r7;
    0x00010f88 bl 0x10b3c                                    |         dbus_message_unref ();
    0x00010f8c add r0, sp, 0x20                              |         r0 += s;
    0x00010f90 bl 0x10ad0                                    |         dbus_error_free ();
                                                             | label_28:
    0x00010f94 mov r0, r6                                    |         r0 = r6;
    0x00010f98 bl 0x10b3c                                    |         dbus_message_unref ();
    0x00010f9c mov r0, r8                                    |         r0 = r8;
    0x00010fa0 bl 0x10a94                                    |         dbus_connection_unref ();
    0x00010fa4 mov r0, 0                                     |         r0 = 0;
    0x00010fa8 add sp, sp, 0x17c                             |         
    0x00010fac pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_29:
    0x00010fb0 mov r1, r6                                    |         r1 = r6;
    0x00010fb4 add r0, sp, 0x20                              |         r0 += s;
    0x00010fb8 bl 0x10b30                                    |         dbus_set_error_from_message ();
    0x00010fbc subs r2, r0, 0                                |         r2 -= s;
                                                             |         if (r2 == s) {
    0x00010fc0 beq 0x10ff0                                   |             goto label_30;
                                                             |         }
                                                             | label_4:
    0x00010fc4 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00010fc8 ldr r0, [pc, 0x130]                           |         
    0x00010fcc str r3, [sp]                                  |         *(sp) = r3;
    0x00010fd0 ldr r2, [pc, 0x110]                           |         r2 = "--systemd";
    0x00010fd4 ldr r3, [sp, 0x20]                            |         r3 = s;
    0x00010fd8 ldr r1, [pc, 0x164]                           |         r1 = "_s:_warning:_error_sending_to_systemd:__s:__s";
    0x00010fdc ldr r0, [r0]                                  |         r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x00010fe0 bl 0x10b18                                    |         fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", "_s:_warning:_error_sending_to_systemd:__s:__s", "--systemd", r3);
                                                             | label_5:
    0x00010fe4 mov r0, r4                                    |         r0 = r4;
    0x00010fe8 bl 0x10b3c                                    |         dbus_message_unref ();
    0x00010fec b 0x10f84                                     |         
                                                             |     } while (1);
                                                             | label_30:
    0x00010ff0 add r1, sp, 0x20                              |     r1 += s;
    0x00010ff4 mov r0, r6                                    |     r0 = r6;
    0x00010ff8 bl 0x10a34                                    |     r0 = dbus_message_get_args ();
    0x00010ffc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011000 beq 0x10fc4                                   |         goto label_4;
                                                             |     }
    0x00011004 b 0x10fe4                                     |     goto label_5;
                                                             | label_19:
    0x00011008 ldr r3, [pc, 0x138]                           |     r3 = "%s: warning: error from systemd: %s: %s\n";
    0x0001100c ldr r2, [pc, 0x138]                           |     r2 = "SetEnvironment";
    0x00011010 ldr r1, [pc, 0x138]                           |     r1 = "org.freedesktop.systemd1.Manager";
    0x00011014 ldr r0, [pc, 0x138]                           |     r0 = "_org_freedesktop_systemd1";
    0x00011018 bl 0x10ac4                                    |     r0 = dbus_message_new_method_call ();
    0x0001101c subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x00011020 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00011024 add r1, sp, 0xa0                              |     r1 += var_a0h;
    0x00011028 bl 0x10a04                                    |     dbus_message_iter_init_append ();
    0x0001102c add r3, sp, 0xd8                              |     r3 += var_d8h;
    0x00011030 ldr r2, [pc, 0x120]                           |     r2 = "org.freedesktop.systemd1";
    0x00011034 mov r1, 0x61                                  |     r1 = 0x61;
    0x00011038 add r0, sp, 0xa0                              |     r0 += var_a0h;
    0x0001103c bl 0x10a40                                    |     r0 = dbus_message_iter_open_container ();
    0x00011040 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011044 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
                                                             | label_20:
    0x00011048 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x0001104c movne r4, 0                                   |         r4 = 0;
                                                             |     }
                                                             | label_26:
    0x00011050 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x00011054 beq 0x10e98                                   |         goto label_6;
                                                             |     }
    0x00011058 ldr r3, [pc, 0xfc]                            |     
    0x0001105c ldr r3, [r3]                                  |     r3 = *(0x11158);
    0x00011060 ldr sb, [r3, r4, lsl 2]                       |     sb = *(0x11158);
    0x00011064 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x00011068 bne 0x10ea8                                   |         goto label_7;
                                                             |     }
                                                             | label_25:
    0x0001106c add r1, sp, 0x68                              |     r1 += var_68h;
    0x00011070 add r0, sp, 0x30                              |     r0 += var_30h;
    0x00011074 bl 0x10b78                                    |     r0 = dbus_message_iter_close_container ();
    0x00011078 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001107c beq 0x10cd8                                   |         goto label_2;
                                                             |     }
    0x00011080 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00011084 beq 0x1109c                                   |         goto label_31;
                                                             |     }
    0x00011088 add r1, sp, 0xd8                              |     r1 += var_d8h;
    0x0001108c add r0, sp, 0xa0                              |     r0 += var_a0h;
    0x00011090 bl 0x10b78                                    |     r0 = dbus_message_iter_close_container ();
    0x00011094 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011098 beq 0x10cd8                                   |         goto label_2;
                                                             |     }
                                                             | label_31:
    0x0001109c add r3, sp, 0x20                              |     r3 += s;
    0x000110a0 mvn r2, 0                                     |     r2 = ~0;
    0x000110a4 mov r1, r6                                    |     r1 = r6;
    0x000110a8 mov r0, r8                                    |     r0 = r8;
    0x000110ac bl 0x10ab8                                    |     r0 = dbus_connection_send_with_reply_and_block ();
    0x000110b0 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x000110b4 bne 0x10ef8                                   |         goto label_8;
                                                             |     }
    0x000110b8 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x000110bc ldr r2, [pc, 0x24]                            |     r2 = "--systemd";
    0x000110c0 str r3, [sp]                                  |     *(sp) = r3;
    0x000110c4 ldr r1, [pc, 0x94]                            |     r1 = __environ;
    0x000110c8 ldr r3, [sp, 0x20]                            |     r3 = s;
                                                             | label_27:
    0x000110cc ldr r0, [pc, 0x2c]                            |     
    0x000110d0 ldr r0, [r0]                                  |     r0 = "%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n";
    0x000110d4 bl 0x10b18                                    |     fprintf ("%1$s: update environment variables that will be set for D-Bus\n    session services\n\n%1$s [options] VAR[=VAL] [VAR2[=VAL2] ...]\n    Add specified variables to D-Bus activation environment.\n    If omitted, values are taken from current environment;\n    variables not found in the environment are ignored.\n%1$s --all\n    Add entire current environment to D-Bus activation\n    environment.\n\nOptions:\n\n--all\n    Upload all environment variables.\n--systemd\n    Also update the 'systemd --user' environment\n    if possible.\n--verbose\n    Talk about it.\n", r1, "--systemd", r3);
    0x000110d8 mov r0, 0x45                                  |     r0 = 0x45;
    0x000110dc b 0x10c78                                     |     goto label_9;
                                                             | }

[*] Function sprintf used 3 times dbus-update-activation-environment