[*] Binary protection state of libglib-2.0.so.0.5600.4

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


[*] Function strcpy tear down of libglib-2.0.so.0.5600.4

    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x3d288 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0003d288 ()                                                  | void fcn_0003d288 (int32_t arg1, char * s) {
                                                                             |     char * src;
                                                                             |     int32_t var_5h;
                                                                             |     int32_t var_6h;
                                                                             |     int32_t var_ch;
                                                                             |     r0 = arg1;
                                                                             |     r1 = s;
    0x0003d288 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0003d28c mov sb, r0                                                    |     sb = r0;
    0x0003d290 mov r0, r1                                                    |     r0 = r1;
    0x0003d294 mov r4, r1                                                    |     r4 = r1;
    0x0003d298 mov sl, r2                                                    |     sl = r2;
    0x0003d29c bl 0x17744                                                    |     strlen (r0);
    0x0003d2a0 mov fp, 1                                                     |     
    0x0003d2a4 mov r7, 0                                                     |     r7 = 0;
    0x0003d2a8 mov r8, 0x5c                                                  |     r8 = 0x5c;
    0x0003d2ac mov r5, r0                                                    |     r5 = r0;
    0x0003d2b0 add r0, r0, 1                                                 |     r0++;
    0x0003d2b4 lsl r0, r0, 1                                                 |     r0 <<= 1;
    0x0003d2b8 bl 0x4b814                                                    |     g_malloc ();
    0x0003d2bc add r5, r4, r5                                                |     r5 = r4 + r5;
    0x0003d2c0 mov r6, r0                                                    |     r6 = r0;
    0x0003d2c4 mov r3, r0                                                    |     r3 = r0;
                                                                             | label_0:
    0x0003d2c8 cmp r4, r5                                                    |     
                                                                             |     if (r4 > r5) {
    0x0003d2cc blo 0x3d2e0                                                   |         
    0x0003d2d0 mov r0, r6                                                    |         r0 = r6;
    0x0003d2d4 strb r7, [r3]                                                 |         *(r3) = r7;
    0x0003d2d8 add sp, sp, 0xc                                               |         
    0x0003d2dc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
                                                                             |     }
    0x0003d2e0 ldrb r2, [r4], 1                                              |     r2 = *(r4);
                                                                             |     r4++;
    0x0003d2e4 strh r8, [sp, 4]                                              |     src = r8;
    0x0003d2e8 cmp r2, 0xd                                                   |     
    0x0003d2ec strb r7, [sp, 6]                                              |     var_6h = r7;
                                                                             |     if (r2 == 0xd) {
    0x0003d2f0 beq 0x3d390                                                   |         goto label_1;
                                                                             |     }
                                                                             |     if (r2 > 0xd) {
    0x0003d2f4 bhi 0x3d328                                                   |         goto label_2;
                                                                             |     }
    0x0003d2f8 cmp r2, 9                                                     |     
                                                                             |     if (r2 == 9) {
    0x0003d2fc beq 0x3d368                                                   |         goto label_3;
                                                                             |     }
    0x0003d300 cmp r2, 0xa                                                   |     
                                                                             |     if (r2 != 0xa) {
    0x0003d304 moveq r2, 0x6e                                                |         r2 = 0x6e;
                                                                             |     }
                                                                             |     if (r2 == 0xa) {
    0x0003d308 beq 0x3d394                                                   |         goto label_4;
                                                                             |     }
                                                                             |     do {
    0x0003d30c cmp sl, 0                                                     |         
                                                                             |         if (sl != 0) {
    0x0003d310 beq 0x3d320                                                   |             
    0x0003d314 ldrb r1, [sb, 0x14]                                           |             r1 = *((sb + 0x14));
    0x0003d318 cmp r1, r2                                                    |             
                                                                             |             if (r1 == r2) {
    0x0003d31c beq 0x3d374                                                   |                 goto label_5;
                                                                             |             }
                                                                             |         }
    0x0003d320 strb r2, [r3], 1                                              |         *(r3) = r2;
                                                                             |         r3++;
    0x0003d324 b 0x3d34c                                                     |         goto label_6;
                                                                             | label_2:
    0x0003d328 cmp r2, 0x20                                                  |         
                                                                             |         if (r2 == 0x20) {
    0x0003d32c beq 0x3d354                                                   |             goto label_7;
                                                                             |         }
    0x0003d330 cmp r2, 0x5c                                                  |         
    0x0003d334 bne 0x3d30c                                                   |         
                                                                             |     } while (r2 != 0x5c);
    0x0003d338 mov r0, r3                                                    |     r0 = r3;
    0x0003d33c add r1, sp, 4                                                 |     r1 += src;
    0x0003d340 strb r8, [sp, 5]                                              |     var_5h = r8;
    0x0003d344 bl 0x170d8                                                    |     r0 = strcpy (r0, r1)
    0x0003d348 add r3, r0, 2                                                 |     r3 = r0 + 2;
                                                                             | label_6:
    0x0003d34c mov fp, 0                                                     |     
    0x0003d350 b 0x3d2c8                                                     |     goto label_0;
                                                                             | label_7:
    0x0003d354 cmp fp, 0                                                     |     
                                                                             |     if (fp == 0) {
    0x0003d358 movne r2, 0x73                                                |         r2 = 0x73;
                                                                             |     }
                                                                             |     if (fp != 0) {
    0x0003d35c bne 0x3d374                                                   |         goto label_5;
                                                                             |     }
                                                                             |     do {
    0x0003d360 strb r2, [r3], 1                                              |         *(r3) = r2;
                                                                             |         r3++;
    0x0003d364 b 0x3d2c8                                                     |         goto label_0;
                                                                             | label_3:
    0x0003d368 cmp fp, 0                                                     |         
                                                                             |         if (fp == 0) {
    0x0003d36c movne r2, 0x74                                                |             r2 = 0x74;
                                                                             |         }
    0x0003d370 beq 0x3d360                                                   |         
                                                                             |     } while (fp == 0);
                                                                             | label_5:
    0x0003d374 mov r0, r3                                                    |     r0 = r3;
    0x0003d378 add r1, sp, 4                                                 |     r1 += src;
    0x0003d37c strb r2, [sp, 5]                                              |     var_5h = r2;
    0x0003d380 bl 0x170d8                                                    |     strcpy (r0, r1)
    0x0003d384 mov fp, 1                                                     |     
    0x0003d388 add r3, r0, 2                                                 |     r3 = r0 + 2;
    0x0003d38c b 0x3d2c8                                                     |     goto label_0;
                                                                             | label_1:
    0x0003d390 mov r2, 0x72                                                  |     r2 = 0x72;
                                                                             | label_4:
    0x0003d394 mov r0, r3                                                    |     r0 = r3;
    0x0003d398 add r1, sp, 4                                                 |     r1 += src;
    0x0003d39c strb r2, [sp, 5]                                              |     var_5h = r2;
    0x0003d3a0 bl 0x170d8                                                    |     r0 = strcpy (r0, r1)
    0x0003d3a4 add r3, r0, 2                                                 |     r3 = r0 + 2;
    0x0003d3a8 b 0x3d2c8                                                     |     goto label_0;
                                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x4935c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0004935c ()                                  | void fcn_0004935c (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     char * s2;
                                                             |     char * var_28h;
                                                             |     char * var_2ch;
                                                             |     char * * endptr;
                                                             |     int32_t var_1h;
                                                             |     char * src;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_44h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0004935c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00049360 mov r5, 0                                     |     r5 = 0;
    0x00049364 str r5, [r2]                                  |     *(r2) = r5;
    0x00049368 mov r8, r3                                    |     r8 = r3;
    0x0004936c ldr r3, [r0, 0x14]                            |     r3 = *(arg_0hx14);
    0x00049370 sub sp, sp, 0x44                              |     
    0x00049374 sub r3, r3, 9                                 |     r3 -= 9;
    0x00049378 cmp r3, 1                                     |     
    0x0004937c str r3, [sp, 0x14]                            |     var_14h = r3;
                                                             |     if (r3 > 1) {
    0x00049380 movls r3, 0x20                                |         r3 = 0x20;
                                                             |     }
                                                             |     if (r3 <= 1) {
    0x00049384 movhi r3, 0xa                                 |         r3 = 0xa;
                                                             |     }
    0x00049388 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x0004938c ldr r3, [pc, 0x37c]                           |     r3 = *(0x4970c);
    0x00049390 ldr r4, [r1]                                  |     r4 = *(r1);
    0x00049394 add r3, pc, r3                                |     r3 = pc + r3;
    0x00049398 str r3, [sp, 0x24]                            |     s2 = r3;
    0x0004939c ldr r3, [pc, 0x370]                           |     r3 = *(0x49710);
    0x000493a0 mov r7, r0                                    |     r7 = r0;
    0x000493a4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000493a8 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x000493ac ldr r3, [pc, 0x364]                           |     r3 = *(0x49714);
    0x000493b0 mov sb, r1                                    |     sb = r1;
    0x000493b4 add r3, pc, r3                                |     r3 = pc + r3;
    0x000493b8 mov fp, r4                                    |     
    0x000493bc str r2, [sp, 0x18]                            |     var_18h = r2;
    0x000493c0 str r3, [sp, 0x2c]                            |     var_2ch = r3;
                                                             | label_0:
    0x000493c4 ldrb r2, [r4]                                 |     r2 = *(r4);
    0x000493c8 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000493cc bne 0x49410                                   |         
    0x000493d0 ldr r1, [sb]                                  |         r1 = *(sb);
    0x000493d4 ldr r3, [sb, 4]                               |         r3 = *((sb + 4));
    0x000493d8 sub r1, fp, r1                                |         r1 = fp - r1;
    0x000493dc cmp r1, r3                                    |         
                                                             |         if (r1 > r3) {
    0x000493e0 bhi 0x496e0                                   |             goto label_5;
                                                             |         }
                                                             |         if (r1 != r3) {
    0x000493e4 beq 0x493f0                                   |             
    0x000493e8 mov r0, sb                                    |             r0 = sb;
    0x000493ec bl 0x635ec                                    |             g_string_truncate ();
                                                             |         }
    0x000493f0 lsl r5, r5, 0x18                              |         r5 <<= 0x18;
    0x000493f4 asr r5, r5, 0x18                              |         r5 >>= 0x18;
    0x000493f8 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x000493fc mvn r5, r5                                    |         r5 = ~r5;
    0x00049400 lsr r5, r5, 0x1f                              |         r5 >>= 0x1f;
    0x00049404 str r5, [r3]                                  |         *(r3) = r5;
    0x00049408 mov r0, 1                                     |         r0 = 1;
    0x0004940c b 0x49500                                     |         goto label_6;
                                                             |     }
    0x00049410 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00049414 strb r2, [fp]                                 |     *(fp) = r2;
    0x00049418 cmp r3, 1                                     |     
    0x0004941c orr r5, r2, r5                                |     r5 = r2 | r5;
                                                             |     if (r3 <= 1) {
    0x00049420 bhi 0x49434                                   |         
    0x00049424 sub r2, r2, 9                                 |         r2 -= 9;
    0x00049428 cmp r2, 1                                     |         
                                                             |         if (r2 > 1) {
    0x0004942c movls r2, 0x20                                |             r2 = 0x20;
                                                             |         }
                                                             |         if (r2 <= 1) {
    0x00049430 strbls r2, [fp]                               |             *(fp) = r2;
                                                             |             goto label_7;
                                                             |         }
                                                             |     }
                                                             | label_7:
    0x00049434 ldrb r2, [fp]                                 |     r2 = *(fp);
    0x00049438 cmp r2, 0xd                                   |     
                                                             |     if (r2 == 0xd) {
    0x0004943c bne 0x49454                                   |         
    0x00049440 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00049444 strb r3, [fp]                                 |         *(fp) = r3;
    0x00049448 ldrb r2, [r4, 1]                              |         r2 = *((r4 + 1));
    0x0004944c cmp r2, 0xa                                   |         
                                                             |         if (r2 == 0xa) {
    0x00049450 addeq r4, r4, 1                               |             r4++;
                                                             |             goto label_8;
                                                             |         }
                                                             |     }
                                                             | label_8:
    0x00049454 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00049458 cmp r3, 0x26                                  |     
    0x0004945c str r3, [sp, 0x1c]                            |     var_1ch = r3;
                                                             |     if (r3 != 0x26) {
    0x00049460 bne 0x495a8                                   |         goto label_2;
                                                             |     }
    0x00049464 ldrb sl, [r4, 1]                              |     sl = *((r4 + 1));
    0x00049468 cmp sl, 0x23                                  |     
                                                             |     if (sl != 0x23) {
    0x0004946c bne 0x495c0                                   |         goto label_9;
                                                             |     }
    0x00049470 mov r2, 0                                     |     r2 = 0;
    0x00049474 str r2, [sp, 0x34]                            |     endptr = r2;
    0x00049478 ldrb r2, [r4, 2]                              |     r2 = *((r4 + 2));
    0x0004947c cmp r2, 0x78                                  |     
                                                             |     if (r2 == 0x78) {
    0x00049480 movne sl, 0xa                                 |         sl = 0xa;
                                                             |     }
                                                             |     if (r2 != 0x78) {
    0x00049484 moveq sl, 0x10                                |         sl = 0x10;
                                                             |     }
                                                             |     if (r2 == 0x78) {
    0x00049488 addne r4, r4, 2                               |         r4 += 2;
                                                             |     }
                                                             |     if (r2 != 0x78) {
    0x0004948c addeq r4, r4, 3                               |         r4 += 3;
                                                             |     }
    0x00049490 bl 0x174e0                                    |     errno_location ();
    0x00049494 mov r2, 0                                     |     r2 = 0;
    0x00049498 add r1, sp, 0x34                              |     r1 += endptr;
    0x0004949c str r2, [r0]                                  |     *(r0) = r2;
    0x000494a0 mov r6, r0                                    |     r6 = r0;
    0x000494a4 mov r2, sl                                    |     r2 = sl;
    0x000494a8 mov r0, r4                                    |     r0 = r4;
    0x000494ac bl 0x17420                                    |     strtoul (r0, r1, r2);
    0x000494b0 ldr r2, [sp, 0x34]                            |     r2 = endptr;
    0x000494b4 cmp r2, r4                                    |     
    0x000494b8 mov sl, r0                                    |     sl = r0;
                                                             |     if (r2 != r4) {
    0x000494bc beq 0x494cc                                   |         
    0x000494c0 ldr r1, [r6]                                  |         r1 = *(r6);
    0x000494c4 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000494c8 beq 0x49508                                   |             goto label_10;
                                                             |         }
                                                             |     }
    0x000494cc ldr r0, [pc, 0x248]                           |     r0 = *(0x49718);
    0x000494d0 add r0, pc, r0                                |     r0 = pc + r0;
                                                             | label_1:
    0x000494d4 bl 0x35298                                    |     glib_gettext ();
    0x000494d8 ldr r3, [sp, 0x34]                            |     r3 = endptr;
    0x000494dc mov r2, r4                                    |     r2 = r4;
    0x000494e0 sub r3, r3, r4                                |     r3 -= r4;
    0x000494e4 str r4, [sp, 8]                               |     var_8h = r4;
    0x000494e8 stm sp, {r0, r3}                              |     *(sp) = r0;
                                                             |     *((sp + 4)) = r3;
    0x000494ec mov r3, 2                                     |     r3 = 2;
                                                             | label_4:
    0x000494f0 mov r1, r8                                    |     r1 = r8;
    0x000494f4 mov r0, r7                                    |     r0 = r7;
    0x000494f8 bl 0x492bc                                    |     fcn_000492bc (r0, r1, r2, r3);
                                                             |     do {
    0x000494fc mov r0, 0                                     |         r0 = 0;
                                                             | label_6:
    0x00049500 add sp, sp, 0x44                              |         
    0x00049504 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_10:
    0x00049508 ldrb r2, [r2]                                 |         r2 = *(r2);
    0x0004950c cmp r2, 0x3b                                  |         
                                                             |         if (r2 == 0x3b) {
    0x00049510 beq 0x4953c                                   |             goto label_11;
                                                             |         }
    0x00049514 ldr r0, [pc, 0x204]                           |         r0 = *(0x4971c);
    0x00049518 add r0, pc, r0                                |         r0 = pc + r0;
    0x0004951c bl 0x35298                                    |         glib_gettext ();
    0x00049520 mov r3, 2                                     |         r3 = 2;
    0x00049524 mov r2, r4                                    |         r2 = r4;
    0x00049528 str r0, [sp]                                  |         *(sp) = r0;
                                                             | label_3:
    0x0004952c mov r1, r8                                    |         r1 = r8;
    0x00049530 mov r0, r7                                    |         r0 = r7;
    0x00049534 bl 0x492bc                                    |         fcn_000492bc (r0, r1, r2, r3);
    0x00049538 b 0x494fc                                     |         
                                                             |     } while (1);
                                                             | label_11:
    0x0004953c sub r1, r0, 1                                 |     r1 = r0 - 1;
    0x00049540 sub r2, r0, 0xe000                            |     r2 = r0 - 0xe000;
    0x00049544 ldr ip, [pc, 0x1d8]                           |     ip = "ew";
    0x00049548 ldr r0, [pc, 0x1d8]                           |     r0 = "ew";
    0x0004954c cmp r2, r0                                    |     
    0x00049550 cmphi r1, ip                                  |     __asm ("cmphi r1, ip");
                                                             |     if (r2 >= r0) {
    0x00049554 bls 0x49564                                   |         
    0x00049558 sub r2, sl, 0x10000                           |         r2 = sl - 0x10000;
    0x0004955c cmp r2, 0x100000                              |         
                                                             |         if (r2 >= 0x100000) {
    0x00049560 bhs 0x495b4                                   |             goto label_12;
                                                             |         }
                                                             |     }
    0x00049564 add r4, sp, 0x38                              |     r4 += src;
    0x00049568 mov r2, 0                                     |     r2 = 0;
    0x0004956c mov r1, r4                                    |     r1 = r4;
    0x00049570 mov r0, sl                                    |     r0 = sl;
    0x00049574 str r2, [sp, 0x38]                            |     src = r2;
    0x00049578 str r2, [sp, 0x3c]                            |     var_3ch = r2;
    0x0004957c bl 0x70f48                                    |     g_unichar_to_utf8 ();
    0x00049580 mov r1, r4                                    |     r1 = r4;
    0x00049584 mov r0, fp                                    |     r0 = fp;
    0x00049588 bl 0x170d8                                    |     strcpy (r0, r1)
    0x0004958c mov r0, r4                                    |     r0 = r4;
    0x00049590 bl 0x17744                                    |     strlen (r0);
    0x00049594 ldr r4, [sp, 0x34]                            |     r4 = endptr;
    0x00049598 cmp sl, 0x7f                                  |     
                                                             |     if (sl <= 0x7f) {
    0x0004959c orrhi r5, r5, 0x80                            |         r5 |= 0x80;
                                                             |     }
    0x000495a0 sub r0, r0, 1                                 |     r0 -= var_1h;
    0x000495a4 add fp, fp, r0                                |     
                                                             |     do {
                                                             | label_2:
    0x000495a8 add r4, r4, 1                                 |         r4++;
    0x000495ac add fp, fp, 1                                 |         
    0x000495b0 b 0x493c4                                     |         goto label_0;
                                                             | label_12:
    0x000495b4 ldr r0, [pc, 0x170]                           |         r0 = *(0x49728);
    0x000495b8 add r0, pc, r0                                |         r0 = pc + r0;
    0x000495bc b 0x494d4                                     |         goto label_1;
                                                             | label_9:
    0x000495c0 add r6, r4, 1                                 |         r6 = r4 + 1;
    0x000495c4 mov r2, 3                                     |         r2 = 3;
    0x000495c8 ldr r1, [sp, 0x24]                            |         r1 = s2;
    0x000495cc mov r0, r6                                    |         r0 = r6;
    0x000495d0 bl 0x170b4                                    |         r0 = strncmp (r0, r1, r2);
    0x000495d4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000495d8 moveq r2, 0x3c                                |             r2 = 0x3c;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000495dc beq 0x495fc                                   |             
    0x000495e0 mov r2, 3                                     |             r2 = 3;
    0x000495e4 ldr r1, [sp, 0x28]                            |             r1 = var_28h;
    0x000495e8 mov r0, r6                                    |             r0 = r6;
    0x000495ec bl 0x170b4                                    |             r0 = strncmp (r0, r1, r2);
    0x000495f0 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000495f4 bne 0x49608                                   |                 goto label_13;
                                                             |             }
    0x000495f8 mov r2, 0x3e                                  |             r2 = 0x3e;
                                                             |         }
    0x000495fc strb r2, [fp]                                 |         *(fp) = r2;
    0x00049600 add r4, r4, 3                                 |         r4 += 3;
    0x00049604 b 0x495a8                                     |         
                                                             |     } while (1);
                                                             | label_13:
    0x00049608 mov r2, 4                                     |     r2 = 4;
    0x0004960c ldr r1, [sp, 0x2c]                            |     r1 = var_2ch;
    0x00049610 mov r0, r6                                    |     r0 = r6;
    0x00049614 bl 0x170b4                                    |     r0 = strncmp (r0, r1, r2);
    0x00049618 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0004961c ldreq r3, [sp, 0x1c]                          |         r3 = var_1ch;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00049620 addeq r4, r4, 4                               |         r4 += 4;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00049624 strbeq r3, [fp]                               |         *(fp) = r3;
                                                             |         goto label_14;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_14:
    0x00049628 beq 0x495a8                                   |         goto label_2;
                                                             |     }
    0x0004962c ldr r1, [pc, 0xfc]                            |     r1 = *(0x4972c);
    0x00049630 mov r2, 5                                     |     r2 = 5;
    0x00049634 add r1, pc, r1                                |     r1 = pc + r1;
    0x00049638 mov r0, r6                                    |     r0 = r6;
    0x0004963c bl 0x170b4                                    |     r0 = strncmp (r0, r1, r2);
    0x00049640 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00049644 moveq r2, 0x22                                |         r2 = 0x22;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00049648 beq 0x4966c                                   |         
    0x0004964c ldr r1, [pc, 0xe0]                            |         r1 = *(0x49730);
    0x00049650 mov r2, 5                                     |         r2 = 5;
    0x00049654 add r1, pc, r1                                |         r1 = pc + r1;
    0x00049658 mov r0, r6                                    |         r0 = r6;
    0x0004965c bl 0x170b4                                    |         r0 = strncmp (r0, r1, r2);
    0x00049660 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00049664 bne 0x49678                                   |             goto label_15;
                                                             |         }
    0x00049668 mov r2, 0x27                                  |         r2 = 0x27;
                                                             |     }
    0x0004966c strb r2, [fp]                                 |     *(fp) = r2;
    0x00049670 add r4, r4, 5                                 |     r4 += 5;
    0x00049674 b 0x495a8                                     |     goto label_2;
                                                             | label_15:
    0x00049678 cmp sl, 0x3b                                  |     
                                                             |     if (sl != 0x3b) {
    0x0004967c bne 0x4969c                                   |         goto label_16;
                                                             |     }
    0x00049680 ldr r0, [pc, 0xb0]                            |     r0 = *(0x49734);
    0x00049684 add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
    0x00049688 bl 0x35298                                    |         glib_gettext ();
    0x0004968c mov r3, 2                                     |         r3 = 2;
    0x00049690 mov r2, r6                                    |         r2 = r6;
    0x00049694 str r0, [sp]                                  |         *(sp) = r0;
    0x00049698 b 0x4952c                                     |         goto label_3;
                                                             | label_16:
    0x0004969c mov r1, 0x3b                                  |         r1 = 0x3b;
    0x000496a0 mov r0, r6                                    |         r0 = r6;
    0x000496a4 bl 0x17240                                    |         r0 = strchr (r0, r1);
    0x000496a8 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 != r0) {
    0x000496ac beq 0x496d4                                   |             
    0x000496b0 ldr r0, [pc, 0x84]                            |             r0 = *(0x49738);
    0x000496b4 sub r4, r4, r6                                |             r4 -= r6;
    0x000496b8 add r0, pc, r0                                |             r0 = pc + r0;
    0x000496bc bl 0x35298                                    |             glib_gettext ();
    0x000496c0 str r6, [sp, 8]                               |             var_8h = r6;
    0x000496c4 mov r3, 2                                     |             r3 = 2;
    0x000496c8 mov r2, r6                                    |             r2 = r6;
    0x000496cc stm sp, {r0, r4}                              |             *(sp) = r0;
                                                             |             *((sp + 4)) = r4;
    0x000496d0 b 0x494f0                                     |             goto label_4;
                                                             |         }
    0x000496d4 ldr r0, [pc, 0x64]                            |         r0 = *(0x4973c);
    0x000496d8 add r0, pc, r0                                |         r0 = pc + r0;
    0x000496dc b 0x49688                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x000496e0 ldr r3, [pc, 0x5c]                            |     r3 = *(0x49740);
    0x000496e4 ldr r1, [pc, 0x5c]                            |     r1 = *(0x49744);
    0x000496e8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000496ec str r3, [sp]                                  |     *(sp) = r3;
    0x000496f0 ldr r3, [pc, 0x54]                            |     
    0x000496f4 ldr r0, [pc, 0x54]                            |     r0 = *(0x4974c);
    0x000496f8 add r3, pc, r3                                |     r3 = pc + r3;
    0x000496fc add r3, r3, 0x37                              |     r3 = 0x4977f;
    0x00049700 ldr r2, [pc, 0x4c]                            |     r2 = *(0x49750);
    0x00049704 add r1, pc, r1                                |     r1 = pc + r1;
    0x00049708 add r0, pc, r0                                |     r0 = pc + r0;
    0x0004970c bl 0x6848c                                    |     g_assertion_message_expr ();
                                                             |     if (r4 != r0) {
    0x00049710 andeq r7, r4, r2, lsl ip                      |         r7 = r4 & (r2 << ip);
                                                             |     }
                                                             |     if (r4 != r0) {
    0x00049714 andeq r7, r4, r7, lsl 24                      |         r7 = r4 & (r7 << 24);
                                                             |     }
    0x00049718 strdeq r7, r8, [r4], -r2                      |     __asm ("strdeq r7, r8, [r4], -r2");
    0x0004971c strheq r6, [r4], -r1                          |     __asm ("strheq r6, [r4], -r1");
    0x00049720 strdeq r6, r7, [r4], -r4                      |     __asm ("strdeq r6, r7, [r4], -r4");
    0x00049724 strdeq sp, lr, [r0], -lr                      |     __asm ("strdeq sp, lr, [r0], -lr");
    0x00049728 strdeq r1, r2, [r0], -sp                      |     __asm ("strdeq r1, r2, [r0], -sp");
    0x0004972c strdeq r6, r7, [r4], -r3                      |     __asm ("strdeq r6, r7, [r4], -r3");
                                                             |     if (r4 != r0) {
    0x00049730 andeq r7, r4, ip, ror sb                      |         r7 = r4 & (ip >>> sb);
                                                             |     }
    0x00049734 ldrdeq r6, r7, [r4], -sp                      |     __asm ("ldrdeq r6, r7, [r4], -sp");
                                                             |     if (r4 != r0) {
    0x00049738 andeq r6, r4, sb, ror 30                      |         r6 = r4 & (sb >>> 30);
                                                             |     }
                                                             |     if (r4 != r0) {
    0x0004973c andeq r6, r4, pc, ror pc                      |         r6 = r4 & (pc >>> pc);
                                                             |     }
                                                             |     if (r4 != r0) {
    0x00049740 andeq r6, r4, r0, lsl 31                      |         r6 = r4 & (r0 << 31);
                                                             |     }
                                                             |     if (r4 != r0) {
    0x00049744 andeq r7, r4, r2                              |         r7 = r4 & r2;
                                                             |     }
                                                             |     if (r4 != r0) {
    0x00049748 andeq r6, r4, lr, lsl 24                      |         r6 = r4 & (lr << 24);
                                                             |     }
                                                             |     if (r4 != r0) {
    0x0004974c andeq r6, r4, r0, asr sl                      |         r6 = r4 & (r0 >> sl);
                                                             |     }
                                                             |     if (r4 != r0) {
    0x00049750 andeq ip, r4, lr, ror 18                      |         
                                                             |     }
                                                             |     /* Beware that this jump is a conditional jump.
                                                             |      * r2dec transformed it as a return, due being the
                                                             |      * last instruction. Please, check 'pdda' output
                                                             |      * for more hints. */
    0x00049754 andeq r0, r0, r3, lsl r3                      |     return r0 &= (r3 << r3);
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x4bed8 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0004bed8 ()                          | void fcn_0004bed8 (int32_t arg1, int32_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0004bed8 push {r4, r5, r6, r7, r8, lr}         |     
    0x0004bedc ldr r7, [pc, 0x1e4]                   |     r7 = *(0x4c0c4);
    0x0004bee0 subs r8, r2, 0                        |     r8 = r2 - 0;
    0x0004bee4 add r7, pc, r7                        |     r7 = pc + r7;
    0x0004bee8 mov r4, r0                            |     r4 = r0;
    0x0004beec mov r6, r1                            |     r6 = r1;
                                                     |     if (r8 == r2) {
    0x0004bef0 beq 0x4bf70                           |         goto label_5;
                                                     |     }
    0x0004bef4 tst r1, 4                             |     
                                                     |     if ((r1 & 4) != 0) {
    0x0004bef8 bne 0x4bf7c                           |         goto label_6;
                                                     |     }
    0x0004befc tst r1, 8                             |     
                                                     |     if ((r1 & 8) != 0) {
    0x0004bf00 bne 0x4bf88                           |         goto label_7;
                                                     |     }
    0x0004bf04 tst r1, 0x10                          |     
                                                     |     if ((r1 & 0x10) != 0) {
    0x0004bf08 bne 0x4bf94                           |         goto label_8;
                                                     |     }
    0x0004bf0c tst r1, 0xe0                          |     
                                                     |     if ((r1 & 0xe0) != 0) {
    0x0004bf10 bne 0x4bfa0                           |         goto label_9;
                                                     |     }
    0x0004bf14 ldr r1, [pc, 0x1b0]                   |     r1 = *(0x4c0c8);
    0x0004bf18 add r1, pc, r1                        |     r1 = pc + r1;
                                                     |     do {
                                                     | label_0:
    0x0004bf1c mov r0, r4                            |         r0 = r4;
    0x0004bf20 bic r5, r6, 3                         |         r5 = BIT_MASK (r6, 3);
    0x0004bf24 bl 0x170d8                            |         strcpy (r0, r1)
    0x0004bf28 cmp r5, 0x10                          |         
                                                     |         if (r5 == 0x10) {
    0x0004bf2c beq 0x4c004                           |             goto label_10;
                                                     |         }
                                                     |         if (r5 > 0x10) {
    0x0004bf30 bgt 0x4bfac                           |             goto label_11;
                                                     |         }
    0x0004bf34 cmp r5, 4                             |         
                                                     |         if (r5 == 4) {
    0x0004bf38 beq 0x4bfd0                           |             goto label_12;
                                                     |         }
    0x0004bf3c cmp r5, 8                             |         
                                                     |         if (r5 == 8) {
    0x0004bf40 beq 0x4bff8                           |             goto label_13;
                                                     |         }
                                                     | label_1:
    0x0004bf44 cmp r6, 0                             |         
                                                     |         if (r6 == 0) {
    0x0004bf48 beq 0x4c048                           |             goto label_14;
                                                     |         }
    0x0004bf4c ldr r1, [pc, 0x17c]                   |         r1 = *(0x4c0cc);
    0x0004bf50 mov r0, r4                            |         r0 = r4;
    0x0004bf54 add r1, pc, r1                        |         r1 = pc + r1;
    0x0004bf58 bl 0x17090                            |         strcat (r0, r1);
    0x0004bf5c cmp r5, 0                             |         
                                                     |         if (r5 != 0) {
    0x0004bf60 bne 0x4c034                           |             goto label_15;
                                                     |         }
    0x0004bf64 mov r3, 0x30                          |         r3 = 0x30;
    0x0004bf68 strh r3, [r4, 4]                      |         *((r4 + 4)) = r3;
    0x0004bf6c b 0x4c020                             |         goto label_4;
                                                     | label_5:
    0x0004bf70 ldr r1, [pc, 0x15c]                   |         r1 = *(0x4c0d0);
    0x0004bf74 add r1, pc, r1                        |         r1 = pc + r1;
    0x0004bf78 b 0x4bf1c                             |         
                                                     |     } while (1);
                                                     | label_6:
    0x0004bf7c ldr r1, [pc, 0x154]                   |     r1 = *(0x4c0d4);
    0x0004bf80 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004bf84 b 0x4bf1c                             |     goto label_0;
                                                     | label_7:
    0x0004bf88 ldr r1, [pc, 0x14c]                   |     r1 = "array_foreach";
    0x0004bf8c add r1, pc, r1                        |     r1 = pc + r1;
    0x0004bf90 b 0x4bf1c                             |     goto label_0;
                                                     | label_8:
    0x0004bf94 ldr r1, [pc, 0x144]                   |     r1 = *(0x4c0dc);
    0x0004bf98 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004bf9c b 0x4bf1c                             |     goto label_0;
                                                     | label_9:
    0x0004bfa0 ldr r1, [pc, 0x13c]                   |     r1 = *(0x4c0e0);
    0x0004bfa4 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004bfa8 b 0x4bf1c                             |     goto label_0;
                                                     | label_11:
    0x0004bfac cmp r5, 0x40                          |     
                                                     |     if (r5 == 0x40) {
    0x0004bfb0 beq 0x4c010                           |         goto label_16;
                                                     |     }
    0x0004bfb4 cmp r5, 0x80                          |     
                                                     |     if (r5 == 0x80) {
    0x0004bfb8 beq 0x4c028                           |         goto label_17;
                                                     |     }
    0x0004bfbc cmp r5, 0x20                          |     
                                                     |     if (r5 != 0x20) {
    0x0004bfc0 bne 0x4bf44                           |         goto label_1;
                                                     |     }
    0x0004bfc4 ldr r1, [pc, 0x11c]                   |     r1 = *(0x4c0e4);
    0x0004bfc8 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004bfcc b 0x4bfd8                             |     goto label_2;
                                                     | label_12:
    0x0004bfd0 ldr r1, [pc, 0x114]                   |     r1 = *(0x4c0e8);
    0x0004bfd4 add r1, pc, r1                        |     r1 = pc + r1;
                                                     |     do {
                                                     | label_2:
    0x0004bfd8 mov r0, r4                            |         r0 = r4;
    0x0004bfdc bl 0x17090                            |         strcat (r0, r1);
    0x0004bfe0 mov r5, 0                             |         r5 = 0;
                                                     | label_3:
    0x0004bfe4 cmp r8, 0                             |         
                                                     |         if (r8 == 0) {
    0x0004bfe8 beq 0x4c0bc                           |             goto label_18;
                                                     |         }
    0x0004bfec ldr r1, [pc, 0xfc]                    |         r1 = *(0x4c0ec);
    0x0004bff0 add r1, pc, r1                        |         r1 = pc + r1;
    0x0004bff4 b 0x4c06c                             |         goto label_19;
                                                     | label_13:
    0x0004bff8 ldr r1, [pc, 0xf4]                    |         r1 = *(0x4c0f0);
    0x0004bffc add r1, pc, r1                        |         r1 = pc + r1;
    0x0004c000 b 0x4bfd8                             |         
                                                     |     } while (1);
                                                     | label_10:
    0x0004c004 ldr r1, [pc, 0xec]                    |     r1 = *(0x4c0f4);
    0x0004c008 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004c00c b 0x4bfd8                             |     goto label_2;
                                                     | label_16:
    0x0004c010 ldr r1, [pc, 0xe4]                    |     r1 = *(0x4c0f8);
    0x0004c014 add r1, pc, r1                        |     r1 = pc + r1;
                                                     |     do {
    0x0004c018 mov r0, r4                            |         r0 = r4;
    0x0004c01c bl 0x17090                            |         strcat (r0, r1);
                                                     | label_4:
    0x0004c020 mov r5, 1                             |         r5 = 1;
    0x0004c024 b 0x4bfe4                             |         goto label_3;
                                                     | label_17:
    0x0004c028 ldr r1, [pc, 0xd0]                    |         r1 = *(0x4c0fc);
    0x0004c02c add r1, pc, r1                        |         r1 = pc + r1;
    0x0004c030 b 0x4c018                             |         
                                                     |     } while (1);
                                                     | label_15:
    0x0004c034 mov r2, 0x10                          |     r2 = 0x10;
    0x0004c038 mov r1, r5                            |     r1 = r5;
    0x0004c03c add r0, r4, 4                         |     r0 = r4 + 4;
    0x0004c040 bl 0x4be44                            |     fcn_0004be44 (r0, r1);
    0x0004c044 b 0x4c020                             |     goto label_4;
                                                     | label_14:
    0x0004c048 ldr r1, [pc, 0xb4]                    |     r1 = *(0x4c100);
    0x0004c04c mov r0, r4                            |     r0 = r4;
    0x0004c050 add r1, pc, r1                        |     r1 = pc + r1;
    0x0004c054 bl 0x17090                            |     strcat (r0, r1);
    0x0004c058 cmp r8, 0                             |     
    0x0004c05c mov r5, 1                             |     r5 = 1;
                                                     |     if (r8 == 0) {
    0x0004c060 beq 0x4c08c                           |         goto label_20;
                                                     |     }
    0x0004c064 ldr r1, [pc, 0x9c]                    |     r1 = *(0x4c104);
    0x0004c068 add r1, pc, r1                        |     r1 = pc + r1;
                                                     |     do {
                                                     | label_19:
    0x0004c06c mov r0, r4                            |         r0 = r4;
    0x0004c070 bl 0x17090                            |         strcat (r0, r1);
    0x0004c074 tst r6, 1                             |         
                                                     |         if ((r6 & 1) != 0) {
    0x0004c078 beq 0x4c08c                           |             
    0x0004c07c ldr r1, [pc, 0x88]                    |             r1 = *(0x4c108);
    0x0004c080 mov r0, r4                            |             r0 = r4;
    0x0004c084 add r1, pc, r1                        |             r1 = pc + r1;
    0x0004c088 bl 0x17090                            |             strcat (r0, r1);
                                                     |         }
                                                     | label_20:
    0x0004c08c tst r6, 0x1c                          |         
                                                     |         if ((r6 & 0x1c) != 0) {
    0x0004c090 beq 0x4c0a4                           |             
    0x0004c094 ldr r1, [pc, 0x74]                    |             r1 = *(0x4c10c);
    0x0004c098 mov r0, r4                            |             r0 = r4;
    0x0004c09c add r1, pc, r1                        |             r1 = pc + r1;
    0x0004c0a0 bl 0x17090                            |             strcat (r0, r1);
                                                     |         }
    0x0004c0a4 cmp r5, 0                             |         
    0x0004c0a8 ldr r3, [pc, 0x64]                    |         r3 = *(0x4c110);
                                                     |         if (r5 != 0) {
    0x0004c0ac ldreq r3, [pc, 0x64]                  |             r3 = *((pc + 0x64));
                                                     |         }
    0x0004c0b0 ldr r3, [r7, r3]                      |         r3 = *((r7 + r3));
    0x0004c0b4 ldr r0, [r3]                          |         r0 = *(0x4c110);
    0x0004c0b8 pop {r4, r5, r6, r7, r8, pc}          |         
                                                     | label_18:
    0x0004c0bc ldr r1, [pc, 0x58]                    |         r1 = *(0x4c118);
    0x0004c0c0 add r1, pc, r1                        |         r1 = pc + r1;
    0x0004c0c4 b 0x4c06c                             |         
                                                     |     } while (1);
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x4fc0c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0004fc0c ()                                  | void fcn_0004fc0c (int32_t arg1, int32_t arg2) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0004fc0c push {r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0004fc10 ldr r5, [r0, 0x28]                            |     r5 = *((r0 + 0x28));
    0x0004fc14 mov r6, r0                                    |     r6 = r0;
    0x0004fc18 mov r7, r1                                    |     r7 = r1;
    0x0004fc1c mov r8, 0                                     |     r8 = 0;
    0x0004fc20 mov sb, 0x2d                                  |     sb = 0x2d;
                                                             |     do {
    0x0004fc24 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x0004fc28 bne 0x4fc3c                                   |             
    0x0004fc2c ldr r0, [r6, 0x28]                            |             r0 = *((r6 + 0x28));
    0x0004fc30 bl 0x42cd4                                    |             g_list_free ();
    0x0004fc34 str r5, [r6, 0x28]                            |             *((r6 + 0x28)) = r5;
    0x0004fc38 pop {r4, r5, r6, r7, r8, sb, sl, pc}          |             
                                                             |         }
    0x0004fc3c cmp r7, 0                                     |         
    0x0004fc40 ldr r4, [r5]                                  |         r4 = *(r5);
                                                             |         if (r7 != 0) {
    0x0004fc44 beq 0x4fc74                                   |             
    0x0004fc48 ldr r2, [r4, 4]                               |             r2 = *((r4 + 4));
    0x0004fc4c ldr r3, [r4]                                  |             r3 = *(r4);
    0x0004fc50 cmp r2, 0                                     |             
                                                             |             if (r2 == 0) {
    0x0004fc54 beq 0x4fc8c                                   |                 goto label_1;
                                                             |             }
    0x0004fc58 ldr r3, [r3]                                  |             r3 = *(r3);
    0x0004fc5c strb sb, [r3]                                 |             *(r3) = sb;
    0x0004fc60 ldr r3, [r4]                                  |             r3 = *(r4);
    0x0004fc64 ldr r1, [r4, 4]                               |             r1 = *((r4 + 4));
    0x0004fc68 ldr r0, [r3]                                  |             r0 = *(r3);
    0x0004fc6c add r0, r0, 1                                 |             r0++;
    0x0004fc70 bl 0x170d8                                    |             strcpy (r0, r1)
                                                             |         }
                                                             | label_0:
    0x0004fc74 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x0004fc78 bl 0x4b940                                    |         g_free ();
    0x0004fc7c mov r0, r4                                    |         r0 = r4;
    0x0004fc80 bl 0x4b940                                    |         g_free ();
    0x0004fc84 ldr r5, [r5, 4]                               |         r5 = *((r5 + 4));
    0x0004fc88 b 0x4fc24                                     |         
                                                             |     } while (1);
                                                             | label_1:
    0x0004fc8c ldrb r2, [r6, 0x1c]                           |     r2 = *((r6 + 0x1c));
    0x0004fc90 tst r2, 4                                     |     
                                                             |     if ((r2 & 4) != 0) {
    0x0004fc94 beq 0x4fca0                                   |         
    0x0004fc98 ldr r0, [r3]                                  |         r0 = *(r3);
    0x0004fc9c bl 0x4b940                                    |         g_free ();
                                                             |     }
    0x0004fca0 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0004fca4 str r8, [r3]                                  |     *(r3) = r8;
    0x0004fca8 b 0x4fc74                                     |     goto label_0;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x6b55c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0006b55c ()                      | void fcn_0006b55c (int32_t arg1, void * arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0006b55c push {r4, r5, r6, lr}             |     
    0x0006b560 mov r6, r0                        |     r6 = r0;
    0x0006b564 mov r0, 0x120                     |     r0 = 0x120;
    0x0006b568 mov r5, r1                        |     r5 = r1;
    0x0006b56c bl 0x4b870                        |     g_malloc0 ();
    0x0006b570 ldr r3, [pc, 0x78]                |     r3 = *(0x6b5ec);
    0x0006b574 add lr, r5, 0xc                   |     lr = r5 + 0xc;
    0x0006b578 str r3, [r0]                      |     *(r0) = r3;
    0x0006b57c ldr r3, [pc, 0x70]                |     r3 = *(0x6b5f0);
    0x0006b580 str r0, [r6]                      |     *(r6) = r0;
    0x0006b584 str r3, [r0, 0x90]                |     *((r0 + 0x90)) = r3;
    0x0006b588 ldr r3, [r5, 4]                   |     r3 = *((r5 + 4));
    0x0006b58c mov r4, r0                        |     r4 = r0;
    0x0006b590 rsb r3, r3, 0                     |     r3 -= ;
    0x0006b594 str r3, [r0, 4]                   |     *((r0 + 4)) = r3;
    0x0006b598 ldr r3, [r5, 8]                   |     r3 = *((r5 + 8));
    0x0006b59c add ip, r0, 0xc                   |     
    0x0006b5a0 rsb r3, r3, 0                     |     r3 -= ;
    0x0006b5a4 str r3, [r0, 8]                   |     *((r0 + 8)) = r3;
    0x0006b5a8 ldm lr!, {r0, r1, r2, r3}         |     r0 = *(lr!);
                                                 |     r1 = *((lr! + 4));
                                                 |     r2 = *((lr! + 8));
                                                 |     r3 = *((lr! + 12));
    0x0006b5ac stm ip!, {r0, r1, r2, r3}         |     *(ip!) = r0;
                                                 |     *((ip! + 4)) = r1;
                                                 |     *((ip! + 8)) = r2;
                                                 |     *((ip! + 12)) = r3;
    0x0006b5b0 ldm lr, {r0, r1, r2, r3}          |     r0 = *(lr);
                                                 |     r1 = *((lr + 4));
                                                 |     r2 = *((lr + 8));
                                                 |     r3 = *((lr + 12));
    0x0006b5b4 add lr, r5, 0x2c                  |     lr = r5 + 0x2c;
    0x0006b5b8 stm ip, {r0, r1, r2, r3}          |     *(ip) = r0;
                                                 |     *((ip + 4)) = r1;
                                                 |     *((ip + 8)) = r2;
                                                 |     *((ip + 12)) = r3;
    0x0006b5bc ldm lr!, {r0, r1, r2, r3}         |     r0 = *(lr!);
                                                 |     r1 = *((lr! + 4));
                                                 |     r2 = *((lr! + 8));
                                                 |     r3 = *((lr! + 12));
    0x0006b5c0 add ip, r4, 0x2c                  |     
    0x0006b5c4 stm ip!, {r0, r1, r2, r3}         |     *(ip!) = r0;
                                                 |     *((ip! + 4)) = r1;
                                                 |     *((ip! + 8)) = r2;
                                                 |     *((ip! + 12)) = r3;
    0x0006b5c8 ldm lr, {r0, r1, r2, r3}          |     r0 = *(lr);
                                                 |     r1 = *((lr + 4));
                                                 |     r2 = *((lr + 8));
                                                 |     r3 = *((lr + 12));
    0x0006b5cc stm ip, {r0, r1, r2, r3}          |     *(ip) = r0;
                                                 |     *((ip + 4)) = r1;
                                                 |     *((ip + 8)) = r2;
                                                 |     *((ip + 12)) = r3;
    0x0006b5d0 add r1, r5, 0x4c                  |     r1 = r5 + 0x4c;
    0x0006b5d4 add r0, r4, 0x4c                  |     r0 = r4 + 0x4c;
    0x0006b5d8 bl 0x170d8                        |     strcpy (r0, r1)
    0x0006b5dc add r1, r5, 0x6d                  |     r1 = r5 + 0x6d;
    0x0006b5e0 add r0, r4, 0x6d                  |     r0 = r4 + 0x6d;
    0x0006b5e4 bl 0x170d8                        |     strcpy (r0, r1)
    0x0006b5e8 mov r0, 2                         |     r0 = 2;
    0x0006b5ec pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x86d0c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00086d0c ()                                  | void fcn_00086d0c () {
                                                             |     char * dest;
                                                             |     char * format;
                                                             |     char * src;
                                                             |     char * var_3ch;
                                                             |     int32_t var_2h;
                                                             |     size_t size;
                                                             |     int32_t var_74h;
    0x00086d0c ldr r3, [pc, 0x2ac]                           |     r3 = *(0x86fbc);
    0x00086d10 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00086d14 ldr r4, [pc, r3]                              |     r4 = *(0x00086d1c);
    0x00086d18 sub sp, sp, 0x74                              |     
    0x00086d1c cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00086d20 bne 0x86fa8                                   |         goto label_5;
                                                             |     }
    0x00086d24 ldr r0, [pc, 0x298]                           |     r0 = *(0x86fc0);
    0x00086d28 add r0, pc, r0                                |     r0 = pc + r0;
    0x00086d2c bl 0x176d8                                    |     r0 = getenv (r0);
    0x00086d30 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x00086d34 beq 0x86e78                                   |         goto label_6;
                                                             |     }
    0x00086d38 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00086d3c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00086d40 beq 0x86e84                                   |         goto label_7;
                                                             |     }
                                                             | label_0:
    0x00086d44 mov r0, r4                                    |     r0 = r4;
    0x00086d48 bl 0x17744                                    |     r0 = strlen (r0);
    0x00086d4c subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x00086d50 moveq r6, r5                                  |         r6 = r5;
                                                             |     }
                                                             |     if (r5 != r0) {
    0x00086d54 beq 0x86d68                                   |         
    0x00086d58 add r3, r4, r5                                |         r3 = r4 + r5;
    0x00086d5c ldrb r6, [r3, -1]                             |         r6 = *((r3 - 1));
    0x00086d60 subs r6, r6, 0x2f                             |         r6 -= 0x2f;
                                                             |         if (r6 != r6) {
    0x00086d64 movne r6, 1                                   |             r6 = 1;
                                                             |             goto label_8;
                                                             |         }
                                                             |     }
                                                             | label_8:
    0x00086d68 add r7, r6, r5                                |     r7 = r6 + r5;
    0x00086d6c add r0, r7, 0xe                               |     r0 = r7 + 0xe;
    0x00086d70 bl 0x17048                                    |     r0 = malloc (r0);
    0x00086d74 subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x00086d78 beq 0x86f94                                   |         goto label_9;
                                                             |     }
    0x00086d7c mov r2, r5                                    |     r2 = r5;
    0x00086d80 mov r1, r4                                    |     r1 = r4;
    0x00086d84 bl 0x176fc                                    |     memcpy (r0, r1, r2);
    0x00086d88 ldr r1, [pc, 0x238]                           |     r1 = *(0x86fc4);
    0x00086d8c cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00086d90 movne r3, 0x2f                                |         r3 = 0x2f;
                                                             |     }
    0x00086d94 mov r2, 0xe                                   |     r2 = 0xe;
    0x00086d98 add r1, pc, r1                                |     r1 = pc + r1;
    0x00086d9c add r0, sb, r7                                |     r0 = sb + r7;
                                                             |     if (r6 == 0) {
    0x00086da0 strbne r3, [sb, r5]                           |         *((sb + r5)) = r3;
                                                             |     }
    0x00086da4 bl 0x176fc                                    |     memcpy (r0, r1, r2);
    0x00086da8 ldr r1, [pc, 0x21c]                           |     r1 = *(0x86fc8);
    0x00086dac mov r0, sb                                    |     r0 = sb;
    0x00086db0 add r1, pc, r1                                |     r1 = pc + r1;
    0x00086db4 bl 0x17300                                    |     r0 = fopen64 ();
    0x00086db8 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x00086dbc beq 0x86fb4                                   |         goto label_10;
                                                             |     }
    0x00086dc0 ldr r3, [pc, 0x208]                           |     r3 = *(0x86fcc);
    0x00086dc4 mov r6, 0                                     |     r6 = 0;
    0x00086dc8 add r3, pc, r3                                |     r3 = pc + r3;
    0x00086dcc mov r4, r6                                    |     r4 = r6;
    0x00086dd0 add sl, sp, 0x3c                              |     sl += var_3ch;
    0x00086dd4 add fp, sp, 8                                 |     
    0x00086dd8 str r3, [sp, 4]                               |     format = r3;
                                                             | label_3:
    0x00086ddc ldr r3, [r5, 0x34]                            |     r3 = *((r5 + 0x34));
    0x00086de0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00086de4 beq 0x86e90                                   |         goto label_11;
                                                             |     }
    0x00086de8 ldr r3, [r5, 0x10]                            |     r3 = *((r5 + 0x10));
    0x00086dec ldr r2, [r5, 0x18]                            |     r2 = *((r5 + 0x18));
    0x00086df0 cmp r3, r2                                    |     
                                                             |     if (r3 >= r2) {
    0x00086df4 addlo r2, r3, 1                               |         r2 = r3 + 1;
                                                             |     }
                                                             |     if (r3 >= r2) {
    0x00086df8 strlo r2, [r5, 0x10]                          |         *((r5 + 0x10)) = r2;
                                                             |     }
                                                             |     if (r3 >= r2) {
    0x00086dfc ldrblo r0, [r3]                               |         r0 = *(r3);
                                                             |     }
                                                             |     if (r3 > r2) {
    0x00086e00 blo 0x86e14                                   |         
    0x00086e04 mov r0, r5                                    |         r0 = r5;
    0x00086e08 bl 0x175c4                                    |         r0 = fgetc_unlocked ();
                                                             | label_1:
    0x00086e0c cmn r0, 1                                     |         
                                                             |         if (r0 == 1) {
    0x00086e10 beq 0x86f24                                   |             goto label_12;
                                                             |         }
                                                             |     }
    0x00086e14 sub r3, r0, 9                                 |     r3 = r0 - 9;
    0x00086e18 cmp r0, 0x20                                  |     
    0x00086e1c cmpne r3, 1                                   |     __asm ("cmpne r3, 1");
                                                             |     if (r0 < 0x20) {
    0x00086e20 bls 0x86e70                                   |         goto label_13;
                                                             |     }
    0x00086e24 cmp r0, 0x23                                  |     
                                                             |     if (r0 != 0x23) {
    0x00086e28 bne 0x86ea8                                   |         goto label_14;
                                                             |     }
                                                             |     do {
    0x00086e2c ldr r3, [r5, 0x34]                            |         r3 = *((r5 + 0x34));
    0x00086e30 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00086e34 beq 0x86e9c                                   |             goto label_15;
                                                             |         }
    0x00086e38 ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
    0x00086e3c ldr r2, [r5, 0x18]                            |         r2 = *((r5 + 0x18));
    0x00086e40 cmp r3, r2                                    |         
                                                             |         if (r3 >= r2) {
    0x00086e44 addlo r2, r3, 1                               |             r2 = r3 + 1;
                                                             |         }
                                                             |         if (r3 >= r2) {
    0x00086e48 strlo r2, [r5, 0x10]                          |             *((r5 + 0x10)) = r2;
                                                             |         }
                                                             |         if (r3 >= r2) {
    0x00086e4c ldrblo r0, [r3]                               |             r0 = *(r3);
                                                             |         }
                                                             |         if (r3 > r2) {
    0x00086e50 blo 0x86e5c                                   |             
    0x00086e54 mov r0, r5                                    |             r0 = r5;
    0x00086e58 bl 0x175c4                                    |             r0 = fgetc_unlocked ();
                                                             |         }
                                                             | label_2:
    0x00086e5c cmp r0, 0xa                                   |         
    0x00086e60 cmnne r0, 1                                   |         __asm ("cmnne r0, 1");
    0x00086e64 bne 0x86e2c                                   |         
                                                             |     } while (r0 != 0xa);
    0x00086e68 cmn r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00086e6c beq 0x86f24                                   |         goto label_12;
                                                             |     }
                                                             | label_13:
    0x00086e70 mov r8, r4                                    |     r8 = r4;
    0x00086e74 b 0x86f8c                                     |     goto label_16;
                                                             | label_6:
    0x00086e78 ldr r4, [pc, 0x154]                           |     r4 = *(0x86fd0);
    0x00086e7c add r4, pc, r4                                |     r4 = pc + r4;
    0x00086e80 b 0x86d44                                     |     goto label_0;
                                                             | label_7:
    0x00086e84 ldr r4, [pc, 0x14c]                           |     r4 = *(0x86fd4);
    0x00086e88 add r4, pc, r4                                |     r4 = pc + r4;
    0x00086e8c b 0x86d44                                     |     goto label_0;
                                                             | label_11:
    0x00086e90 mov r0, r5                                    |     r0 = r5;
    0x00086e94 bl 0x17378                                    |     fgetc (r0);
    0x00086e98 b 0x86e0c                                     |     goto label_1;
                                                             | label_15:
    0x00086e9c mov r0, r5                                    |     r0 = r5;
    0x00086ea0 bl 0x17378                                    |     fgetc (r0);
    0x00086ea4 b 0x86e5c                                     |     goto label_2;
                                                             | label_14:
    0x00086ea8 mov r1, r5                                    |     r1 = r5;
    0x00086eac bl 0x175e8                                    |     ungetc (r0, r1);
    0x00086eb0 mov r3, sl                                    |     r3 = sl;
    0x00086eb4 mov r2, fp                                    |     r2 = fp;
    0x00086eb8 ldr r1, [sp, 4]                               |     r1 = format;
    0x00086ebc mov r0, r5                                    |     r0 = r5;
    0x00086ec0 bl 0x17228                                    |     r0 = fscanf (r0, r1, r2, r3);
    0x00086ec4 cmp r0, 1                                     |     
                                                             |     if (r0 <= 1) {
    0x00086ec8 ble 0x86f24                                   |         goto label_12;
                                                             |     }
    0x00086ecc mov r0, fp                                    |     r0 = fp;
    0x00086ed0 bl 0x17744                                    |     strlen (r0);
    0x00086ed4 str r0, [sp]                                  |     *(sp) = r0;
    0x00086ed8 mov r0, sl                                    |     r0 = sl;
    0x00086edc bl 0x17744                                    |     strlen (r0);
    0x00086ee0 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00086ee4 cmp r6, 0                                     |     
    0x00086ee8 mov r7, r0                                    |     r7 = r0;
    0x00086eec add r0, r3, r0                                |     r0 = r3 + r0;
                                                             |     if (r6 != 0) {
    0x00086ef0 bne 0x86f48                                   |         goto label_17;
                                                             |     }
    0x00086ef4 add r6, r0, 2                                 |     r6 += var_2h;
    0x00086ef8 add r0, r0, 3                                 |     r0 += size;
    0x00086efc bl 0x17048                                    |     r0 = malloc (r0);
                                                             |     do {
    0x00086f00 cmp r0, 0                                     |         
    0x00086f04 mov r8, r0                                    |         r8 = r0;
                                                             |         if (r0 != 0) {
    0x00086f08 bne 0x86f60                                   |             goto label_18;
                                                             |         }
    0x00086f0c cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x00086f10 beq 0x86f20                                   |             
    0x00086f14 mov r0, r4                                    |             r0 = r4;
    0x00086f18 bl 0x175a0                                    |             free (r0);
    0x00086f1c mov r4, r8                                    |             r4 = r8;
                                                             |         }
    0x00086f20 mov r6, r4                                    |         r6 = r4;
                                                             | label_12:
    0x00086f24 mov r0, r5                                    |         r0 = r5;
    0x00086f28 bl 0x17138                                    |         fclose (r0);
    0x00086f2c cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x00086f30 beq 0x86fb4                                   |             goto label_10;
                                                             |         }
    0x00086f34 mov r3, 0                                     |         r3 = 0;
    0x00086f38 strb r3, [r4, r6]                             |         *((r4 + r6)) = r3;
                                                             | label_4:
    0x00086f3c mov r0, sb                                    |         r0 = sb;
    0x00086f40 bl 0x175a0                                    |         free (r0);
    0x00086f44 b 0x86f9c                                     |         goto label_19;
                                                             | label_17:
    0x00086f48 add r1, r6, r0                                |         r1 = r6 + r0;
    0x00086f4c add r6, r1, 2                                 |         r6 += var_2h;
    0x00086f50 mov r0, r4                                    |         r0 = r4;
    0x00086f54 add r1, r1, 3                                 |         r1 += size;
    0x00086f58 bl 0x16ee0                                    |         realloc (r0, r1);
    0x00086f5c b 0x86f00                                     |         
                                                             |     } while (1);
                                                             | label_18:
    0x00086f60 ldr r3, [sp]                                  |     r3 = *(sp);
    0x00086f64 sub r7, r6, r7                                |     r7 = r6 - r7;
    0x00086f68 sub r0, r7, r3                                |     r0 = r7 - r3;
    0x00086f6c sub r0, r0, 2                                 |     r0 -= 2;
    0x00086f70 mov r1, fp                                    |     r1 = fp;
    0x00086f74 add r0, r8, r0                                |     r0 = r8 + r0;
    0x00086f78 sub r7, r7, 1                                 |     r7--;
    0x00086f7c bl 0x170d8                                    |     strcpy (r0, r1)
    0x00086f80 mov r1, sl                                    |     r1 = sl;
    0x00086f84 add r0, r8, r7                                |     r0 = r8 + r7;
    0x00086f88 bl 0x170d8                                    |     strcpy (r0, r1)
                                                             | label_16:
    0x00086f8c mov r4, r8                                    |     r4 = r8;
    0x00086f90 b 0x86ddc                                     |     goto label_3;
                                                             | label_9:
    0x00086f94 ldr r4, [pc, 0x40]                            |     r4 = *(0x86fd8);
    0x00086f98 add r4, pc, r4                                |     r4 = pc + r4;
                                                             | label_19:
    0x00086f9c ldr r3, [pc, 0x3c]                            |     r3 = *(0x86fdc);
    0x00086fa0 add r3, pc, r3                                |     r3 = pc + r3;
    0x00086fa4 str r4, [r3]                                  |     *(r3) = r4;
                                                             | label_5:
    0x00086fa8 mov r0, r4                                    |     r0 = r4;
    0x00086fac add sp, sp, 0x74                              |     
    0x00086fb0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_10:
    0x00086fb4 ldr r4, [pc, 0x28]                            |     r4 = *(0x86fe0);
    0x00086fb8 add r4, pc, r4                                |     r4 = pc + r4;
    0x00086fbc b 0x86f3c                                     |     goto label_4;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x68278 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.g_assertion_message ()                   | void g_assertion_message (int32_t arg_60h, int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_14h;
                                                         |     int32_t var_18h;
                                                         |     int32_t var_1ch;
                                                         |     int32_t var_20h;
                                                         |     int32_t var_40h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00068278 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x0006827c ldr r7, [pc, 0x1c8]                       |     r7 = *(0x68448);
    0x00068280 sub sp, sp, 0x40                          |     
    0x00068284 ldr r6, [sp, 0x60]                        |     r6 = *(arg_60h);
    0x00068288 add r7, pc, r7                            |     r7 = pc + r7;
    0x0006828c cmp r6, 0                                 |     
    0x00068290 mov r4, r0                                |     r4 = r0;
    0x00068294 mov sl, r1                                |     sl = r1;
    0x00068298 mov r8, r3                                |     r8 = r3;
                                                         |     if (r6 != 0) {
    0x0006829c ldreq r6, [pc, 0x1ac]                     |         r6 = *(0x00068450);
                                                         |     }
                                                         |     if (r6 != 0) {
    0x000682a0 addeq r6, pc, r6                          |         r6 = pc + r6;
                                                         |     }
    0x000682a4 mov r3, r2                                |     r3 = r2;
    0x000682a8 ldr r2, [pc, 0x1a4]                       |     r2 = *(0x68450);
    0x000682ac add sb, sp, 0x20                          |     sb += var_20h;
    0x000682b0 add r2, pc, r2                            |     r2 = pc + r2;
    0x000682b4 mov r1, 0x20                              |     r1 = 0x20;
    0x000682b8 mov r0, sb                                |     r0 = sb;
    0x000682bc bl 0x83be0                                |     g_snprintf ();
    0x000682c0 cmp r4, 0                                 |     
                                                         |     if (r4 != 0) {
    0x000682c4 bne 0x68434                               |         goto label_4;
                                                         |     }
    0x000682c8 ldr r4, [pc, 0x188]                       |     r4 = *(0x68454);
    0x000682cc add r4, pc, r4                            |     r4 = pc + r4;
    0x000682d0 mov r1, r4                                |     r1 = r4;
                                                         |     do {
                                                         | label_3:
    0x000682d4 ldrb r3, [r8]                             |         r3 = *(r8);
    0x000682d8 cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x000682dc bne 0x683b8                               |             goto label_5;
                                                         |         }
    0x000682e0 ldr r3, [pc, 0x174]                       |         r3 = *(0x68458);
    0x000682e4 add r3, pc, r3                            |         r3 = pc + r3;
                                                         | label_0:
    0x000682e8 ldr r2, [pc, 0x170]                       |         r2 = *(0x6845c);
    0x000682ec str r3, [sp, 0x10]                        |         var_10h = r3;
    0x000682f0 add r2, pc, r2                            |         r2 = pc + r2;
    0x000682f4 ldr r3, [pc, 0x168]                       |         r3 = *(0x68460);
    0x000682f8 str r2, [sp, 0x14]                        |         var_14h = r2;
    0x000682fc ldr r2, [pc, 0x164]                       |         r2 = *(0x68464);
    0x00068300 add r3, pc, r3                            |         r3 = pc + r3;
    0x00068304 mov r5, 0                                 |         r5 = 0;
    0x00068308 add r2, pc, r2                            |         r2 = pc + r2;
    0x0006830c str r3, [sp, 8]                           |         var_8h = r3;
    0x00068310 stm sp, {r3, sb}                          |         *(sp) = r3;
                                                         |         *((sp + 4)) = sb;
    0x00068314 mov r0, r4                                |         r0 = r4;
    0x00068318 mov r3, sl                                |         r3 = sl;
    0x0006831c str r5, [sp, 0x1c]                        |         var_1ch = r5;
    0x00068320 str r6, [sp, 0x18]                        |         var_18h = r6;
    0x00068324 str r8, [sp, 0xc]                         |         var_ch = r8;
    0x00068328 bl 0x6078c                                |         r0 = g_strconcat ();
    0x0006832c mov r1, r0                                |         r1 = r0;
    0x00068330 mov r4, r0                                |         r4 = r0;
    0x00068334 ldr r0, [pc, 0x130]                       |         r0 = *(0x68468);
    0x00068338 add r0, pc, r0                            |         r0 = pc + r0;
    0x0006833c bl 0x4e594                                |         g_printerr ();
    0x00068340 ldr r3, [pc, 0x128]                       |         r3 = *(0x6846c);
    0x00068344 add r3, pc, r3                            |         r3 = pc + r3;
    0x00068348 ldr r2, [r3, 0x30]                        |         r2 = *(0x6849c);
    0x0006834c cmp r2, r5                                |         
                                                         |         if (r2 == r5) {
    0x00068350 bne 0x6836c                               |             
    0x00068354 ldr r2, [r3, 0x44]                        |             r2 = *((r3 + 0x44));
    0x00068358 cmp r2, r5                                |             
                                                         |             if (r2 != r5) {
    0x0006835c bne 0x6836c                               |                 goto label_6;
                                                         |             }
    0x00068360 ldr r3, [r3, 0x3c]                        |             r3 = *((r3 + 0x3c));
    0x00068364 cmp r3, r5                                |             
                                                         |             if (r3 == r5) {
    0x00068368 beq 0x683c4                               |                 goto label_7;
                                                         |             }
                                                         |         }
                                                         | label_6:
    0x0006836c mov r3, 0                                 |         r3 = 0;
    0x00068370 mov r2, r3                                |         r2 = r3;
    0x00068374 mov r1, r4                                |         r1 = r4;
    0x00068378 mov r0, 9                                 |         r0 = 9;
    0x0006837c str r5, [sp]                              |         *(sp) = r5;
                                                         | label_1:
    0x00068380 bl 0x66424                                |         fcn_00066424 (r0, r1, r2);
    0x00068384 ldr r3, [pc, 0xe8]                        |         
    0x00068388 add r3, pc, r3                            |         r3 = pc + r3;
    0x0006838c ldr r3, [r3, 0x30]                        |         r3 = *(0x684a0);
    0x00068390 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00068394 beq 0x683d8                               |             goto label_8;
                                                         |         }
    0x00068398 mov r0, r4                                |         r0 = r4;
    0x0006839c bl 0x4b940                                |         g_free ();
    0x000683a0 bl 0x65564                                |         g_test_fail ();
    0x000683a4 add sp, sp, 0x40                          |         
    0x000683a8 pop {r4, r5, r6, r7, r8, sb, sl, pc}      |         
                                                         | label_2:
    0x000683ac ldr r1, [pc, 0xc4]                        |         r1 = "back__.";
    0x000683b0 add r1, pc, r1                            |         r1 = pc + r1;
    0x000683b4 b 0x682d4                                 |         
                                                         |     } while (1);
                                                         | label_5:
    0x000683b8 ldr r3, [pc, 0xbc]                        |     r3 = *(0x68478);
    0x000683bc add r3, pc, r3                            |     r3 = pc + r3;
    0x000683c0 b 0x682e8                                 |     goto label_0;
                                                         | label_7:
    0x000683c4 str r3, [sp]                              |     *(sp) = r3;
    0x000683c8 mov r2, r3                                |     r2 = r3;
    0x000683cc mov r1, r4                                |     r1 = r4;
    0x000683d0 mov r0, 1                                 |     r0 = 1;
    0x000683d4 b 0x68380                                 |     goto label_1;
                                                         | label_8:
    0x000683d8 ldr r3, [pc, 0xa0]                        |     r3 = *(0x6847c);
    0x000683dc ldr r5, [r7, r3]                          |     r5 = *((r7 + r3));
    0x000683e0 ldr r0, [r5]                              |     r0 = *(r5);
    0x000683e4 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000683e8 beq 0x683f0                               |         
    0x000683ec bl 0x175a0                                |         free (r0);
                                                         |     }
    0x000683f0 mov r0, r4                                |     r0 = r4;
    0x000683f4 bl 0x17744                                |     r0 = strlen (r0);
    0x000683f8 add r0, r0, 1                             |     r0++;
    0x000683fc bl 0x17048                                |     malloc (r0);
    0x00068400 mov r1, r4                                |     r1 = r4;
    0x00068404 str r0, [r5]                              |     *(r5) = r0;
    0x00068408 bl 0x170d8                                |     strcpy (r0, r1)
    0x0006840c mov r0, r4                                |     r0 = r4;
    0x00068410 bl 0x4b940                                |     g_free ();
    0x00068414 ldr r3, [pc, 0x68]                        |     
    0x00068418 add r3, pc, r3                            |     r3 = pc + r3;
    0x0006841c ldr r3, [r3, 0x44]                        |     r3 = *(0x684c4);
    0x00068420 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00068424 beq 0x68430                               |         
    0x00068428 mov r0, 1                                 |         r0 = 1;
    0x0006842c bl 0x16f10                                |         r0 = exit (r0);
                                                         |     }
    0x00068430 bl 0x16ed4                                |     abort ();
                                                         | label_4:
    0x00068434 ldrb r3, [r4]                             |     r3 = *(r4);
    0x00068438 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x0006843c bne 0x683ac                               |         goto label_2;
                                                         |     }
    0x00068440 ldr r1, [pc, 0x40]                        |     r1 = "ispatched_without_callbackYou_must_call_g_source_set_callback__.";
    0x00068444 add r1, pc, r1                            |     r1 = pc + r1;
    0x00068448 b 0x682d4                                 |     goto label_3;
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x6848c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.g_assertion_message_expr ()      | void g_assertion_message_expr (int32_t arg_10h, int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_0h_2;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_0h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0006848c push {r0, r1, r7, lr}             |     
    0x00068490 mov r6, r1                        |     r6 = r1;
    0x00068494 ldr r1, [sp, 0x10]                |     r1 = *(arg_10h);
    0x00068498 mov r5, r0                        |     r5 = r0;
    0x0006849c cmp r1, 0                         |     
    0x000684a0 mov r7, r2                        |     r7 = r2;
    0x000684a4 mov r8, r3                        |     r8 = r3;
                                                 |     if (r1 != 0) {
    0x000684a8 bne 0x684f8                       |         goto label_0;
                                                 |     }
    0x000684ac ldr r0, [pc, 0x64]                |     r0 = *(0x68514);
    0x000684b0 add r0, pc, r0                    |     r0 = pc + r0;
    0x000684b4 bl 0x605d8                        |     g_strdup ();
                                                 |     do {
    0x000684b8 mov r3, r8                        |         r3 = r8;
    0x000684bc mov r4, r0                        |         r4 = r0;
    0x000684c0 str r0, [sp]                      |         *(sp) = r0;
    0x000684c4 mov r2, r7                        |         r2 = r7;
    0x000684c8 mov r1, r6                        |         r1 = r6;
    0x000684cc mov r0, r5                        |         r0 = r5;
    0x000684d0 bl 0x68278                        |         g_assertion_message ();
    0x000684d4 mov r0, r4                        |         r0 = r4;
    0x000684d8 bl 0x4b940                        |         g_free ();
    0x000684dc ldr r3, [pc, 0x38]                |         
    0x000684e0 add r3, pc, r3                    |         r3 = pc + r3;
    0x000684e4 ldr r3, [r3, 0x44]                |         r3 = *(0x6855c);
    0x000684e8 cmp r3, 0                         |         
                                                 |         if (r3 == 0) {
    0x000684ec beq 0x68514                       |             goto label_1;
                                                 |         }
    0x000684f0 mov r0, 1                         |         r0 = 1;
    0x000684f4 bl 0x16f10                        |         exit (r0);
                                                 | label_0:
    0x000684f8 ldr r2, [pc, 0x20]                |         r2 = "meout_add_full";
    0x000684fc ldr r0, [pc, 0x20]                |         r0 = *(0x68520);
    0x00068500 mov r3, 0                         |         r3 = 0;
    0x00068504 add r2, pc, r2                    |         r2 = pc + r2;
    0x00068508 add r0, pc, r0                    |         r0 = pc + r0;
    0x0006850c bl 0x6078c                        |         g_strconcat ();
    0x00068510 b 0x684b8                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x00068514 bl 0x16ed4                        |     abort ();
                                                 |     if (r3 != 0) {
    0x00068518 andeq sb, r2, r6, ror 2           |         sb = r2 & (r6 >>> 2);
                                                 |     }
                                                 |     if (r3 != 0) {
    0x0006851c andeq pc, r8, r0, ror r7          |         pc = r8 & (r0 >>> r7);
                                                 |     }
    0x00068520 ldrdeq sl, fp, [r2], -sl          |     __asm ("ldrdeq sl, fp, [r2], -sl");
    0x00068524 strdeq sp, lr, [r2], -sb          |     __asm ("strdeq sp, lr, [r2], -sb");
    0x00068528 cmn r1, 1                         |     
    0x0006852c push {r0, r1, r2, lr}             |     
                                                 |     if (r1 != 1) {
    0x00068530 beq 0x68560                       |         
    0x00068534 ldr r3, [r2, 0xc]                 |         r3 = *((r2 + 0xc));
    0x00068538 str r1, [r2, 8]                   |         *((r2 + 8)) = r1;
    0x0006853c cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x00068540 bne 0x68594                       |             goto label_2;
                                                 |         }
    0x00068544 ldr r3, [r2, 0x18]                |         r3 = *((r2 + 0x18));
    0x00068548 cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x0006854c bne 0x68594                       |             goto label_2;
                                                 |         }
    0x00068550 ldr r0, [r2, 4]                   |         r0 = *((r2 + 4));
    0x00068554 add sp, sp, 0xc                   |         
    0x00068558 pop {lr}                          |         
    0x0006855c b 0x471f8                         |         void (*0x471f8)() ();
                                                 |     }
    0x00068560 ldr r3, [pc, 0x34]                |     r3 = *(0x68598);
    0x00068564 ldr r1, [pc, 0x34]                |     r1 = *(0x6859c);
    0x00068568 add r3, pc, r3                    |     r3 = pc + r3;
    0x0006856c str r3, [sp]                      |     *(sp) = r3;
    0x00068570 ldr r3, [pc, 0x2c]                |     
    0x00068574 ldr r0, [pc, 0x2c]                |     r0 = *(0x685a4);
    0x00068578 add r3, pc, r3                    |     r3 = pc + r3;
    0x0006857c add r3, r3, 0x178                 |     r3 = 0x68718;
    0x00068580 add r3, r3, 2                     |     r3 += 2;
    0x00068584 ldr r2, [pc, 0x20]                |     r2 = *(0x685a8);
    0x00068588 add r1, pc, r1                    |     r1 = pc + r1;
    0x0006858c add r0, pc, r0                    |     r0 = pc + r0;
    0x00068590 bl 0x6848c                        |     g_assertion_message_expr ();
                                                 | label_2:
    0x00068594 add sp, sp, 0xc                   |     
    0x00068598 pop {pc}                          |     
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x68830 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_assertion_message_cmpnum ()                | void g_assertion_message_cmpnum (int32_t arg_40h, int32_t arg_48h, int32_t arg_50h, int32_t arg_58h, int32_t arg_60h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00068830 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00068834 sub sp, sp, 0x1c                              |     
    0x00068838 mov sl, r3                                    |     sl = r3;
    0x0006883c ldrb r3, [sp, 0x60]                           |     r3 = *(arg_60h);
    0x00068840 mov r5, r0                                    |     r5 = r0;
    0x00068844 cmp r3, 0x69                                  |     
    0x00068848 mov r8, r1                                    |     r8 = r1;
    0x0006884c mov sb, r2                                    |     sb = r2;
    0x00068850 ldr r4, [sp, 0x40]                            |     r4 = *(arg_40h);
    0x00068854 ldrd r0, r1, [sp, 0x48]                       |     __asm ("ldrd r0, r1, [arg_48h]");
    0x00068858 ldr fp, [sp, 0x50]                            |     fp = *(arg_50h);
    0x0006885c ldrd r6, r7, [sp, 0x58]                       |     __asm ("ldrd r6, r7, [arg_58h]");
                                                             |     if (r3 != 0x69) {
    0x00068860 beq 0x6889c                                   |         
    0x00068864 cmp r3, 0x78                                  |         
                                                             |         if (r3 == 0x78) {
    0x00068868 beq 0x68900                                   |             goto label_0;
                                                             |         }
    0x0006886c cmp r3, 0x66                                  |         
                                                             |         if (r3 == 0x66) {
    0x00068870 movne r4, 0                                   |             r4 = 0;
                                                             |         }
                                                             |         if (r3 != 0x66) {
    0x00068874 bne 0x688d8                                   |             goto label_1;
                                                             |         }
    0x00068878 mov r2, r0                                    |         r2 = r0;
    0x0006887c ldr r0, [pc, 0xb4]                            |         r0 = *(0x68934);
    0x00068880 mov r3, r1                                    |         r3 = r1;
    0x00068884 strd r6, r7, [sp, 8]                          |         __asm ("strd r6, r7, [var_8h]");
    0x00068888 str fp, [sp]                                  |         *(sp) = fp;
    0x0006888c mov r1, r4                                    |         r1 = r4;
    0x00068890 add r0, pc, r0                                |         r0 = pc + r0;
    0x00068894 bl 0x60764                                    |         g_strdup_printf ();
    0x00068898 b 0x688d4                                     |         goto label_2;
                                                             |     }
    0x0006889c bl 0x87e48                                    |     r0 = fcn_00087e48 (r0, r1);
    0x000688a0 mov r2, r0                                    |     r2 = r0;
    0x000688a4 mov r3, r1                                    |     r3 = r1;
    0x000688a8 mov r0, r6                                    |     r0 = r6;
    0x000688ac mov r1, r7                                    |     r1 = r7;
    0x000688b0 strd r2, r3, [sp, 0x10]                       |     __asm ("strd r2, r3, [var_10h]");
    0x000688b4 bl 0x87e48                                    |     fcn_00087e48 (r0, r1);
    0x000688b8 ldrd r2, r3, [sp, 0x10]                       |     __asm ("ldrd r2, r3, [var_10h]");
    0x000688bc str fp, [sp]                                  |     *(sp) = fp;
    0x000688c0 strd r0, r1, [sp, 8]                          |     __asm ("strd r0, r1, [var_8h]");
    0x000688c4 ldr r0, [pc, 0x70]                            |     r0 = *(0x68938);
    0x000688c8 mov r1, r4                                    |     r1 = r4;
    0x000688cc add r0, pc, r0                                |     r0 = pc + r0;
                                                             |     do {
    0x000688d0 bl 0x60764                                    |         r0 = g_strdup_printf ();
                                                             | label_2:
    0x000688d4 mov r4, r0                                    |         r4 = r0;
                                                             | label_1:
    0x000688d8 mov r0, r5                                    |         r0 = r5;
    0x000688dc str r4, [sp]                                  |         *(sp) = r4;
    0x000688e0 mov r3, sl                                    |         r3 = sl;
    0x000688e4 mov r2, sb                                    |         r2 = sb;
    0x000688e8 mov r1, r8                                    |         r1 = r8;
    0x000688ec bl 0x68278                                    |         g_assertion_message ();
    0x000688f0 mov r0, r4                                    |         r0 = r4;
    0x000688f4 add sp, sp, 0x1c                              |         
    0x000688f8 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}      |         
    0x000688fc b 0x4b940                                     |         void (*0x4b940)() ();
                                                             | label_0:
    0x00068900 bl 0x87e8c                                    |         r0 = fcn_00087e8c (r0, r1);
    0x00068904 mov r2, r0                                    |         r2 = r0;
    0x00068908 mov r3, r1                                    |         r3 = r1;
    0x0006890c mov r0, r6                                    |         r0 = r6;
    0x00068910 mov r1, r7                                    |         r1 = r7;
    0x00068914 strd r2, r3, [sp, 0x10]                       |         __asm ("strd r2, r3, [var_10h]");
    0x00068918 bl 0x87e8c                                    |         fcn_00087e8c (r0, r1);
    0x0006891c str fp, [sp]                                  |         *(sp) = fp;
    0x00068920 ldrd r2, r3, [sp, 0x10]                       |         __asm ("ldrd r2, r3, [var_10h]");
    0x00068924 strd r0, r1, [sp, 8]                          |         __asm ("strd r0, r1, [var_8h]");
    0x00068928 ldr r0, [pc, 0x10]                            |         r0 = *(0x6893c);
    0x0006892c mov r1, r4                                    |         r1 = r4;
    0x00068930 add r0, pc, r0                                |         r0 = pc + r0;
    0x00068934 b 0x688d0                                     |         
                                                             |     } while (1);
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x68a70 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_assertion_message_cmpstr ()                    | void g_assertion_message_cmpstr (int32_t arg_38h, int32_t arg_3ch, int32_t arg_40h, int32_t arg_44h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00068a70 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00068a74 sub sp, sp, 0x14                                  |     
    0x00068a78 mov fp, r3                                        |     
    0x00068a7c ldr r3, [sp, 0x38]                                |     r3 = *(arg_38h);
    0x00068a80 ldr r5, [sp, 0x3c]                                |     r5 = *(arg_3ch);
    0x00068a84 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00068a88 ldr r3, [sp, 0x40]                                |     r3 = *(arg_40h);
    0x00068a8c cmp r5, 0                                         |     
    0x00068a90 mov r8, r0                                        |     r8 = r0;
    0x00068a94 mov sb, r1                                        |     sb = r1;
    0x00068a98 mov sl, r2                                        |     sl = r2;
    0x00068a9c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00068aa0 ldr r4, [sp, 0x44]                                |     r4 = *(arg_44h);
                                                                 |     if (r5 == 0) {
    0x00068aa4 beq 0x68b70                                       |         goto label_1;
                                                                 |     }
    0x00068aa8 mov r1, 0                                         |     r1 = 0;
    0x00068aac mov r0, r5                                        |     r0 = r5;
    0x00068ab0 bl 0x61c2c                                        |     g_strescape ();
    0x00068ab4 ldr r2, [pc, 0xd4]                                |     r2 = *(0x68b8c);
    0x00068ab8 mov r3, 0                                         |     r3 = 0;
    0x00068abc add r2, pc, r2                                    |     r2 = pc + r2;
    0x00068ac0 mov r5, r0                                        |     r5 = r0;
    0x00068ac4 mov r1, r0                                        |     r1 = r0;
    0x00068ac8 mov r0, r2                                        |     r0 = r2;
    0x00068acc bl 0x6078c                                        |     g_strconcat ();
                                                                 |     do {
    0x00068ad0 cmp r4, 0                                         |         
    0x00068ad4 mov r7, r0                                        |         r7 = r0;
                                                                 |         if (r4 == 0) {
    0x00068ad8 beq 0x68b80                                       |             goto label_2;
                                                                 |         }
    0x00068adc mov r1, 0                                         |         r1 = 0;
    0x00068ae0 mov r0, r4                                        |         r0 = r4;
    0x00068ae4 bl 0x61c2c                                        |         g_strescape ();
    0x00068ae8 ldr r2, [pc, 0xa4]                                |         r2 = *(0x68b90);
    0x00068aec mov r3, 0                                         |         r3 = 0;
    0x00068af0 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00068af4 mov r4, r0                                        |         r4 = r0;
    0x00068af8 mov r1, r0                                        |         r1 = r0;
    0x00068afc mov r0, r2                                        |         r0 = r2;
    0x00068b00 bl 0x6078c                                        |         r0 = g_strconcat ();
                                                                 | label_0:
    0x00068b04 mov r6, r0                                        |         r6 = r0;
    0x00068b08 mov r0, r5                                        |         r0 = r5;
    0x00068b0c bl 0x4b940                                        |         g_free ();
    0x00068b10 mov r0, r4                                        |         r0 = r4;
    0x00068b14 bl 0x4b940                                        |         g_free ();
    0x00068b18 ldr r0, [pc, 0x78]                                |         r0 = *(0x68b94);
    0x00068b1c ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00068b20 mov r2, r7                                        |         r2 = r7;
    0x00068b24 ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x00068b28 str r6, [sp]                                      |         *(sp) = r6;
    0x00068b2c add r0, pc, r0                                    |         r0 = pc + r0;
    0x00068b30 bl 0x60764                                        |         r0 = g_strdup_printf ();
    0x00068b34 mov r4, r0                                        |         r4 = r0;
    0x00068b38 mov r0, r7                                        |         r0 = r7;
    0x00068b3c bl 0x4b940                                        |         g_free ();
    0x00068b40 mov r0, r6                                        |         r0 = r6;
    0x00068b44 bl 0x4b940                                        |         g_free ();
    0x00068b48 mov r0, r8                                        |         r0 = r8;
    0x00068b4c str r4, [sp]                                      |         *(sp) = r4;
    0x00068b50 mov r3, fp                                        |         r3 = fp;
    0x00068b54 mov r2, sl                                        |         r2 = sl;
    0x00068b58 mov r1, sb                                        |         r1 = sb;
    0x00068b5c bl 0x68278                                        |         g_assertion_message ();
    0x00068b60 mov r0, r4                                        |         r0 = r4;
    0x00068b64 add sp, sp, 0x14                                  |         
    0x00068b68 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x00068b6c b 0x4b940                                         |         void (*0x4b940)() ();
                                                                 | label_1:
    0x00068b70 ldr r0, [pc, 0x24]                                |         r0 = *(0x68b98);
    0x00068b74 add r0, pc, r0                                    |         r0 = pc + r0;
    0x00068b78 bl 0x605d8                                        |         g_strdup ();
    0x00068b7c b 0x68ad0                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x00068b80 ldr r0, [pc, 0x18]                                |     r0 = *(0x68b9c);
    0x00068b84 add r0, pc, r0                                    |     r0 = pc + r0;
    0x00068b88 bl 0x605d8                                        |     g_strdup ();
    0x00068b8c b 0x68b04                                         |     goto label_0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x68ba4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_assertion_message_error ()                     | void g_assertion_message_error (int32_t arg_38h, int32_t arg_3ch, int32_t arg_40h, int32_t arg_44h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00068ba4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x00068ba8 mov r7, r0                                        |     r7 = r0;
    0x00068bac sub sp, sp, 0x14                                  |     
    0x00068bb0 ldr r0, [pc, 0xe4]                                |     r0 = *(0x68c98);
    0x00068bb4 mov sl, r3                                        |     sl = r3;
    0x00068bb8 ldr r3, [sp, 0x40]                                |     r3 = *(arg_40h);
    0x00068bbc add r0, pc, r0                                    |     r0 = pc + r0;
    0x00068bc0 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00068bc4 mov r8, r1                                        |     r8 = r1;
    0x00068bc8 mov sb, r2                                        |     sb = r2;
    0x00068bcc ldr r6, [sp, 0x38]                                |     r6 = *(arg_38h);
    0x00068bd0 ldr r5, [sp, 0x3c]                                |     r5 = *(arg_3ch);
    0x00068bd4 ldr fp, [sp, 0x44]                                |     fp = *(arg_44h);
    0x00068bd8 bl 0x63968                                        |     g_string_new ();
    0x00068bdc ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00068be0 cmp r3, 0                                         |     
    0x00068be4 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == 0) {
    0x00068be8 beq 0x68c70                                       |         goto label_1;
                                                                 |     }
    0x00068bec mov r0, r3                                        |     r0 = r3;
    0x00068bf0 bl 0x53cd8                                        |     g_quark_to_string ();
    0x00068bf4 ldr r1, [pc, 0xa4]                                |     r1 = *(0x68c9c);
    0x00068bf8 str fp, [sp]                                      |     *(sp) = fp;
    0x00068bfc mov r2, r6                                        |     r2 = r6;
    0x00068c00 add r1, pc, r1                                    |     r1 = pc + r1;
    0x00068c04 mov r3, r0                                        |     r3 = r0;
    0x00068c08 mov r0, r4                                        |     r0 = r4;
    0x00068c0c bl 0x64580                                        |     g_string_append_printf ();
                                                                 |     do {
    0x00068c10 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00068c14 beq 0x68c84                                       |             goto label_2;
                                                                 |         }
    0x00068c18 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00068c1c bl 0x53cd8                                        |         g_quark_to_string ();
    0x00068c20 ldr r3, [r5, 4]                                   |         r3 = *((r5 + 4));
    0x00068c24 ldr r1, [pc, 0x78]                                |         r1 = *(0x68ca0);
    0x00068c28 str r3, [sp]                                      |         *(sp) = r3;
    0x00068c2c add r1, pc, r1                                    |         r1 = pc + r1;
    0x00068c30 ldr r2, [r5, 8]                                   |         r2 = *((r5 + 8));
    0x00068c34 mov r3, r0                                        |         r3 = r0;
    0x00068c38 mov r0, r4                                        |         r0 = r4;
    0x00068c3c bl 0x64580                                        |         g_string_append_printf ();
                                                                 | label_0:
    0x00068c40 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00068c44 mov r1, r8                                        |         r1 = r8;
    0x00068c48 str r3, [sp]                                      |         *(sp) = r3;
    0x00068c4c mov r0, r7                                        |         r0 = r7;
    0x00068c50 mov r3, sl                                        |         r3 = sl;
    0x00068c54 mov r2, sb                                        |         r2 = sb;
    0x00068c58 bl 0x68278                                        |         g_assertion_message ();
    0x00068c5c mov r1, 1                                         |         r1 = 1;
    0x00068c60 mov r0, r4                                        |         r0 = r4;
    0x00068c64 add sp, sp, 0x14                                  |         
    0x00068c68 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x00068c6c b 0x6349c                                         |         void (*0x6349c)() ();
                                                                 | label_1:
    0x00068c70 ldr r1, [pc, 0x30]                                |         r1 = *(0x68ca4);
    0x00068c74 mov r2, r6                                        |         r2 = r6;
    0x00068c78 add r1, pc, r1                                    |         r1 = pc + r1;
    0x00068c7c bl 0x64580                                        |         g_string_append_printf ();
    0x00068c80 b 0x68c10                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x00068c84 ldr r1, [pc, 0x20]                                |     r1 = "array_foreach";
    0x00068c88 mov r2, r6                                        |     r2 = r6;
    0x00068c8c add r1, pc, r1                                    |     r1 = pc + r1;
    0x00068c90 mov r0, r4                                        |     r0 = r4;
    0x00068c94 bl 0x64580                                        |     g_string_append_printf ();
    0x00068c98 b 0x68c40                                         |     goto label_0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x352bc */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) sym.g_dpgettext ()                           | void g_dpgettext (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_1ch_2;
                                                         |     int32_t var_1ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000352bc push {r4, r5, r6, r7, r8, sb, fp, lr}     |     
    0x000352c0 add fp, sp, 0x1c                          |     
    0x000352c4 mov r6, r1                                |     r6 = r1;
    0x000352c8 mov r7, r0                                |     r7 = r0;
    0x000352cc mov r5, r2                                |     r5 = r2;
    0x000352d0 bl 0x3527c                                |     r0 = g_dgettext ();
    0x000352d4 cmp r6, r0                                |     
    0x000352d8 mov r4, r0                                |     r4 = r0;
                                                         |     if (r6 == r0) {
    0x000352dc bne 0x3534c                               |         
    0x000352e0 cmp r5, 0                                 |         
                                                         |         if (r5 == 0) {
    0x000352e4 addne r4, r0, r5                          |             r4 = r0 + r5;
                                                         |         }
                                                         |         if (r5 != 0) {
    0x000352e8 bne 0x3534c                               |             goto label_0;
                                                         |         }
    0x000352ec mov r1, 0x7c                              |         r1 = 0x7c;
    0x000352f0 bl 0x17240                                |         r0 = strchr (r0, r1);
    0x000352f4 subs r6, r0, 0                            |         r6 = r0 - 0;
                                                         |         if (r6 == r0) {
    0x000352f8 beq 0x3534c                               |             goto label_0;
                                                         |         }
    0x000352fc mov r0, r4                                |         r0 = r4;
    0x00035300 bl 0x17744                                |         strlen (r0);
    0x00035304 mov r1, r4                                |         r1 = r4;
    0x00035308 sub r4, r6, r4                            |         r4 = r6 - r4;
    0x0003530c add r0, r0, 0xf                           |         r0 += 0xf;
    0x00035310 bic r0, r0, 7                             |         r0 = BIT_MASK (r0, 7);
    0x00035314 sub sp, sp, r0                            |         
    0x00035318 mov r3, sp                                |         r3 = sp;
    0x0003531c lsr r8, r3, 3                             |         r8 = r3 >> 3;
    0x00035320 lsl r5, r8, 3                             |         r5 = r8 << 3;
    0x00035324 mov r0, r5                                |         r0 = r5;
    0x00035328 bl 0x170d8                                |         strcpy (r0, r1)
    0x0003532c mov r3, 4                                 |         r3 = 4;
    0x00035330 strb r3, [r4, r8, lsl 3]                  |         offset_0 = r8 << 3;
                                                         |         *((r4 + offset_0)) = r3;
    0x00035334 mov r1, r5                                |         r1 = r5;
    0x00035338 mov r0, r7                                |         r0 = r7;
    0x0003533c bl 0x3527c                                |         r0 = g_dgettext ();
    0x00035340 cmp r5, r0                                |         
    0x00035344 mov r4, r0                                |         r4 = r0;
                                                         |         if (r5 == r0) {
    0x00035348 addeq r4, r6, 1                           |             r4 = r6 + 1;
                                                         |             goto label_0;
                                                         |         }
                                                         |     }
                                                         | label_0:
    0x0003534c mov r0, r4                                |     r0 = r4;
    0x00035350 sub sp, fp, 0x1c                          |     
    0x00035354 pop {r4, r5, r6, r7, r8, sb, fp, pc}      |     
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x35384 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.g_dpgettext2 ()                              | void g_dpgettext2 (int32_t arg1, char * s) {
                                                             |     int32_t var_28h;
                                                             |     int32_t var_20h_2;
                                                             |     int32_t var_20h;
                                                             |     r0 = arg1;
                                                             |     r1 = s;
    0x00035384 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00035388 add fp, sp, 0x20                              |     
    0x0003538c sub sp, sp, 0xc                               |     
    0x00035390 str r0, [fp, -0x28]                           |     var_28h = r0;
    0x00035394 mov r0, r1                                    |     r0 = r1;
    0x00035398 mov r6, r2                                    |     r6 = r2;
    0x0003539c mov sl, r1                                    |     sl = r1;
    0x000353a0 bl 0x17744                                    |     r0 = strlen (r0);
    0x000353a4 mov r5, r0                                    |     r5 = r0;
    0x000353a8 add r8, r0, 1                                 |     r8 = r0 + 1;
    0x000353ac mov r0, r6                                    |     r0 = r6;
    0x000353b0 bl 0x17744                                    |     strlen (r0);
    0x000353b4 mov r2, r5                                    |     r2 = r5;
    0x000353b8 mov r1, sl                                    |     r1 = sl;
    0x000353bc add sb, r0, 1                                 |     sb = r0 + 1;
    0x000353c0 add r3, r8, sb                                |     r3 = r8 + sb;
    0x000353c4 add r3, r3, 0xe                               |     r3 += 0xe;
    0x000353c8 bic r3, r3, 7                                 |     r3 = BIT_MASK (r3, 7);
    0x000353cc sub sp, sp, r3                                |     
    0x000353d0 mov r3, sp                                    |     r3 = sp;
    0x000353d4 lsr r7, r3, 3                                 |     r7 = r3 >> 3;
    0x000353d8 lsl r4, r7, 3                                 |     r4 = r7 << 3;
    0x000353dc mov r0, r4                                    |     r0 = r4;
    0x000353e0 bl 0x176fc                                    |     memcpy (r0, r1, r2);
    0x000353e4 mov r2, 4                                     |     r2 = 4;
    0x000353e8 strb r2, [r5, r7, lsl 3]                      |     offset_0 = r7 << 3;
                                                             |     *((r5 + offset_0)) = r2;
    0x000353ec mov r1, r6                                    |     r1 = r6;
    0x000353f0 mov r2, sb                                    |     r2 = sb;
    0x000353f4 add r0, r4, r8                                |     r0 = r4 + r8;
    0x000353f8 bl 0x176fc                                    |     memcpy (r0, r1, r2);
    0x000353fc mov r1, r4                                    |     r1 = r4;
    0x00035400 ldr r0, [fp, -0x28]                           |     r0 = var_28h;
    0x00035404 bl 0x3527c                                    |     r0 = g_dgettext ();
    0x00035408 cmp r4, r0                                    |     
                                                             |     if (r4 == r0) {
    0x0003540c bne 0x3542c                                   |         
    0x00035410 mov r2, 0x7c                                  |         r2 = 0x7c;
    0x00035414 mov r1, r0                                    |         r1 = r0;
    0x00035418 strb r2, [r5, r7, lsl 3]                      |         offset_1 = r7 << 3;
                                                             |         *((r5 + offset_1)) = r2;
    0x0003541c ldr r0, [fp, -0x28]                           |         r0 = var_28h;
    0x00035420 bl 0x3527c                                    |         r0 = g_dgettext ();
    0x00035424 cmp r4, r0                                    |         
                                                             |         if (r4 == r0) {
    0x00035428 moveq r0, r6                                  |             r0 = r6;
                                                             |             goto label_0;
                                                             |         }
                                                             |     }
                                                             | label_0:
    0x0003542c sub sp, fp, 0x20                              |     
    0x00035430 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x5ac24 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_scanner_unexp_token ()                         | void g_scanner_unexp_token (int32_t arg_40h, char * s, char * arg_48h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0005ac24 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0005ac28 mov fp, r3                                        |     
    0x0005ac2c ldr r3, [pc, 0xa78]                               |     r3 = *(0x5b6a8);
    0x0005ac30 sub sp, sp, 0x1c                                  |     
    0x0005ac34 subs r6, r0, 0                                    |     r6 -= arg_40h;
    0x0005ac38 mov r4, r1                                        |     r4 = r1;
    0x0005ac3c str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x0005ac40 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005ac44 ldr r2, [sp, 0x40]                                |     r2 = *(arg_40h);
    0x0005ac48 ldr sb, [sp, 0x44]                                |     sb = *(s);
    0x0005ac4c ldr r1, [sp, 0x48]                                |     r1 = *(arg_48h);
                                                                 |     if (r6 == arg_40h) {
    0x0005ac50 beq 0x5ad08                                       |         goto label_26;
                                                                 |     }
    0x0005ac54 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0005ac58 bne 0x5ad30                                       |         goto label_27;
                                                                 |     }
    0x0005ac5c ldr r1, [pc, 0xa4c]                               |     r1 = *(0x5b6ac);
                                                                 |     do {
    0x0005ac60 ldr sl, [r3, r1]                                  |         sl = *((r3 + r1));
    0x0005ac64 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0005ac68 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0005ac6c ldreq r3, [pc, 0xa40]                             |             r3 = *((pc + 0xa40));
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0005ac70 addeq r3, pc, r3                                  |             r3 = pc + r3;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0005ac74 streq r3, [sp, 0xc]                               |             var_ch = r3;
                                                                 |         }
    0x0005ac78 cmp fp, 0                                         |         
                                                                 |         if (fp != 0) {
    0x0005ac7c ldreq fp, [pc, 0xa34]                             |             fp = *((pc + 0xa34));
                                                                 |         }
                                                                 |         if (fp != 0) {
    0x0005ac80 addeq fp, pc, fp                                  |             
                                                                 |         }
    0x0005ac84 mov r0, 0x39                                      |         r0 = 0x39;
    0x0005ac88 str r2, [sp, 0x14]                                |         var_14h = r2;
    0x0005ac8c bl 0x4b814                                        |         r0 = g_malloc ();
    0x0005ac90 mov r7, r0                                        |         r7 = r0;
    0x0005ac94 mov r0, 0x41                                      |         r0 = 0x41;
    0x0005ac98 bl 0x4b814                                        |         g_malloc ();
    0x0005ac9c ldr r1, [pc, 0xa18]                               |         r1 = *(0x5b6b8);
    0x0005aca0 ldr r3, [r6, 0x18]                                |         r3 = *((r6 + 0x18));
    0x0005aca4 str r1, [sp, 0x10]                                |         var_10h = r1;
    0x0005aca8 cmp r3, r1                                        |         
    0x0005acac mov r8, r0                                        |         r8 = r0;
                                                                 |         if (r3 == r1) {
    0x0005acb0 beq 0x5b1dc                                       |             goto label_28;
                                                                 |         }
    0x0005acb4 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
                                                                 |         if (r3 > r1) {
    0x0005acb8 bhi 0x5ad54                                       |             goto label_29;
                                                                 |         }
    0x0005acbc sub r1, r1, 6                                     |         r1 -= 6;
    0x0005acc0 cmp r3, r1                                        |         
                                                                 |         if (r3 == r1) {
    0x0005acc4 beq 0x5b080                                       |             goto label_30;
                                                                 |         }
                                                                 |         if (r3 > r1) {
    0x0005acc8 bhi 0x5ad38                                       |             goto label_31;
                                                                 |         }
    0x0005accc cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0005acd0 beq 0x5aee0                                       |             goto label_32;
                                                                 |         }
    0x0005acd4 cmp r3, 0x100                                     |         
                                                                 |         if (r3 != 0x100) {
    0x0005acd8 bne 0x5ad7c                                       |             goto label_33;
                                                                 |         }
    0x0005acdc mov r3, 0                                         |         r3 = 0;
    0x0005ace0 str r3, [sp]                                      |         *(sp) = r3;
    0x0005ace4 ldr r3, [pc, 0x9d4]                               |         
    0x0005ace8 ldr r1, [pc, 0x9d4]                               |         r1 = *(0x5b6c0);
    0x0005acec ldr r0, [pc, 0x9d4]                               |         r0 = *(0x5b6c4);
    0x0005acf0 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005acf4 add r3, r3, 0x1d8                                 |         r3 = 0x5b894;
    0x0005acf8 ldr r2, [pc, 0x9cc]                               |         r2 = *(0x5b6c8);
    0x0005acfc add r1, pc, r1                                    |         r1 = pc + r1;
    0x0005ad00 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0005ad04 bl 0x6848c                                        |         g_assertion_message_expr ();
                                                                 | label_26:
    0x0005ad08 ldr r1, [pc, 0x9c0]                               |         
    0x0005ad0c ldr r2, [pc, 0x9c0]                               |         r2 = *(0x5b6d0);
    0x0005ad10 ldr r0, [pc, 0x9c0]                               |         r0 = *(0x5b6d4);
    0x0005ad14 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0005ad18 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005ad1c add r1, r1, 0x1d8                                 |         r1 = 0x5b8a4;
    0x0005ad20 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0005ad24 add sp, sp, 0x1c                                  |         
    0x0005ad28 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x0005ad2c b 0x4d3f0                                         |         void (*0x4d3f0)() ();
                                                                 | label_27:
    0x0005ad30 ldr r1, [pc, 0x9a4]                               |         r1 = *(0x5b6d8);
    0x0005ad34 b 0x5ac60                                         |         
                                                                 |     } while (1);
                                                                 | label_31:
    0x0005ad38 ldr r2, [pc, 0x9a0]                               |     r2 = *(0x5b6dc);
    0x0005ad3c cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0005ad40 bne 0x5b19c                                       |         goto label_34;
                                                                 |     }
    0x0005ad44 ldr r2, [pc, 0x998]                               |     r2 = *(0x5b6e0);
    0x0005ad48 ldrb r3, [r6, 0x20]                               |     r3 = *((r6 + 0x20));
    0x0005ad4c add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005ad50 b 0x5add4                                         |     goto label_3;
                                                                 | label_29:
    0x0005ad54 cmp r3, 0x10c                                     |     
                                                                 |     if (r3 >= 0x10c) {
    0x0005ad58 bhs 0x5aec0                                       |         goto label_35;
                                                                 |     }
    0x0005ad5c ldr r1, [pc, 0x984]                               |     r1 = *(0x5b6e4);
    0x0005ad60 cmp r3, r1                                        |     
                                                                 |     if (r3 >= r1) {
    0x0005ad64 bhs 0x5b144                                       |         goto label_36;
                                                                 |     }
    0x0005ad68 cmp r3, 0x108                                     |     
                                                                 |     if (r3 == 0x108) {
    0x0005ad6c beq 0x5b1fc                                       |         goto label_37;
                                                                 |     }
    0x0005ad70 sub r1, r1, 1                                     |     r1--;
    0x0005ad74 cmp r3, r1                                        |     
                                                                 |     if (r3 == r1) {
    0x0005ad78 beq 0x5afec                                       |         goto label_38;
                                                                 |     }
                                                                 |     do {
                                                                 | label_33:
    0x0005ad7c sub r1, r3, 1                                     |         r1 = r3 - 1;
    0x0005ad80 cmp r1, 0xfe                                      |         
                                                                 |         if (r1 > 0xfe) {
    0x0005ad84 bhi 0x5afd4                                       |             goto label_39;
                                                                 |         }
    0x0005ad88 sub r2, r3, 0x20                                  |         r2 = r3 - 0x20;
    0x0005ad8c cmp r2, 0x5e                                      |         
                                                                 |         if (r2 >= 0x5e) {
    0x0005ad90 bls 0x5adcc                                       |             
    0x0005ad94 ldr r5, [r6, 0x14]                                |             r5 = *((r6 + 0x14));
    0x0005ad98 mov r1, r3                                        |             r1 = r3;
    0x0005ad9c ldr r0, [r5, 4]                                   |             r0 = *((r5 + 4));
    0x0005ada0 str r3, [sp, 0x14]                                |             var_14h = r3;
    0x0005ada4 bl 0x17240                                        |             strchr (r0, r1);
    0x0005ada8 ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0005adac cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0005adb0 bne 0x5adcc                                       |                 goto label_40;
                                                                 |             }
    0x0005adb4 mov r1, r3                                        |             r1 = r3;
    0x0005adb8 ldr r0, [r5, 8]                                   |             r0 = *((r5 + 8));
    0x0005adbc bl 0x17240                                        |             strchr (r0, r1);
    0x0005adc0 ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0005adc4 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0005adc8 beq 0x5afc8                                       |                 goto label_41;
                                                                 |             }
                                                                 |         }
                                                                 | label_40:
    0x0005adcc ldr r2, [pc, 0x918]                               |         r2 = *(0x5b6e8);
    0x0005add0 add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_3:
    0x0005add4 mov r1, 0x38                                      |         r1 = 0x38;
    0x0005add8 mov r0, r7                                        |         r0 = r7;
    0x0005addc bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
                                                                 | label_0:
    0x0005ade0 mov r5, 1                                         |         r5 = 1;
                                                                 | label_4:
    0x0005ade4 ldr r3, [pc, 0x904]                               |         r3 = *(0x5b6ec);
    0x0005ade8 cmp r4, r3                                        |         
                                                                 |         if (r4 == r3) {
    0x0005adec beq 0x5b4dc                                       |             goto label_42;
                                                                 |         }
                                                                 |         if (r4 > r3) {
    0x0005adf0 bhi 0x5b2c0                                       |             goto label_43;
                                                                 |         }
    0x0005adf4 sub r3, r3, 4                                     |         r3 -= 4;
    0x0005adf8 cmp r4, r3                                        |         
                                                                 |         if (r4 == r3) {
    0x0005adfc beq 0x5b3e8                                       |             goto label_44;
                                                                 |         }
                                                                 |         if (r4 > r3) {
    0x0005ae00 bhi 0x5b274                                       |             goto label_45;
                                                                 |         }
    0x0005ae04 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x0005ae08 beq 0x5b350                                       |             goto label_46;
                                                                 |         }
    0x0005ae0c cmp r4, 0x100                                     |         
                                                                 |         if (r4 < 0x100) {
    0x0005ae10 bhs 0x5ae70                                       |             
                                                                 | label_2:
    0x0005ae14 sub r3, r4, 1                                     |             r3 = r4 - 1;
    0x0005ae18 cmp r3, 0xfe                                      |             
                                                                 |             if (r3 > 0xfe) {
    0x0005ae1c bhi 0x5b3b0                                       |                 goto label_47;
                                                                 |             }
    0x0005ae20 sub r3, r4, 0x20                                  |             r3 = r4 - 0x20;
    0x0005ae24 cmp r3, 0x5e                                      |             
                                                                 |             if (r3 >= 0x5e) {
    0x0005ae28 bls 0x5ae58                                       |                 
    0x0005ae2c ldr fp, [r6, 0x14]                                |                 fp = *((r6 + 0x14));
    0x0005ae30 mov r1, r4                                        |                 r1 = r4;
    0x0005ae34 ldr r0, [fp, 4]                                   |                 r0 = *(s);
    0x0005ae38 bl 0x17240                                        |                 r0 = strchr (r0, r1);
    0x0005ae3c cmp r0, 0                                         |                 
                                                                 |                 if (r0 != 0) {
    0x0005ae40 bne 0x5ae58                                       |                     goto label_48;
                                                                 |                 }
    0x0005ae44 mov r1, r4                                        |                 r1 = r4;
    0x0005ae48 ldr r0, [fp, 8]                                   |                 r0 = *(arg_48h);
    0x0005ae4c bl 0x17240                                        |                 r0 = strchr (r0, r1);
    0x0005ae50 cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0005ae54 beq 0x5b3a0                                       |                     goto label_49;
                                                                 |                 }
                                                                 |             }
                                                                 | label_48:
    0x0005ae58 ldr r2, [pc, 0x894]                               |             r2 = *(0x5b6f0);
    0x0005ae5c mov r3, r4                                        |             r3 = r4;
    0x0005ae60 add r2, pc, r2                                    |             r2 = pc + r2;
                                                                 | label_11:
    0x0005ae64 mov r1, 0x40                                      |             r1 = 0x40;
    0x0005ae68 mov r0, r8                                        |             r0 = r8;
    0x0005ae6c bl 0x16f7c                                        |             snprintf (r0, r1, r2, r3);
                                                                 |         }
                                                                 | label_1:
    0x0005ae70 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x0005ae74 bne 0x5b64c                                       |             goto label_50;
                                                                 |         }
                                                                 | label_19:
    0x0005ae78 ldr r3, [pc, 0x878]                               |         r3 = *(0x5b6f4);
    0x0005ae7c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005ae80 mov sb, r3                                        |         sb = r3;
                                                                 | label_20:
    0x0005ae84 ldr r2, [pc, 0x870]                               |         r2 = *(0x5b6f8);
    0x0005ae88 cmp r4, r2                                        |         
                                                                 |         if (r4 != r2) {
    0x0005ae8c bne 0x5b664                                       |             goto label_51;
                                                                 |         }
    0x0005ae90 ldr r1, [pc, 0x868]                               |         r1 = *(0x5b6fc);
    0x0005ae94 mov r2, r7                                        |         r2 = r7;
    0x0005ae98 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0005ae9c str sb, [sp]                                      |         *(sp) = sb;
                                                                 | label_5:
    0x0005aea0 mov r0, r6                                        |         r0 = r6;
    0x0005aea4 blx sl                                            |         sl (r0, r1, r2);
                                                                 | label_10:
    0x0005aea8 mov r0, r7                                        |         r0 = r7;
    0x0005aeac bl 0x4b940                                        |         g_free ();
    0x0005aeb0 mov r0, r8                                        |         r0 = r8;
    0x0005aeb4 add sp, sp, 0x1c                                  |         
    0x0005aeb8 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x0005aebc b 0x4b940                                         |         void (*0x4b940)() ();
                                                                 | label_35:
    0x0005aec0 ldr r1, [pc, 0x83c]                               |         r1 = *(0x5b700);
    0x0005aec4 cmp r3, r1                                        |         
    0x0005aec8 bhi 0x5ad7c                                       |         
                                                                 |     } while (r3 > r1);
    0x0005aecc ldr r1, [pc, 0x834]                               |     r1 = *(0x5b704);
    0x0005aed0 mov r0, r7                                        |     r0 = r7;
    0x0005aed4 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005aed8 bl 0x170d8                                        |     strcpy (r0, r1)
    0x0005aedc b 0x5ade0                                         |     goto label_0;
                                                                 | label_32:
    0x0005aee0 ldr r1, [pc, 0x824]                               |     r1 = *(0x5b708);
    0x0005aee4 mov r0, r7                                        |     r0 = r7;
    0x0005aee8 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005aeec bl 0x170d8                                        |     strcpy (r0, r1)
    0x0005aef0 ldr r3, [pc, 0x7f8]                               |     r3 = *(0x5b6ec);
    0x0005aef4 cmp r4, r3                                        |     
                                                                 |     if (r4 == r3) {
    0x0005aef8 beq 0x5b4d8                                       |         goto label_52;
                                                                 |     }
                                                                 |     if (r4 > r3) {
    0x0005aefc bhi 0x5af44                                       |         goto label_53;
                                                                 |     }
    0x0005af00 sub r3, r3, 4                                     |     r3 -= 4;
    0x0005af04 cmp r4, r3                                        |     
                                                                 |     if (r4 == r3) {
    0x0005af08 beq 0x5b418                                       |         goto label_54;
                                                                 |     }
                                                                 |     if (r4 > r3) {
    0x0005af0c bhi 0x5af2c                                       |         goto label_55;
                                                                 |     }
    0x0005af10 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0005af14 beq 0x5b34c                                       |         goto label_56;
                                                                 |     }
    0x0005af18 cmp r4, 0x100                                     |     
                                                                 |     if (r4 >= 0x100) {
    0x0005af1c movhs r5, 1                                       |         r5 = 1;
                                                                 |         goto label_57;
                                                                 |     }
                                                                 |     if (r4 >= 0x100) {
                                                                 | label_57:
    0x0005af20 bhs 0x5ae70                                       |         goto label_1;
                                                                 |     }
                                                                 |     do {
    0x0005af24 mov r5, 1                                         |         r5 = 1;
    0x0005af28 b 0x5ae14                                         |         goto label_2;
                                                                 | label_55:
    0x0005af2c cmp r4, 0x104                                     |         
                                                                 |         if (r4 == 0x104) {
    0x0005af30 beq 0x5b480                                       |             goto label_58;
                                                                 |         }
                                                                 |         if (r4 > 0x104) {
    0x0005af34 movls r5, 1                                       |             r5 = 1;
                                                                 |         }
                                                                 |         if (r4 < 0x104) {
    0x0005af38 bls 0x5b434                                       |             goto label_59;
                                                                 |         }
    0x0005af3c mov r5, 1                                         |         r5 = 1;
    0x0005af40 b 0x5b280                                         |         goto label_60;
                                                                 | label_53:
    0x0005af44 cmp r4, 0x10c                                     |         
                                                                 |         if (r4 < 0x10c) {
    0x0005af48 bhs 0x5af70                                       |             
    0x0005af4c ldr r3, [pc, 0x794]                               |             r3 = *(0x5b6e4);
    0x0005af50 cmp r4, r3                                        |             
                                                                 |             if (r4 >= r3) {
    0x0005af54 bhs 0x5b5b4                                       |                 goto label_61;
                                                                 |             }
    0x0005af58 cmp r4, 0x108                                     |             
                                                                 |             if (r4 == 0x108) {
    0x0005af5c beq 0x5b574                                       |                 goto label_62;
                                                                 |             }
                                                                 |             if (r4 > 0x108) {
    0x0005af60 movls r5, 1                                       |                 r5 = 1;
                                                                 |             }
                                                                 |             if (r4 < 0x108) {
    0x0005af64 bls 0x5b528                                       |                 goto label_63;
                                                                 |             }
    0x0005af68 mov r5, 1                                         |             r5 = 1;
    0x0005af6c b 0x5b2e0                                         |             goto label_12;
                                                                 |         }
    0x0005af70 cmp r4, 0x10c                                     |         
                                                                 |         if (r4 == 0x10c) {
    0x0005af74 beq 0x5b5f4                                       |             goto label_64;
                                                                 |         }
    0x0005af78 ldr r3, [pc, 0x784]                               |         r3 = *(0x5b700);
    0x0005af7c cmp r4, r3                                        |         
                                                                 |         if (r4 != r3) {
    0x0005af80 moveq r5, 1                                       |             r5 = 1;
                                                                 |         }
    0x0005af84 bne 0x5af24                                       |         
                                                                 |     } while (r4 != r3);
                                                                 | label_9:
    0x0005af88 ldr r2, [r6, 0x18]                                |     r2 = *((r6 + 0x18));
    0x0005af8c ldr r3, [pc, 0x770]                               |     r3 = *(0x5b700);
    0x0005af90 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0005af94 bne 0x5b640                                       |         goto label_65;
                                                                 |     }
    0x0005af98 ldr r3, [pc, 0x770]                               |     r3 = *(0x5b70c);
    0x0005af9c add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 | label_18:
    0x0005afa0 ldr r2, [pc, 0x76c]                               |     r2 = *(0x5b710);
    0x0005afa4 mov r1, 0x40                                      |     r1 = 0x40;
    0x0005afa8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005afac str r2, [sp]                                      |     *(sp) = r2;
    0x0005afb0 ldr r2, [pc, 0x760]                               |     r2 = *(0x5b714);
    0x0005afb4 mov r0, r8                                        |     r0 = r8;
    0x0005afb8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005afbc bl 0x16f7c                                        |     snprintf (r0, r1, r2, r3);
    0x0005afc0 ldr r4, [pc, 0x73c]                               |     r4 = *(0x5b700);
    0x0005afc4 b 0x5b364                                         |     goto label_14;
                                                                 | label_41:
    0x0005afc8 ldr r2, [pc, 0x74c]                               |     r2 = *(0x5b718);
    0x0005afcc add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005afd0 b 0x5add4                                         |     goto label_3;
                                                                 | label_39:
    0x0005afd4 ldr r1, [r6, 0x14]                                |     r1 = *((r6 + 0x14));
    0x0005afd8 ldrb r1, [r1, 0x12]                               |     r1 = *((r1 + 0x12));
    0x0005afdc tst r1, 8                                         |     
                                                                 |     if ((r1 & 8) != 0) {
    0x0005afe0 ldreq r2, [pc, 0x738]                             |         r2 = *(0x0005b720);
                                                                 |     }
                                                                 |     if ((r1 & 8) == 0) {
    0x0005afe4 addeq r2, pc, r2                                  |         r2 = pc + r2;
                                                                 |         goto label_66;
                                                                 |     }
                                                                 |     if ((r1 & 8) == 0) {
                                                                 | label_66:
    0x0005afe8 beq 0x5add4                                       |         goto label_3;
                                                                 |     }
                                                                 | label_38:
    0x0005afec ldr r3, [pc, 0x730]                               |     r3 = *(0x5b720);
    0x0005aff0 cmp r4, r3                                        |     
                                                                 |     if (r4 != r3) {
    0x0005aff4 beq 0x5b018                                       |         
    0x0005aff8 ldr r3, [r6, 0x14]                                |         r3 = *((r6 + 0x14));
    0x0005affc ldrb r1, [r3, 0x12]                               |         r1 = *((r3 + 0x12));
    0x0005b000 ldr r3, [pc, 0x720]                               |         r3 = *(0x5b724);
    0x0005b004 cmp r4, r3                                        |         
                                                                 |         if (r4 > r3) {
    0x0005b008 movls r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r4 <= r3) {
    0x0005b00c movhi r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0005b010 ands r3, r3, r1, lsr 3                            |         r3 &= (r1 >> 3);
                                                                 |         if (r3 == r3) {
    0x0005b014 beq 0x5b694                                       |             goto label_67;
                                                                 |         }
                                                                 |     }
    0x0005b018 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0005b01c bne 0x5b048                                       |         
    0x0005b020 ldr r3, [pc, 0x704]                               |         r3 = *(0x5b728);
    0x0005b024 mov r5, r2                                        |         r5 = r2;
    0x0005b028 add r3, pc, r3                                    |         r3 = pc + r3;
                                                                 | label_25:
    0x0005b02c ldr r2, [pc, 0x6fc]                               |         r2 = *(0x5b72c);
    0x0005b030 str fp, [sp]                                      |         *(sp) = fp;
    0x0005b034 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b038 mov r1, 0x38                                      |         r1 = 0x38;
    0x0005b03c mov r0, r7                                        |         r0 = r7;
    0x0005b040 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b044 b 0x5ade4                                         |         goto label_4;
                                                                 |     }
    0x0005b048 ldr r3, [pc, 0x6e4]                               |     r3 = *(0x5b730);
    0x0005b04c mov r5, 0                                         |     r5 = 0;
    0x0005b050 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b054 str r2, [sp, 4]                                   |         var_4h = r2;
    0x0005b058 ldr r2, [pc, 0x6d8]                               |         r2 = *(0x5b734);
    0x0005b05c str fp, [sp]                                      |         *(sp) = fp;
    0x0005b060 add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_7:
    0x0005b064 mov r1, 0x38                                      |         r1 = 0x38;
    0x0005b068 mov r0, r7                                        |         r0 = r7;
    0x0005b06c bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b070 b 0x5ade4                                         |         goto label_4;
                                                                 | label_24:
    0x0005b074 ldr r3, [pc, 0x6c0]                               |         r3 = *(0x5b738);
    0x0005b078 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b07c b 0x5b054                                         |         
                                                                 |     } while (1);
                                                                 | label_30:
    0x0005b080 ldr r3, [r6, 0x20]                                |     r3 = *((r6 + 0x20));
    0x0005b084 sub r3, r3, 1                                     |     r3--;
    0x0005b088 cmp r3, 6                                         |     
                                                                 |     if (r3 > 6) {
                                                                 |         /* switch table (7 cases) at 0x5b094 */
    0x0005b08c addls pc, pc, r3, lsl 2                           |         pc += (r3 << 2);
                                                                 |     }
    0x0005b090 b 0x5b138                                         |     goto label_68;
    0x0005b094 b 0x5b0b0                                         |     goto label_69;
    0x0005b098 b 0x5b0f0                                         |     goto label_70;
    0x0005b09c b 0x5b0fc                                         |     goto label_71;
    0x0005b0a0 b 0x5b108                                         |     goto label_72;
    0x0005b0a4 b 0x5b12c                                         |     goto label_73;
    0x0005b0a8 b 0x5b114                                         |     goto label_74;
    0x0005b0ac b 0x5b120                                         |     goto label_75;
                                                                 | label_69:
    0x0005b0b0 ldr r1, [pc, 0x688]                               |     r1 = *(0x5b73c);
    0x0005b0b4 add r1, pc, r1                                    |     r1 = pc + r1;
                                                                 |     do {
                                                                 | label_6:
    0x0005b0b8 mov r0, r7                                        |         r0 = r7;
    0x0005b0bc bl 0x170d8                                        |         strcpy (r0, r1)
    0x0005b0c0 cmp sb, 0                                         |         
                                                                 |         if (sb == 0) {
    0x0005b0c4 movne r5, 0                                       |             r5 = 0;
                                                                 |         }
                                                                 |         if (sb == 0) {
    0x0005b0c8 movne r4, 0x100                                   |             r4 = 0x100;
                                                                 |         }
                                                                 |         if (sb != 0) {
    0x0005b0cc bne 0x5b64c                                       |             goto label_50;
                                                                 |         }
    0x0005b0d0 ldr sb, [pc, 0x66c]                               |         sb = *(0x0005b744);
    0x0005b0d4 add sb, pc, sb                                    |         sb = pc + sb;
    0x0005b0d8 mov r3, sb                                        |         r3 = sb;
                                                                 | label_22:
    0x0005b0dc ldr r1, [pc, 0x664]                               |         r1 = *(0x5b744);
    0x0005b0e0 str sb, [sp]                                      |         *(sp) = sb;
    0x0005b0e4 mov r2, r7                                        |         r2 = r7;
    0x0005b0e8 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0005b0ec b 0x5aea0                                         |         goto label_5;
                                                                 | label_70:
    0x0005b0f0 ldr r1, [pc, 0x654]                               |         r1 = *(0x5b748);
    0x0005b0f4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x0005b0f8 b 0x5b0b8                                         |         
                                                                 |     } while (1);
                                                                 | label_71:
    0x0005b0fc ldr r1, [pc, 0x64c]                               |     r1 = *(0x5b74c);
    0x0005b100 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b104 b 0x5b0b8                                         |     goto label_6;
                                                                 | label_72:
    0x0005b108 ldr r1, [pc, 0x644]                               |     r1 = *(0x5b750);
    0x0005b10c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b110 b 0x5b0b8                                         |     goto label_6;
                                                                 | label_74:
    0x0005b114 ldr r1, [pc, 0x63c]                               |     r1 = *(0x5b754);
    0x0005b118 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b11c b 0x5b0b8                                         |     goto label_6;
                                                                 | label_75:
    0x0005b120 ldr r1, [pc, 0x634]                               |     r1 = *(0x5b758);
    0x0005b124 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b128 b 0x5b0b8                                         |     goto label_6;
                                                                 | label_73:
    0x0005b12c ldr r1, [pc, 0x62c]                               |     r1 = *(0x5b75c);
    0x0005b130 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b134 b 0x5b0b8                                         |     goto label_6;
                                                                 | label_68:
    0x0005b138 ldr r1, [pc, 0x624]                               |     r1 = *(0x5b760);
    0x0005b13c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b140 b 0x5b0b8                                         |     goto label_6;
                                                                 | label_36:
    0x0005b144 sub r2, r4, 0x108                                 |     r2 = r4 - 0x108;
    0x0005b148 sub r2, r2, 2                                     |     r2 -= 2;
    0x0005b14c cmp r2, 1                                         |     
                                                                 |     if (r2 > 1) {
    0x0005b150 bhi 0x5b18c                                       |         goto label_76;
                                                                 |     }
    0x0005b154 ldr r2, [pc, 0x60c]                               |     r2 = *(0x5b764);
    0x0005b158 mov r5, 0                                         |     r5 = 0;
    0x0005b15c add r2, pc, r2                                    |     r2 = pc + r2;
                                                                 |     do {
    0x0005b160 cmp r3, r1                                        |         
                                                                 |         if (r3 != r1) {
    0x0005b164 ldreq r3, [r6, 0x20]                              |             r3 = *((r6 + 0x20));
                                                                 |         }
                                                                 |         if (r3 == r1) {
    0x0005b168 ldrne r3, [pc, 0x5fc]                             |             r3 = *((pc + 0x5fc));
                                                                 |         }
                                                                 |         if (r3 == r1) {
    0x0005b16c addne r3, pc, r3                                  |             r3 = pc + r3;
                                                                 |         }
    0x0005b170 str r3, [sp, 4]                                   |         var_4h = r3;
    0x0005b174 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0005b178 str r3, [sp]                                      |         *(sp) = r3;
    0x0005b17c mov r3, r2                                        |         r3 = r2;
    0x0005b180 ldr r2, [pc, 0x5e8]                               |         r2 = *(0x5b76c);
    0x0005b184 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b188 b 0x5b064                                         |         goto label_7;
                                                                 | label_76:
    0x0005b18c ldr r2, [pc, 0x5e0]                               |         r2 = *(0x5b770);
    0x0005b190 mov r5, 1                                         |         r5 = 1;
    0x0005b194 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b198 b 0x5b160                                         |         
                                                                 |     } while (1);
                                                                 | label_34:
    0x0005b19c ldr r3, [r6, 0x14]                                |     r3 = *((r6 + 0x14));
    0x0005b1a0 ldrb r3, [r3, 0x12]                               |     r3 = *((r3 + 0x12));
    0x0005b1a4 tst r3, 0x20                                      |     
                                                                 |     if ((r3 & 0x20) != 0) {
    0x0005b1a8 beq 0x5b1cc                                       |         
    0x0005b1ac ldrd r2, r3, [r6, 0x20]                           |         __asm ("ldrd r2, r3, [r6, 0x20]");
    0x0005b1b0 mov r1, 0x38                                      |         r1 = 0x38;
    0x0005b1b4 strd r2, r3, [sp]                                 |         __asm ("strd r2, r3, [sp]");
    0x0005b1b8 ldr r2, [pc, 0x5b8]                               |         r2 = *(0x5b774);
    0x0005b1bc mov r0, r7                                        |         r0 = r7;
    0x0005b1c0 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b1c4 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b1c8 b 0x5ade0                                         |         goto label_0;
                                                                 |     }
    0x0005b1cc ldr r2, [pc, 0x5a8]                               |     r2 = *(0x5b778);
    0x0005b1d0 ldr r3, [r6, 0x20]                                |     r3 = *((r6 + 0x20));
    0x0005b1d4 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b1d8 b 0x5add4                                         |     goto label_3;
                                                                 | label_28:
    0x0005b1dc ldrd r2, r3, [r6, 0x20]                           |     __asm ("ldrd r2, r3, [r6, 0x20]");
    0x0005b1e0 mov r1, 0x38                                      |     r1 = 0x38;
    0x0005b1e4 strd r2, r3, [sp]                                 |     __asm ("strd r2, r3, [sp]");
    0x0005b1e8 ldr r2, [pc, 0x590]                               |     r2 = *(0x5b77c);
    0x0005b1ec mov r0, r7                                        |     r0 = r7;
    0x0005b1f0 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b1f4 bl 0x16f7c                                        |     snprintf (r0, r1, r2, r3);
    0x0005b1f8 b 0x5ade0                                         |     goto label_0;
                                                                 | label_37:
    0x0005b1fc cmp r4, 0x108                                     |     
                                                                 |     if (r4 == 0x108) {
    0x0005b200 beq 0x5b258                                       |         goto label_77;
                                                                 |     }
    0x0005b204 ldr r3, [pc, 0x578]                               |     r3 = *(0x5b780);
    0x0005b208 mov r5, 1                                         |     r5 = 1;
    0x0005b20c add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b210 ldr r1, [r6, 0x20]                                |         r1 = *((r6 + 0x20));
    0x0005b214 ldrb r2, [r1]                                     |         r2 = *(r1);
    0x0005b218 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0005b21c beq 0x5b268                                       |             goto label_78;
                                                                 |         }
    0x0005b220 ldr r2, [pc, 0x560]                               |         r2 = "__NULL";
    0x0005b224 add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_8:
    0x0005b228 str r2, [sp]                                      |         *(sp) = r2;
    0x0005b22c ldr r2, [pc, 0x558]                               |         r2 = *(0x5b788);
    0x0005b230 str r1, [sp, 4]                                   |         var_4h = r1;
    0x0005b234 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b238 mov r1, 0x38                                      |         r1 = 0x38;
    0x0005b23c mov r0, r7                                        |         r0 = r7;
    0x0005b240 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b244 mov r3, 0x22                                      |         r3 = 0x22;
    0x0005b248 strb r3, [r7, 0x36]                               |         *((r7 + 0x36)) = r3;
    0x0005b24c mov r3, 0                                         |         r3 = 0;
    0x0005b250 strb r3, [r7, 0x37]                               |         *((r7 + 0x37)) = r3;
    0x0005b254 b 0x5ade4                                         |         goto label_4;
                                                                 | label_77:
    0x0005b258 ldr r3, [pc, 0x530]                               |         r3 = *(0x5b78c);
    0x0005b25c mov r5, 0                                         |         r5 = 0;
    0x0005b260 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b264 b 0x5b210                                         |         
                                                                 |     } while (1);
                                                                 | label_78:
    0x0005b268 ldr r2, [pc, 0x524]                               |     r2 = *(0x5b790);
    0x0005b26c add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b270 b 0x5b228                                         |     goto label_8;
                                                                 | label_45:
    0x0005b274 cmp r4, 0x104                                     |     
                                                                 |     if (r4 == 0x104) {
    0x0005b278 beq 0x5b484                                       |         goto label_79;
                                                                 |     }
                                                                 |     if (r4 < 0x104) {
    0x0005b27c bls 0x5b434                                       |         goto label_59;
                                                                 |     }
                                                                 | label_60:
    0x0005b280 ldr r2, [r6, 0x18]                                |     r2 = *((r6 + 0x18));
    0x0005b284 ldr r3, [pc, 0x50c]                               |     r3 = *(0x5b794);
    0x0005b288 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0005b28c bne 0x5b4cc                                       |         goto label_80;
                                                                 |     }
    0x0005b290 ldr r3, [pc, 0x504]                               |     r3 = *(0x5b798);
    0x0005b294 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 | label_16:
    0x0005b298 ldr r2, [pc, 0x500]                               |     r2 = *(0x5b79c);
    0x0005b29c mov r1, 0x40                                      |     r1 = 0x40;
    0x0005b2a0 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b2a4 str r2, [sp]                                      |     *(sp) = r2;
    0x0005b2a8 ldr r2, [pc, 0x4f4]                               |     r2 = *(0x5b7a0);
    0x0005b2ac mov r0, r8                                        |     r0 = r8;
    0x0005b2b0 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b2b4 bl 0x16f7c                                        |     snprintf (r0, r1, r2, r3);
    0x0005b2b8 ldr r4, [pc, 0x4d8]                               |     r4 = *(0x5b794);
    0x0005b2bc b 0x5b364                                         |     goto label_14;
                                                                 | label_43:
    0x0005b2c0 cmp r4, 0x10c                                     |     
                                                                 |     if (r4 < 0x10c) {
    0x0005b2c4 bhs 0x5b334                                       |         
    0x0005b2c8 ldr r3, [pc, 0x418]                               |         r3 = *(0x5b6e4);
    0x0005b2cc cmp r4, r3                                        |         
                                                                 |         if (r4 >= r3) {
    0x0005b2d0 bhs 0x5b5b8                                       |             goto label_81;
                                                                 |         }
    0x0005b2d4 cmp r4, 0x108                                     |         
                                                                 |         if (r4 == 0x108) {
    0x0005b2d8 beq 0x5b578                                       |             goto label_82;
                                                                 |         }
                                                                 |         if (r4 < 0x108) {
    0x0005b2dc bls 0x5b528                                       |             goto label_63;
                                                                 |         }
                                                                 | label_12:
    0x0005b2e0 ldr r3, [r6, 0x18]                                |         r3 = *((r6 + 0x18));
    0x0005b2e4 ldr r2, [pc, 0x438]                               |         r2 = *(0x5b720);
    0x0005b2e8 cmp r3, r2                                        |         
                                                                 |         if (r3 == r2) {
    0x0005b2ec beq 0x5b3d0                                       |             goto label_83;
                                                                 |         }
    0x0005b2f0 ldr r2, [r6, 0x14]                                |         r2 = *((r6 + 0x14));
    0x0005b2f4 ldr r1, [pc, 0x42c]                               |         r1 = *(0x5b724);
    0x0005b2f8 ldrb r2, [r2, 0x12]                               |         r2 = *((r2 + 0x12));
    0x0005b2fc cmp r3, r1                                        |         
                                                                 |         if (r3 > r1) {
    0x0005b300 movls r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r3 <= r1) {
    0x0005b304 movhi r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0005b308 ands r3, r3, r2, lsr 3                            |         r3 &= (r2 >> 3);
                                                                 |         if (r3 != r3) {
    0x0005b30c bne 0x5b3dc                                       |             goto label_84;
                                                                 |         }
    0x0005b310 ldr r3, [pc, 0x490]                               |         r3 = *(0x5b7a4);
    0x0005b314 add r3, pc, r3                                    |         r3 = pc + r3;
                                                                 | label_13:
    0x0005b318 ldr r2, [pc, 0x48c]                               |         r2 = *(0x5b7a8);
    0x0005b31c str fp, [sp]                                      |         *(sp) = fp;
    0x0005b320 add r2, pc, r2                                    |         r2 = pc + r2;
                                                                 | label_17:
    0x0005b324 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b328 mov r0, r8                                        |         r0 = r8;
    0x0005b32c bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b330 b 0x5ae70                                         |         goto label_1;
                                                                 |     }
    0x0005b334 cmp r4, 0x10c                                     |     
                                                                 |     if (r4 == 0x10c) {
    0x0005b338 beq 0x5b5f8                                       |         goto label_85;
                                                                 |     }
    0x0005b33c ldr r3, [pc, 0x3c0]                               |     r3 = *(0x5b700);
    0x0005b340 cmp r4, r3                                        |     
                                                                 |     if (r4 == r3) {
    0x0005b344 beq 0x5af88                                       |         goto label_9;
                                                                 |     }
    0x0005b348 b 0x5ae14                                         |     goto label_2;
                                                                 | label_56:
    0x0005b34c mov r5, 1                                         |     r5 = 1;
                                                                 | label_46:
    0x0005b350 ldr r1, [pc, 0x458]                               |     r1 = *(0x5b7ac);
    0x0005b354 mov r0, r8                                        |     r0 = r8;
    0x0005b358 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b35c bl 0x170d8                                        |     strcpy (r0, r1)
    0x0005b360 mov r4, 0                                         |     r4 = 0;
                                                                 | label_14:
    0x0005b364 cmp sb, 0                                         |     
                                                                 |     if (sb != 0) {
    0x0005b368 bne 0x5b64c                                       |         goto label_50;
                                                                 |     }
    0x0005b36c ldr sb, [pc, 0x440]                               |     sb = *(0x0005b7b4);
    0x0005b370 add sb, pc, sb                                    |     sb = pc + sb;
    0x0005b374 mov r3, sb                                        |     r3 = sb;
                                                                 | label_21:
    0x0005b378 cmp r5, 0                                         |     
    0x0005b37c stm sp, {r3, sb}                                  |     *(sp) = r3;
                                                                 |     *((sp + 4)) = sb;
    0x0005b380 mov r2, r7                                        |     r2 = r7;
    0x0005b384 mov r3, r8                                        |     r3 = r8;
                                                                 |     if (r5 == 0) {
    0x0005b388 beq 0x5b688                                       |         goto label_86;
                                                                 |     }
    0x0005b38c ldr r1, [pc, 0x424]                               |     r1 = *(0x5b7b4);
    0x0005b390 add r1, pc, r1                                    |     r1 = pc + r1;
                                                                 | label_23:
    0x0005b394 mov r0, r6                                        |     r0 = r6;
    0x0005b398 blx sl                                            |     sl (r0, r1);
    0x0005b39c b 0x5aea8                                         |     goto label_10;
                                                                 | label_49:
    0x0005b3a0 ldr r2, [pc, 0x414]                               |     r2 = *(0x5b7b8);
    0x0005b3a4 mov r3, r4                                        |     r3 = r4;
    0x0005b3a8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b3ac b 0x5ae64                                         |     goto label_11;
                                                                 | label_47:
    0x0005b3b0 ldr r3, [r6, 0x14]                                |     r3 = *((r6 + 0x14));
    0x0005b3b4 ldrb r3, [r3, 0x12]                               |     r3 = *((r3 + 0x12));
    0x0005b3b8 tst r3, 8                                         |     
                                                                 |     if ((r3 & 8) != 0) {
    0x0005b3bc bne 0x5b2e0                                       |         goto label_12;
                                                                 |     }
    0x0005b3c0 ldr r2, [pc, 0x3f8]                               |     r2 = *(0x5b7bc);
    0x0005b3c4 mov r3, r4                                        |     r3 = r4;
    0x0005b3c8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x0005b3cc b 0x5ae64                                         |     goto label_11;
                                                                 | label_83:
    0x0005b3d0 ldr r3, [pc, 0x3ec]                               |     r3 = *(0x5b7c0);
    0x0005b3d4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b3d8 b 0x5b318                                         |     goto label_13;
                                                                 | label_84:
    0x0005b3dc ldr r3, [pc, 0x3e4]                               |     r3 = *(0x5b7c4);
    0x0005b3e0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b3e4 b 0x5b318                                         |     goto label_13;
                                                                 | label_44:
    0x0005b3e8 ldr r3, [r6, 0x18]                                |     r3 = *((r6 + 0x18));
    0x0005b3ec cmp r3, r4                                        |     
                                                                 |     if (r3 == r4) {
    0x0005b3f0 beq 0x5b428                                       |         goto label_87;
                                                                 |     }
    0x0005b3f4 ldr r3, [pc, 0x3d0]                               |     r3 = *(0x5b7c8);
    0x0005b3f8 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
                                                                 | label_15:
    0x0005b3fc ldr r2, [pc, 0x3cc]                               |         r2 = *(0x5b7cc);
    0x0005b400 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b404 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b408 mov r0, r8                                        |         r0 = r8;
    0x0005b40c bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b410 ldr r4, [pc, 0x2c8]                               |         r4 = *(0x5b6dc);
    0x0005b414 b 0x5b364                                         |         goto label_14;
                                                                 | label_54:
    0x0005b418 ldr r3, [pc, 0x3b4]                               |         r3 = *(0x5b7d0);
    0x0005b41c mov r5, 1                                         |         r5 = 1;
    0x0005b420 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b424 b 0x5b3fc                                         |         
                                                                 |     } while (1);
                                                                 | label_87:
    0x0005b428 ldr r3, [pc, 0x3a8]                               |     r3 = *(0x5b7d4);
    0x0005b42c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b430 b 0x5b3fc                                         |     goto label_15;
                                                                 | label_59:
    0x0005b434 ldr r2, [r6, 0x18]                                |     r2 = *((r6 + 0x18));
    0x0005b438 ldr r3, [pc, 0x39c]                               |     r3 = *(0x5b7d8);
    0x0005b43c cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0005b440 bne 0x5b474                                       |         goto label_88;
                                                                 |     }
    0x0005b444 ldr r3, [pc, 0x394]                               |     r3 = *(0x5b7dc);
    0x0005b448 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b44c ldr r2, [pc, 0x390]                               |         r2 = *(0x5b7e0);
    0x0005b450 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b454 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b458 str r2, [sp]                                      |         *(sp) = r2;
    0x0005b45c ldr r2, [pc, 0x384]                               |         r2 = *(0x5b7e4);
    0x0005b460 mov r0, r8                                        |         r0 = r8;
    0x0005b464 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b468 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b46c ldr r4, [pc, 0x368]                               |         r4 = *(0x5b7d8);
    0x0005b470 b 0x5b364                                         |         goto label_14;
                                                                 | label_88:
    0x0005b474 ldr r3, [pc, 0x370]                               |         r3 = *(0x5b7e8);
    0x0005b478 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b47c b 0x5b44c                                         |         
                                                                 |     } while (1);
                                                                 | label_58:
    0x0005b480 mov r5, 1                                         |     r5 = 1;
                                                                 | label_79:
    0x0005b484 ldr r3, [r6, 0x18]                                |     r3 = *((r6 + 0x18));
    0x0005b488 cmp r3, 0x104                                     |     
                                                                 |     if (r3 != 0x104) {
    0x0005b48c bne 0x5b4c0                                       |         goto label_89;
                                                                 |     }
    0x0005b490 ldr r3, [pc, 0x358]                               |     r3 = *(0x5b7ec);
    0x0005b494 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b498 ldr r2, [pc, 0x354]                               |         r2 = *(0x5b7f0);
    0x0005b49c mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b4a0 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b4a4 str r2, [sp]                                      |         *(sp) = r2;
    0x0005b4a8 ldr r2, [pc, 0x348]                               |         r2 = *(0x5b7f4);
    0x0005b4ac mov r0, r8                                        |         r0 = r8;
    0x0005b4b0 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b4b4 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b4b8 mov r4, 0x104                                     |         r4 = 0x104;
    0x0005b4bc b 0x5b364                                         |         goto label_14;
                                                                 | label_89:
    0x0005b4c0 ldr r3, [pc, 0x334]                               |         r3 = *(0x5b7f8);
    0x0005b4c4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b4c8 b 0x5b498                                         |         
                                                                 |     } while (1);
                                                                 | label_80:
    0x0005b4cc ldr r3, [pc, 0x32c]                               |     r3 = *(0x5b7fc);
    0x0005b4d0 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b4d4 b 0x5b298                                         |     goto label_16;
                                                                 | label_52:
    0x0005b4d8 mov r5, 1                                         |     r5 = 1;
                                                                 | label_42:
    0x0005b4dc ldr r2, [r6, 0x18]                                |     r2 = *((r6 + 0x18));
    0x0005b4e0 ldr r3, [pc, 0x208]                               |     r3 = *(0x5b6ec);
    0x0005b4e4 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0005b4e8 bne 0x5b51c                                       |         goto label_90;
                                                                 |     }
    0x0005b4ec ldr r3, [pc, 0x310]                               |     r3 = "append";
    0x0005b4f0 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b4f4 ldr r2, [pc, 0x30c]                               |         r2 = *(0x5b804);
    0x0005b4f8 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b4fc add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b500 str r2, [sp]                                      |         *(sp) = r2;
    0x0005b504 ldr r2, [pc, 0x300]                               |         r2 = *(0x5b808);
    0x0005b508 mov r0, r8                                        |         r0 = r8;
    0x0005b50c add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b510 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b514 ldr r4, [pc, 0x1d4]                               |         r4 = *(0x5b6ec);
    0x0005b518 b 0x5b364                                         |         goto label_14;
                                                                 | label_90:
    0x0005b51c ldr r3, [pc, 0x2ec]                               |         r3 = *(0x5b80c);
    0x0005b520 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b524 b 0x5b4f4                                         |         
                                                                 |     } while (1);
                                                                 | label_63:
    0x0005b528 ldr r3, [r6, 0x18]                                |     r3 = *((r6 + 0x18));
    0x0005b52c ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0005b530 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0005b534 bne 0x5b568                                       |         goto label_91;
                                                                 |     }
    0x0005b538 ldr r3, [pc, 0x2d4]                               |     r3 = *(0x5b810);
    0x0005b53c add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b540 ldr r2, [pc, 0x2d0]                               |         r2 = *(0x5b814);
    0x0005b544 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b548 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b54c str r2, [sp]                                      |         *(sp) = r2;
    0x0005b550 ldr r2, [pc, 0x2c4]                               |         r2 = *(0x5b818);
    0x0005b554 mov r0, r8                                        |         r0 = r8;
    0x0005b558 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b55c bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b560 ldr r4, [pc, 0x154]                               |         r4 = *(0x5b6b8);
    0x0005b564 b 0x5b364                                         |         goto label_14;
                                                                 | label_91:
    0x0005b568 ldr r3, [pc, 0x2b0]                               |         r3 = *(0x5b81c);
    0x0005b56c add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b570 b 0x5b540                                         |         
                                                                 |     } while (1);
                                                                 | label_62:
    0x0005b574 mov r5, 1                                         |     r5 = 1;
                                                                 | label_82:
    0x0005b578 ldr r3, [r6, 0x18]                                |     r3 = *((r6 + 0x18));
    0x0005b57c cmp r3, 0x108                                     |     
                                                                 |     if (r3 == 0x108) {
    0x0005b580 beq 0x5b5a8                                       |         goto label_92;
                                                                 |     }
    0x0005b584 ldr r3, [pc, 0x298]                               |     r3 = *(0x5b820);
    0x0005b588 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b58c ldr r2, [pc, 0x294]                               |         r2 = "text_new";
    0x0005b590 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b594 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b598 mov r0, r8                                        |         r0 = r8;
    0x0005b59c bl 0x16f7c                                        |         snprintf (r0, r1, "text_new", r3);
    0x0005b5a0 mov r4, 0x108                                     |         r4 = 0x108;
    0x0005b5a4 b 0x5b364                                         |         goto label_14;
                                                                 | label_92:
    0x0005b5a8 ldr r3, [pc, 0x27c]                               |         r3 = *(0x5b828);
    0x0005b5ac add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b5b0 b 0x5b58c                                         |         
                                                                 |     } while (1);
                                                                 | label_61:
    0x0005b5b4 mov r5, 1                                         |     r5 = 1;
                                                                 | label_81:
    0x0005b5b8 ldr r3, [r6, 0x18]                                |     r3 = *((r6 + 0x18));
    0x0005b5bc sub r3, r3, 0x108                                 |     r3 -= 0x108;
    0x0005b5c0 sub r3, r3, 2                                     |     r3 -= 2;
    0x0005b5c4 cmp r3, 1                                         |     
                                                                 |     if (r3 < 1) {
    0x0005b5c8 bls 0x5b5e8                                       |         goto label_93;
                                                                 |     }
    0x0005b5cc ldr r3, [pc, 0x25c]                               |     r3 = *(0x5b82c);
    0x0005b5d0 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b5d4 ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x0005b5d8 str r2, [sp]                                      |         *(sp) = r2;
    0x0005b5dc ldr r2, [pc, 0x250]                               |         r2 = *(0x5b830);
    0x0005b5e0 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b5e4 b 0x5b324                                         |         goto label_17;
                                                                 | label_93:
    0x0005b5e8 ldr r3, [pc, 0x248]                               |         r3 = *(0x5b834);
    0x0005b5ec add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b5f0 b 0x5b5d4                                         |         
                                                                 |     } while (1);
                                                                 | label_64:
    0x0005b5f4 mov r5, 1                                         |     r5 = 1;
                                                                 | label_85:
    0x0005b5f8 ldr r3, [r6, 0x18]                                |     r3 = *((r6 + 0x18));
    0x0005b5fc cmp r3, 0x10c                                     |     
                                                                 |     if (r3 != 0x10c) {
    0x0005b600 bne 0x5b634                                       |         goto label_94;
                                                                 |     }
    0x0005b604 ldr r3, [pc, 0x230]                               |     r3 = *(0x5b838);
    0x0005b608 add r3, pc, r3                                    |     r3 = pc + r3;
                                                                 |     do {
    0x0005b60c ldr r2, [pc, 0x22c]                               |         r2 = *(0x5b83c);
    0x0005b610 mov r1, 0x40                                      |         r1 = 0x40;
    0x0005b614 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b618 str r2, [sp]                                      |         *(sp) = r2;
    0x0005b61c ldr r2, [pc, 0x220]                               |         r2 = *(0x5b840);
    0x0005b620 mov r0, r8                                        |         r0 = r8;
    0x0005b624 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0005b628 bl 0x16f7c                                        |         snprintf (r0, r1, r2, r3);
    0x0005b62c mov r4, 0x10c                                     |         r4 = 0x10c;
    0x0005b630 b 0x5b364                                         |         goto label_14;
                                                                 | label_94:
    0x0005b634 ldr r3, [pc, 0x20c]                               |         r3 = *(0x5b844);
    0x0005b638 add r3, pc, r3                                    |         r3 = pc + r3;
    0x0005b63c b 0x5b60c                                         |         
                                                                 |     } while (1);
                                                                 | label_65:
    0x0005b640 ldr r3, [pc, 0x204]                               |     r3 = "r_array_remove_index";
    0x0005b644 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b648 b 0x5afa0                                         |     goto label_18;
                                                                 | label_50:
    0x0005b64c ldrb r3, [sb]                                     |     r3 = *(sb);
    0x0005b650 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0005b654 beq 0x5ae78                                       |         goto label_19;
                                                                 |     }
    0x0005b658 ldr r3, [pc, 0x1f0]                               |     r3 = *(0x5b84c);
    0x0005b65c add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b660 b 0x5ae84                                         |     goto label_20;
                                                                 | label_51:
    0x0005b664 cmp r4, 0x100                                     |     
                                                                 |     if (r4 != 0x100) {
    0x0005b668 bne 0x5b378                                       |         goto label_21;
                                                                 |     }
    0x0005b66c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0005b670 beq 0x5b0dc                                       |         goto label_22;
                                                                 |     }
    0x0005b674 ldr r1, [pc, 0x1d8]                               |     r1 = *(0x5b850);
    0x0005b678 str sb, [sp]                                      |     *(sp) = sb;
    0x0005b67c mov r2, r7                                        |     r2 = r7;
    0x0005b680 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b684 b 0x5aea0                                         |     goto label_5;
                                                                 | label_86:
    0x0005b688 ldr r1, [pc, 0x1c8]                               |     r1 = *(0x5b854);
    0x0005b68c add r1, pc, r1                                    |     r1 = pc + r1;
    0x0005b690 b 0x5b394                                         |     goto label_23;
                                                                 | label_67:
    0x0005b694 cmp r2, 0                                         |     
    0x0005b698 mov r5, 1                                         |     r5 = 1;
                                                                 |     if (r2 != 0) {
    0x0005b69c bne 0x5b074                                       |         goto label_24;
                                                                 |     }
    0x0005b6a0 ldr r3, [pc, 0x1b4]                               |     r3 = *(0x5b858);
    0x0005b6a4 add r3, pc, r3                                    |     r3 = pc + r3;
    0x0005b6a8 b 0x5b02c                                         |     goto label_25;
                                                                 | }

[*] Function strcpy used 17 times libglib-2.0.so.0.5600.4