[*] Binary protection state of vdo

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of vdo

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/vdo @ 0x50a48 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.param_parse ()               | void param_parse () {
    0x00050a48 lui gp, 3                     |     
    0x00050a4c addiu gp, gp, -0x4958         |     
    0x00050a50 addu gp, gp, t9               |     gp += t9;
    0x00050a54 addiu sp, sp, -0xa8           |     
    0x00050a58 lw t9, -0x77c4(gp)            |     t9 = sym.imp.g_key_file_new;
    0x00050a5c sw s5, 0x94(sp)               |     *(var_1ch) = s5;
    0x00050a60 lw s5, -0x7490(gp)            |     s5 = *((gp - 7460));
    0x00050a64 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x00050a68 sw ra, 0xa4(sp)               |     *(var_2ch) = ra;
    0x00050a6c lw v0, (s5)                   |     v0 = *(s5);
    0x00050a70 sw s3, 0x8c(sp)               |     *(var_8ch) = s3;
    0x00050a74 sw s1, 0x84(sp)               |     *(var_84h) = s1;
    0x00050a78 sw s0, 0x80(sp)               |     *(var_80h) = s0;
    0x00050a7c sw fp, 0xa0(sp)               |     *(var_28h) = fp;
    0x00050a80 sw s7, 0x9c(sp)               |     *(var_24h) = s7;
    0x00050a84 sw s6, 0x98(sp)               |     *(var_20h) = s6;
    0x00050a88 sw s4, 0x90(sp)               |     *(var_18h) = s4;
    0x00050a8c sw s2, 0x88(sp)               |     *(var_10h) = s2;
    0x00050a90 sw v0, 0x7c(sp)               |     *(var_7ch) = v0;
    0x00050a94 lw s1, -0x7fa0(gp)            |     s1 = *(gp);
    0x00050a98 move s3, a0                   |     s3 = a0;
    0x00050a9c jalr t9                       |     t9 ();
    0x00050aa0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050aa4 addiu a1, zero, 0x10          |     a1 = 0x10;
                                             |     /* str._etc_sysconfig_image_text.conf */
    0x00050aa8 addiu a0, s1, -0x3080         |     a0 = s1 + -0x3080;
    0x00050aac lw t9, -0x7738(gp)            |     t9 = sym.imp.g_file_test;
    0x00050ab0 move s0, v0                   |     s0 = v0;
    0x00050ab4 jalr t9                       |     t9 ();
    0x00050ab8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050abc bnez v0, 0x50b7c              |     
                                             |     while (v0 == 0) {
    0x00050ac0 sw zero, 0x24(sp)             |         *(var_24h_2) = 0;
    0x00050ac4 move fp, zero                 |         fp = 0;
                                             | label_0:
    0x00050ac8 lw t9, -0x7840(gp)            |         t9 = sym.imp.g_key_file_unref;
    0x00050acc move a0, s0                   |         a0 = s0;
    0x00050ad0 jalr t9                       |         t9 ();
    0x00050ad4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050ad8 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00050adc move a0, fp                   |         a0 = fp;
    0x00050ae0 jalr t9                       |         t9 ();
    0x00050ae4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050ae8 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00050aec lw a0, 0x24(sp)               |         a0 = *(var_24h_2);
    0x00050af0 jalr t9                       |         t9 ();
    0x00050af4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050af8 lw t9, -0x77c4(gp)            |         t9 = sym.imp.g_key_file_new;
    0x00050afc lw s1, -0x7fa0(gp)            |         s1 = *(gp);
    0x00050b00 jalr t9                       |         t9 ();
    0x00050b04 nop                           |         
    0x00050b08 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050b0c addiu a1, zero, 0x10          |         a1 = 0x10;
                                             |         /* str._etc_sysconfig_image_overlay.conf */
    0x00050b10 addiu a0, s1, -0x2e40         |         a0 = s1 + -0x2e40;
    0x00050b14 lw t9, -0x7738(gp)            |         t9 = sym.imp.g_file_test;
    0x00050b18 move s0, v0                   |         s0 = v0;
    0x00050b1c jalr t9                       |         t9 ();
    0x00050b20 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00050b24 bnez v0, 0x511bc              |             goto label_24;
                                             |         }
                                             | label_3:
    0x00050b28 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00050b2c move a0, zero                 |         a0 = 0;
                                             | label_19:
    0x00050b30 jalr t9                       |         t9 ();
    0x00050b34 nop                           |         
    0x00050b38 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050b3c lw t9, -0x7840(gp)            |         t9 = sym.imp.g_key_file_unref;
    0x00050b40 move a0, s0                   |         a0 = s0;
    0x00050b44 jalr t9                       |         t9 ();
    0x00050b48 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050b4c lw t9, -0x7fbc(gp)            |         t9 = sym.hal_system_get_instance;
    0x00050b50 bal 0x38568                   |         sym_hal_system_get_instance ();
    0x00050b54 nop                           |         
    0x00050b58 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050b5c move a0, v0                   |         a0 = v0;
    0x00050b60 lw t9, -0x7bd8(gp)            |         t9 = sym.hal_system_is_running;
    0x00050b64 move s0, v0                   |         s0 = v0;
    0x00050b68 bal 0x38c58                   |         sym_hal_system_is_running ();
    0x00050b6c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00050b70 bnez v0, 0x51524              |             goto label_25;
                                             |         }
                                             | label_6:
    0x00050b74 addiu s4, zero, 1             |         s4 = 1;
    0x00050b78 b 0x5117c                     |         goto label_11;
    0x00050b7c lw t9, -0x7480(gp)            |         t9 = sym.imp.g_key_file_load_from_file;
    0x00050b80 move a3, s3                   |         a3 = s3;
    0x00050b84 move a2, zero                 |         a2 = 0;
                                             |         /* str._etc_sysconfig_image_text.conf */
    0x00050b88 addiu a1, s1, -0x3080         |         a1 = s1 + -0x3080;
    0x00050b8c move a0, s0                   |         a0 = s0;
    0x00050b90 jalr t9                       |         t9 ();
    0x00050b94 move s4, v0                   |         s4 = v0;
    0x00050b98 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x00050b9c beqz v0, 0x5114c              |             goto label_26;
                                             |         }
    0x00050ba0 lw s1, -0x7fa0(gp)            |         s1 = *(gp);
    0x00050ba4 lw t9, -0x74c4(gp)            |         t9 = sym.imp.g_key_file_has_group;
                                             |         /* str.Image */
    0x00050ba8 addiu a1, s1, -0x30b0         |         a1 = s1 + -0x30b0;
    0x00050bac move a0, s0                   |         a0 = s0;
    0x00050bb0 jalr t9                       |         t9 ();
    0x00050bb4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050bb8 beqz v0, 0x50ac0              |         
                                             |     }
    0x00050bbc lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00050bc0 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
                                             |     /* fcn.00050674 */
    0x00050bc4 addiu t9, v0, 0x674           |     t9 = v0 + 0x674;
                                             |     /* str.OwnDateFormatEnabled */
    0x00050bc8 addiu a2, a2, -0x3060         |     a2 += -0x3060;
                                             |     /* str.Image */
    0x00050bcc addiu a1, s1, -0x30b0         |     a1 = s1 + -0x30b0;
    0x00050bd0 move a0, s0                   |     a0 = s0;
    0x00050bd4 sw t9, 0x20(sp)               |     *(var_20h_2) = t9;
    0x00050bd8 bal 0x50674                   |     fcn_00050674 ();
    0x00050bdc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050be0 lw t9, 0x20(sp)               |     t9 = *(var_20h_2);
                                             |     /* str.Image */
    0x00050be4 addiu a1, s1, -0x30b0         |     a1 = s1 + -0x30b0;
    0x00050be8 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050bec move a0, s0                   |     a0 = s0;
                                             |     /* str.OwnTimeFormatEnabled */
    0x00050bf0 addiu a2, a2, -0x3048         |     a2 += -0x3048;
    0x00050bf4 move s2, v0                   |     s2 = v0;
    0x00050bf8 jalr t9                       |     t9 ();
    0x00050bfc move s4, v0                   |     s4 = v0;
    0x00050c00 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (s2 == 0) {
    0x00050c04 beqz s2, 0x5185c              |         goto label_27;
                                             |     }
    0x00050c08 lw s2, -0x7fdc(gp)            |     s2 = *(gp);
    0x00050c0c lw a1, -0x7fa0(gp)            |     a1 = *(gp);
                                             |     /* fcn.00050890 */
    0x00050c10 addiu s2, s2, 0x890           |     s2 += 0x890;
                                             |     /* str.OwnDateFormat */
    0x00050c14 addiu a1, a1, -0x3030         |     a1 += -aav.0x00003030;
    0x00050c18 move t9, s2                   |     t9 = s2;
    0x00050c1c move a0, s0                   |     a0 = s0;
    0x00050c20 bal 0x50890                   |     fcn_00050890 ();
    0x00050c24 move fp, v0                   |     fp = v0;
    0x00050c28 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00050c2c beqz v0, 0x5193c              |         goto label_28;
                                             |     }
                                             |     if (s4 == 0) {
                                             | label_13:
    0x00050c30 beql s4, zero, 0x517d8        |         goto label_29;
                                             |     }
    0x00050c34 lw s2, -0x7fdc(gp)            |     s2 = *(gp);
    0x00050c38 lw a1, -0x7fa0(gp)            |     a1 = *(gp);
    0x00050c3c move a0, s0                   |     a0 = s0;
    0x00050c40 move t9, s2                   |     t9 = s2;
                                             |     /* str.OwnTimeFormat */
    0x00050c44 addiu a1, a1, -0x2f68         |     a1 += -0x2f68;
    0x00050c48 bal 0x50890                   |     fcn_00050890 ();
    0x00050c4c sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x00050c50 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00050c54 beqz v0, 0x51958              |         goto label_30;
                                             |     }
                                             | label_12:
    0x00050c58 lw t9, -0x7fbc(gp)            |     t9 = sym.hal_system_get_instance;
    0x00050c5c bal 0x38568                   |     sym_hal_system_get_instance ();
    0x00050c60 nop                           |     
    0x00050c64 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050c68 move a0, v0                   |     a0 = v0;
    0x00050c6c lw t9, -0x7bd8(gp)            |     t9 = sym.hal_system_is_running;
    0x00050c70 move s1, v0                   |     s1 = v0;
    0x00050c74 bal 0x38c58                   |     sym_hal_system_is_running ();
    0x00050c78 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00050c7c beqz v0, 0x50ac8              |         goto label_0;
                                             |     }
    0x00050c80 lw t9, -0x7ce8(gp)            |     t9 = sym.hal_system_get_all_channels;
    0x00050c84 move a0, s1                   |     a0 = s1;
    0x00050c88 bal 0x399dc                   |     sym_hal_system_get_all_channels ();
    0x00050c8c move s1, v0                   |     s1 = v0;
    0x00050c90 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050c94 sw v0, 0x44(sp)               |     *(var_44h) = v0;
                                             |     if (v0 == 0) {
    0x00050c98 beqz v0, 0x51c98              |         goto label_31;
                                             |     }
    0x00050c9c lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x00050ca0 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x00050ca4 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x00050ca8 addiu v0, v0, -0x560c         |     v0 += -0x560c;
    0x00050cac sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x00050cb0 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x00050cb4 addiu v0, v0, -0x317c         |     v0 += -aav.0x0000317c;
    0x00050cb8 sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x00050cbc lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00050cc0 addiu v0, v0, 0x6f8           |     v0 += 0x6f8;
    0x00050cc4 sw v0, 0x38(sp)               |     *(var_38h) = v0;
    0x00050cc8 b 0x50d74                     |     goto label_32;
                                             | label_1:
    0x00050ccc lw a2, -0x7fa0(gp)            |     a2 = *(gp);
                                             |     if (s2 != 0) {
    0x00050cd0 bnez s2, 0x51fd4              |         goto label_33;
                                             |     }
    0x00050cd4 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x00050cd8 addiu s2, sp, 0x5c            |     s2 = sp + 0x5c;
    0x00050cdc move a3, zero                 |     a3 = 0;
                                             |     /* str.overlay._u.enabled */
    0x00050ce0 addiu a2, a2, -0x2edc         |     a2 += -aav.0x00002edc;
    0x00050ce4 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00050ce8 move a0, s2                   |     a0 = s2;
    0x00050cec jalr t9                       |     t9 ();
    0x00050cf0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050cf4 lw a2, 0x28(sp)               |     a2 = *(var_28h_2);
    0x00050cf8 move a1, s2                   |     a1 = s2;
    0x00050cfc lw t9, -0x7fb4(gp)            |     t9 = sym.vdo_map_set_boolean;
    0x00050d00 move a0, s6                   |     a0 = s6;
    0x00050d04 jalr t9                       |     t9 ();
    0x00050d08 lw v0, 0x28(sp)               |     v0 = *(var_28h_2);
    0x00050d0c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x00050d10 bnez v0, 0x51fb8              |         goto label_34;
                                             |     }
                                             | label_2:
    0x00050d14 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00050d18 lw a0, 0x2c(sp)               |     a0 = *(var_2ch_2);
    0x00050d1c jalr t9                       |     t9 ();
    0x00050d20 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050d24 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00050d28 move a0, s4                   |     a0 = s4;
    0x00050d2c jalr t9                       |     t9 ();
    0x00050d30 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050d34 move a0, s7                   |     a0 = s7;
    0x00050d38 move a2, s3                   |     a2 = s3;
    0x00050d3c lw t9, -0x7c44(gp)            |     t9 = sym.hal_channel_set_settings;
    0x00050d40 move a1, s6                   |     a1 = s6;
    0x00050d44 bal 0x407c4                   |     sym_hal_channel_set_settings ();
    0x00050d48 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050d4c move s4, v0                   |     s4 = v0;
    0x00050d50 move a0, s6                   |     a0 = s6;
    0x00050d54 lw t9, -0x77ec(gp)            |     t9 = *((gp - 7675));
                                             |     if (v0 == 0) {
    0x00050d58 beqz v0, 0x51ce0              |         goto label_35;
                                             |     }
    0x00050d5c jalr t9                       |     t9 ();
    0x00050d60 nop                           |     
    0x00050d64 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     do {
    0x00050d68 lw s1, 4(s1)                  |         s1 = *((s1 + 1));
    0x00050d6c lw t9, -0x7580(gp)            |         t9 = sym.imp.g_list_free;
                                             |         if (s1 == 0) {
    0x00050d70 beqz s1, 0x51c9c              |             goto label_36;
                                             |         }
                                             | label_32:
    0x00050d74 lw t9, -0x7ce4(gp)            |         t9 = sym.hal_channel_get_type;
    0x00050d78 lw s2, (s1)                   |         s2 = *(s1);
    0x00050d7c bal 0x4004c                   |         sym_hal_channel_get_type ();
    0x00050d80 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050d84 move a0, s2                   |         a0 = s2;
    0x00050d88 lw t9, -0x74d0(gp)            |         t9 = sym.imp.g_type_check_instance_cast;
    0x00050d8c move a1, v0                   |         a1 = v0;
    0x00050d90 jalr t9                       |         t9 ();
    0x00050d94 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050d98 move a0, v0                   |         a0 = v0;
    0x00050d9c lw t9, -0x7c30(gp)            |         t9 = sym.hal_channel_get_id;
    0x00050da0 move s7, v0                   |         s7 = v0;
    0x00050da4 bal 0x40464                   |         sym_hal_channel_get_id ();
    0x00050da8 move s2, v0                   |         s2 = v0;
    0x00050dac lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050db0 beqz v0, 0x50d68              |         
                                             |     } while (v0 == 0);
    0x00050db4 lw t9, -0x7fb8(gp)            |     t9 = sym.vdo_map_new;
    0x00050db8 jalr t9                       |     t9 ();
    0x00050dbc nop                           |     
    0x00050dc0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050dc4 lw v1, 0x34(sp)               |     v1 = *(var_34h);
    0x00050dc8 addiu a1, s2, -1              |     a1 = s2 + -1;
    0x00050dcc lw t9, -0x75f8(gp)            |     t9 = sym.imp.g_strdup_printf
    0x00050dd0 addiu a0, v1, -0x2f1c         |     a0 = v1 + -0x2f1c;
    0x00050dd4 move s6, v0                   |     s6 = v0;
    0x00050dd8 jalr t9                       |     t9 ();
    0x00050ddc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050de0 lw t9, 0x20(sp)               |     t9 = *(var_20h_2);
    0x00050de4 move a1, v0                   |     a1 = v0;
    0x00050de8 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050dec move a0, s0                   |     a0 = s0;
                                             |     /* str.TextEnabled */
    0x00050df0 addiu a2, a2, -0x2f0c         |     a2 += -0x2f0c;
    0x00050df4 move s4, v0                   |     s4 = v0;
    0x00050df8 jalr t9                       |     t9 ();
    0x00050dfc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050e00 lw t9, 0x20(sp)               |     t9 = *(var_20h_2);
    0x00050e04 move a1, s4                   |     a1 = s4;
    0x00050e08 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050e0c move a0, s0                   |     a0 = s0;
                                             |     /* str.ClockEnabled */
    0x00050e10 addiu a2, a2, -0x2f00         |     a2 += -0x2f00;
    0x00050e14 sw v0, 0x28(sp)               |     *(var_28h_2) = v0;
    0x00050e18 jalr t9                       |     t9 ();
    0x00050e1c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050e20 lw t9, 0x20(sp)               |     t9 = *(var_20h_2);
    0x00050e24 move a1, s4                   |     a1 = s4;
    0x00050e28 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050e2c move a0, s0                   |     a0 = s0;
                                             |     /* str.DateEnabled */
    0x00050e30 addiu a2, a2, -0x2ef0         |     a2 += -0x2ef0;
    0x00050e34 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x00050e38 jalr t9                       |     t9 ();
    0x00050e3c move s2, v0                   |     s2 = v0;
    0x00050e40 lw v0, 0x28(sp)               |     v0 = *(var_28h_2);
    0x00050e44 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x00050e48 bnez v0, 0x51758              |         goto label_37;
                                             |     }
    0x00050e4c sw zero, 0x2c(sp)             |     *(var_2ch_2) = 0;
                                             | label_10:
    0x00050e50 lw v0, 0x30(sp)               |     v0 = *(var_30h);
                                             |     if (v0 == 0) {
    0x00050e54 beqz v0, 0x50ccc              |         goto label_1;
                                             |     }
    0x00050e58 nop                           |     
    0x00050e5c lw a2, -0x7fa0(gp)            |     a2 = *(gp);
                                             |     if (s2 == 0) {
    0x00050e60 beqz s2, 0x51f80              |         goto label_38;
                                             |     }
    0x00050e64 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x00050e68 addiu s2, sp, 0x5c            |     s2 = sp + 0x5c;
    0x00050e6c move a3, zero                 |     a3 = 0;
                                             |     /* str.overlay._u.enabled */
    0x00050e70 addiu a2, a2, -0x2edc         |     a2 += -aav.0x00002edc;
    0x00050e74 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00050e78 move a0, s2                   |     a0 = s2;
    0x00050e7c jalr t9                       |     t9 ();
    0x00050e80 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050e84 addiu a2, zero, 1             |     a2 = 1;
    0x00050e88 move a1, s2                   |     a1 = s2;
    0x00050e8c lw t9, -0x7fb4(gp)            |     t9 = sym.vdo_map_set_boolean;
    0x00050e90 move a0, s6                   |     a0 = s6;
    0x00050e94 jalr t9                       |     t9 ();
    0x00050e98 lw v0, 0x2c(sp)               |     v0 = *(var_2ch_2);
    0x00050e9c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x00050ea0 bnez v0, 0x518c8              |         goto label_39;
                                             |     }
                                             | label_23:
    0x00050ea4 lw a0, 0x3c(sp)               |     a0 = *(var_3ch);
    0x00050ea8 lw a3, 0x40(sp)               |     a3 = *(var_40h);
    0x00050eac move a2, fp                   |     a2 = fp;
                                             | label_22:
    0x00050eb0 lw v0, 0x30(sp)               |     v0 = *(var_30h);
    0x00050eb4 lw v0, 0x24(sp)               |     v0 = *(var_24h_2);
                                             |     if (v0 != 0) {
    0x00050eb8 bnez v0, 0x51ccc              |         goto label_40;
                                             |     }
    0x00050ebc lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x00050ec0 move a1, v0                   |     a1 = v0;
                                             | label_14:
    0x00050ec4 lw t9, -0x77b0(gp)            |     t9 = sym.imp.g_strconcat;
    0x00050ec8 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00050ecc sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x00050ed0 jalr t9                       |     t9 ();
    0x00050ed4 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x00050ed8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050edc move a0, v0                   |     a0 = v0;
                                             |     if (v0 != 0) {
    0x00050ee0 beqz v0, 0x50f40              |         
    0x00050ee4 lw t9, -0x78d0(gp)            |         t9 = sym.imp.g_shell_unquote;
    0x00050ee8 move a1, zero                 |         a1 = 0;
    0x00050eec jalr t9                       |         t9 ();
    0x00050ef0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050ef4 move a3, zero                 |         a3 = 0;
    0x00050ef8 addiu a1, zero, 0x1e          |         a1 = 0x1e;
    0x00050efc lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x00050f00 lw t9, -0x7858(gp)            |         t9 = sym.imp.g_snprintf
                                             |         /* str.overlay._u.text */
    0x00050f04 addiu a2, a2, -0x2ec8         |         a2 += -aav.0x00002ec8;
    0x00050f08 move a0, s2                   |         a0 = s2;
    0x00050f0c sw v0, 0x28(sp)               |         *(var_28h_2) = v0;
    0x00050f10 jalr t9                       |         t9 ();
    0x00050f14 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050f18 lw a2, 0x28(sp)               |         a2 = *(var_28h_2);
    0x00050f1c move a1, s2                   |         a1 = s2;
    0x00050f20 lw t9, -0x7ed8(gp)            |         t9 = sym.vdo_map_set_string;
    0x00050f24 move a0, s6                   |         a0 = s6;
    0x00050f28 jalr t9                       |         t9 ();
    0x00050f2c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00050f30 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00050f34 lw a0, 0x28(sp)               |         a0 = *(var_28h_2);
    0x00050f38 jalr t9                       |         t9 ();
    0x00050f3c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |     }
    0x00050f40 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050f44 lw t9, -0x7790(gp)            |     t9 = sym.imp.g_key_file_get_string;
    0x00050f48 move a3, zero                 |     a3 = 0;
                                             |     /* str.Position */
    0x00050f4c addiu a2, a2, -0x2eb8         |     a2 += -aav.0x00002eb8;
    0x00050f50 move a1, s4                   |     a1 = s4;
    0x00050f54 move a0, s0                   |     a0 = s0;
    0x00050f58 jalr t9                       |     t9 ();
    0x00050f5c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00050f60 beqz v0, 0x51cac              |         goto label_41;
                                             |     }
    0x00050f64 lb v1, (v0)                   |     v1 = *(v0);
    0x00050f68 addiu a0, zero, 0x54          |     a0 = 0x54;
                                             |     if (v1 != a0) {
    0x00050f6c beql v1, a0, 0x50f98          |         
    0x00050f70 sw zero, 0x28(sp)             |         *(var_28h_2) = 0;
    0x00050f74 slti a0, v1, 0x55             |         a0 = (v1 < 0x55) ? 1 : 0;
    0x00050f78 xori v1, v1, 0x42             |         v1 ^= 0x42;
                                             |         if (a0 == 0) {
    0x00050f7c bnel a0, zero, 0x51744        |             goto label_42;
                                             |         }
    0x00050f80 addiu a0, zero, 0x62          |         a0 = 0x62;
    0x00050f84 xori v1, v1, 0x74             |         v1 ^= 0x74;
                                             |         if (v1 == a0) {
    0x00050f88 beq v1, a0, 0x51c8c           |             goto label_43;
                                             |         }
    0x00050f8c addiu a0, zero, -1            |         a0 = -1;
                                             |         if (v1 != 0) {
    0x00050f90 movz a0, zero, v1             |             a0 = 0;
                                             |         }
    0x00050f94 sw a0, 0x28(sp)               |         *(var_28h_2) = a0;
                                             |     }
                                             | label_9:
    0x00050f98 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00050f9c move a0, v0                   |     a0 = v0;
    0x00050fa0 jalr t9                       |     t9 ();
    0x00050fa4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             | label_17:
    0x00050fa8 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050fac lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x00050fb0 move a3, zero                 |     a3 = 0;
                                             |     /* str.overlay._u.align */
    0x00050fb4 addiu a2, a2, -0x2eac         |     a2 += -0x2eac;
    0x00050fb8 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00050fbc move a0, s2                   |     a0 = s2;
    0x00050fc0 jalr t9                       |     t9 ();
    0x00050fc4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050fc8 lw a2, 0x28(sp)               |     a2 = *(var_28h_2);
    0x00050fcc move a1, s2                   |     a1 = s2;
    0x00050fd0 lw t9, -0x7abc(gp)            |     t9 = sym.vdo_map_set_uint32;
    0x00050fd4 move a0, s6                   |     a0 = s6;
    0x00050fd8 jalr t9                       |     t9 ();
    0x00050fdc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050fe0 lw t9, 0x38(sp)               |     t9 = *(var_38h);
    0x00050fe4 move a1, s4                   |     a1 = s4;
    0x00050fe8 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00050fec move a0, s0                   |     a0 = s0;
                                             |     /* str.Color */
    0x00050ff0 addiu a2, a2, -0x2e98         |     a2 += -0x2e98;
    0x00050ff4 jalr t9                       |     t9 ();
    0x00050ff8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00050ffc move a3, zero                 |     a3 = 0;
    0x00051000 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00051004 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051008 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
                                             |     /* str.overlay._u.textcolor */
    0x0005100c addiu a2, a2, -0x2e90         |     a2 += -aav.0x00002e90;
    0x00051010 move a0, s2                   |     a0 = s2;
    0x00051014 sw v0, 0x28(sp)               |     *(var_28h_2) = v0;
    0x00051018 jalr t9                       |     t9 ();
    0x0005101c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051020 lw v1, 0x28(sp)               |     v1 = *(var_28h_2);
    0x00051024 move a1, s2                   |     a1 = s2;
    0x00051028 lw t9, -0x7abc(gp)            |     t9 = sym.vdo_map_set_uint32;
    0x0005102c move a2, v1                   |     a2 = v1;
    0x00051030 move a0, s6                   |     a0 = s6;
    0x00051034 jalr t9                       |     t9 ();
    0x00051038 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005103c lw t9, 0x38(sp)               |     t9 = *(var_38h);
    0x00051040 move a1, s4                   |     a1 = s4;
    0x00051044 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051048 move a0, s0                   |     a0 = s0;
                                             |     /* str.BGColor */
    0x0005104c addiu a2, a2, -0x2e78         |     a2 += -0x2e78;
    0x00051050 jalr t9                       |     t9 ();
    0x00051054 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051058 move a3, zero                 |     a3 = 0;
    0x0005105c addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00051060 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051064 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
                                             |     /* str.overlay._u.bgcolor */
    0x00051068 addiu a2, a2, -0x2e70         |     a2 += -0x2e70;
    0x0005106c move a0, s2                   |     a0 = s2;
    0x00051070 sw v0, 0x28(sp)               |     *(var_28h_2) = v0;
    0x00051074 jalr t9                       |     t9 ();
    0x00051078 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005107c lw v1, 0x28(sp)               |     v1 = *(var_28h_2);
    0x00051080 move a1, s2                   |     a1 = s2;
    0x00051084 lw t9, -0x7abc(gp)            |     t9 = sym.vdo_map_set_uint32;
    0x00051088 move a2, v1                   |     a2 = v1;
    0x0005108c move a0, s6                   |     a0 = s6;
    0x00051090 jalr t9                       |     t9 ();
    0x00051094 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051098 move a3, zero                 |     a3 = 0;
    0x0005109c move a1, s4                   |     a1 = s4;
    0x000510a0 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x000510a4 lw t9, -0x7790(gp)            |     t9 = sym.imp.g_key_file_get_string;
                                             |     /* str.TextSize */
    0x000510a8 addiu a2, a2, -0x2e5c         |     a2 += -aav.0x00002e5c;
    0x000510ac move a0, s0                   |     a0 = s0;
    0x000510b0 jalr t9                       |     t9 ();
    0x000510b4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x000510b8 beqz v0, 0x51d58              |         goto label_44;
                                             |     }
    0x000510bc lb v1, (v0)                   |     v1 = *(v0);
    0x000510c0 addiu a0, zero, 0x53          |     a0 = 0x53;
    0x000510c4 slti a0, v1, 0x54             |     a0 = (v1 < 0x54) ? 1 : 0;
                                             |     if (v1 == a0) {
    0x000510c8 beq v1, a0, 0x51cd4           |         goto label_45;
                                             |     }
    0x000510cc xori v1, v1, 0x4d             |     v1 ^= 0x4d;
                                             |     if (a0 == 0) {
    0x000510d0 bnel a0, zero, 0x51730        |         goto label_46;
                                             |     }
    0x000510d4 addiu a0, zero, 0x6d          |     a0 = 0x6d;
    0x000510d8 xori v1, v1, 0x73             |     v1 ^= 0x73;
                                             |     if (v1 == a0) {
    0x000510dc beq v1, a0, 0x51c48           |         goto label_47;
                                             |     }
    0x000510e0 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x000510e4 addiu a0, zero, 0x30          |     a0 = 0x30;
                                             |     if (v1 != 0) {
    0x000510e8 movz a0, a1, v1               |         a0 = a1;
                                             |     }
    0x000510ec sw a0, 0x28(sp)               |     *(var_28h_2) = a0;
                                             | label_8:
    0x000510f0 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x000510f4 move a0, v0                   |     a0 = v0;
    0x000510f8 jalr t9                       |     t9 ();
    0x000510fc lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             | label_18:
    0x00051100 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051104 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x00051108 move a3, zero                 |     a3 = 0;
                                             |     /* str.overlay._u.size */
    0x0005110c addiu a2, a2, -0x2e50         |     a2 += -0x2e50;
    0x00051110 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00051114 move a0, s2                   |     a0 = s2;
    0x00051118 jalr t9                       |     t9 ();
    0x0005111c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051120 lw a2, 0x28(sp)               |     a2 = *(var_28h_2);
    0x00051124 move a1, s2                   |     a1 = s2;
    0x00051128 lw t9, -0x7abc(gp)            |     t9 = sym.vdo_map_set_uint32;
    0x0005112c move a0, s6                   |     a0 = s6;
    0x00051130 jalr t9                       |     t9 ();
    0x00051134 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051138 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x0005113c lw a0, 0x30(sp)               |     a0 = *(var_30h);
    0x00051140 jalr t9                       |     t9 ();
    0x00051144 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051148 b 0x50d14                     |     goto label_2;
                                             | label_26:
    0x0005114c lw t9, -0x7840(gp)            |     t9 = sym.imp.g_key_file_unref;
    0x00051150 move a0, s0                   |     a0 = s0;
    0x00051154 jalr t9                       |     t9 ();
    0x00051158 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005115c lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051160 move a0, zero                 |     a0 = 0;
    0x00051164 jalr t9                       |     t9 ();
    0x00051168 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005116c lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051170 move a0, zero                 |     a0 = 0;
    0x00051174 jalr t9                       |     t9 ();
    0x00051178 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             | label_11:
    0x0005117c lw a0, 0x7c(sp)               |     a0 = *(var_7ch);
    0x00051180 lw v1, (s5)                   |     v1 = *(s5);
    0x00051184 move v0, s4                   |     v0 = s4;
                                             |     if (a0 != v1) {
    0x00051188 bne a0, v1, 0x51f74           |         goto label_48;
                                             |     }
    0x0005118c lw ra, 0xa4(sp)               |     ra = *(var_2ch);
    0x00051190 lw fp, 0xa0(sp)               |     fp = *(var_28h);
    0x00051194 lw s7, 0x9c(sp)               |     s7 = *(var_24h);
    0x00051198 lw s6, 0x98(sp)               |     s6 = *(var_20h);
    0x0005119c lw s5, 0x94(sp)               |     s5 = *(var_1ch);
    0x000511a0 lw s4, 0x90(sp)               |     s4 = *(var_18h);
    0x000511a4 lw s3, 0x8c(sp)               |     s3 = *(var_8ch);
    0x000511a8 lw s2, 0x88(sp)               |     s2 = *(var_10h);
    0x000511ac lw s1, 0x84(sp)               |     s1 = *(var_84h);
    0x000511b0 lw s0, 0x80(sp)               |     s0 = *(var_80h);
    0x000511b4 addiu sp, sp, 0xa8            |     
    0x000511b8 jr ra                         |     return v0;
                                             | label_24:
    0x000511bc lw t9, -0x7480(gp)            |     t9 = sym.imp.g_key_file_load_from_file;
    0x000511c0 move a3, s3                   |     a3 = s3;
    0x000511c4 move a2, zero                 |     a2 = 0;
                                             |     /* str._etc_sysconfig_image_overlay.conf */
    0x000511c8 addiu a1, s1, -0x2e40         |     a1 = s1 + -0x2e40;
    0x000511cc move a0, s0                   |     a0 = s0;
    0x000511d0 jalr t9                       |     t9 ();
    0x000511d4 move s4, v0                   |     s4 = v0;
    0x000511d8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x000511dc beqz v0, 0x517b0              |         goto label_49;
                                             |     }
    0x000511e0 lw s1, -0x7fa0(gp)            |     s1 = *(gp);
    0x000511e4 lw t9, -0x74c4(gp)            |     t9 = sym.imp.g_key_file_has_group;
                                             |     /* str.Image */
    0x000511e8 addiu a1, s1, -0x30b0         |     a1 = s1 + -0x30b0;
    0x000511ec move a0, s0                   |     a0 = s0;
    0x000511f0 jalr t9                       |     t9 ();
    0x000511f4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x000511f8 beqz v0, 0x50b28              |         goto label_3;
                                             |     }
    0x000511fc lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051200 lw t9, -0x7790(gp)            |     t9 = sym.imp.g_key_file_get_string;
                                             |     /* str.Image */
    0x00051204 addiu a1, s1, -0x30b0         |     a1 = s1 + -0x30b0;
    0x00051208 move a3, zero                 |     a3 = 0;
                                             |     /* str.OverlayPath */
    0x0005120c addiu a2, a2, -0x2e1c         |     a2 += -0x2e1c;
    0x00051210 move a0, s0                   |     a0 = s0;
    0x00051214 jalr t9                       |     t9 ();
    0x00051218 move s1, v0                   |     s1 = v0;
    0x0005121c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00051220 beqz v0, 0x50b28              |         goto label_3;
                                             |     }
    0x00051224 lw t9, -0x78d0(gp)            |     t9 = sym.imp.g_shell_unquote;
    0x00051228 move a1, zero                 |     a1 = 0;
    0x0005122c move a0, v0                   |     a0 = v0;
    0x00051230 jalr t9                       |     t9 ();
    0x00051234 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051238 move s2, v0                   |     s2 = v0;
    0x0005123c sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x00051240 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051244 move a0, s1                   |     a0 = s1;
    0x00051248 jalr t9                       |     t9 ();
    0x0005124c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (s2 == 0) {
    0x00051250 beqz s2, 0x51780              |         goto label_50;
                                             |     }
    0x00051254 lw t9, -0x7fbc(gp)            |     t9 = sym.hal_system_get_instance;
    0x00051258 bal 0x38568                   |     sym_hal_system_get_instance ();
    0x0005125c nop                           |     
    0x00051260 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051264 move a0, v0                   |     a0 = v0;
    0x00051268 lw t9, -0x7bd8(gp)            |     t9 = sym.hal_system_is_running;
    0x0005126c move s1, v0                   |     s1 = v0;
    0x00051270 bal 0x38c58                   |     sym_hal_system_is_running ();
    0x00051274 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00051278 beqz v0, 0x51d74              |         goto label_51;
                                             |     }
    0x0005127c lw t9, -0x7ce8(gp)            |     t9 = sym.hal_system_get_all_channels;
    0x00051280 move a0, s1                   |     a0 = s1;
    0x00051284 bal 0x399dc                   |     sym_hal_system_get_all_channels ();
    0x00051288 sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x0005128c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051290 move s1, v0                   |     s1 = v0;
                                             |     if (v0 == 0) {
    0x00051294 beqz v0, 0x51d64              |         goto label_52;
                                             |     }
    0x00051298 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x0005129c sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x000512a0 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
                                             |     /* esilref: 'Enabled' */
    0x000512a4 addiu v0, v0, -0x2eec         |     v0 += -0x2eec;
    0x000512a8 sw v0, 0x28(sp)               |     *(var_28h_2) = v0;
    0x000512ac lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* fcn.00050674 */
    0x000512b0 addiu v0, v0, 0x674           |     v0 += 0x674;
    0x000512b4 sw v0, 0x2c(sp)               |     *(var_2ch_2) = v0;
    0x000512b8 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x000512bc sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x000512c0 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* fcn.000507ac */
    0x000512c4 addiu v0, v0, 0x7ac           |     v0 += aav.0x000007ac;
    0x000512c8 sw v0, 0x38(sp)               |     *(var_38h) = v0;
    0x000512cc b 0x51478                     |     goto label_53;
                                             | label_4:
    0x000512d0 lw a2, 0x28(sp)               |     a2 = *(var_28h_2);
    0x000512d4 lw t9, 0x2c(sp)               |     t9 = *(var_2ch_2);
    0x000512d8 move a1, s6                   |     a1 = s6;
    0x000512dc move a0, s0                   |     a0 = s0;
    0x000512e0 jalr t9                       |     t9 ();
    0x000512e4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000512e8 lw v1, 0x30(sp)               |     v1 = *(var_30h);
    0x000512ec addiu fp, sp, 0x5c            |     fp = sp + 0x5c;
    0x000512f0 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x000512f4 addiu a2, v1, -0x2edc         |     a2 = v1 + -aav.0x00002edc;
    0x000512f8 addiu a3, zero, 1             |     a3 = 1;
    0x000512fc addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00051300 move a0, fp                   |     a0 = fp;
    0x00051304 sw v0, 0x20(sp)               |     *(var_20h_2) = v0;
    0x00051308 jalr t9                       |     t9 ();
    0x0005130c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051310 lw a2, 0x20(sp)               |     a2 = *(var_20h_2);
    0x00051314 move a1, fp                   |     a1 = fp;
    0x00051318 lw t9, -0x7fb4(gp)            |     t9 = sym.vdo_map_set_boolean;
    0x0005131c move a0, s7                   |     a0 = s7;
    0x00051320 jalr t9                       |     t9 ();
    0x00051324 lw v0, 0x20(sp)               |     v0 = *(var_20h_2);
    0x00051328 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x0005132c beqz v0, 0x51428              |         
    0x00051330 lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x00051334 lw t9, -0x7858(gp)            |         t9 = sym.imp.g_snprintf
    0x00051338 addiu a3, zero, 1             |         a3 = 1;
                                             |         /* str.overlay._u.path */
    0x0005133c addiu a2, a2, -0x2ddc         |         a2 += -0x2ddc;
    0x00051340 addiu a1, zero, 0x1e          |         a1 = 0x1e;
    0x00051344 move a0, fp                   |         a0 = fp;
    0x00051348 jalr t9                       |         t9 ();
    0x0005134c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051350 lw a2, 0x34(sp)               |         a2 = *(var_34h);
    0x00051354 move a1, fp                   |         a1 = fp;
    0x00051358 lw t9, -0x7ed8(gp)            |         t9 = sym.vdo_map_set_string;
    0x0005135c move a0, s7                   |         a0 = s7;
    0x00051360 jalr t9                       |         t9 ();
    0x00051364 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051368 lw t9, 0x38(sp)               |         t9 = *(var_38h);
    0x0005136c addiu a3, sp, 0x54            |         a3 = sp + 0x54;
    0x00051370 lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x00051374 move a1, s6                   |         a1 = s6;
                                             |         /* str.XPos */
    0x00051378 addiu a2, a2, -0x2dcc         |         a2 += -0x2dcc;
    0x0005137c move a0, s0                   |         a0 = s0;
    0x00051380 sw zero, 0x54(sp)             |         *(var_54h) = 0;
    0x00051384 sw zero, 0x58(sp)             |         *(var_58h) = 0;
    0x00051388 jalr t9                       |         t9 ();
    0x0005138c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x00051390 beqz v0, 0x51e50              |             goto label_54;
                                             |         }
    0x00051394 lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x00051398 lw t9, 0x38(sp)               |         t9 = *(var_38h);
    0x0005139c addiu a3, sp, 0x58            |         a3 = sp + 0x58;
                                             |         /* str.YPos */
    0x000513a0 addiu a2, a2, -0x2d94         |         a2 += -0x2d94;
    0x000513a4 move a1, s6                   |         a1 = s6;
    0x000513a8 move a0, s0                   |         a0 = s0;
    0x000513ac jalr t9                       |         t9 ();
    0x000513b0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x000513b4 beqz v0, 0x51e50              |             goto label_54;
                                             |         }
    0x000513b8 lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x000513bc lw t9, -0x7858(gp)            |         t9 = sym.imp.g_snprintf
    0x000513c0 addiu a3, zero, 1             |         a3 = 1;
                                             |         /* str.overlay._u.x */
    0x000513c4 addiu a2, a2, -0x2d8c         |         a2 += -aav.0x00002d8c;
    0x000513c8 addiu a1, zero, 0x1e          |         a1 = 0x1e;
    0x000513cc move a0, fp                   |         a0 = fp;
    0x000513d0 jalr t9                       |         t9 ();
    0x000513d4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000513d8 lw a2, 0x54(sp)               |         a2 = *(var_54h);
    0x000513dc move a1, fp                   |         a1 = fp;
    0x000513e0 lw t9, -0x7abc(gp)            |         t9 = sym.vdo_map_set_uint32;
    0x000513e4 move a0, s7                   |         a0 = s7;
    0x000513e8 jalr t9                       |         t9 ();
    0x000513ec lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000513f0 addiu a3, zero, 1             |         a3 = 1;
    0x000513f4 addiu a1, zero, 0x1e          |         a1 = 0x1e;
    0x000513f8 lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x000513fc lw t9, -0x7858(gp)            |         t9 = sym.imp.g_snprintf
                                             |         /* str.overlay._u.y */
    0x00051400 addiu a2, a2, -0x2d7c         |         a2 += -0x2d7c;
    0x00051404 move a0, fp                   |         a0 = fp;
    0x00051408 jalr t9                       |         t9 ();
    0x0005140c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051410 lw a2, 0x58(sp)               |         a2 = *(var_58h);
    0x00051414 move a1, fp                   |         a1 = fp;
    0x00051418 lw t9, -0x7abc(gp)            |         t9 = sym.vdo_map_set_uint32;
    0x0005141c move a0, s7                   |         a0 = s7;
    0x00051420 jalr t9                       |         t9 ();
    0x00051424 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |     }
    0x00051428 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x0005142c move a0, s6                   |     a0 = s6;
    0x00051430 jalr t9                       |     t9 ();
    0x00051434 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051438 move a0, s4                   |     a0 = s4;
    0x0005143c move a2, s3                   |     a2 = s3;
    0x00051440 lw t9, -0x7c44(gp)            |     t9 = sym.hal_channel_set_settings;
    0x00051444 move a1, s7                   |     a1 = s7;
    0x00051448 bal 0x407c4                   |     sym_hal_channel_set_settings ();
    0x0005144c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051450 move s4, v0                   |     s4 = v0;
    0x00051454 move a0, s7                   |     a0 = s7;
    0x00051458 lw t9, -0x77ec(gp)            |     t9 = *((gp - 7675));
                                             |     if (v0 == 0) {
    0x0005145c beqz v0, 0x51e9c              |         goto label_55;
                                             |     }
    0x00051460 jalr t9                       |     t9 ();
    0x00051464 nop                           |     
    0x00051468 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     do {
                                             | label_5:
    0x0005146c lw s1, 4(s1)                  |         s1 = *((s1 + 1));
    0x00051470 lw t9, -0x7580(gp)            |         t9 = sym.imp.g_list_free;
                                             |         if (s1 == 0) {
    0x00051474 beqz s1, 0x51d68              |             goto label_56;
                                             |         }
                                             | label_53:
    0x00051478 lw t9, -0x7ce4(gp)            |         t9 = sym.hal_channel_get_type;
    0x0005147c lw s2, (s1)                   |         s2 = *(s1);
    0x00051480 bal 0x4004c                   |         sym_hal_channel_get_type ();
    0x00051484 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051488 move a0, s2                   |         a0 = s2;
    0x0005148c lw t9, -0x74d0(gp)            |         t9 = sym.imp.g_type_check_instance_cast;
    0x00051490 move a1, v0                   |         a1 = v0;
    0x00051494 jalr t9                       |         t9 ();
    0x00051498 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0005149c move a0, v0                   |         a0 = v0;
    0x000514a0 lw t9, -0x7c30(gp)            |         t9 = sym.hal_channel_get_id;
    0x000514a4 move s4, v0                   |         s4 = v0;
    0x000514a8 bal 0x40464                   |         sym_hal_channel_get_id ();
    0x000514ac move s2, v0                   |         s2 = v0;
    0x000514b0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000514b4 beqz v0, 0x5146c              |         
                                             |     } while (v0 == 0);
    0x000514b8 lw t9, -0x7fb8(gp)            |     t9 = sym.vdo_map_new;
    0x000514bc jalr t9                       |     t9 ();
    0x000514c0 nop                           |     
    0x000514c4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000514c8 lw v1, 0x24(sp)               |     v1 = *(var_24h_2);
    0x000514cc addiu a1, s2, -1              |     a1 = s2 + -1;
    0x000514d0 lw t9, -0x75f8(gp)            |     t9 = sym.imp.g_strdup_printf
    0x000514d4 addiu a0, v1, -0x2df0         |     a0 = v1 + -0x2df0;
    0x000514d8 move s7, v0                   |     s7 = v0;
    0x000514dc jalr t9                       |     t9 ();
    0x000514e0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000514e4 move a1, v0                   |     a1 = v0;
    0x000514e8 move a0, s0                   |     a0 = s0;
    0x000514ec lw t9, -0x74c4(gp)            |     t9 = sym.imp.g_key_file_has_group;
    0x000514f0 move s6, v0                   |     s6 = v0;
    0x000514f4 jalr t9                       |     t9 ();
    0x000514f8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x000514fc bnez v0, 0x512d0              |         goto label_4;
                                             |     }
    0x00051500 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051504 move a0, s6                   |     a0 = s6;
    0x00051508 jalr t9                       |     t9 ();
    0x0005150c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051510 lw t9, -0x77ec(gp)            |     t9 = *((gp - 7675));
    0x00051514 move a0, s7                   |     a0 = s7;
    0x00051518 jalr t9                       |     t9 ();
    0x0005151c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051520 b 0x5146c                     |     goto label_5;
                                             | label_25:
    0x00051524 lw t9, -0x7994(gp)            |     t9 = sym.hal_system_get_all_masks;
    0x00051528 move a0, s0                   |     a0 = s0;
    0x0005152c bal 0x38db0                   |     sym_hal_system_get_all_masks ();
    0x00051530 move fp, v0                   |     fp = v0;
    0x00051534 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051538 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
                                             |     if (v0 == 0) {
    0x0005153c beqz v0, 0x50b74              |         goto label_6;
                                             |     }
    0x00051540 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x00051544 sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x00051548 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
                                             |     /* str.Image.I_d.Overlay.MaskWindows.M_d */
    0x0005154c addiu v0, v0, -0x2cb8         |     v0 += -0x2cb8;
    0x00051550 sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x00051554 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* fcn.00050674 */
    0x00051558 addiu v0, v0, 0x674           |     v0 += 0x674;
    0x0005155c sw v0, 0x44(sp)               |     *(var_44h) = v0;
    0x00051560 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
                                             |     /* fcn.000507ac */
    0x00051564 addiu v0, v0, 0x7ac           |     v0 += aav.0x000007ac;
    0x00051568 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0005156c b 0x5163c                     |     
                                             |     while (v0 == 0) {
    0x00051570 sw zero, 0x38(sp)             |         *(var_38h) = 0;
                                             | label_7:
    0x00051574 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051578 move a0, s1                   |         a0 = s1;
    0x0005157c jalr t9                       |         t9 ();
    0x00051580 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051584 lw t9, -0x7840(gp)            |         t9 = sym.imp.g_key_file_unref;
    0x00051588 move a0, s0                   |         a0 = s0;
    0x0005158c jalr t9                       |         t9 ();
    0x00051590 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051594 move a1, s6                   |         a1 = s6;
    0x00051598 lw a0, -0x7fa0(gp)            |         a0 = *(gp);
    0x0005159c lw t9, -0x75f8(gp)            |         t9 = sym.imp.g_strdup_printf
                                             |         /* str._etc_dynamic_image_i_d_overlay_maskwindows.conf */
    0x000515a0 addiu a0, a0, -0x2ce8         |         a0 += -0x2ce8;
    0x000515a4 jalr t9                       |         t9 ();
    0x000515a8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000515ac sw v0, 0x30(sp)               |         *(var_30h) = v0;
    0x000515b0 addiu a1, zero, 0x10          |         a1 = 0x10;
    0x000515b4 lw t9, -0x7738(gp)            |         t9 = sym.imp.g_file_test;
    0x000515b8 move a0, v0                   |         a0 = v0;
    0x000515bc jalr t9                       |         t9 ();
    0x000515c0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x000515c4 beqz v0, 0x51974              |             goto label_57;
                                             |         }
    0x000515c8 lw t9, -0x77c4(gp)            |         t9 = sym.imp.g_key_file_new;
    0x000515cc jalr t9                       |         t9 ();
    0x000515d0 nop                           |         
    0x000515d4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000515d8 lw s0, 0x30(sp)               |         s0 = *(var_30h);
    0x000515dc move a3, s3                   |         a3 = s3;
    0x000515e0 lw t9, -0x7480(gp)            |         t9 = sym.imp.g_key_file_load_from_file;
    0x000515e4 move a2, zero                 |         a2 = 0;
    0x000515e8 move a1, s0                   |         a1 = s0;
    0x000515ec move a0, v0                   |         a0 = v0;
    0x000515f0 move s4, v0                   |         s4 = v0;
    0x000515f4 jalr t9                       |         t9 ();
    0x000515f8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x000515fc bnez v0, 0x5199c              |             goto label_58;
                                             |         }
    0x00051600 lw t9, -0x77ac(gp)            |         t9 = sym.imp.g_clear_error;
    0x00051604 move a0, s3                   |         a0 = s3;
    0x00051608 jalr t9                       |         t9 ();
    0x0005160c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051610 lw t9, -0x7840(gp)            |         t9 = sym.imp.g_key_file_unref;
    0x00051614 move a0, s4                   |         a0 = s4;
    0x00051618 jalr t9                       |         t9 ();
    0x0005161c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051620 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051624 move a0, s0                   |         a0 = s0;
    0x00051628 jalr t9                       |         t9 ();
    0x0005162c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             | label_15:
    0x00051630 lw fp, 4(fp)                  |         fp = *(arg_4h);
    0x00051634 lw t9, -0x7580(gp)            |         t9 = sym.imp.g_list_free;
                                             |         if (fp == 0) {
    0x00051638 beqz fp, 0x51cb8              |             goto label_59;
                                             |         }
    0x0005163c lw t9, -0x7990(gp)            |         t9 = sym.hal_mask_get_id;
    0x00051640 lw a0, (fp)                   |         a0 = *(fp);
    0x00051644 bal 0x3fac4                   |         sym_hal_mask_get_id ();
    0x00051648 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0005164c lw t9, -0x77c4(gp)            |         t9 = sym.imp.g_key_file_new;
    0x00051650 move s6, v0                   |         s6 = v0;
    0x00051654 jalr t9                       |         t9 ();
    0x00051658 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0005165c lw s1, 0x48(sp)               |         s1 = *(var_48h);
    0x00051660 addiu a1, zero, 0x10          |         a1 = 0x10;
    0x00051664 lw t9, -0x7738(gp)            |         t9 = sym.imp.g_file_test;
    0x00051668 addiu a0, s1, -0x2d6c         |         a0 = s1 + -0x2d6c;
    0x0005166c move s0, v0                   |         s0 = v0;
    0x00051670 jalr t9                       |         t9 ();
    0x00051674 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00051678 beqz v0, 0x516a0              |             
    0x0005167c lw t9, -0x7480(gp)            |             t9 = sym.imp.g_key_file_load_from_file;
    0x00051680 move a3, s3                   |             a3 = s3;
    0x00051684 move a2, zero                 |             a2 = 0;
    0x00051688 addiu a1, s1, -0x2d6c         |             a1 = s1 + -0x2d6c;
    0x0005168c move a0, s0                   |             a0 = s0;
    0x00051690 jalr t9                       |             t9 ();
    0x00051694 move s4, v0                   |             s4 = v0;
    0x00051698 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
                                             |             if (v0 == 0) {
    0x0005169c beqz v0, 0x51db8              |                 goto label_60;
                                             |             }
                                             |         }
    0x000516a0 lw a0, -0x7fa0(gp)            |         a0 = *(gp);
    0x000516a4 lw t9, -0x75f8(gp)            |         t9 = sym.imp.g_strdup_printf
    0x000516a8 move a1, s6                   |         a1 = s6;
                                             |         /* str.Image.I_d.Overlay.MaskWindows */
    0x000516ac addiu a0, a0, -0x2d44         |         a0 += -0x2d44;
    0x000516b0 jalr t9                       |         t9 ();
    0x000516b4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000516b8 move a1, v0                   |         a1 = v0;
    0x000516bc move a0, s0                   |         a0 = s0;
    0x000516c0 lw t9, -0x74c4(gp)            |         t9 = sym.imp.g_key_file_has_group;
    0x000516c4 move s1, v0                   |         s1 = v0;
    0x000516c8 jalr t9                       |         t9 ();
    0x000516cc lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000516d0 beqz v0, 0x51570              |         
                                             |     }
    0x000516d4 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x000516d8 lw t9, -0x7790(gp)            |     t9 = sym.imp.g_key_file_get_string;
    0x000516dc move a3, zero                 |     a3 = 0;
                                             |     /* str.Color */
    0x000516e0 addiu a2, a2, -0x2e98         |     a2 += -0x2e98;
    0x000516e4 move a1, s1                   |     a1 = s1;
    0x000516e8 move a0, s0                   |     a0 = s0;
    0x000516ec jalr t9                       |     t9 ();
    0x000516f0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000516f4 move a0, v0                   |     a0 = v0;
    0x000516f8 move s2, v0                   |     s2 = v0;
    0x000516fc lw a1, -0x7fa0(gp)            |     a1 = *(gp);
    0x00051700 lw t9, -0x7940(gp)            |     t9 = sym.imp.g_strcmp0;
                                             |     /* str.grey */
    0x00051704 addiu a1, a1, -0x2d24         |     a1 += -0x2d24;
    0x00051708 jalr t9                       |     t9 ();
    0x0005170c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x00051710 bnez v0, 0x51c20              |         goto label_61;
                                             |     }
    0x00051714 addiu v0, zero, 1             |     v0 = 1;
    0x00051718 sw v0, 0x38(sp)               |     *(var_38h) = v0;
                                             | label_16:
    0x0005171c lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051720 move a0, s2                   |     a0 = s2;
    0x00051724 jalr t9                       |     t9 ();
    0x00051728 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005172c b 0x51574                     |     goto label_7;
                                             | label_46:
    0x00051730 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00051734 addiu a0, zero, 0x30          |     a0 = 0x30;
                                             |     if (v1 != 0) {
    0x00051738 movz a0, a1, v1               |         a0 = a1;
                                             |     }
    0x0005173c sw a0, 0x28(sp)               |     *(var_28h_2) = a0;
    0x00051740 b 0x510f0                     |     goto label_8;
                                             | label_42:
    0x00051744 addiu a1, zero, 1             |     a1 = 1;
    0x00051748 addiu a0, zero, -1            |     a0 = -1;
                                             |     if (v1 != 0) {
    0x0005174c movz a0, a1, v1               |         a0 = a1;
                                             |     }
    0x00051750 sw a0, 0x28(sp)               |     *(var_28h_2) = a0;
    0x00051754 b 0x50f98                     |     goto label_9;
                                             | label_37:
    0x00051758 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x0005175c lw t9, -0x7790(gp)            |     t9 = sym.imp.g_key_file_get_string;
    0x00051760 move a3, zero                 |     a3 = 0;
                                             |     /* str.String */
    0x00051764 addiu a2, a2, -0x2ee4         |     a2 += -0x2ee4;
    0x00051768 move a1, s4                   |     a1 = s4;
    0x0005176c move a0, s0                   |     a0 = s0;
    0x00051770 jalr t9                       |     t9 ();
    0x00051774 sw v0, 0x2c(sp)               |     *(var_2ch_2) = v0;
    0x00051778 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005177c b 0x50e50                     |     goto label_10;
                                             | label_50:
    0x00051780 lw t9, -0x7eb8(gp)            |     t9 = sym.vdo_error_quark;
    0x00051784 move s4, zero                 |     s4 = 0;
    0x00051788 jalr t9                       |     t9 ();
    0x0005178c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051790 addiu a2, zero, 0x11          |     a2 = 0x11;
    0x00051794 move a1, v0                   |     a1 = v0;
    0x00051798 lw a3, -0x7fa0(gp)            |     a3 = *(gp);
    0x0005179c lw t9, -0x78ec(gp)            |     t9 = sym.imp.g_set_error;
                                             |     /* str.Cant_parse_image_overlay_path */
    0x000517a0 addiu a3, a3, -0x2e10         |     a3 += -0x2e10;
    0x000517a4 move a0, s3                   |     a0 = s3;
    0x000517a8 jalr t9                       |     t9 ();
    0x000517ac lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             | label_49:
    0x000517b0 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x000517b4 move a0, zero                 |     a0 = 0;
                                             | label_21:
    0x000517b8 jalr t9                       |     t9 ();
    0x000517bc nop                           |     
    0x000517c0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000517c4 lw t9, -0x7840(gp)            |     t9 = sym.imp.g_key_file_unref;
    0x000517c8 move a0, s0                   |     a0 = s0;
    0x000517cc jalr t9                       |     t9 ();
    0x000517d0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000517d4 b 0x5117c                     |     goto label_11;
                                             | label_29:
    0x000517d8 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
                                             |     /* fcn.000507ac */
    0x000517dc addiu s2, s2, 0x7ac           |     s2 += aav.0x000007ac;
    0x000517e0 addiu v0, zero, 0x18          |     v0 = 0x18;
    0x000517e4 addiu s4, zero, 1             |     s4 = 1;
    0x000517e8 addiu a3, sp, 0x54            |     a3 = sp + 0x54;
                                             |     /* str.TimeFormat */
    0x000517ec addiu a2, a2, -0x2f54         |     a2 += -0x2f54;
                                             |     /* str.Image */
    0x000517f0 addiu a1, s1, -0x30b0         |     a1 = s1 + -0x30b0;
    0x000517f4 move a0, s0                   |     a0 = s0;
    0x000517f8 move t9, s2                   |     t9 = s2;
    0x000517fc sw v0, 0x54(sp)               |     *(var_54h) = v0;
    0x00051800 sw s4, 0x58(sp)               |     *(var_58h) = s4;
    0x00051804 bal 0x507ac                   |     fcn_000507ac ();
    0x00051808 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005180c addiu a3, sp, 0x58            |     a3 = sp + 0x58;
                                             |     /* str.Image */
    0x00051810 addiu a1, s1, -0x30b0         |     a1 = s1 + -0x30b0;
    0x00051814 lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051818 move a0, s0                   |     a0 = s0;
    0x0005181c move t9, s2                   |     t9 = s2;
                                             |     /* str.TimeResolution */
    0x00051820 addiu a2, a2, -0x2f48         |     a2 += -aav.0x00002f48;
    0x00051824 bal 0x507ac                   |     fcn_000507ac ();
    0x00051828 lw v1, 0x54(sp)               |     v1 = *(var_54h);
    0x0005182c addiu v0, zero, 0xc           |     v0 = 0xc;
    0x00051830 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v1 == v0) {
    0x00051834 beq v1, v0, 0x51918           |         goto label_62;
                                             |     }
    0x00051838 lw v0, 0x58(sp)               |     v0 = *(var_58h);
    0x0005183c lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_strdup;
                                             |     if (v0 == s4) {
    0x00051840 beq v0, s4, 0x5195c           |         goto label_63;
                                             |     }
    0x00051844 lw a0, -0x7fa0(gp)            |     a0 = *(gp);
                                             |     /* str._T._f */
    0x00051848 addiu a0, a0, -0x2f24         |     a0 += -0x2f24;
    0x0005184c jalr t9                       |     t9 ();
    0x00051850 sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x00051854 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051858 b 0x50c58                     |     goto label_12;
                                             | label_27:
    0x0005185c lw s2, -0x7fdc(gp)            |     s2 = *(gp);
    0x00051860 lw a1, -0x7fa0(gp)            |     a1 = *(gp);
                                             |     /* fcn.00050890 */
    0x00051864 addiu s2, s2, 0x890           |     s2 += 0x890;
                                             |     /* str.DateFormat */
    0x00051868 addiu a1, a1, -0x301c         |     a1 += -0x301c;
    0x0005186c move t9, s2                   |     t9 = s2;
    0x00051870 move a0, s0                   |     a0 = s0;
    0x00051874 bal 0x50890                   |     fcn_00050890 ();
    0x00051878 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0005187c move a0, v0                   |     a0 = v0;
    0x00051880 move s6, v0                   |     s6 = v0;
    0x00051884 lw a1, -0x7fa0(gp)            |     a1 = *(gp);
    0x00051888 lw t9, -0x7940(gp)            |     t9 = sym.imp.g_strcmp0;
                                             |     /* str.Www_Mmm_DD_YYYY */
    0x0005188c addiu a1, a1, -0x3010         |     a1 += -0x3010;
    0x00051890 jalr t9                       |     t9 ();
    0x00051894 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x00051898 bnez v0, 0x518e0              |         goto label_64;
                                             |     }
    0x0005189c lw a0, -0x7fa0(gp)            |     a0 = *(gp);
    0x000518a0 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_strdup;
                                             |     /* str._a__b__e__Y */
    0x000518a4 addiu a0, a0, -0x3000         |     a0 += -0x3000;
    0x000518a8 jalr t9                       |     t9 ();
    0x000518ac lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000518b0 move fp, v0                   |     fp = v0;
                                             |     do {
                                             | label_20:
    0x000518b4 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x000518b8 move a0, s6                   |         a0 = s6;
    0x000518bc jalr t9                       |         t9 ();
    0x000518c0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000518c4 b 0x50c30                     |         goto label_13;
                                             | label_39:
    0x000518c8 lw a3, 0x40(sp)               |         a3 = *(var_40h);
    0x000518cc move a2, fp                   |         a2 = fp;
    0x000518d0 lw a0, 0x2c(sp)               |         a0 = *(var_2ch_2);
    0x000518d4 lw v0, 0x24(sp)               |         v0 = *(var_24h_2);
    0x000518d8 move a1, a3                   |         a1 = a3;
    0x000518dc b 0x50ec4                     |         goto label_14;
                                             | label_64:
    0x000518e0 lw a1, -0x7fa0(gp)            |         a1 = *(gp);
    0x000518e4 lw t9, -0x7940(gp)            |         t9 = sym.imp.g_strcmp0;
                                             |         /* str.MM_DD_YYYY */
    0x000518e8 addiu a1, a1, -0x2ff4         |         a1 += -0x2ff4;
    0x000518ec move a0, s6                   |         a0 = s6;
    0x000518f0 jalr t9                       |         t9 ();
    0x000518f4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x000518f8 bnez v0, 0x51d80              |             goto label_65;
                                             |         }
    0x000518fc lw a0, -0x7fa0(gp)            |         a0 = *(gp);
    0x00051900 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_strdup;
                                             |         /* str._m__d__Y */
    0x00051904 addiu a0, a0, -0x2fe8         |         a0 += -0x2fe8;
    0x00051908 jalr t9                       |         t9 ();
    0x0005190c move fp, v0                   |         fp = v0;
    0x00051910 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051914 b 0x518b4                     |         
                                             |     } while (1);
                                             | label_62:
    0x00051918 lw v0, 0x58(sp)               |     v0 = *(var_58h);
    0x0005191c lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_strdup;
                                             |     if (v0 == s4) {
    0x00051920 beq v0, s4, 0x51e14           |         goto label_66;
                                             |     }
    0x00051924 lw a0, -0x7fa0(gp)            |     a0 = *(gp);
                                             |     /* str._I:_M:_S._f__p */
    0x00051928 addiu a0, a0, -0x2f34         |     a0 += -aav.0x00002f34;
    0x0005192c jalr t9                       |     t9 ();
    0x00051930 sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x00051934 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051938 b 0x50c58                     |     goto label_12;
                                             | label_28:
    0x0005193c lw a0, -0x7fa0(gp)            |     a0 = *(gp);
    0x00051940 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_strdup;
                                             |     /* esilref: '&F' */
    0x00051944 addiu a0, a0, -0x3020         |     a0 += -aav.0x00003020;
    0x00051948 jalr t9                       |     t9 ();
    0x0005194c move fp, v0                   |     fp = v0;
    0x00051950 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051954 b 0x50c30                     |     goto label_13;
                                             | label_30:
    0x00051958 lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_strdup;
                                             | label_63:
    0x0005195c lw a0, -0x7fa0(gp)            |     a0 = *(gp);
                                             |     /* esilref: '&T' */
    0x00051960 addiu a0, a0, -0x2f58         |     a0 += -0x2f58;
    0x00051964 jalr t9                       |     t9 ();
    0x00051968 sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x0005196c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051970 b 0x50c58                     |     goto label_12;
                                             | label_57:
    0x00051974 lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051978 lw a0, 0x30(sp)               |     a0 = *(var_30h);
    0x0005197c jalr t9                       |     t9 ();
    0x00051980 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051984 lw a0, (fp)                   |     a0 = *(fp);
    0x00051988 lw t9, -0x798c(gp)            |     t9 = sym.hal_mask_apply_datacache;
    0x0005198c move a1, s3                   |     a1 = s3;
    0x00051990 bal 0x3fec8                   |     sym_hal_mask_apply_datacache ();
    0x00051994 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051998 b 0x51630                     |     goto label_15;
                                             | label_58:
    0x0005199c lw t9, -0x7988(gp)            |     t9 = sym.hal_mask_get_info;
    0x000519a0 lw a0, (fp)                   |     a0 = *(fp);
    0x000519a4 move s1, zero                 |     s1 = 0;
    0x000519a8 bal 0x3fe1c                   |     sym_hal_mask_get_info ();
    0x000519ac lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000519b0 sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x000519b4 move s7, zero                 |     s7 = 0;
    0x000519b8 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x000519bc sw v0, 0x28(sp)               |     *(var_28h_2) = v0;
    0x000519c0 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x000519c4 sw v0, 0x20(sp)               |     *(var_20h_2) = v0;
    0x000519c8 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x000519cc sw v0, 0x2c(sp)               |     *(var_2ch_2) = v0;
    0x000519d0 b 0x51ba8                     |     
                                             |     while (v0 != 0) {
    0x000519d4 lw t9, -0x7fb8(gp)            |         t9 = sym.vdo_map_new;
    0x000519d8 jalr t9                       |         t9 ();
    0x000519dc nop                           |         
    0x000519e0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x000519e4 move s0, v0                   |         s0 = v0;
    0x000519e8 lw v0, 0x20(sp)               |         v0 = *(var_20h_2);
    0x000519ec lw t9, -0x7fb4(gp)            |         t9 = sym.vdo_map_set_boolean;
    0x000519f0 move a2, zero                 |         a2 = 0;
    0x000519f4 addiu a1, v0, -0x5984         |         a1 = v0 + -0x5984;
    0x000519f8 move a0, s0                   |         a0 = s0;
    0x000519fc jalr t9                       |         t9 ();
    0x00051a00 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051a04 move a0, s7                   |         a0 = s7;
    0x00051a08 lw t9, -0x7528(gp)            |         t9 = sym.imp.g_list_append;
    0x00051a0c move a1, s0                   |         a1 = s0;
    0x00051a10 jalr t9                       |         t9 ();
    0x00051a14 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051a18 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x00051a1c move a2, s1                   |         a2 = s1;
    0x00051a20 lw t9, -0x75f8(gp)            |         t9 = sym.imp.g_strdup_printf
    0x00051a24 move a1, s6                   |         a1 = s6;
    0x00051a28 move s7, v0                   |         s7 = v0;
    0x00051a2c jalr t9                       |         t9 ();
    0x00051a30 lw v1, 0x2c(sp)               |         v1 = *(var_2ch_2);
    0x00051a34 lw t9, 0x44(sp)               |         t9 = *(var_44h);
    0x00051a38 addiu a2, v1, -0x2eec         |         a2 = v1 + -0x2eec;
    0x00051a3c move a1, v0                   |         a1 = v0;
    0x00051a40 move a0, s4                   |         a0 = s4;
    0x00051a44 move s2, v0                   |         s2 = v0;
    0x00051a48 jalr t9                       |         t9 ();
    0x00051a4c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00051a50 beqz v0, 0x51b78              |             
    0x00051a54 lw a2, -0x7fa0(gp)            |             a2 = *(gp);
    0x00051a58 addiu v1, sp, 0x58            |             v1 = sp + 0x58;
    0x00051a5c lw t9, 0x34(sp)               |             t9 = *(var_34h);
    0x00051a60 sw v1, 0x3c(sp)               |             *(var_3ch) = v1;
    0x00051a64 move a3, v1                   |             a3 = v1;
                                             |             /* str.XPos */
    0x00051a68 addiu a2, a2, -0x2dcc         |             a2 += -0x2dcc;
    0x00051a6c move a1, s2                   |             a1 = s2;
    0x00051a70 move a0, s4                   |             a0 = s4;
    0x00051a74 jalr t9                       |             t9 ();
    0x00051a78 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
                                             |             if (v0 == 0) {
    0x00051a7c beqz v0, 0x51b94              |                 goto label_67;
                                             |             }
    0x00051a80 lw a1, -0x7fa0(gp)            |             a1 = *(gp);
    0x00051a84 lw t9, -0x7a54(gp)            |             t9 = sym.vdo_map_set_uint16;
    0x00051a88 lhu a2, 0x58(sp)              |             a2 = *(var_58h);
                                             |             /* esilref: 'x0' */
    0x00051a8c addiu a1, a1, -0x52d0         |             a1 += -0x52d0;
    0x00051a90 move a0, s0                   |             a0 = s0;
    0x00051a94 jalr t9                       |             t9 ();
    0x00051a98 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051a9c lw a3, 0x3c(sp)               |             a3 = *(var_3ch);
    0x00051aa0 lw t9, 0x34(sp)               |             t9 = *(var_34h);
    0x00051aa4 lw a2, -0x7fa0(gp)            |             a2 = *(gp);
    0x00051aa8 move a1, s2                   |             a1 = s2;
                                             |             /* str.YPos */
    0x00051aac addiu a2, a2, -0x2d94         |             a2 += -0x2d94;
    0x00051ab0 move a0, s4                   |             a0 = s4;
    0x00051ab4 jalr t9                       |             t9 ();
    0x00051ab8 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
                                             |             if (v0 == 0) {
    0x00051abc beqz v0, 0x51b94              |                 goto label_67;
                                             |             }
    0x00051ac0 lw a1, -0x7fa0(gp)            |             a1 = *(gp);
    0x00051ac4 lw t9, -0x7a54(gp)            |             t9 = sym.vdo_map_set_uint16;
    0x00051ac8 lhu a2, 0x58(sp)              |             a2 = *(var_58h);
                                             |             /* esilref: 'y0' */
    0x00051acc addiu a1, a1, -0x52cc         |             a1 += -0x52cc;
    0x00051ad0 move a0, s0                   |             a0 = s0;
    0x00051ad4 jalr t9                       |             t9 ();
    0x00051ad8 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051adc lw a3, 0x3c(sp)               |             a3 = *(var_3ch);
    0x00051ae0 lw t9, 0x34(sp)               |             t9 = *(var_34h);
    0x00051ae4 lw a2, -0x7fa0(gp)            |             a2 = *(gp);
    0x00051ae8 move a1, s2                   |             a1 = s2;
                                             |             /* str.Width */
    0x00051aec addiu a2, a2, -0x2c94         |             a2 += -0x2c94;
    0x00051af0 move a0, s4                   |             a0 = s4;
    0x00051af4 jalr t9                       |             t9 ();
    0x00051af8 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
                                             |             if (v0 == 0) {
    0x00051afc beqz v0, 0x51b94              |                 goto label_67;
                                             |             }
    0x00051b00 lw a1, -0x7fa0(gp)            |             a1 = *(gp);
    0x00051b04 lw t9, -0x7a54(gp)            |             t9 = sym.vdo_map_set_uint16;
    0x00051b08 lhu a2, 0x58(sp)              |             a2 = *(var_58h);
                                             |             /* str.width */
    0x00051b0c addiu a1, a1, -0x59b0         |             a1 += -0x59b0;
    0x00051b10 move a0, s0                   |             a0 = s0;
    0x00051b14 jalr t9                       |             t9 ();
    0x00051b18 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051b1c lw a3, 0x3c(sp)               |             a3 = *(var_3ch);
    0x00051b20 lw t9, 0x34(sp)               |             t9 = *(var_34h);
    0x00051b24 lw a2, -0x7fa0(gp)            |             a2 = *(gp);
    0x00051b28 move a1, s2                   |             a1 = s2;
                                             |             /* str.Height */
    0x00051b2c addiu a2, a2, -0x2c8c         |             a2 += -0x2c8c;
    0x00051b30 move a0, s4                   |             a0 = s4;
    0x00051b34 jalr t9                       |             t9 ();
    0x00051b38 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
                                             |             if (v0 == 0) {
    0x00051b3c beqz v0, 0x51b94              |                 goto label_67;
                                             |             }
    0x00051b40 lw a1, -0x7fa0(gp)            |             a1 = *(gp);
    0x00051b44 lw t9, -0x7a54(gp)            |             t9 = sym.vdo_map_set_uint16;
    0x00051b48 lhu a2, 0x58(sp)              |             a2 = *(var_58h);
                                             |             /* str.height */
    0x00051b4c addiu a1, a1, -0x59a8         |             a1 += -0x59a8;
    0x00051b50 move a0, s0                   |             a0 = s0;
    0x00051b54 jalr t9                       |             t9 ();
    0x00051b58 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051b5c lw v0, 0x20(sp)               |             v0 = *(var_20h_2);
    0x00051b60 addiu a2, zero, 1             |             a2 = 1;
    0x00051b64 lw t9, -0x7fb4(gp)            |             t9 = sym.vdo_map_set_boolean;
    0x00051b68 addiu a1, v0, -0x5984         |             a1 = v0 + -0x5984;
    0x00051b6c move a0, s0                   |             a0 = s0;
    0x00051b70 jalr t9                       |             t9 ();
    0x00051b74 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
                                             |         }
    0x00051b78 lw a1, -0x7fa0(gp)            |         a1 = *(gp);
    0x00051b7c lw t9, -0x7a54(gp)            |         t9 = sym.vdo_map_set_uint16;
    0x00051b80 lw a2, 0x38(sp)               |         a2 = *(var_38h);
                                             |         /* str.color */
    0x00051b84 addiu a1, a1, -0x52d8         |         a1 += -0x52d8;
    0x00051b88 move a0, s0                   |         a0 = s0;
    0x00051b8c jalr t9                       |         t9 ();
    0x00051b90 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             | label_67:
    0x00051b94 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051b98 move a0, s2                   |         a0 = s2;
    0x00051b9c jalr t9                       |         t9 ();
    0x00051ba0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051ba4 addiu s1, s1, 1               |         s1++;
    0x00051ba8 lw v0, 0x28(sp)               |         v0 = *(var_28h_2);
    0x00051bac lw t9, -0x7a50(gp)            |         t9 = sym.vdo_map_get_uint16;
    0x00051bb0 lw a0, 0x24(sp)               |         a0 = *(var_24h_2);
    0x00051bb4 move a2, zero                 |         a2 = 0;
    0x00051bb8 addiu a1, v0, -0x5384         |         a1 = v0 + -0x5384;
    0x00051bbc jalr t9                       |         t9 ();
    0x00051bc0 sltu v0, s1, v0               |         v0 = (s1 < v0) ? 1 : 0;
    0x00051bc4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051bc8 bnez v0, 0x519d4              |         
                                             |     }
    0x00051bcc lw t9, -0x7984(gp)            |     t9 = sym.hal_mask_set_settings;
    0x00051bd0 lw a0, (fp)                   |     a0 = *(fp);
    0x00051bd4 move a2, s3                   |     a2 = s3;
    0x00051bd8 move a1, s7                   |     a1 = s7;
    0x00051bdc bal 0x3fb6c                   |     sym_hal_mask_set_settings ();
    0x00051be0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051be4 beqz v0, 0x51c54              |     
                                             |     while (1) {
    0x00051be8 lw a1, -0x77ec(gp)            |         a1 = *((gp - 7675));
    0x00051bec lw t9, -0x76fc(gp)            |         t9 = sym.imp.g_list_free_full;
    0x00051bf0 move a0, s7                   |         a0 = s7;
    0x00051bf4 jalr t9                       |         t9 ();
    0x00051bf8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051bfc lw t9, -0x7840(gp)            |         t9 = sym.imp.g_key_file_unref;
    0x00051c00 move a0, s4                   |         a0 = s4;
    0x00051c04 jalr t9                       |         t9 ();
    0x00051c08 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051c0c lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051c10 lw a0, 0x30(sp)               |         a0 = *(var_30h);
    0x00051c14 jalr t9                       |         t9 ();
    0x00051c18 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051c1c b 0x51630                     |         goto label_15;
                                             | label_61:
    0x00051c20 lw a1, -0x7fa0(gp)            |         a1 = *(gp);
    0x00051c24 lw t9, -0x7940(gp)            |         t9 = sym.imp.g_strcmp0;
                                             |         /* str.white */
    0x00051c28 addiu a1, a1, -0x2d1c         |         a1 += -0x2d1c;
    0x00051c2c move a0, s2                   |         a0 = s2;
    0x00051c30 jalr t9                       |         t9 ();
    0x00051c34 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00051c38 bnez v0, 0x51d30              |             goto label_68;
                                             |         }
    0x00051c3c addiu v0, zero, 2             |         v0 = 2;
    0x00051c40 sw v0, 0x38(sp)               |         *(var_38h) = v0;
    0x00051c44 b 0x5171c                     |         goto label_16;
                                             | label_47:
    0x00051c48 addiu v1, zero, 0x20          |         v1 = 0x20;
    0x00051c4c sw v1, 0x28(sp)               |         *(var_28h_2) = v1;
    0x00051c50 b 0x510f0                     |         goto label_8;
    0x00051c54 lw v0, (s3)                   |         v0 = *(s3);
    0x00051c58 lw a2, -0x7fa0(gp)            |         a2 = *(gp);
    0x00051c5c lw t9, -0x7504(gp)            |         t9 = sym.imp.g_log;
    0x00051c60 lw a3, 8(v0)                  |         a3 = *((v0 + 2));
                                             |         /* str.Failed_to_set_masks:__s */
    0x00051c64 addiu a2, a2, -0x2c84         |         a2 += -aav.0x00002c84;
    0x00051c68 addiu a1, zero, 0x10          |         a1 = 0x10;
    0x00051c6c move a0, zero                 |         a0 = 0;
    0x00051c70 jalr t9                       |         t9 ();
    0x00051c74 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051c78 lw t9, -0x77ac(gp)            |         t9 = sym.imp.g_clear_error;
    0x00051c7c move a0, s3                   |         a0 = s3;
    0x00051c80 jalr t9                       |         t9 ();
    0x00051c84 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051c88 b 0x51be8                     |         
                                             |     }
                                             | label_43:
    0x00051c8c addiu v1, zero, 1             |     v1 = 1;
    0x00051c90 sw v1, 0x28(sp)               |     *(var_28h_2) = v1;
    0x00051c94 b 0x50f98                     |     goto label_9;
                                             | label_31:
    0x00051c98 lw t9, -0x7580(gp)            |     t9 = sym.imp.g_list_free;
                                             | label_36:
    0x00051c9c lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x00051ca0 jalr t9                       |     t9 ();
    0x00051ca4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051ca8 b 0x50ac8                     |     goto label_0;
                                             | label_41:
    0x00051cac addiu v0, zero, -1            |     v0 = -1;
    0x00051cb0 sw v0, 0x28(sp)               |     *(var_28h_2) = v0;
    0x00051cb4 b 0x50fa8                     |     goto label_17;
                                             | label_59:
    0x00051cb8 lw a0, 0x4c(sp)               |     a0 = *(var_4ch);
    0x00051cbc addiu s4, zero, 1             |     s4 = 1;
    0x00051cc0 jalr t9                       |     t9 ();
    0x00051cc4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051cc8 b 0x5117c                     |     goto label_11;
                                             | label_40:
    0x00051ccc lw a1, 0x3c(sp)               |     a1 = *(var_3ch);
    0x00051cd0 b 0x50ec4                     |     goto label_14;
                                             | label_45:
    0x00051cd4 addiu v1, zero, 0x10          |     v1 = 0x10;
    0x00051cd8 sw v1, 0x28(sp)               |     *(var_28h_2) = v1;
    0x00051cdc b 0x510f0                     |     goto label_8;
                                             | label_35:
    0x00051ce0 jalr t9                       |     t9 ();
    0x00051ce4 nop                           |     
    0x00051ce8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051cec lw t9, -0x7580(gp)            |     t9 = sym.imp.g_list_free;
    0x00051cf0 lw a0, 0x44(sp)               |     a0 = *(var_44h);
    0x00051cf4 jalr t9                       |     t9 ();
    0x00051cf8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051cfc lw t9, -0x7840(gp)            |     t9 = sym.imp.g_key_file_unref;
    0x00051d00 move a0, s0                   |     a0 = s0;
    0x00051d04 jalr t9                       |     t9 ();
    0x00051d08 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051d0c lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051d10 move a0, fp                   |     a0 = fp;
    0x00051d14 jalr t9                       |     t9 ();
    0x00051d18 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051d1c lw t9, -0x772c(gp)            |     t9 = *((gp - 7627));
    0x00051d20 lw a0, 0x24(sp)               |     a0 = *(var_24h_2);
    0x00051d24 jalr t9                       |     t9 ();
    0x00051d28 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051d2c b 0x5117c                     |     goto label_11;
                                             | label_68:
    0x00051d30 lw a1, -0x7fa0(gp)            |     a1 = *(gp);
    0x00051d34 lw t9, -0x7940(gp)            |     t9 = sym.imp.g_strcmp0;
                                             |     /* esilref: 'red' */
    0x00051d38 addiu a1, a1, -0x2d14         |     a1 += -0x2d14;
    0x00051d3c move a0, s2                   |     a0 = s2;
    0x00051d40 jalr t9                       |     t9 ();
    0x00051d44 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00051d48 bnez v0, 0x51e2c              |         
    0x00051d4c addiu v0, zero, 3             |         v0 = 3;
    0x00051d50 sw v0, 0x38(sp)               |         *(var_38h) = v0;
    0x00051d54 b 0x5171c                     |         goto label_16;
                                             | label_44:
    0x00051d58 addiu v0, zero, 0x20          |         v0 = 0x20;
    0x00051d5c sw v0, 0x28(sp)               |         *(var_28h_2) = v0;
    0x00051d60 b 0x51100                     |         goto label_18;
                                             | label_52:
    0x00051d64 lw t9, -0x7580(gp)            |         t9 = sym.imp.g_list_free;
                                             | label_56:
    0x00051d68 lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x00051d6c jalr t9                       |         t9 ();
    0x00051d70 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             | label_51:
    0x00051d74 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051d78 lw a0, 0x34(sp)               |         a0 = *(var_34h);
    0x00051d7c b 0x50b30                     |         goto label_19;
                                             | label_65:
    0x00051d80 lw a1, -0x7fa0(gp)            |         a1 = *(gp);
    0x00051d84 lw t9, -0x7940(gp)            |         t9 = sym.imp.g_strcmp0;
                                             |         /* str.DD_MM_YYYY */
    0x00051d88 addiu a1, a1, -0x2fdc         |         a1 += -0x2fdc;
    0x00051d8c move a0, s6                   |         a0 = s6;
    0x00051d90 jalr t9                       |         t9 ();
    0x00051d94 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x00051d98 bnez v0, 0x51ddc              |             
    0x00051d9c lw a0, -0x7fa0(gp)            |             a0 = *(gp);
    0x00051da0 lw t9, -0x75a8(gp)            |             t9 = sym.imp.g_strdup;
                                             |             /* str._d__m__Y */
    0x00051da4 addiu a0, a0, -0x2fd0         |             a0 += -aav.0x00002fd0;
    0x00051da8 jalr t9                       |             t9 ();
    0x00051dac move fp, v0                   |             fp = v0;
    0x00051db0 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051db4 b 0x518b4                     |             goto label_20;
                                             | label_60:
    0x00051db8 lw t9, -0x7840(gp)            |             t9 = sym.imp.g_key_file_unref;
    0x00051dbc move a0, s0                   |             a0 = s0;
    0x00051dc0 jalr t9                       |             t9 ();
    0x00051dc4 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051dc8 lw t9, -0x7580(gp)            |             t9 = sym.imp.g_list_free;
    0x00051dcc lw a0, 0x4c(sp)               |             a0 = *(var_4ch);
    0x00051dd0 jalr t9                       |             t9 ();
    0x00051dd4 lw gp, 0x18(sp)               |             gp = *(var_18h_2);
    0x00051dd8 b 0x5117c                     |             goto label_11;
                                             |         }
    0x00051ddc lw a1, -0x7fa0(gp)            |         a1 = *(gp);
    0x00051de0 lw t9, -0x7940(gp)            |         t9 = sym.imp.g_strcmp0;
                                             |         /* str.YYYY.MM.DD_Www */
    0x00051de4 addiu a1, a1, -0x2fc4         |         a1 += -0x2fc4;
    0x00051de8 move a0, s6                   |         a0 = s6;
    0x00051dec jalr t9                       |         t9 ();
    0x00051df0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00051df4 bnez v0, 0x51ec4              |             goto label_69;
                                             |         }
    0x00051df8 lw a0, -0x7fa0(gp)            |         a0 = *(gp);
    0x00051dfc lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_strdup;
                                             |         /* str._Y._m._d__a */
    0x00051e00 addiu a0, a0, -0x2fb4         |         a0 += -0x2fb4;
    0x00051e04 jalr t9                       |         t9 ();
    0x00051e08 move fp, v0                   |         fp = v0;
    0x00051e0c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051e10 b 0x518b4                     |         goto label_20;
                                             | label_66:
    0x00051e14 lw a0, -0x7fa0(gp)            |         a0 = *(gp);
                                             |         /* esilref: '&r' */
    0x00051e18 addiu a0, a0, -0x2f38         |         a0 += -0x2f38;
    0x00051e1c jalr t9                       |         t9 ();
    0x00051e20 sw v0, 0x24(sp)               |         *(var_24h_2) = v0;
    0x00051e24 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051e28 b 0x50c58                     |         goto label_12;
                                             |     }
    0x00051e2c lw a1, -0x7fa0(gp)            |     a1 = *(gp);
    0x00051e30 lw t9, -0x7940(gp)            |     t9 = sym.imp.g_strcmp0;
                                             |     /* str.black */
    0x00051e34 addiu a1, a1, -0x2d10         |     a1 += -aav.0x00002d10;
    0x00051e38 move a0, s2                   |     a0 = s2;
    0x00051e3c jalr t9                       |     t9 ();
    0x00051e40 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00051e44 bnez v0, 0x51efc              |         
    0x00051e48 sw zero, 0x38(sp)             |         *(var_38h) = 0;
    0x00051e4c b 0x5171c                     |         goto label_16;
                                             | label_54:
    0x00051e50 lw t9, -0x7eb8(gp)            |         t9 = sym.vdo_error_quark;
    0x00051e54 move s4, zero                 |         s4 = 0;
    0x00051e58 jalr t9                       |         t9 ();
    0x00051e5c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051e60 addiu a2, zero, 0x11          |         a2 = 0x11;
    0x00051e64 move a1, v0                   |         a1 = v0;
    0x00051e68 lw a3, -0x7fa0(gp)            |         a3 = *(gp);
    0x00051e6c lw t9, -0x78ec(gp)            |         t9 = sym.imp.g_set_error;
                                             |         /* str.Cant_parse_image_overlay_pos_for_channel__u */
    0x00051e70 addiu a3, a3, -0x2dc4         |         a3 += -0x2dc4;
    0x00051e74 move a0, s3                   |         a0 = s3;
    0x00051e78 sw s2, 0x10(sp)               |         *(var_10h_2) = s2;
    0x00051e7c jalr t9                       |         t9 ();
    0x00051e80 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051e84 lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051e88 move a0, s6                   |         a0 = s6;
    0x00051e8c jalr t9                       |         t9 ();
    0x00051e90 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051e94 move a0, s7                   |         a0 = s7;
    0x00051e98 lw t9, -0x77ec(gp)            |         t9 = *((gp - 7675));
                                             | label_55:
    0x00051e9c jalr t9                       |         t9 ();
    0x00051ea0 nop                           |         
    0x00051ea4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051ea8 lw t9, -0x7580(gp)            |         t9 = sym.imp.g_list_free;
    0x00051eac lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x00051eb0 jalr t9                       |         t9 ();
    0x00051eb4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051eb8 lw a0, 0x34(sp)               |         a0 = *(var_34h);
    0x00051ebc lw t9, -0x772c(gp)            |         t9 = *((gp - 7627));
    0x00051ec0 b 0x517b8                     |         goto label_21;
                                             | label_69:
    0x00051ec4 lw a1, -0x7fa0(gp)            |         a1 = *(gp);
    0x00051ec8 lw t9, -0x7940(gp)            |         t9 = sym.imp.g_strcmp0;
                                             |         /* str.Www.Mmm_DD__YYYY */
    0x00051ecc addiu a1, a1, -0x2fa8         |         a1 += -0x2fa8;
    0x00051ed0 move a0, s6                   |         a0 = s6;
    0x00051ed4 jalr t9                       |         t9 ();
    0x00051ed8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 != 0) {
    0x00051edc bnez v0, 0x51f24              |             goto label_70;
                                             |         }
    0x00051ee0 lw a0, -0x7fa0(gp)            |         a0 = *(gp);
    0x00051ee4 lw t9, -0x75a8(gp)            |         t9 = sym.imp.g_strdup;
                                             |         /* str._a._b__d___Y */
    0x00051ee8 addiu a0, a0, -0x2f94         |         a0 += -0x2f94;
    0x00051eec jalr t9                       |         t9 ();
    0x00051ef0 move fp, v0                   |         fp = v0;
    0x00051ef4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051ef8 b 0x518b4                     |         goto label_20;
                                             |     }
    0x00051efc lw a2, -0x7fa0(gp)            |     a2 = *(gp);
    0x00051f00 lw t9, -0x7504(gp)            |     t9 = sym.imp.g_log;
    0x00051f04 move a3, s2                   |     a3 = s2;
                                             |     /* str.Invalid_privacy_mask_color:__s_n */
    0x00051f08 addiu a2, a2, -0x2d08         |     a2 += -0x2d08;
    0x00051f0c addiu a1, zero, 0x10          |     a1 = 0x10;
    0x00051f10 move a0, zero                 |     a0 = 0;
    0x00051f14 jalr t9                       |     t9 ();
    0x00051f18 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051f1c sw zero, 0x38(sp)             |     *(var_38h) = 0;
    0x00051f20 b 0x5171c                     |     goto label_16;
                                             | label_70:
    0x00051f24 lw a1, -0x7fa0(gp)            |     a1 = *(gp);
    0x00051f28 lw t9, -0x7940(gp)            |     t9 = sym.imp.g_strcmp0;
                                             |     /* str.Www.DD.MM.YYYY */
    0x00051f2c addiu a1, a1, -0x2f84         |     a1 += -0x2f84;
    0x00051f30 move a0, s6                   |     a0 = s6;
    0x00051f34 jalr t9                       |     t9 ();
    0x00051f38 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051f3c lw t9, -0x75a8(gp)            |     t9 = sym.imp.g_strdup;
                                             |     if (v0 == 0) {
    0x00051f40 bnez v0, 0x51f5c              |         
    0x00051f44 lw a0, -0x7fa0(gp)            |         a0 = *(gp);
                                             |         /* str._a._d._m._Y */
    0x00051f48 addiu a0, a0, -0x2f74         |         a0 += -0x2f74;
    0x00051f4c jalr t9                       |         t9 ();
    0x00051f50 move fp, v0                   |         fp = v0;
    0x00051f54 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00051f58 b 0x518b4                     |         goto label_20;
                                             |     }
    0x00051f5c lw a0, -0x7fa0(gp)            |     a0 = *(gp);
                                             |     /* esilref: '&F' */
    0x00051f60 addiu a0, a0, -0x3020         |     a0 += -aav.0x00003020;
    0x00051f64 jalr t9                       |     t9 ();
    0x00051f68 move fp, v0                   |     fp = v0;
    0x00051f6c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051f70 b 0x518b4                     |     goto label_20;
                                             | label_48:
    0x00051f74 lw t9, -0x7704(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00051f78 jalr t9                       |     t9 ();
    0x00051f7c nop                           |     
                                             | label_38:
    0x00051f80 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x00051f84 addiu s2, sp, 0x5c            |     s2 = sp + 0x5c;
    0x00051f88 move a3, zero                 |     a3 = 0;
    0x00051f8c addiu a2, a2, -0x2edc         |     a2 += -aav.0x00002edc;
    0x00051f90 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00051f94 move a0, s2                   |     a0 = s2;
    0x00051f98 jalr t9                       |     t9 ();
    0x00051f9c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051fa0 addiu a2, zero, 1             |     a2 = 1;
    0x00051fa4 move a1, s2                   |     a1 = s2;
    0x00051fa8 lw t9, -0x7fb4(gp)            |     t9 = sym.vdo_map_set_boolean;
    0x00051fac move a0, s6                   |     a0 = s6;
    0x00051fb0 jalr t9                       |     t9 ();
    0x00051fb4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             | label_34:
    0x00051fb8 lw v0, 0x2c(sp)               |     v0 = *(var_2ch_2);
                                             |     if (v0 == 0) {
    0x00051fbc beql v0, zero, 0x5202c        |         goto label_71;
                                             |     }
    0x00051fc0 lw a3, 0x3c(sp)               |     a3 = *(var_3ch);
    0x00051fc4 lw a0, 0x2c(sp)               |     a0 = *(var_2ch_2);
    0x00051fc8 lw a2, 0x3c(sp)               |     a2 = *(var_3ch);
    0x00051fcc lw a3, 0x40(sp)               |     a3 = *(var_40h);
    0x00051fd0 b 0x50eb0                     |     goto label_22;
                                             | label_33:
    0x00051fd4 lw t9, -0x7858(gp)            |     t9 = sym.imp.g_snprintf
    0x00051fd8 addiu s2, sp, 0x5c            |     s2 = sp + 0x5c;
    0x00051fdc move a3, zero                 |     a3 = 0;
                                             |     /* str.overlay._u.enabled */
    0x00051fe0 addiu a2, a2, -0x2edc         |     a2 += -aav.0x00002edc;
    0x00051fe4 addiu a1, zero, 0x1e          |     a1 = 0x1e;
    0x00051fe8 move a0, s2                   |     a0 = s2;
    0x00051fec jalr t9                       |     t9 ();
    0x00051ff0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00051ff4 addiu a2, zero, 1             |     a2 = 1;
    0x00051ff8 move a1, s2                   |     a1 = s2;
    0x00051ffc lw t9, -0x7fb4(gp)            |     t9 = sym.vdo_map_set_boolean;
    0x00052000 move a0, s6                   |     a0 = s6;
    0x00052004 jalr t9                       |     t9 ();
    0x00052008 lw v0, 0x2c(sp)               |     v0 = *(var_2ch_2);
    0x0005200c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00052010 beqz v0, 0x50ea4              |         goto label_23;
                                             |     }
    0x00052014 lw a3, 0x40(sp)               |     a3 = *(var_40h);
    0x00052018 move a2, fp                   |     a2 = fp;
    0x0005201c lw a0, 0x2c(sp)               |     a0 = *(var_2ch_2);
    0x00052020 move a1, a3                   |     a1 = a3;
    0x00052024 lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
    0x00052028 b 0x50ec4                     |     goto label_14;
                                             | label_71:
    0x0005202c move a2, a3                   |     a2 = a3;
    0x00052030 move a0, a3                   |     a0 = a3;
    0x00052034 b 0x50eb0                     |     goto label_22;
                                             | }

[*] Function printf used 19 times vdo